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.