ChordSymbol icon indicating copy to clipboard operation
ChordSymbol copied to clipboard

Simple notation for chords in SuperCollider

ChordSymbol and NoteSymbol

Simple notation for chords and notes in SuperCollider

Quickly write progressions with .chordProg:

[\Cm_eb, \Fm, \Gm, \Cm_g, \Cm_eb, \Fm, \Gm_d, \Cm].chordProg;
[\C, \G_b, \F_a, \G_b].chordProg;

Or progressions of notes with .noteProg:

 [\E4, \Fs4, \B4, \Cs5, \D5, \Fs4, \E4, \Cs5, \B4, \Fs4, \D5, \Cs5].noteProg

Supports multiple naming conventions for common chords:

\C.asNotes              // C major -> [0, 4, 7]
\Cmajor.asNotes         // C major -> [0, 4, 7]
\CM.asNotes             // C major -> [0, 4, 7] 

\Cm.asNotes             // C minor -> [0, 3, 7]
\Em7sharp5flat9.asNotes // [ 4, 7, 12, 14, 17 ]

Supports sharps and flats using s and b respectively:

\Gs.asNotes             // G# major -> [ 8, 12, 15 ]
\Dbmaj11.asNotes        // Db major11 -> [ 1, 5, 8, 12, 15, 18 ]

And slash/inverted chords - just replace the slash seen in notation with an underscore

\C_g.asNotes            // C/g -> [ 7, 12, 16 ]
\Fm_gs.asNotes          // Fm/a -> [ 8, 12, 17 ]
\Dsus4_g.asNotes        // Dsus4/g -> [ 7, 9, 14 ]

It also allows the user specify the octave if required

\C4m7sharp9.asNotes     // [ 60, 63, 67, 70, 74 ]
\C5m7sharp9.asNotes     // [ 72, 75, 79, 82, 86 ]
\F6plus_Cs.asNotes      // [ 77, 81, 85 ]

It'll tell you which degrees would be in a chord shape in a given mode/scale Be careful of sharps/flat when using to produce scale degrees. This is fantastic for notating chord progressions but may not behave as expected when transposed etc. A root note of C is always assumed:

\Cmajor.asDegrees                  // major scale assumed if none specified -> [0, 2, 4]
\Cminor.asDegrees                  // [0, 1.1, 4]
\Cmajor.asDegrees(Scale.minor)     // major chord in minor mode -> [0, 2.1, 4] 
\m7sharp5.asDegrees(Scale.dorian)  // [ 0, 2, 4.1, 6 ]

You can also get the degrees for a progression in terms of a particular mode:

[\Cm_eb, \Fm, \Gm, \Cm_g, \Cm_eb, \Fm, \Gm_d, \Cm].chordProgDegrees(Scale.dorian);

To see the suilt in list of chords say ChordSymbol.shapes.keys. You cam add to this with .put

Check chord Symbols help in SC for more info.