9.7 KiB
Notes & Harmony
This tutorial covers everything pitch-related: notes, intervals, chords, voicings, transposition, scales, and diatonic harmony. Each section builds on the previous one.
Notes
A note name followed by an octave number compiles to a MIDI integer:
c4 note sine snd .
That plays middle C (MIDI 60). a4 is concert A (69), e3 is 52. Sharps use s or #, flats use b:
fs4 note 0.5 decay saw snd .
eb4 note 0.8 decay tri snd .
fs4 and f#4 both mean F sharp 4 (MIDI 66). bb3 is B flat 3 (58). Octave range is -1 to 9.
Notes are just integers. They work anywhere an integer works — you can do arithmetic on them, store them in variables, pass them to any word that expects a number.
Intervals
An interval duplicates the top of the stack and adds semitones. Stack two intervals to build a chord by hand:
c4 M3 P5 note 1.5 decay sine snd .
That builds a C major triad from scratch: C4 (60), then a major third above (64), then a perfect fifth above the root (67). Three notes on the stack, all played together.
a3 m3 P5 note 1.2 decay saw snd .
A minor triad: A3, C4, E4.
Simple intervals (within one octave):
| Interval | Semitones | Name |
|---|---|---|
P1 / unison |
0 | Perfect unison |
m2 |
1 | Minor 2nd |
M2 |
2 | Major 2nd |
m3 |
3 | Minor 3rd |
M3 |
4 | Major 3rd |
P4 |
5 | Perfect 4th |
aug4 / dim5 / tritone |
6 | Tritone |
P5 |
7 | Perfect 5th |
m6 |
8 | Minor 6th |
M6 |
9 | Major 6th |
m7 |
10 | Minor 7th |
M7 |
11 | Major 7th |
P8 |
12 | Octave |
Compound intervals (beyond one octave):
| Interval | Semitones |
|---|---|
m9 |
13 |
M9 |
14 |
m10 |
15 |
M10 |
16 |
P11 |
17 |
aug11 |
18 |
P12 |
19 |
m13 |
20 |
M13 |
21 |
m14 |
22 |
M14 |
23 |
P15 |
24 |
Custom voicings with wide intervals:
c3 P5 P8 M10 note 1.5 decay sine snd .
C3, G3, C4, E4 — an open-voiced C major spread across two octaves.
Chords
Chord words replace a root note with all the chord tones. They're shortcuts for what intervals do manually:
c4 maj note 1.5 decay sine snd .
That's the same C major triad, but in one word instead of M3 P5. A few more:
d3 min7 note 1.5 decay saw snd .
e3 dom9 note 1.2 decay saw snd .
a3 sus2 note 1.5 decay tri snd .
Common triads:
| Word | Intervals |
|---|---|
maj |
0 4 7 |
m |
0 3 7 |
dim |
0 3 6 |
aug |
0 4 8 |
sus2 |
0 2 7 |
sus4 |
0 5 7 |
pwr |
0 7 |
Common seventh chords:
| Word | Intervals |
|---|---|
maj7 |
0 4 7 11 |
min7 |
0 3 7 10 |
dom7 |
0 4 7 10 |
dim7 |
0 3 6 9 |
m7b5 |
0 3 6 10 |
minmaj7 |
0 3 7 11 |
aug7 |
0 4 8 10 |
augmaj7 |
0 4 8 11 |
7sus4 |
0 5 7 10 |
Extended, add, altered, and other chord types are listed in the Reference section at the end.
Voicings
Four words reshape chord voicings without changing the harmony.
inv moves the bottom note up an octave (inversion):
c4 maj inv note 1.5 decay sine snd .
The root C goes up, giving E4 G4 C5 — first inversion. Apply it twice for second inversion:
c4 maj inv inv note 1.5 decay sine snd .
G4 C5 E5. dinv does the opposite — moves the top note down an octave:
c4 maj dinv note 1.5 decay sine snd .
G3 C4 E4. The fifth drops below the root.
drop2 and drop3 are jazz voicing techniques for four-note chords. drop2 takes the second-from-top note and drops it an octave:
c4 maj7 drop2 note 1.2 decay saw snd .
From C4 E4 G4 B4, the G drops to G3: G3 C4 E4 B4. drop3 drops the third-from-top:
c4 maj7 drop3 note 1.2 decay saw snd .
E drops to E3: E3 C4 G4 B4. These create wider, more open voicings common in jazz guitar and piano.
Transposition
tp shifts every note on the stack by N semitones:
c4 maj 3 tp note 1.5 decay sine snd .
C major transposed up 3 semitones becomes Eb major. Works with any number of notes:
c4 min7 -2 tp note 1.5 decay saw snd .
Shifts the whole chord down 2 semitones (Bb minor 7).
oct shifts a single note by octaves:
c4 1 oct note 0.3 decay sine snd .
C5 (one octave up). Useful for bass lines:
0 2 4 5 7 5 4 2 8 cycle minor note
-2 oct 0.8 gain sine snd .
Scales
Scale words convert a degree index into a MIDI note. By default the root is C4 (MIDI 60):
0 major note 0.5 decay sine snd .
Degree 0 of the major scale: C4. Degrees wrap with octave transposition — degree 7 gives C5 (72), degree -1 gives B3 (59).
Walk through a scale with cycle:
0 1 2 3 4 5 6 7 8 cycle minor note 0.5 decay sine snd .
Random notes from a scale:
0 7 rand pentatonic note 0.8 decay saw snd .
Setting the key
By default scales are rooted at C4. Use key! to change the tonal center:
g3 key! 0 major note 0.5 decay sine snd .
Now degree 0 is G3 (55) instead of C4. The key persists across steps until changed again:
a3 key! 0 3 5 7 3 cycle minor note 0.8 decay tri snd .
A minor melody starting from A3.
Common modes:
| Word | Pattern |
|---|---|
major |
0 2 4 5 7 9 11 |
minor |
0 2 3 5 7 8 10 |
dorian |
0 2 3 5 7 9 10 |
phrygian |
0 1 3 5 7 8 10 |
lydian |
0 2 4 6 7 9 11 |
mixolydian |
0 2 4 5 7 9 10 |
pentatonic |
0 2 4 7 9 |
minpent |
0 3 5 7 10 |
blues |
0 3 5 6 7 10 |
harmonicminor |
0 2 3 5 7 8 11 |
melodicminor |
0 2 3 5 7 9 11 |
Jazz, symmetric, and modal variant scales are listed in the Reference section.
Diatonic Harmony
triad and seventh build chords from scale degrees. Instead of specifying a chord type, you get whatever chord the scale produces at that degree:
0 major triad note 1.5 decay sine snd .
Degree 0 of the major scale, stacked in thirds: C E G — a major triad. The scale determines the chord quality automatically. Degree 1 gives D F A (minor), degree 4 gives G B D (major):
4 major triad note 1.5 decay sine snd .
seventh adds a fourth note:
0 major seventh note 1.2 decay saw snd .
C E G B — Cmaj7. Degree 1 gives Dm7, degree 4 gives G7 (dominant). The diatonic context determines everything.
Combine with key! to play diatonic chords in any key:
g3 key! 0 major triad note 1.5 decay sine snd .
G major triad rooted at G3.
A I-vi-IV-V chord progression using pcycle:
( 0 major seventh ) ( 5 major seventh )
( 3 major seventh ) ( 4 major seventh ) 4 pcycle
note 1.2 decay saw snd .
Combine with voicings for smoother voice leading:
( 0 major seventh ) ( 5 major seventh inv )
( 3 major seventh ) ( 4 major seventh drop2 ) 4 pcycle
note 1.5 decay saw snd .
Arpeggiate diatonic chords using arp (see the Timing with at tutorial for details on arp):
0 major seventh arp note 0.5 decay sine snd .
Frequency Conversion
mtof converts a MIDI note to frequency in Hz. ftom does the reverse:
c4 mtof freq sine snd .
Useful when a synth parameter expects Hz rather than MIDI.
Reference
All Chords
Triads:
| Word | Intervals |
|---|---|
maj |
0 4 7 |
m |
0 3 7 |
dim |
0 3 6 |
aug |
0 4 8 |
sus2 |
0 2 7 |
sus4 |
0 5 7 |
pwr |
0 7 |
Seventh chords:
| Word | Intervals |
|---|---|
maj7 |
0 4 7 11 |
min7 |
0 3 7 10 |
dom7 |
0 4 7 10 |
dim7 |
0 3 6 9 |
m7b5 |
0 3 6 10 |
minmaj7 |
0 3 7 11 |
aug7 |
0 4 8 10 |
augmaj7 |
0 4 8 11 |
7sus4 |
0 5 7 10 |
Sixth chords:
| Word | Intervals |
|---|---|
maj6 |
0 4 7 9 |
min6 |
0 3 7 9 |
maj69 |
0 4 7 9 14 |
min69 |
0 3 7 9 14 |
Extended chords:
| Word | Intervals |
|---|---|
dom9 |
0 4 7 10 14 |
maj9 |
0 4 7 11 14 |
min9 |
0 3 7 10 14 |
9sus4 |
0 5 7 10 14 |
dom11 |
0 4 7 10 14 17 |
maj11 |
0 4 7 11 14 17 |
min11 |
0 3 7 10 14 17 |
dom13 |
0 4 7 10 14 21 |
maj13 |
0 4 7 11 14 21 |
min13 |
0 3 7 10 14 21 |
Add chords:
| Word | Intervals |
|---|---|
add9 |
0 4 7 14 |
add11 |
0 4 7 17 |
madd9 |
0 3 7 14 |
Altered dominants:
| Word | Intervals |
|---|---|
dom7b9 |
0 4 7 10 13 |
dom7s9 |
0 4 7 10 15 |
dom7b5 |
0 4 6 10 |
dom7s5 |
0 4 8 10 |
dom7s11 |
0 4 7 10 18 |
All Scales
Modes:
| Word | Pattern |
|---|---|
major |
0 2 4 5 7 9 11 |
minor / aeolian |
0 2 3 5 7 8 10 |
dorian |
0 2 3 5 7 9 10 |
phrygian |
0 1 3 5 7 8 10 |
lydian |
0 2 4 6 7 9 11 |
mixolydian |
0 2 4 5 7 9 10 |
locrian |
0 1 3 5 6 8 10 |
Pentatonic and blues:
| Word | Pattern |
|---|---|
pentatonic |
0 2 4 7 9 |
minpent |
0 3 5 7 10 |
blues |
0 3 5 6 7 10 |
Harmonic and melodic minor:
| Word | Pattern |
|---|---|
harmonicminor |
0 2 3 5 7 8 11 |
melodicminor |
0 2 3 5 7 9 11 |
Chromatic and whole tone:
| Word | Pattern |
|---|---|
chromatic |
0 1 2 3 4 5 6 7 8 9 10 11 |
wholetone |
0 2 4 6 8 10 |
Jazz / Bebop:
| Word | Pattern |
|---|---|
bebop |
0 2 4 5 7 9 10 11 |
bebopmaj |
0 2 4 5 7 8 9 11 |
bebopmin |
0 2 3 5 7 8 9 10 |
altered |
0 1 3 4 6 8 10 |
lyddom |
0 2 4 6 7 9 10 |
Symmetric:
| Word | Pattern |
|---|---|
halfwhole |
0 1 3 4 6 7 9 10 |
wholehalf |
0 2 3 5 6 8 9 11 |
augmented |
0 3 4 7 8 11 |
tritone |
0 1 4 6 7 10 |
prometheus |
0 2 4 6 9 10 |
Modal variants (from melodic minor):
| Word | Pattern |
|---|---|
dorianb2 |
0 1 3 5 7 9 10 |
lydianaug |
0 2 4 6 8 9 11 |
mixb6 |
0 2 4 5 7 8 10 |
locrian2 |
0 2 3 5 6 8 10 |