01Think in offsets, transpose later
Core
Choose root = 0. Everything else is a semitone offset. Change the root once and every scale, chord, bass line and arp moves with it.
0root
1♭2
22
3♭3
43
54
6♭5 / ♯4
75
8♭6
96
10♭7
117
12oct
transpose
played note = root + offsetRoot C + 7 = G. Root F + 7 = C. The shape stays 0 7.Pitch is exponential
Twelve equal pitch steps do not add equal numbers of hertz. Every semitone multiplies frequency by the same ratio; twelve multiplications produce exactly one doubling.
f(n) = 220 × 2^(n/12)0220.00 Hz1.000×
1233.08 Hz1.059×
2246.94 Hz1.122×
3261.63 Hz1.189×
4277.18 Hz1.260×
5293.66 Hz1.335×
6311.13 Hz1.414×
7329.63 Hz1.498×
8349.23 Hz1.587×
9369.99 Hz1.682×
10392.00 Hz1.782×
11415.30 Hz1.888×
12440.00 Hz2.000×
+12frequency
f(n) = f₀ × 2^(n/12)+12 doubles frequency. −12 halves it. Transposition is multiplication in sound, even when the code uses addition.Minimum viable pitch vocabulary
Bass anchors
0 3 5 7 100root1·2·3♭34·546·758·9·10♭711·
Minor lead
0 1 2 3 5 6 7 8 10 110root1♭2223♭34·546♭5 / ♯4758♭69·10♭7117
| Role | Offsets | Use first |
|---|---|---|
| Chord tones | 0 3 7 10 | Strong beats and stable targets |
| Passing tones | 2 5 8 | Between chord tones |
| Chromatic tension | 1 6 11 | Approach and return by one semitone |
| Register | +12 / −12 | Same pitch class, different octave |
Compact/base36 notation
0 → 3 → 7 → 10 → 1200→
33→
77→
1010→
1212
0 3 7 A CA = 10C = 12Useful when the livecoding environment already speaks base36.Start here
Keep root, mode and the numeric pattern separate. A pattern is reusable data, not a fixed melody in one key.
Mechanism adapted into a lookup tool from Gareth Loy’s Musimathics: tuning, logarithms, wave motion and perception are different views of the same system.