How this site is made

The figure library

Every picture here is generated from code at build time. This is the list of generators, with how many essays call each one — which is both the reuse this collection lives on and the blast radius of changing one.

No figure on this site is a drawing that was made once and saved. Each one is a function: it takes parameters and returns SVG, so the same generator produces the pure 3:2 fifth and the equal-tempered one without either being redrawn, and the dissonance curve of a string and of a clarinet without anyone deciding by hand where the dips should fall.

That is the reason the collection can keep growing without the illustrations drifting apart. A generator is written once, checked once, and every essay that calls it inherits the same line weights, the same colour roles, the same behaviour in dark mode and the same synthesiser. There are 147 of them so far, called 3225 times across 490 essays.

Reuse is the number that decides whether any of this is sustainable, which is why it is published rather than kept in a plan. A generator written for one essay and never called again is a design failure and not a neutral cost. The count beside each name is how many essays instantiate it, and the phase ledger refuses to advance if the figures-per-generator ratio falls.

It is also the blast radius. Changing a generator changes every figure in its list at once, so that list is what has to be rebuilt and looked at before the change is believed — a bad shared helper once broke a hundred and eighty-one figures across four of these sites, and was caught only because somebody rebuilt immediately and knew where to look.

Pitch and tuning

16 generators

Intervals and chords

14 generators

Scales and modes

11 generators

Harmony and voice leading

12 generators

Rhythm and metre

13 generators

Timbre and acoustics

16 generators

Instruments

19 generators

Perception and the listener

19 generators

Melody

3 generators

Notation

4 generators

Form in time

20 generators

What can be heard · All essays