Rhythm — platter #
A reading platter for the geometry of musical rhythm: Toussaint's corpus and the wider field around it (maximal evenness, rhythmic oddity, syncopation measures, distance geometry, tiling canons, entrainment, spoken solkattu, timbre space). A sub-platter within the papers platter, parallel to jeffrey-platter, whistlegraph-platter, and corporate-graphics-platter.
The platter exists so that AC's rhythm tooling resolves "a Euclidean rhythm", "how even is this", or "how far is son from rumba" to a cited definition and a verified test vector — instead of to whichever formula seemed right the day an engine was written.
It has a specific consumer. pop/ already runs this mathematics in
three places — pop/minitek/c/hypnotek.c (Bjorklund, precession, evenness,
vertex distance), dubtek.c (rhythmic oddity, chord-sum evenness, off-beatness),
and acidtek.c (off-beatness) — with each engine hand-rolling its own copy and
none of it in pop/lib/. This platter is the digest step that comes before
lifting that math into a shared library, and before the
pop/bracelet/ spatial-necklace lane is built on top of it.
Posture #
Index and original restatement only. No source text is reproduced in this repo. Specifically:
- The Geometry of Musical Rhythm (CRC Press) is cited by chapter and never mirrored — no scans, no excerpts, no quoted passages, no PDF.
- Open-access papers are fetched into
sources/byfetch-sources.mjs.sources/is gitignored — the fetch is reproducible, the mirror is not committed. timelines.jsoncarries structured facts (k, n, onset sets, inter-onset intervals, necklace representatives, culture tags) with a locator back into the source. Attribution paragraphs stay in the papers.- The
digest/entries are written in AC's own words and exist to specify code, not to summarise reading. - The one video source (
levin-2011-indian-rhythms) follows the same rule: the video and captions are fetched into gitignoredsources/by hand (yt-dlp), its on-screen overlays are OCR'd locally (macOS Vision) tosources/*.ocr.txt, and only the digest restatement is committed. wessel-1979-timbre-spaceis a hand-placed scan (shared by Sage Jenson, 2026-08-15) — no open-access URL currently resolves, sofetch-sources.mjsskips it and the local copy stays out of git like everything else insources/.
This mirrors the corporate-graphics-platter's "third-party — research reference only" rule.
Shelves #
| Shelf | What it settles | Digest |
|---|---|---|
| toussaint | The spine: the Euclidean catalogue, the geometric programme | 01, 02 |
| evenness | What "even" formally means — and that balance ≠ evenness | 02 |
| oddity-depth | Rhythmic oddity, deepness, interval content, homometry | 03 |
| syncopation | Syncopation and complexity measures | 04 |
| distance | Rhythmic similarity — the morphing levers | 05 |
| canons | Complementation and tiling rhythmic canons | 06 |
| perception | Meter, entrainment, groove — where the grid model stops | 07 |
| spatial | Spatial hearing: the limits the bracelet thesis rests on |
08 |
| solkattu | Spoken rhythm: the konnakol syllable system as a representation | 09 |
| timbre | Timbre space: the platter's dissimilarity-to-geometry move, off-rhythm | 10, 10a |
Full bibliography with fetch URLs and verification status:
sources.json (33 entries; 9 open-access papers + 1 open
video).
The catalogue #
timelines.json — 48 Euclidean rhythms extracted from
Toussaint (2005) §4 with culture tags, plus 9 named timelines (the six
distinguished 5-onset/16-pulse claves, the two 8-pulse Cuban patterns, and the
12-pulse bell).
Every extracted box string is cross-checked against a local Bjorklund
implementation at build time. All 48 agree. That check is the acceptance
test for the future pop/lib implementation, and it already passes on the
reference version — so the algorithm is settled before the library is written.
What the digest changed #
Four findings that would have gone into code wrong:
- Son clave is not a Euclidean rhythm. Its inter-onset intervals are
(3,3,4,2,4); a maximally even five-in-sixteen is (3,3,3,3,4). Toussaint
states plainly that E(5,16) "is also the Bossa-Nova rhythm necklace of
Brazil." Of the six distinguished claves, only bossa is Euclidean.
pop/minitek/thesis/dubtek.mdcurrently says E(5,16) is "the canonical 2-3 son rotation" — that is wrong and needs correcting. - Compare necklaces, not strings. The published catalogue prints one arbitrary rotation per entry, and many traditional rhythms are named as a rotation of the Euclidean form. Any equality test must compare lexicographically-least rotations, or it will report false negatives on half the catalogue.
- Off-beatness is a group-theoretic property, not a heuristic. The off-beat positions of an n-cycle are exactly the generators of C(n) — the p with gcd(p, n) = 1. For n = 12 that is {1, 5, 7, 11}. The measure degenerates for prime n (every position is a generator) and the implementation must say so rather than return a meaningless number.
- Chronotonic distance wins. Toussaint (2004) compares five dissimilarity
measures and concludes the best overall is the chronotonic distance,
followed by swap distance in close second. So
pop/libshould default to chronotonic and offer swap — not default to Hamming because it is easiest.
Regenerate #
node papers/rhythm-platter/fetch-sources.mjs # → sources/ (gitignored)
node papers/rhythm-platter/build-timelines.mjs # → timelines.json, with cross-check
# the one video source — fetched by hand, then frame-OCR'd (macOS Vision):
yt-dlp -f "bv*[height<=720]+ba/b" --write-auto-subs --sub-langs en \
-o "papers/rhythm-platter/sources/levin-2011-indian-rhythms.%(ext)s" \
"https://www.youtube.com/watch?v=KsvKQhOeQjQ"
build-timelines.mjs exits non-zero if any extracted rhythm disagrees with
Bjorklund.
Verification debts #
Open, and deliberately visible rather than smoothed over:
- 19 of 33 sources carry
"checked": false— written from working knowledge, citation details not yet confirmed against a publisher record. None may be cited in a paper until checked. - The 9
named_timelinesrows carry"checked": false. The onset sets are the standard published forms and the Euclidean-membership results are computed, but the onset strings have not been re-read out of Toussaint (2002). bjorklund-2003-snshas no confirmed retrieval URL.- The digest is written against the open-access papers plus working knowledge of the book. Chapter-level citations to the 2013 book are approximate and flagged inline where they carry weight.
maintained by @jeffrey · feeds pop/lib and pop/bracelet/