User Guide
Chord to MIDI turns chord symbols into a MIDI clip, and MIDI files back into chord symbols. This guide covers everything the tool understands, from the progression syntax to MIDI import.
Quick start
- Type a progression in the Progression field, for example
C - G - Am - F. - Press Enter or Generate. The chords appear in the Chord Track.
- Press Space to listen. Click any chord to hear it on its own.
- Press Download .mid (Ctrl/⌘+S). Once the download finishes, drag the file from Chrome's Downloads button at the top right, or from Finder on macOS, into your DAW.
Writing a progression
Syntax
The examples assume Unit is set to Bar, so one unit is a bar of four beats. With Beat, every length is counted in beats instead.
| Write | Meaning | Example |
|---|---|---|
C - G - Am - F, C G Am F, C | G | Am | F |
Chords, one unit each | Four chords, one bar each |
Am(x2) or Am x2, Am(x1.5) |
A longer or shorter chord | Am(x2) lasts two bars, Am(x1.5) six beats, Am(x0.5) two beats |
[Dm7 - G7] |
Split one unit equally | Dm7 and G7, two beats each |
[Am(x3) - E] |
Split one unit 3 : 1 | Am for three beats, then E for one |
[A - B](x2) |
A group lasting two units | A for a bar, then B for a bar |
N.C. · % |
Rest · repeat the previous chord or group | C - N.C. is a bar of C and a bar of silence; [Dm7 - G7] - % plays the pair twice |
Separators, lengths, groups, rests and repeats
- Separators. Hyphens, en and em dashes (
–,—), vertical bars, commas, spaces and line breaks all separate chords, and you can mix them. A hyphen that belongs to a chord symbol, as inCm7-5orC-7, stays with the chord. If you type lowercase roots, put spaces around hyphens (am - dm): a hyphen directly before a lowercase letter or a digit is read as part of the chord. - Lengths. A multiplier stretches or shrinks the chord or group before it. Write it in parentheses,
Am(x2), or after a space,Am x2.×and*work as well asx, and decimals such as(x1.5)are fine.Amx2, without the space, reads as an unknown chord. - Groups. Square brackets fit their chords into one unit, in proportion to their lengths:
[C - Am - F - G]is four chords of one beat each. A multiplier after the closing bracket sets the length of the whole group. Brackets can't be nested. - Rests.
N.C.(orNC, in upper or lower case) is a rest of one unit, andN.C.(x2)lasts two. A rest at the end stays in the MIDI file, so the clip keeps its full length. - Repeats.
%repeats the previous chord or group with the same length:Am(x2) - %playsAm(x2)twice.
Chord symbols
A chord symbol is a root, a chord type and, optionally, a bass note: F♯m7, B♭maj7, E7/G#.
- Root: a letter from
AtoG, in upper or lower case, with#or♯for a sharp andbor♭for a flat.am7is read asAm7. - Bass note: a note name after a slash, as in
E7/G#,C/B♭orD/F#. It sounds an octave below the chord. - Chord type: everything after the root. The tables below show every type the engine knows.
Chord types
Shown here on C:
| Family | Write |
|---|---|
| Triads and power chord | C, Cm, Cdim, Caug, C(b5), Csus2, Csus4, C5 |
| Sixths and added notes | C6, Cm6, C69, Cm69, Cadd9, Cadd2, Cadd11, C(add9,add11), Cm(add9), Cm(add11) |
| Sevenths | C7, Cmaj7, Cm7, CmM7, Cm7(b5), Cdim7, C7(b5), C7(#5), Cmaj7(b5), Cmaj7(#5), Cm7(#5), C7sus2, C7sus4, C7sus4(b5) |
| Ninths | C9, Cmaj9, Cm9, CmM9, C9sus4, C7(b9), C7(#9), Cm7(b9), C9(#11), Cmaj9(#11) |
| Elevenths, thirteenths and other tensions | C7(#11), C7(b13), C7(b9,b13), C7(13), Cmaj7(#11), Cm7(11), C11, Cm11, Cmaj11, Cm11(b9), Cm11(b13), Cm11(b9,b13), C13, Cmaj13, Cm13, C13sus4 |
| Other | C4.4 (stacked fourths), Cblk (the "Blackadder" chord) |
Many other spellings are understood and read as one of the types above:
| You can also write | Read as |
|---|---|
CM, Cmaj |
C |
Cmin, Cmi |
Cm |
C°, Co, Cm(b5) |
Cdim |
C+, C+5, C(#5) |
Caug |
C-5 |
C(b5) |
Csus |
Csus4 |
Cdom7 |
C7 |
CM7, CΔ7, CΔ |
Cmaj7 |
Cmin7, Cmi7, C-7 |
Cm7 |
Cm(maj7) |
CmM7 |
Cm7-5, Cm7b5, Cø, Cø7 |
Cm7(b5) |
C°7, Co7 |
Cdim7 |
CM6, Cmaj6 |
C6 |
C6/9, C6add9 |
C69 |
Cm6/9, Cm6add9 |
Cm69 |
Cmadd9, Cmadd2 |
Cm(add9) |
C7-5, C7b5 |
C7(b5) |
Caug7, C+7, C7+5, C7#5 |
C7(#5) |
Caugmaj7 |
Cmaj7(#5) |
C7sus |
C7sus4 |
C7(9), C7add9 |
C9 |
CM9, CΔ9, Cmaj7(9) |
Cmaj9 |
Cm7(9) |
Cm9 |
C9sus |
C9sus4 |
C7-9, C7b9 |
C7(b9) |
C7+9, C7#9 |
C7(#9) |
C7add13 |
C7(13) |
Cm7add11 |
Cm7(11) |
Inside parentheses, spaces and commas don't matter, and ♭ and ♯ work like b and #: C7(b9,b13), C7(♭9, ♭13) and C7b9b13 are the same chord.
Unknown chords and other mistakes
Anything the engine doesn't recognize, such as Hm7 or C/H, is reported by name, and the clip isn't generated until you fix or remove it. The engine never guesses what you meant. Other mistakes are reported the same way: a missing ] or ), nested or empty brackets, a % or a multiplier with nothing before it, a length of zero, or a progression too long for a MIDI file.
How chords are voiced
Each chord becomes a block chord that lasts its full length. The root sits in the octave you choose with the other chord tones stacked above it, extensions such as 9ths, 11ths and 13ths go above the octave, and the bass note of a slash chord sounds an octave below the chord. At octave 4, C is C3–E3–G3, and E7/G# is E3–G♯3–B3–D4 over a G♯2 in the bass.
Settings
| Setting | Range | Default | What it does |
|---|---|---|---|
| Octave | 2–7 | 4 | Where the chords sit. At 4, chord roots fall between C3 and B3 (MIDI notes 48–59, with middle C = C4 = 60). Each step moves the whole clip by an octave. |
| Unit | Bar or Beat | Bar | The length of one step of the progression: a bar of four beats, or one beat. |
| Velocity | 1–127 | 100 | How hard every note is played. |
| Tempo | 20–300 BPM | 160 | The clip's tempo, written into the MIDI file and its name. |
Changing a setting regenerates the clip at once. Your settings, the progression you're working on and your favorites are saved only in your browser (localStorage), so they're still there the next time you open Chord to MIDI in the same browser. Nothing is sent to a server.
Favorites
The Favorites in the transport bar keep up to four progressions, each as you typed it and with its tempo:
- A gray number is empty. Click it to save the progression and the tempo there, and it turns colored.
- Click a colored number to load it: the progression and the tempo come back and the clip is made at once. If the clip is playing, playback goes on in the new one from the same beat. The number holding what the tool shows now has a ring around it.
- To replace a favorite, press Save, then its number. Press Save again or Esc to cancel.
- To delete one, press its waste bin, then press it again. Esc cancels.
Favorites are kept only in this browser (localStorage), not in your account or on a server. They don't appear in other browsers or on other devices, and clearing this site's data in your browser deletes them. Octave, Unit and Velocity aren't part of a favorite, so a progression loads with the settings you have now.
Transposing
Transpose, after the favorites in the transport bar, moves every chord of the progression by semitones:
- Press + or − to move it up or down a semitone, up to eleven either way. The number between them shows how far the progression is from the one you typed.
- Only the roots and the bass notes change. Chord types, lengths, groups, rests, repeats, line breaks and chords the engine doesn't know stay as you typed them, and so do lowercase letters and ♭/♯ signs:
DbM7 - C7 - Fm7two semitones up isEbM7 - D7 - Gm7. - The new names are spelled as a chart in the new key writes them:
C - G - Am - Fa semitone up isDb - Ab - Bbm - Gb, notC# - G# - A#m - F#, andC - C#dim7 - Dm7 - G7a semitone down isB - Cdim7 - C#m7 - F#7. - Every step starts again from the progression as you typed it, so ↺ (Back to the progression as typed) gives it back exactly. Typing, Clear, importing a file, opening a share link or loading a favorite start over from the new progression.
- The MIDI clip doesn't change with each step. As after an edit, press Generate (Enter), Play or Download .mid to make the transposed clip.
A favorite, a share link and Copy text take the progression as it's shown, transposed or not. The transposed progression and the one you typed are kept with your draft in this browser, so ↺ still works after a reload.
Playback
- Play and Stop, or Space, start and stop playback from the cursor. Space works whenever you aren't typing in a text field.
- Click the ruler to place the cursor.
- Press Stop twice to return the cursor to the start.
- Cycle (Ctrl/⌘+L) loops the clip.
- Return to selection after playback: when it's on, once playback stops or reaches the end, the chord you had selected when you pressed Play is selected again and the cursor goes back to its start; when it's off, the cursor stays where you stopped.
- Click a chord in the Chord Track to hear it on its own. The Selected Chord panel shows its notes, root, quality, bass note and position.
The preview plays on a piano. The piano sound is downloaded the first time you play something, which can take a moment.
Downloading, dragging and sharing
- Download .mid (Ctrl/⌘+S) saves a standard MIDI file named after the chords and the tempo, such as
Am7_Dm7_G7_Cmaj7_BPM120.mid. The name lists up to eight chords and addsetcfor longer progressions; a slash becomes a hyphen (E7-G#). - To use the file in a DAW, wait for the download to finish, then open Chrome's Downloads button at the top right and drag the completed file into your project. On macOS, you can also drag the saved file from Finder. For Cubase 15 on macOS, drop it onto a MIDI track.
- In Chrome on macOS, you can also drag the clip from the page to Finder or the desktop to save it. Dragging the web clip directly into a DAW depends on the receiving app; use the downloaded-file workflow for Cubase 15.
- The file holds the tempo, a 4/4 time signature and one note track named after your progression and set to the General MIDI acoustic grand piano. In your DAW you can play it with any instrument.
- Copy text copies the progression text.
- Copy link copies a share link that opens Chord to MIDI with your progression and settings filled in. The progression is stored after the
#in the link, the part of an address that browsers never send to a server.
Importing a MIDI file
Use Open MIDI… (Ctrl/⌘+O) or drop a file on the timeline. .mid and .midi files (and .smf and .kar) up to 16 MB can be read. Chord to MIDI reads the file in your browser and puts its chords in the progression field, replacing what was there, ready to play, edit and download again.
What you get
- Tempo comes from the file: the tempo at the first chord. If the file has no tempo, your current Tempo setting is kept.
- Chord names are spelled in the song's key, the way a chart would write them: C/B♭, A♭ and E♭ in C major rather than C/A#, G# and D#; C#dim7 and F#m7(♭5) for passing chords; and the third in the bass as E7/G# or D/F#, even in a flat key. A passage in another key, such as a last chorus a half step up, is spelled in that key.
- Slash chords come back as charts write them: F/G rather than G9sus4, C/B♭ rather than C7/B♭, Fadd9/A rather than Am7(♯5).
- Played parts work, not just block chords. Strums, arpeggios, legato chord changes, staccato stabs and comping on every beat give one chord per change. Broken chords, played one note at a time with or without a held bass, and piano parts played with the sustain pedal are read too.
- Timing that's a little off stays on the grid. A gap shorter than one unit (a bar, or a beat with Unit set to Beat) belongs to the chord before it rather than becoming
N.C.; a longer silence becomes a rest. - Melody notes far above the chords are left out.
Parts
When a file has several tracks or MIDI channels, the Import panel lists its parts under Read chords from, with a guess at what each one plays: chords, bass, melody or drums. Parts on channel 10, the General MIDI drum channel, count as drums.
- The chords are read from the chord parts, with the bass parts under them; melody and drum parts are left out. A file without a chord part is read from all its parts except the drums.
- A bass part only sets each chord's bass note. A root–fifth bass line doesn't turn C into C/G, but a bass line stepping down under a held chord at the bar line still gives
C - C/B. - Tick or untick a part to read the file again with your choice; at least one part is always read. Reading the file again replaces the progression, including any edits you made to it.
Unit and Grid
- Unit decides whether the progression is written in bars or in beats. It also sets the shortest silence that counts as a rest.
- Grid sets how note timing is rounded. Auto picks the coarsest grid that fits the file, so straight and triplet rhythms both come out right. You can also choose a fixed step: 1 beat, 1/8 note, 1/8 triplet, 1/16 note, 1/16 triplet or 1/32 note. A coarser step simplifies a busy part; a finer one keeps quick chord changes.
Warnings and errors
A warning appears when:
- the file changes tempo (the tempo at the first chord is used);
- the file isn't in 4/4 (bars are still counted in 4/4);
- some groups of notes couldn't be named as chords (they're merged into the chord before);
- the file has more than 512 chords (only the first 512 are imported).
A file with no notes outside its drum parts, or with no chords that can be recognized, shows a message instead of a progression. Standard MIDI files of format 0 and 1 can be read; format 2 files and SMPTE-timed files can't. A damaged file shows an error, while a file that is only cut short is read as far as it goes.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Space | Play or stop (when you aren't typing in a text field) |
| Enter in the progression field | Generate |
| Shift+Enter in the progression field | New line |
| Ctrl/⌘+S | Download the .mid file |
| Ctrl/⌘+O | Open a MIDI file |
| Ctrl/⌘+L | Cycle on or off (some browsers keep this shortcut for the address bar) |
| Esc | Cancel the favorites' Save, or a waste bin pressed once |
Worked examples
With Unit set to Bar and the tempo at 120 BPM:
| Progression | Result |
|---|---|
C - G - Am - F |
Four bars, one chord per bar, 8 seconds long. |
Am7 - [Dm7 - G7] - Cmaj7(x2) - E7/G# |
Five bars: Am7; Dm7 and G7 sharing bar 2; Cmaj7 for bars 3–4; E7 over G♯ in bar 5. Downloads as Am7_Dm7_G7_Cmaj7_E7-G#_BPM120.mid. |
[C - Am - F - G](x2) |
Two bars, with a new chord every two beats. |
Fmaj7 - G7 - Em7 - Am7 |
The "royal road" progression common in J-pop, four bars. |
Dm7-5 - G7(b9) - Cm7 - % - N.C. |
A minor ii–V–i: Dm7(b5), G7(b9), two bars of Cm7, then a bar of silence at the end of the file. |
With Unit set to Beat, C(x2) G(x2) Am(x2) F(x2) has the same rhythm as [C - G] - [Am - F] with Bar: two bars, with a chord every two beats.