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
transposeplayed 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.

Equal pitch steps ≠ equal Hz stepsf(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×
equal visual width = equal perceived pitch stepfrequency doubles at +12
frequencyf(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

Root · ♭3 · 4 · 5 · ♭70 3 5 7 10
0root1·2·3♭34·546·758·9·10♭711·

Minor lead

Chord / passing / tension0 1 2 3 5 6 7 8 10 11
0root1♭2223♭34·546♭5 / ♯4758♭69·10♭7117
RoleOffsetsUse first
Chord tones0 3 7 10Strong beats and stable targets
Passing tones2 5 8Between chord tones
Chromatic tension1 6 11Approach and return by one semitone
Register+12 / −12Same pitch class, different octave

Compact/base36 notation

Readable0 → 3 → 7 → 10 → 12
00
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.