diff --git a/papers/SCORE.md b/papers/SCORE.md index 72b7eb1e7c..37faa98dcd 100644 --- a/papers/SCORE.md +++ b/papers/SCORE.md @@ -113,7 +113,7 @@ Smaller scoped collections. Each has its own `manifest.json` + `sync.mjs`: - [`jeffrey-lexicon/`](jeffrey-lexicon/) — frequency-attributed dictionary of words used by Jeffrey, sourced only from first-hand textual + transcribed material (textual analogue of `jeffrey-platter`'s photo index and the `jeffrey-pvc` voice clone) - [`whistlegraph-platter/`](whistlegraph-platter/) — Whistlegraph-specific artifacts and references - [`people-platter/`](people-platter/) — TODO; will hold AC-adjacent people biographies -- [`rhythm-platter/`](rhythm-platter/) — reading platter for the geometry of musical rhythm: Toussaint's corpus plus the wider field (maximal evenness, rhythmic oddity, syncopation measures, distance geometry, tiling canons, entrainment, spatial hearing). 31 sources across 8 shelves, 8 digest entries, and [`timelines.json`](rhythm-platter/timelines.json) — 48 Euclidean rhythms extracted from Toussaint (2005) §4 and cross-checked against a local Bjorklund implementation, plus 9 named timelines. Index and citation only; the CRC book is never mirrored, and `sources/` is gitignored. Every digest entry ends in a `tools:` block, because this platter exists to specify [`pop/lib`](../pop/lib/) rhythm tooling and the [`pop/bracelet/`](../pop/bracelet/) spatial-necklace lane. Built via `fetch-sources.mjs` + `build-timelines.mjs`. +- [`rhythm-platter/`](rhythm-platter/) — reading platter for the geometry of musical rhythm: Toussaint's corpus plus the wider field (maximal evenness, rhythmic oddity, syncopation measures, distance geometry, tiling canons, entrainment, spatial hearing, spoken solkattu, timbre space). 33 sources across 10 shelves — including one OCR'd video source (Levin's konnakol lesson) and the Wessel 1979 timbre-space paper (hand-placed scan from Sage Jenson, 2026-08-15) — 10 digest entries, and [`timelines.json`](rhythm-platter/timelines.json) — 48 Euclidean rhythms extracted from Toussaint (2005) §4 and cross-checked against a local Bjorklund implementation, plus 9 named timelines. Index and citation only; the CRC book is never mirrored, and `sources/` is gitignored. Every digest entry ends in a `tools:` block, because this platter exists to specify [`pop/lib`](../pop/lib/) rhythm tooling and the [`pop/bracelet/`](../pop/bracelet/) spatial-necklace lane. Built via `fetch-sources.mjs` + `build-timelines.mjs`. - [`corporate-graphics-platter/`](corporate-graphics-platter/) — reference library of historic bank/corporate/seal/privacy marks (66, from Wikimedia Commons) collected to inform logo work; four sections (banks-finance, modernist-canon, seals-monograms, surveillance-consent) each with `manifest.md` + a `_sheet-*.png` contact sheet. Built via `fetch-logos.mjs` + `finalize.mjs`. Third-party trademarks — research/moodboard reference only. - [`architecture-platter/`](architecture-platter/) — reading platter for foundational architectural treatises. Opens with a matched pair: Palladio's *Four Books of Architecture* (Ware 1738 folio, Getty/Internet Archive scan) and Durand's *Précis of the Lectures on Architecture* (Getty Texts & Documents translation, 2000) — proportion-as-authority vs. composition-as-algorithm. Index and citation only; PDFs fetched into gitignored `sources/` via `fetch-sources.mjs` (the Getty Durand is in copyright, distributed free by Getty — never redistributed). diff --git a/papers/rhythm-platter/README.md b/papers/rhythm-platter/README.md index fff11758ef..4cb8020556 100644 --- a/papers/rhythm-platter/README.md +++ b/papers/rhythm-platter/README.md @@ -2,7 +2,8 @@ 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). A sub-platter within +measures, distance geometry, tiling canons, entrainment, spoken solkattu, +timbre space). A sub-platter within the [papers platter](../SCORE.md), parallel to [jeffrey-platter](../jeffrey-platter/), [whistlegraph-platter](../whistlegraph-platter/), and [corporate-graphics-platter](../corporate-graphics-platter/). @@ -35,6 +36,14 @@ repo. Specifically: 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 gitignored `sources/` by hand + (yt-dlp), its on-screen overlays are OCR'd locally (macOS Vision) to + `sources/*.ocr.txt`, and only the digest restatement is committed. +- `wessel-1979-timbre-space` is a **hand-placed** scan (shared by Sage Jenson, + 2026-08-15) — no open-access URL currently resolves, so `fetch-sources.mjs` + skips it and the local copy stays out of git like everything else in + `sources/`. This mirrors the corporate-graphics-platter's "third-party — research reference only" rule. @@ -51,9 +60,12 @@ only" rule. | **canons** | Complementation and tiling rhythmic canons | [06](digest/06-complements-canons.md) | | **perception** | Meter, entrainment, groove — where the grid model stops | [07](digest/07-perception-groove.md) | | **spatial** | Spatial hearing: the limits the `bracelet` thesis rests on | [08](digest/08-spatial-appendix.md) | +| **solkattu** | Spoken rhythm: the konnakol syllable system as a representation | [09](digest/09-solkattu.md) | +| **timbre** | Timbre space: the platter's dissimilarity-to-geometry move, off-rhythm | [10](digest/10-timbre-space.md) | Full bibliography with fetch URLs and verification status: -[`sources.json`](sources.json) (31 entries, 9 open-access). +[`sources.json`](sources.json) (33 entries; 9 open-access papers + 1 open +video). ## The catalogue @@ -97,6 +109,11 @@ Four findings that would have gone into code wrong: ```bash 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 @@ -106,7 +123,7 @@ Bjorklund. Open, and deliberately visible rather than smoothed over: -- **21 of 31 sources carry `"checked": false`** — written from working knowledge, +- **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_timelines` rows carry `"checked": false`. The onset sets are the diff --git a/papers/rhythm-platter/digest/09-solkattu.md b/papers/rhythm-platter/digest/09-solkattu.md new file mode 100644 index 0000000000..91169135be --- /dev/null +++ b/papers/rhythm-platter/digest/09-solkattu.md @@ -0,0 +1,78 @@ +# 09 · Solkattu: spoken rhythm as a representation + +**Shelf:** solkattu · **Sources:** `levin-2011-indian-rhythms` + +## What the source settles + +South Indian rhythmic solfège (solkattu, spoken as konnakol) assigns a fixed +syllable string to each group size. The canonical ladder, as taught in the +source (on-screen overlays OCR'd to `sources/levin-2011-indian-rhythms.ocr.txt`, +speech in `.captions.txt`): + +| k | Syllables | +|---|---| +| 1 | Ta | +| 2 | Ta Ka | +| 3 | Ta Ki Ta | +| 4 | Ta Ka Di Mi | +| 5 | Ta Din Gi Na Tom | +| 6 | Ta Ki Ta Ta Ki Ta | +| 7 | Ta Ka Di Mi Ta Ki Ta | +| 8 | Ta Ka Di Mi Ta Ka Jo No | + +Two structural facts ride along: + +- **Composites are literal.** 6 = 3+3 and 7 = 4+3 *in the syllables themselves* + — the string for a larger group is built by concatenating smaller groups, so + the decomposition is audible, not annotated. +- **Tom is a boundary marker.** The overlay glosses it as "syllable marking the + end of a phrase" — the system carries an explicit phrase-delimiter, not just + duration content. + +## Two modes, two formalisms + +The source demonstrates the same groupings driving two different clocks, and +the distinction matters for code: + +1. **Concatenative (pulse-fixed).** Every syllable = one pulse (one 16th). + Groups chain into additive meters: 3+5+7 = 15/16, 5+5+7 = 17/16, and + 5+3+3+5 = 16/16 — a palindromic carve-up of plain 4/4. This is exactly the + platter's IOI world ([01](01-representation.md)): a phrase is an IOI + sequence whose sum is `n`, with syllables naming the intervals. +2. **Proportional (beat-fixed).** Every *group* = one beat; density varies: + Ta = quarter, Ta Ka = 8ths, Ta Ki Ta = 8th-note triplets, Ta Ka Di Mi = + 16ths, Ta Din Gi Na Tom = quintuplets, up to 32nds — a tuplet ladder that + the source runs up and back down as an accelerating/decelerating exercise. + This is *not* an IOI structure on a shared grid; it is a per-beat + subdivision index. + +A rhythm engine that conflates these two modes will be wrong in one of them. +The concatenative mode composes onto one grid; the proportional mode changes +the grid per beat. + +## Why it matters here + +The platter's geometry is silent about *how rhythms are carried by people* — +the perception shelf ([07](07-perception-groove.md)) already flags that gap. +Solkattu is a counterexample worth keeping in view: a fully oral, named, +compositional rhythm representation with no notation dependency, where evenness +and grouping are properties of a syllable string. It is also the natural +labeling layer for any AC tool that wants to *speak* a rhythm rather than +only flash it. + +Source register: the video is a pedagogical demonstration by a guitarist, not +a Carnatic primary source — syllable spellings vary across traditions +(takadimi / ta ka dhi mi, etc.). Treat the table as *a* canonical form, cited +to this source, not *the* canonical form. + +## tools + +- `solkattu(k) -> string[]` — the syllable string for a group of `k` pulses + (table above), for labeling and vocalized playback. +- `phrase_meter(groups: int[]) -> {n, ioi}` — concatenative mode: `[3,5,7]` → + 15 pulses with IOI-boundary accents; feeds the same onset machinery as + [01](01-representation.md). +- `tuplet_ladder(k, beat_ms) -> events[]` — proportional mode: one beat carved + into `k` equal syllables; the ladder exercise is `map(1..8)` ascending then + descending. +- Phrase delimiters (`Tom`) map to the accent layer, never to onset timing. diff --git a/papers/rhythm-platter/digest/10-timbre-space.md b/papers/rhythm-platter/digest/10-timbre-space.md new file mode 100644 index 0000000000..0144445b06 --- /dev/null +++ b/papers/rhythm-platter/digest/10-timbre-space.md @@ -0,0 +1,76 @@ +# 10 · Timbre space as a control structure + +**Shelf:** timbre · **Sources:** `wessel-1979-timbre-space` + +Secondary shelf, like [08](08-spatial-appendix.md): not rhythm, but the same +move the whole platter is built on — subjective judgments pressed into a +geometry, then the geometry used as a compositional lever. Wessel is the +canonical statement of that move for timbre, and it predates every rhythm +application here. + +## The construction + +1. Collect pairwise **dissimilarity judgments** over a tone set (Wessel: 24 + orchestral tones equalized for pitch, loudness, duration). No attribute + naming required — "A is more like B than C" is the whole input. +2. Multidimensional scaling (KYST) embeds the tones as points so that distance + reproduces judged dissimilarity. +3. The axes are then given a **psychoacoustic reading**: one dimension tracks + brightness (spectral energy distribution), the other the "bite" of the + attack. The interpretation comes *after* the geometry, from correlating + coordinates with acoustic measures — the same discipline as reading + evenness out of a necklace polygon rather than asserting it. + +## Space → control + +The paper's actual thesis is the platter's thesis: a perceptual geometry is +only worth having if you can *drive* it. + +- **Synthesis handle.** Additive synthesis with line-segment envelope + approximations (5–7 breakpoints per envelope suffice — Grey 1975 showed the + approximations are nearly indiscriminable from full detail) makes each tone + a small, editable data object; moving through the space becomes moving + breakpoints. Low-dimensional control over high-dimensional synthesis data. +- **Timbral analogies.** A parallelogram model (Ehresman & Wessel 1978): + A→B as C→D means D completes the parallelogram in the space. Listener + rankings of candidate D's track distance from the ideal point — vector + arithmetic in the space predicts musical judgment. This is "transposition" + defined for timbre. +- **Stream segregation as acceptance test.** Alternate two timbres on a + repeating pitch pattern: small timbral distance, one stream; large distance, + the line splits in two (the Wessel illusion). Perceptual distance in the + space has audible, binary consequences — a falsifiable check, like the + platter's rule that a computed rhythm distance must predict something a + listener can hear. + +## Why it sits on this platter + +The rhythm shelves geometrize *when*; Wessel geometrizes *what*. Any AC lane +that sequences instrument changes — notepat's GM palette, `pop` engines +swapping voices per phrase — is doing note-to-note timbre manipulation, which +is precisely the compositional situation the paper was written for. Chronotonic +distance ([05](05-distance-similarity.md)) and timbre-space distance are the +two levers a phrase-morphing tool would pull together. + +Limitations to carry: the space is stimulus-set-relative (24 tones in, that +geometry out — add tones and the map can warp); dimensions are interpretations, +not measurements (Wessel is explicitly pessimistic about subjective *units*); +and a 1979 2-D solution is not a universal timbre coordinate system. + +## Provenance + +Platter copy (JSTOR scan of *Computer Music Journal* 3(2), pp. 45–52) shared +by Sage Jenson, 2026-08-15 — hand-placed in `sources/`, not fetched, since no +open-access URL currently resolves. Cite the journal, not the scan. + +## tools + +- `timbre_space(tones, judgments) -> points[]` — MDS embed; judgments may come + from a model proxy instead of listeners, but then say so. +- `timbre_distance(a, b)` — distance in the embedding; the morphing lever. +- `timbre_analogy(a, b, c) -> d` — parallelogram completion over the embedding. +- `stream_split_risk(seq) -> warnings[]` — flag alternations whose timbral + distance predicts segregation, before a lane renders an unintended two-voice + texture (or use it on purpose). +- Envelope objects stay breakpoint lists (5–7 segments), never dense curves — + the data-reduction result is load-bearing for real-time control. diff --git a/papers/rhythm-platter/sources.json b/papers/rhythm-platter/sources.json index 2fe54e9baa..60eabba9cf 100644 --- a/papers/rhythm-platter/sources.json +++ b/papers/rhythm-platter/sources.json @@ -15,7 +15,9 @@ "distance": "Rhythmic similarity and distance geometry — the morphing levers.", "canons": "Complementation and tiling rhythmic canons.", "perception": "Meter, entrainment, groove, microtiming — where the grid model stops.", - "spatial": "Spatial hearing. Secondary shelf: the bracelet track's own thesis rests on it, so it is indexed here rather than assumed." + "spatial": "Spatial hearing. Secondary shelf: the bracelet track's own thesis rests on it, so it is indexed here rather than assumed.", + "solkattu": "Spoken rhythm: South Indian rhythmic solfège (solkattu/konnakol) as a named, oral rhythm representation.", + "timbre": "Timbre as geometry. Secondary shelf: the same dissimilarity-to-space move applied to tone quality, indexed here because it is the platter's method applied off-rhythm." }, "sources": [ { @@ -437,6 +439,37 @@ "checked": false, "why": "Onsets under ~1–5 ms fuse and the first arrival wins the position. Two necklace beads closer than that in time will not be heard as two places.", "feeds": ["pop/bracelet spatial law"] + }, + { + "id": "levin-2011-indian-rhythms", + "shelf": "solkattu", + "authors": ["Levin, Ben"], + "year": 2011, + "title": "Indian Rhythms with Dr. Levin", + "venue": "YouTube (Ben Levin Guitar Lessons), uploaded 2011-10-29, 478 s, shot/edited by Rob Berry", + "media": "video", + "open_access": true, + "url": "https://www.youtube.com/watch?v=KsvKQhOeQjQ", + "fetch": "yt-dlp into sources/ (gitignored); on-screen overlays OCR'd via macOS Vision to sources/levin-2011-indian-rhythms.ocr.txt, auto-captions cleaned to .captions.txt", + "checked": true, + "why": "The solkattu syllable ladder (1–8), the Tom phrase-end marker, both usage modes (pulse-fixed additive meters incl. 15/16 = 3+5+7 and 17/16 = 5+5+7; beat-fixed tuplet ladder), and the 5+3+3+5 palindromic 4/4. Digest 09 is extracted from its overlays.", + "caveat": "Pedagogical demonstration by a guitarist, not a Carnatic primary source; syllable spellings vary across traditions.", + "feeds": ["digest/09-solkattu.md", "pop/lib syllable labeling"] + }, + { + "id": "wessel-1979-timbre-space", + "shelf": "timbre", + "authors": ["Wessel, David L."], + "year": 1979, + "title": "Timbre Space as a Musical Control Structure", + "venue": "Computer Music Journal", + "volume": "3(2)", + "pages": "45–52", + "open_access": false, + "checked": true, + "note": "Also circulated as IRCAM Rapport 12/78. Bibliographic details confirmed against the scan itself; JSTOR stable URL not machine-verifiable (bot challenge). Local copy hand-placed in sources/ from the JSTOR scan shared by Sage Jenson, 2026-08-15 — not fetched by fetch-sources.mjs, since no open-access URL currently resolves.", + "why": "The canonical subjective-dissimilarity → geometry → control-lever paper: MDS timbre space (brightness × attack-bite), parallelogram timbral analogies, stream segregation as the perceptual acceptance test, breakpoint-envelope data reduction.", + "feeds": ["digest/10-timbre-space.md"] } ] }