Smart Pianist, CSP and ChordPro

Yamaha repurposes hardware and software technology all the time. The Yamaha CSP series digital pianos (CSP-100 series and CSP-200 series) and Smart Pianist borrow a lot of technology from the Yamaha Genos and PSR arrangers. Yamaha Chord Tracker users know that Smart Pianist also has Chord Tracker technology inside.

Chord Tracker provides a number of Smart Pianist-like features. Chord Tracker analyzes an audio song, extracts its chords, and displays the chords in a chart. Like Smart Pianist, Chord Tracker follows the chord chart while playing back the original audio file. Pretty much anyone can use Chord Tracker in this way to figure out the chords to a song and play along.

Genos and PSR arranger people, however, get extra goodies. Chord Tracker can send the chords to the arranger for playback. Even better, you get to choose the accompaniment style. Want to re-imagine a song as a country tune? You can do it.

Extended ChordPro

Chord Tracker sends the chords to an arranger in a Standard MIDI File (SMF). Instead of notes, the chords are represented in Yamaha System Exclusive MIDI messages.

When I analyzed the file format and chord messages, my first thought was “ChordPro”!

You’ve probably seen ChordPro on the Interwebs. It’s that simple text format for song lyrics and chords. I extended ChordPro adding a few new features to make musical time explicit and precise. (Original ChordPro relies on the musician for time.) Then I wrote a Java program to translate an Extended ChordPro song to an SMF suitable for playback on a Yamaha arranger. Check out an Extended ChordPro demo.

Playback ChordPro Example

Well, guess what? Smart Pianist and CSP-170 can play back SMFs generated from Extended ChordPro songs.

Here is a short ChordPro snippet for Steve Winwood’s “Can’t Find My Way Home”.

{t: Can't Find My Way Home}
{key: D}
{artist:Blind Faith}
{time: 4/4}
# Style: SongwriterBallad (stylecode: 5980)
{stylecode: 5980}
{tempo: 96}

{start_accomp}

# Introduction
[C][*IA]
{c: Introduction}
[Csus2:2][*MB] ---- [G/B:2] ---- [Gm/Bb:2] ---- [D/A:2] ---- 
[F:2] ---- [G:2] ---- [D] --------
[Csus2:2] ---- [G/B:2] ---- [Gm/Bb:2] ---- [D/A:2] ---- 
[F:2] ---- [G:2] ---- [D][*FB] --------

{c: Verse 1}
Come [Csus2:2][*MB] down off your [G/B:2] throne, and 
[Gm/Bb:2] leave your body a- [D/A:2] -lone.
[F:2] Some- [G:2] -body must [D] change.
[Csus2:2] You are the rea- [G/B:2] -son, I've been
[Gm/Bb:2] waiting so [D/A:2] long.
[F:2] Some- [G:2] -body holds the [D][*FC] key.

An Extended ChordPro song begins with a header containing the title, artist, key, tempo, time signature and auto-accompaniment style. After the header, you hit the {start_accomp} directive which tells the arranger (Genos, PSR or CSP) to start playing.

The rest of the Extended ChordPro file consists of chords, e.g.,

    [C]   [Csus2:2]   [G/B:2]   [Gm/Bb:2] ...

section control directives, e.g.,

    [*IA]  [*MB]   [*FC] ...

and lyrics (plain text). Oh, yeah, you can throw in comments, too, e.g.,

    {c: Introduction}
    {c: Verse 1}

The Java program (cp2mid) translates the chords, directives and lyrics into an arranger-ready Standard MIDI File.

So, what do we get after we import the SMF into Smart Pianist? The screenshot above [click to enlarge] is the score. The chord symbols and lyrics appear with the staves. There aren’t any notes because the SMF doesn’t have any notes; it’s contains only chords and lyrics.

The chord chart looks familiar. But, hey! Smart Pianist display lyrics interspersed with chords. I never saw Chord Tracker do that.

The final screenshot shows the lyrics alone. All of those dashes (“—-“) come from the Extended ChordPro song. They are placeholders during instrumental interludes.

Summary

Today’s example demonstrates a different way to use Smart Pianist and CSP digital pianos. If you own both a Yamaha arranger workstation and a CSP, you should be able to transfer Chord Tracker SMFs to Smart Pianist and the CSP.

If you want to know more about Extended ChordPro and its implementation, please see:

Copyright © 2025 Paul J. Drongowski