RHYTHM_GROOVE_AND_PERFORMANCE_PRACTICE.md

music/RHYTHM_GROOVE_AND_PERFORMANCE_PRACTICE.md

RHYTHM, GROOVE, AND PERFORMANCE PRACTICE — THE DOCTORATE, VOLUME 3

PROPOSAL TIER. Nothing here is ratified canon. It is craft research: the published rhythm
literature, the ethnomusicological performance-practice scholarship for the traditions our slice
actually names, and the practitioner manuals — read against the composer we have actually built.
Canon authority is unchanged: the CVD wins, the tier docs win, and every §17.1 care call in
section 7 is flagged rather than applied.
Companion volumes in this folder: COUNTERPOINT_AND_VOICE_LEADING.md (the vertical dimension),
MOTIVIC_DEVELOPMENT_AND_PHRASE_GRAMMAR.md (the melodic dimension), COUNTER_MELODY_AND_DIALOGUE.md
(the dialogue dimension), ORCHESTRATION_TEXTURE_AND_DENSITY.md (the density dimension). This one
is the temporal dimension, which is the one Josh named.

---

0. The defect this was written against, stated in our own numbers

Josh graded round 3 in eleven words: "they clash and have no rythm or complexity." Two independent

measurements now exist that say the second half of that sentence is a structural fact about the

writing rather than an impression about the mix.

The first is harness/music_gen/instr_groove.py, the rhythm instrument. On the score tier — where

there is no extraction error at all, because the plan IS the notes — it reports that round 2's three

cues carry an articulated per-voice syncopation of 0.000 / 0.056 / 0.062 against a symbolic ceiling

of 1.0, and that round 3 improves only to 0.096 / 0.108 / 0.161. More damning: the COMPOSITE

syncopation, the number that asks what the percussion section does TOGETHER, is exactly 0.0000 in

all six cues. Across sixty-two percussion and bass parts, no note in this program has ever hung over

a stronger rest.

The second is arithmetic on the landed plan itself. Reading

build/audio/pass5/plans/PASS5_FLORES_ROUNDS.json at head:

one cycle is 6.486 s.

every fourth cycle. Two positions. Gong-to-gong is 6.486 s; the interior stroke sits 3.243 s away.

of pass2_realise.compile_pattern (lines 206-212 in the current file). That branch reads exactly

one dur and exactly one vel_scale for the whole pattern. So B06, the shaker, plays

thirty-two consecutive eighth notes at one identical duration and one identical velocity, in every

cycle of the cue. So does every other ostinato voice, at its own single value.

the program — no swing, no push, no lay-back, no per-voice offset, not even a random jitter.

A section changes loudness for the entire layer at once, and nothing changes loudness within it.

And the third fact, which is the one that matters most: harness/music_gen/groove.py — the

symbolic rhythm engine that owns the metrical weight hierarchy, the syncopation measure, the pulse

salience number, the interlock pair, the groove library and the density ladder — is imported by

exactly one file in the repository, and that file is instr_groove.py, the RULER. No composer

imports it. Not pass2_plan.py, not pass3_flores.py, not pass5_flores.py, not pass7_flores.py.

We built the measuring instrument and the pattern library on the same day and wired only the

instrument.

So "no rhythm" decomposes into five separable defects, and this document is organised to attack them

in order of how much each is worth:

1. Every voice is dynamically FLAT. A pattern with no accent hierarchy inside it is not a groove,

it is a metronome with a timbre.

2. The section never SYNCOPATES against itself. Composite syncopation of 0.0000 is the single most

directly relevant number in the empirical groove literature, and ours is pinned at the floor.

3. The colotomic clock is not a metric level. Both of its inter-onset intervals exceed the upper

bound at which a human can entrain to a periodicity at all.

4. There is no performance layer. No micro-timing, no non-isochronous subdivision, no leader, no

tempo motion, no density level change.

5. The traditions we are borrowing structure from are represented by one rule each where practice

has a taxonomy, and one of them is attributed to the wrong island district.

---

1. Groove, as a measured construct rather than a vibe

1.1 The two-factor definition, and why we should adopt it verbatim

The field has converged on a definition that is narrow enough to be measured: groove is the pleasant

sense of wanting to move along with music. Senn and colleagues built and validated the Experience of

Groove Questionnaire around exactly two correlated factors — Urge to Move and Pleasure — and

the instrument has since been translated and re-validated in German and Japanese, which is the sort

of replication that makes a construct usable rather than fashionable.

This is worth adopting as our own vocabulary for one specific reason. Josh's energy floor ruling

(docs/spine/DECISIONS_PENDING_JOSH.md:5652-5663) says a serene scene needs a track that is

"peaceful and still uplifting" and that "an ARPG valley still moves (pulse present, contour lifting,

engagement sustained)". That is the two-factor definition in his own words: pleasure held constant

while urge-to-move is dialled per purpose class. The two axes are separable, and a cue can be graded

on both. A single "groove score" would collapse exactly the distinction his ruling depends on.

1.2 The syncopation inverted-U, which is the most replicated finding in the field

Witek, Clarke, Wallentin, Kringelbach and Vuust (PLoS ONE, 2014) is the anchor result. Rhythms with

MEDIUM levels of syncopation generate the most pleasure and the strongest urge to move. Low

syncopation urges less movement; high syncopation makes it hard to synchronise and the urge falls

again. The relationship is an inverted U, not a monotone.

Madison and Sioros (Frontiers in Psychology, 2014) attacked it from the production side: they had

four musicians play simple and complex melodies twice, once instructed to minimise groove and once to

maximise it, and then measured what actually changed. What changed was event count, metrical level

and syncopation. Both the number of notes and the syncopation measure were higher in the

maximum-groove condition. The authors state the conclusion plainly: syncopation is a central strategy

for inducing groove.

Two things follow for us immediately.

inverted U — the exact condition the literature identifies as *urging less movement*. This is the

strongest single mapping in this document between a published finding and a number our own

instrument already reports.

(EXPLORATION 0.05–0.34, BATTLE 0.05–0.38, TENSION 0.06–0.46, SANCTUARY 0.02–0.26,

MELANCHOLIC 0.02–0.30, AMBIENCE 0.01–0.30). That shape is right and matches the research. The

defect is not the shape of the rule, it is which quantity the rule is pointed at — see 1.3.

1.3 Composite against per-stream: patterns matter, and we measure the wrong one

groove.py's R02 deliberately judges the ARTICULATED PER-VOICE MEAN and explicitly refuses the

composite, on the stated grounds that "a dense composite fills its own gaps and an LHL measure of it

falls as the groove drives harder, which would call BATTLE unsyncopated". That reasoning is real and

the effect it describes is real. But the consequence is that the ONE number the empirical literature

ties to groove — what the section does together — has no rule with teeth on it anywhere in the

program, and it is sitting at exactly zero in every cue we have ever rendered.

The literature has since moved directly onto this question. Sioros, Madison, Cocharro, Danielsen and

Gouyon published "Syncopation and Groove in Polyphonic Music: Patterns Matter" (Music Perception

39/5, 2022, pp. 503-531) precisely because the monophonic result did not transfer cleanly to real

multi-instrument music. Their finding, stated in their own terms, is that a moderate level of

syncopation increases groove but only for certain syncopation PATTERNS, and that what separates the

originals from the de-syncopated and algorithmically re-syncopated variants is the DISTRIBUTION of

syncopation across instruments and across metrical positions. Sioros and Guedes's earlier

ISMIR work supplies the machinery — the Longuet-Higgins and Lee metrical-weight measure our stack

already uses, plus the weighted note-to-beat distance measure, in which a note's syncopation value is

inversely related to its distance from the nearest beat and is weighted up when it crosses over the

following beat.

The honest reading is that neither the composite nor the per-voice mean is sufficient alone, and the

program currently reports both and refuses only on one. What is missing is a rule that fires when the

composite is DEGENERATE — pinned at zero, which is not "dense enough to fill its own gaps", it is a

section in which no voice ever plays anywhere a stronger position is left empty.

1.4 Event density and the fast metrical level

Madison and Sioros found the groove-maximising performances put more events on eighth-note positions

and more on sixteenth-note positions. Density at the fast metrical level is a real groove device, and

it is the device our own ORCHESTRATION_TEXTURE_AND_DENSITY.md already constrains from the opposite

direction (the anti-tutti ceiling, the carpet rule, subtraction as the strongest event).

Those two are not in conflict, and the resolution is the one groove.py already half-encodes: the

density belongs to the COMPOSITE, and the individual voices stay thin. A section can present

sixteenth-level activity without any single part playing sixteenths, if the parts interlock. That is

what hocket is for, and it is also — exactly — what kotekan is for. The tradition our slice already

borrows from is the tradition that solved this specific problem.

1.5 Tempo, and the entrainment window

Etani, Senn and colleagues manipulated the tempo of drum-and-bass patterns whose originals sat

between 89 and 130 BPM and confirmed the standing hypothesis: medium tempi around 100 BPM are best

suited to entrained behaviour, because the beat rate maps easily onto periodic body motion, and the

urge to move peaks there. The Lucerne Groove Library (444 short Western popular drum-and-bass

patterns with behavioural, structural and audio measurements attached) is the corpus that work rests

on and is the closest thing the field has to a reference stimulus set.

Our Flores cue runs at 148 BPM. That is not a defect on its own — it is a ceremonial-drive cue and

the tempo band is a deliberate authored choice — but it should be recorded as a KNOWN COST rather

than a neutral parameter, and it interacts with section 4.1 in a way nobody has priced.

1.6 Low frequency carries time

Hove, Marie, Bruce and Trainor (PNAS 111/28, 2014) is the result that explains a convention: when two

tone streams sound together, the brain detects timing deviations better in the LOWER-pitched stream,

and tapping synchronises to the lower stream. Their modelling places the effect early in the auditory

pathway, in the cochlea. Across cultures, polyphonic music puts melody high and rhythm low, and this

paper argues the convention is physiology before it is taste. Companion work in the same journal

found neural tracking of the beat is enhanced by low-frequency sounds.

The measurement literature agrees from the signal side: variability measures — the variance of the

RMS curve, and spectral flux specifically in the low bands — predict groove ratings, and algorithms

that emphasise variability BETWEEN beats predict them better than ones that do not.

For us this is a placement rule, not a mixing rule. The voice that owns the tactus should be the

lowest-pitched articulate voice in the texture, and the low band should VARY beat to beat rather than

running flat. Our B02 bass drum plays four strokes per sixteen-beat cycle at one velocity; our

M06 bass line is a pokok at one note per several beats. Nothing in the Flores cue puts an

articulate, dynamically varying low voice on the tactus.

---

2. Micro-timing, and the honest, contested picture

This section is written carefully, because it is the one place where the popular understanding and

the experimental record disagree, and where a naive adoption would make our music worse.

2.1 Three theories of what a "beat" is in time

The best current synthesis is "Bins, Spans, and Tolerance: Three Theories of Microtiming Behavior"

(Music Theory Spectrum 45/2), which sets out the three live positions.

shape, which can hold several nearly-simultaneous events. Her worked case is D'Angelo's "Left and

Right", where kick and bass articulate the beat roughly 55–80 ms apart — 8–12% of a quarter note at

92 BPM — and listeners nonetheless hear one beat, with the bin widening as they acclimatise to the

groove.

open a temporally extended space in which events can land. His case is Afro-Cuban rumba columbia,

where the segundo and salidor consistently sit off any single grid without losing coherence — a

product of competing metric forces, not tempo fluctuation.

disrupting flow, and events have flexible perceptual locations with no single correct

interpretation. His case is Swedish polska, where the first beat fluctuates between 347 and 635 ms

— a 288 ms spread — across measures of the same performance, largely unnoticed by expert listeners.

What all three share, and what matters to a program that quantises everything: the grid is not the

music. Two sounds at the same notated position are a compositional decision about the SHAPE of a beat,

not a redundancy to be collapsed.

2.2 Swing as a tempo-dependent ratio, not a fixed one

Friberg and Sundström (Music Perception 19/3, 2002) measured drummers' ride-cymbal swing across

recordings and a play-along record. Their findings are precise and unhelpful to anyone hoping for a

constant:

falling to 1:1 at fast tempi.

100 ms across medium to fast tempi, which the authors read as a perceptual floor on tone duration.

Benadon ("Slicing the Beat", Ethnomusicology 50/1, 2006, pp. 73–98) generalised this into the

beat-upbeat ratio (BUR), treating jazz eighth-note pairs as a continuously variable expressive

micro-rhythm rather than a style constant, and arguing that BURs vary within a performance in ways

that articulate phrase structure. Micro-rhythm as expressive syntax, not as noise. (Citation

verified; the article itself sits behind a paywall that refused every fetch route tried, so the

often-quoted numeric BUR span of roughly 1:1 to 4:1 is NOT verified here and is deliberately not

asserted. Nothing in section 10 depends on that number — RG-16's floor comes from Friberg &

Sundström, which is verified.)

The design consequence for us is a formula, not a constant: any swing we implement must be a function

of tempo with the short note pinned near a floor, and it must be allowed to differ by voice.

2.3 Non-isochronous subdivision as METRE, not as deviation

Rainer Polak's "Rhythmic Feel as Meter" (Music Theory Online 16/4, 2010) is the single most important

paper in this document for a program that has only ever written isochronous grids.

Polak measured Malian jembe ensembles in a four-beat, twelve-subpulse cycle and found the ternary

subdivision is systematically UNEQUAL and systematically STABLE. The lead jembe in the *manjanin*

échauffement gives a mean pulse ratio of 27:33:40 — the first subpulse takes 27% of the

normalised beat, the second 33%, the third 40%. The standard deviation from that ratio is around 2%

per pulse. The third pulse runs 45–75 ms longer than the first at tempi between 150 and 180 ternary

BPM, against a mean pulse duration just above 100 ms. Four different lead players were measured and

all conform to the same short-medium-long feel, with individual means clustering tightly (one player

at 26:32:42); the dunun and the second jembe independently realise the same pattern on quite

different instruments. The feel holds from a slow opening near 135 ternary BPM (405 pulses per

minute) to a finale near 205 BPM (615 ppm), shifting to a different non-isochronous shape

(28:36:36, in which the medium and long pulses blur together) only beyond about 200 ternary BPM

— 600 pulses per minute. That second shape is a TEMPO-dependent transformation at the top of the

range, not a performer-to-performer variant.

His argument, borrowing London's formulation, is that these lengthenings and shortenings are not

deviations from the norm — they ARE the norm. The uneven subdivision is categorical metric structure,

learned and reproduced, not expressive shading applied on top of an even grid.

Naveda, Gouyon, Guedes and Leman (Journal of New Music Research 40/3, 2011) found the same class of

thing in samba from 106 audio excerpts: the third and fourth semiquavers of a beat are systematically

anticipated relative to their quantised positions. Again a stable, culturally specific,

non-isochronous subdivision.

London's own theoretical frame in *Hearing in Time* accommodates this directly through the

well-formedness constraint of maximal evenness, which permits meters with uneven (non-isochronous)

beats or beat subdivisions — the constraint he added specifically after considering non-Western

practice.

This matters to us more than swing does. Our slice is not a jazz slice. But our slice IS built on

cyclic, interlocking, non-Western structure, and we have no representation for a non-isochronous

subdivision anywhere: groove.metrical_weights builds its dot grid from subdiv positions per beat

and assumes they are equal, and _tile places figures on integer beat fractions.

2.4 The counterweight, which is strong and must not be waved away

Against all of that sits an experimental record that repeatedly fails to find a groove BENEFIT from

adding micro-timing to programmed music.

students rate a simple snare-and-bass-drum pattern at five microtiming conditions (−25, −15, 0,

+15, +25 ms). Five results: the rhythmically accurate QUANTIZED version was rated highest;

increasing deviation lowered ratings monotonically; early shifts were rated worse than the

comparable late shifts; snare deviations were rated worse than bass-drum deviations; and expertise

in rock and pop had no effect. Their conclusion is that at least some styles of groove-oriented

music are characterised by an aesthetics of *exactitude*.

groove in short rhythms", Music Perception) is the companion study routinely cited alongside it.

weights at all, but five out of six weights are slightly negative", and wrote that micro-timing

"has now repeatedly been associated with less groove".

Reconciling this with section 2.3 is not hard, and the reconciliation is the actual rule.

**Micro-timing that is CATEGORICAL — part of the metre, culturally specific, stable, reproduced by

every player in the ensemble — is structural and is worth having. Micro-timing that is RANDOM —

jitter sprayed over a grid to make it sound human — is measurably worse than leaving the grid alone.**

Polak's ratios are the first kind. A humanise knob is the second kind. Frühauf's asymmetry result

(early shifts penalised more than late ones) says the same thing from the other direction: a

deviation is heard against an expectation, and an early note is a wrong note more readily than a late

one is.

This gives our program a rule it can actually enforce, and it is a rule that COSTS US NOTHING today,

because we have no humanise knob to remove. What we should build instead is a per-idiom subdivision

RATIO — a declared, deterministic, auditable property of a cue's metre — and nothing else.

2.5 What the practice literature does with this that the lab does not

Two practitioner observations survive the experimental counterweight because they are about

structure, not jitter.

different elements — kick and snare near 52%, hats near 57% is the canonical example — creating

internal tension between parts rather than a global tilt. This is Danielsen's beat bin rendered as

a production technique: the bin has a shape because the parts inside it disagree by design.

(arXiv 2411.06892) found the timing deviations carry clear long-range correlations, that the

two-bar phrase carries a distinctive repeating pattern in the timing AND dynamics of the hi-hat,

and that the track shows the tempo drift typical of recording without a metronome. The groove's

micro-timing is periodic at the phrase level. It is composition, not noise — which is precisely why

a random generator cannot reproduce it and a deterministic per-position offset table can.

The J Dilla case is often invoked here and is usually invoked wrongly. The documented innovation was

not a swing setting; it was turning quantise OFF and playing in, then applying irregular amounts of

swing to different elements — kick early, snare dragging — so that the parts disagree with each other

in a fixed, repeatable way. Roger Linn's own commentary on drum-machine groove makes the same point:

the machine's swing was a global delay of even sixteenths, and what people admired was what happened

when that global rule was broken per-part.

2.6 Asynchrony between layers is a compositional parameter, and we have never set it

Danielsen's beat-bin case gives concrete numbers — kick and bass 55–80 ms apart, heard as one beat —

and her group has continued directly onto the question of how asynchrony between compound sounds

shifts perceived timing (Annals of the New York Academy of Sciences, "All About That Bass Drum?

Asynchrony Effects on the Perceived Timing of Compound Musical Sounds"; paywalled at the time of

writing and cited here for its existence and framing rather than for extracted findings).

Our compile_layer puts every layer that shares a notated onset at the same sample. Ten layers

striking beat 0 strike it at literally identical times. Acoustically this is a single fused

transient with a comb-filtered spectrum, not an ensemble. The fix is not jitter — it is a declared

stack order with declared offsets, which is a compositional statement about which instrument defines

the beat and which ones lean on it.

---

3. Drum programming as a craft practice

The academic literature says what makes rhythm work perceptually. The practitioner literature says

what to actually type. Justin Paterson's *The Drum Programming Handbook* (Backbeat Books) is the

closest thing the field has to a textbook — it runs from one-shot MIDI programming through samplers

and romplers to advanced timing for swing and beat-mapping, and ends with per-style chapters, with

over 250 downloadable audio examples. Paterson is a drummer, producer and head of the MA in Advanced

Music Technology at the London College of Music, which is the right provenance for a manual.

The consensus practice across that manual and the working tutorial literature reduces to five rules,

and every one of them is a rule about DYNAMICS rather than about timing.

3.1 The three-tier velocity ladder

A real drum part has accents, normal strokes and ghost notes, and the ghost tier is not merely

quieter. The standard programming figures: ghost notes sit around velocity 20–40 out of 127, and for

subtle work 10–22; accented strokes (classically beats 2 and 4 in a backbeat) take full strokes at

high velocity; everything else lives between.

Our entire program has ONE tier. pass2_realise.compile_pattern's ostinato branch applies a single

vel_scale to every onset in a pattern, and compile_layer then applies a single section intensity

to the whole layer. There is no ghost tier and no accent tier anywhere in the Flores cue. This is,

by itself, a sufficient explanation for "no rhythm": a pattern with no internal dynamic contour reads

as a timbre repeating, not as a rhythm being played.

3.2 Never two identical consecutive strokes

The specific figure the tutorial literature gives for hi-hats is a spread of roughly 20 velocity

points around the average, with no two consecutive hits at exactly the same value, because the wrist

motion that produces repeated hi-hat strokes cannot produce identical ones. The same reasoning

applies to any hand-played sustaining figure — shaker, frame drum, damped gong.

Our B06 shaker plays thirty-two consecutive eighths at one velocity. This is the exact case the

rule was written against, at maximum length.

3.3 The ghost tier needs a different SAMPLE, not just a lower number

The most-repeated warning in the practitioner literature: programming ghost notes with the same

sample as the main stroke does not work, because a soft stroke has a different TONE and not just a

different level. Real kits are multi-sampled by velocity layer for exactly this reason.

We are already positioned to comply. harness/music_gen/sfz_palette.py maps several struck

instruments onto multi-key stroke inventories — gong.stroke occupies keys 60-62, frame_drum

60-65, slit_drum 60-61 — and groove.py already rotates through those inventories deliberately.

What is missing is the BINDING between the dynamic tier and the stroke key: the ghost tier should

select the ghost stroke, not merely turn the accent stroke down.

3.4 Swing as a percentage, and where the numbers actually sit

The DAW convention is well defined and worth stating in our units: 50% is straight, 66.7% is a full

triplet shuffle, and most working practice sits between 52% and 60% for a perceptible groove that is

not a shuffle. Swing delays the even-numbered subdivisions within the beat. Differential swing —

different amounts per element — is the technique of choice for anything meant to feel played rather

than programmed.

We should implement swing exactly once, as a declared cue-level and voice-level ratio in the plan,

with the tempo dependence of section 2.2 applied, and never as a random offset.

3.5 The fill, the pickup and the turnaround

The one structural device in the practitioner literature with no counterpart in our composer is the

FILL: a short, denser, differently-articulated figure that occupies the last bar or half-bar before a

formal boundary and announces it. Its sibling is the pickup or anacrusis that leads INTO a phrase.

groove.py has break_window(), and R06 refuses a groove with no break in the last third. But a

break is a SUBTRACTION — dropped roles, reduced texture — and a fill is an ADDITION. Both are needed;

they do different work. Our program can currently take things away at a boundary and has no way to

put anything extra in front of one. This matters even more in a cyclic idiom than in a strophic one,

because the cyclic idiom's arrival point is its ONLY strong formal event (section 5.2).

Jason Graves's GDC 2025 session "Fascinating Rhythm: Bending the Power of Groove To Your Will" is the

game-side statement of exactly this material — creative drum and percussion patterns, orchestral

writing in odd time signatures, musical phrasing and its impact on gameplay, grooves that support the

in-game action, and layered rhythms building to a satisfying interactive experience, deconstructed

from *Dead Space*, *Still Wakes The Deep*, *No Rest For The Wicked* and *Tomb Raider*. It is the

closest thing to a peer statement of our own problem by someone shipping AAA.

---

4. Metre as a hierarchy, and what makes a level audible

4.1 Well-formedness: the 100 ms floor and the ~2 s ceiling

Justin London's *Hearing in Time: Psychological Aspects of Musical Meter* (Oxford, 2nd ed.) develops

a set of metric well-formedness constraints that bound the temporal range in which metric entrainment

can occur at all. The load-bearing one for us: the inter-onset interval for a metric element must be

greater than about 100 ms and less than about 1.5–2.0 s. Below the floor, events fuse and

stop being countable; above the ceiling, successive events stop being heard as a periodicity and

become a sequence of separate arrivals. Metric behaviour is strongly tempo-dependent throughout.

Apply that to the landed Flores cue and something uncomfortable falls out.

levelperiod at 148 BPMinside London's window?
sixteenth (subdiv 4)101 msat the floor, marginally
eighth (the shaker's grid)203 msyes
beat (tactus)405 msyes
bar1.622 syes, near the ceiling
colotomic interior stroke, beat 83.243 sNO
cycle, gong to gong6.486 sNO
the every-fourth-cycle stroke25.9 sNO

The colotomic clock — the layer whose stated job is to state the metre by instrumentation — sits

entirely ABOVE the entrainment ceiling. It is not a metric level for a listener. It is a formal

punctuation mark, and it should be described and defended as one. That is a legitimate role (it is

what the largest gong does in Java too), but it means the claim that our metre is "stated by

instrumentation" is currently carried by nothing a listener can entrain to, because the levels below

the gong are all hand-typed ostinati with no accent.

This is, in one table, the mechanism by which a cue can pass every structural rule we own and sound

like "a bunch of noise".

4.2 Maximal evenness and non-isochronous beats

London's further constraint of maximal evenness is what licenses meters whose beats or subdivisions

are unequal — the theoretical opening that Polak's jembe data and Naveda's samba data walk through.

For a program with a beats_per_bar integer and a subdiv integer, this is the missing degree of

freedom: our metre can only be even, and roughly half the world's dance music is not.

4.3 The timeline principle

The West African literature supplies the other half of the metric-hierarchy story: a distinctly

timbred, asymmetrical, aurally prominent ostinato that acts as the reference against which everything

else is heard. Agawu's much-argued account (Journal of the American Musicological Society 59/1)

describes the standard pattern as a seven-stroke figure spanning twelve eighth notes, and — the part

usually ignored — argues strenuously AGAINST the "additive rhythm" framing, calling it a default

grouping mechanism adopted by transcribers who disregard the choreography rather than an indigenous

conception. Anku's "Circles and Time" (Music Theory Online 6/1) supplies the **Regulative Time

Point** (RTP) as the neutral way to talk about where a cycle is measured from without importing

"meter": since the regulative beat always falls on one of the time points of each set rhythm, Anku

labels that position the Regulative Time Point rather than calling it a beat.

Two rules for us, one positive and one negative.

Our colotomic clock is a degenerate version of it (two strokes, above the entrainment ceiling); a

proper reference part sits at bar or half-bar level, is asymmetric, and never varies.

BATTLE and TENSION figures as "additive 3+3+2 grouping" and calls that "a general additive figure".

Agawu's argument is that the additive framing is a transcription artefact rather than a general

truth, and our own file already takes care to say the figure is "NOT attributed to any living

tradition". The care instinct there was right; the LABEL should be repaired anyway, because

"additive" carries a theoretical claim that the cited literature disputes. Call it a 3+3+2 stroke

distribution and drop the theory word.

---

5. Gamelan performance practice, Java: the colotomic system as actually described

Our COUNTERPOINT_AND_VOICE_LEADING.md §7.3 already carries the one-sentence version — the largest

gong marks the cycle, smaller gongs subdivide it at fixed positions, the metre is stated by

instrumentation rather than by accent. Everything below is what that sentence compresses.

5.1 The colotomic form is a NESTED schedule, not a clock with two hands

A Javanese *gongan* is punctuated by a hierarchy of instruments, each operating at its own period,

and the FORM is named by that schedule. The lancaran — a fast-paced sixteen-beat cycle used in

lighter pieces — is conventionally notated with kethuk strikes every two beats, kenong every four,

kempul every four but offset from the kenong, one kempul omitted by a *wela* (a deliberate rest at

the position where the pattern would otherwise sound), and the gong ageng closing the cycle. Ketawang

and ladrang are longer forms with correspondingly sparser kenong and kempul schedules over 16- and

32-beat cycles.

The kenong, kethuk and kempyang are sets of inverted pots on rope in wooden frames, and all three are

played by ONE musician with two mallets. The kenong marks off divisions of a structure smaller than

the gongan.

The design fact to extract: at least four active periodicities, at 2, 4, 4-offset and 16 beats,

plus a wela — a hole punched in one of them so the pattern is not symmetric. Our B01 has two

positions and no hole.

5.2 The gong falls at the END

This is the most consequential single structural fact in this section and it is stated independently

on both islands.

Tenzer's "Theory and Analysis of Melody in Balinese Gamelan" (Music Theory Online 6/2) puts it

directly: stress points are "measured backwards in groups of four tones from the final tone of the

melody, which receives the strongest stress of all", and the gong stroke marks that final point where

all parts converge, with the midpoint taking a secondary stress reinforced by the jegogan. The

descriptive literature on kebyar says the same in plainer words: the gong gedé marks cycle

conclusions, while kempur and kemong subdivide.

A colotomic cycle is END-ACCENTED. It is a goal, not a launch. Everything in it is heard as

approaching the gong.

Our B01 places its LOUDEST stroke (vel_scale 1.0) at beat 0.0 and its quieter stroke

(vel_scale 0.7) at beat 8.0. We have built a start-accented cycle: a downbeat that launches a bar,

which is the Western convention and the opposite of the practice we cite as our authority for the

device. This inverts the entire phrase-goal architecture — the melodic writing in

pass3_grammar.py composes towards cadences that the clock then contradicts.

5.3 Irama: density levels as the primary formal device

Irama is the concept our composer most conspicuously lacks. It is not tempo — it is the ratio between

the structural melody (*balungan*) and the elaborating instruments' density, and Javanese practice

treats it as a separate axis from tempo (*laya*, itself subdivided *seseg* / *sedeng* / *tamban*),

so the same irama can be played at different speeds.

The levels, in saron panerus (peking) notes per balungan note:

iramanamepanerus notes per balungan note
1/2lancar1
Itanggung2
IIdadi (dados)4
IIIwiled (wilet)8
IVrangkep16

Sumarsam's "Temporal and Density Flow in Javanese Gamelan" is the standing treatment of this

relationship between temporal and density flow, and his "Theorizing About Music: The Case of Gamelan"

is the companion methodological essay on treating gamelan theory on its own terms.

What this buys a game composer is enormous and is exactly the thing we keep trying to build by other

means: a formal system in which the same material is presented at four or five different SURFACE

DENSITIES over an unchanged structural line, with the transitions cued live. That is vertical

layering with a theory behind it — and it maps onto Winifred Phillips's game-side account of pure

vertical layering (layers "play in multiple configurations, interacting with the actions of the

player", building complexity as they are added, instilling "a sense of progression and variety

without needing to fragment the composition") far better than a simple on/off layer stack does,

because the layers are related by a stated ratio instead of merely coexisting.

Our COUNTER_MELODY_AND_DIALOGUE.md operations ledger already boards this as item 7 — "irama_level

per section multiplying the kotekan subdivision", marked CODE-ABLE. It has not been built. It should

be near the top of the queue.

5.4 The kendang leads

The hand-played *kendang* controls the tempo and rhythm of pieces as well as the transitions from one

section to another. The ensemble has a leader and the leader is a drummer, not a conductor and not a

melodist.

Our composer has no leader voice, no cue signal, and no tempo motion at all — one tempo_bpm per

cue, applied to every note. The whole apparatus by which this music changes is missing.

---

6. Gamelan performance practice, Bali: kebyar, kotekan and the drum pair

Michael Tenzer's *Gamelan Gong Kebyar: The Art of Twentieth-Century Balinese Music* (University of

Chicago Press, 2000) is the standard reference, and reviewers single out precisely the material we

need — its richly detailed treatment of dynamics, tempo, affect and drumming, topics earlier

scholarship neglected, informed by Tenzer's own years playing and composing professionally.

6.1 Stratification by density is the architecture

Tenzer's four-part texture, organised by rhythmic density:

stratumdensitytypical instruments
kotekan (figuration)four notes per beathighest-pitched metallophones, in interlocking pairs
neliti (primary melody)one to two tones per beattrompong, ugal
pokok (trunk tones)one tone per two beatscalung
jegogan (foundation)one per four beats or sparserjegogan

His load-bearing sentence: "each stratum has its own points of metric stress, which also connote

special structural relevance." The strata are not merely different speeds of the same thing; each has

its own accent geography, and they agree at the structurally important points and not elsewhere.

Balinese melody is, in his description, "composed in a stratified fashion, in which several

realizations of the same melodic idea are presented simultaneously at different rhythmic densities".

Our composer implements the SHAPE of this (pokok, kotekan from_layer, elaboration layers) and

gets the principle right. Section 6.2 is where it diverges.

6.2 The kotekan taxonomy is at least five figuration classes, and we implement one rule

Wayne Vitale's "Kotekan: The Technique of Interlocking Parts in Balinese Music" (Balungan 4/2, 1990,

pp. 2–15) is the classic dedicated treatment, and notes that interlocking parts — also called

*candetan* — appear across many Balinese forms beyond gong kebyar. The documented figuration classes

and their part-relations:

figuration, no shared pitches, the composite forms a single melodic line. Structurally the simplest

and, because it is used at the fastest tempi, among the hardest to play accurately.

UNISON, and then each takes one of its neighbour tones.

MIDDLE pitch is played in unison by both parts (with the reyong an exception, since those players

share pots).

pitch — and the lowest and highest pitches are typically struck SIMULTANEOUSLY.

Colin McPhee's earlier taxonomy from the 1930s (*Music in Bali*, 1966) names four melodic kotekan

types on the same axis — *chandetan*, *tutugan*, *ochètan*, and *semi-ochètan*, the last defined as an

interlocking pattern in which "the parts meet on a unison".

Read that list against our compiler. pass2_realise.compile_pattern's kotekan branch implements

telu and empat pitch-sets correctly — telu gives polos [base-1, base] and sangsih [base, base+1]

with base shared, which is exactly the three-pitch shared-middle rule; empat gives polos

[base-1, base] and sangsih [base+1, base+2] with no sharing, which is exactly the four-pitch rule.

The PITCH logic is right.

The RHYTHM logic is one line: if (part == "polos") != on_beat: continue — polos strictly on-beat,

sangsih strictly off-beat, forever. And pass2_realise's own self-test R5 asserts as a LAW that

"polos and sangsih share no onset".

That hard-codes strict alternation as the definition of kotekan. Three of the five documented classes

require the opposite at specific points: nyok cok requires both parts in unison on the anticipation,

empat has its outer pitches struck simultaneously, and McPhee's semi-ochètan is DEFINED by the parts

meeting on a unison. The coincidence points are not sloppiness in the tradition; they are where the

composite locks, and Tenzer's account says the same thing from the melodic side — "the final

(stressed) tone of each kotekan contour class is the same as the prevailing tone" of the slower

stratum, and the classes themselves are eight-member figures lasting two beats.

One further detail from Tenzer worth encoding, stated precisely because the loose version of it is

wrong: where two tones sound together at the kempyung interval (the pelog fifth), "the lower tone

has acoustic dominance". Tenzer says this of the kempyung dyad, NOT of a polos/sangsih interlock in

general, and this document does not extend it there. What it licenses is narrow and real: where our

writing produces a simultaneous dyad in this idiom, which tone dominates is an acoustic fact of the

interval and not a free mixing choice.

And Leslie Tilley's *Making It Up Together: The Art of Collective Improvisation in Balinese Music and

Beyond* (University of Chicago Press, 2019) is the modern corrective to the assumption our whole

implementation rests on. Through the reyong's melodic *norot* practice and the interlocking drumming

tradition *kendang arja*, she shows that even Bali's famous interlocking techniques can be IMPROVISED,

and analyses the fixed and flexible connections between polos and sangsih — countering earlier claims

that there is little or no improvisation in Balinese music. Our implementation treats the polos/sangsih

relation as fully determined. The scholarship says part of it is fixed and part of it is negotiated

in performance, which is a much better model for a generative system than a single deterministic rule.

6.3 The beat-keeper, and the Balinese colotomic forms

Bali separates two functions our stack has merged. The kajar (or kempli) keeps the beat — a

continuous, unglamorous, timbrally distinct pulse instrument. The gong, kempur and kemong

punctuate the cycle at their own periods. Gongs "provide a structure for phrasing for the music by

repeating a four or eight beat pattern".

The named forms are short. *Gilak* is an eight-beat colotomic structure involving kajar, gong, kempur

and kempli; in shorter compositions such as the Gilak used in Topeng and Baris dances the first two

kempur are omitted. *Bapang* is an eight-beat unit; *batél* a four-beat one. Intermediate beats are

subdivided into these smaller units, allowing layered elaboration while the cyclic repetition holds.

Two facts land hard on our Flores cue. First, the working cycles are EIGHT and FOUR beats, not

sixteen — that is 3.2 s and 1.6 s at 148 BPM, which is exactly London's entrainment window rather

than well outside it. Second, there is a dedicated continuous beat-keeper that is not the gong and not

a drum. We have neither.

The Hawaii Gamelan Bali forms reference (remus.shidler.hawaii.edu/GAMELAN/BALIFORM.HTM) is the

canonical online table of these schedules and is listed in SOURCES; it was unreachable at the time of

writing and should be re-fetched before any schedule is transcribed into code.

6.4 The kendang pair, angsel, and explosive change

The kendang is a double-headed conical drum played in tuned pairs: *lanang* (male, higher) and

*wadon* (female, lower), in interlocking patterns that are described as almost melodic. The **kendang

wadon player typically tops the hierarchy of the ensemble, setting tempi and aurally cuing

transitions like a conductor**; the lanang fills the interlock. The pair cues tempi, sections,

responses, and *angsel* — the explosive cue accents that punctuate the form — with different patterns

for different colotomic forms.

Tenzer describes the drummer beating a tempo of about four beats per second while responding to the

dancer's cues and signalling the rest of the ensemble; toward the end of a performance the drummer

and dancer may engage in a kind of duet, seeming to struggle for control of the music.

And the style's signature is "explosive changes in tempo and dynamics", including unmetered *kebyar*

sections with dramatic transitions.

Three absent primitives, named:

instructions rather than as counterpoint.

break_window(), which is a texture subtraction. An angsel is everyone hitting a thing together

and then resuming.

has one scalar for it.

6.5 Paired detuning

Male/female instrument pairs in kebyar are deliberately detuned against each other to produce a

beating, shimmering, pulsating quality; some ensembles tune the pairs nearly a quarter-tone apart for

pronounced beating. This is a rhythm phenomenon expressed in the frequency domain — an amplitude

periodicity produced by tuning rather than by striking — and it is worth naming here because our Bali

identity card (emit_identity_cards.py, HF_MT_12_REGION_BALI) already declares "paired detuned

ranks" and a B-section where "the paired detuning becomes audible as beating". If that is realised,

the beat FREQUENCY is a rhythmic parameter and should be chosen against the cue's tempo, not left to

whatever the sampler does.

---

7. Flores specifically: what is actually attested, and what we have got wrong

This section exists because the slice's first region cue is a Flores cue, COUNTERPOINT_AND_VOICE_LEADING.md

§7.3 declares the Flores substrate thin and rules that the lane "must not fill that gap and must not

invent it", and both of those positions turn out to need amendment — one because there is more

published detail than we thought, and one because we have attributed an ensemble to the wrong people.

7.1 Gong waning is Sikka, not Manggarai

*Gong waning* is a folk ensemble of Sikka Regency, in central-eastern Flores, around Maumere. It

is used in adat ceremony and dance accompaniment, sacred and secular, and is documented as present

since around the 1920s.

The organology is published in more detail than "thin" implies. What follows is restricted to what

the fetchable Indonesian-language sources listed in 9.6 actually say, and where they disagree, the

disagreement is shown rather than averaged:

idiophone — *saur*, also given as *peli anak* — a tube of roughly 1 to 1.5 m struck with two small

sticks in alternating strokes, whose stated job is to hold the ensemble's rhythm. All three sources

agree this third category exists, and it is the closest thing in the ensemble to a dedicated

beat-keeper (compare 6.3).

hide, single-membrane, played with hands and/or sticks. The smaller is named *dodor* in one source

and *waning anak* in the general literature.

gongs and does not name them; cintaindonesia gives five — *Ina wa'a, Ina depo, lepe, Higo-hagong,

Udong*, with *higo-hagong* being a pair struck together; Kompas gives four — *Inan* (large),

*Lepen* (medium), *Udong Beit* (small), *Anak* (smallest). The one stable fact across all three is

a graded SET of small-to-medium gongs named as a family by relative size, plus drums, plus the

bamboo timekeeper.

Two claims that appeared in an earlier revision of this section have been REMOVED as unverified:

the centimetre measurements (waning inan ~35 × 60 cm, waning anak ~25 cm, gongs 35 cm down to 20 cm),

the name list *inan / depun / beit / udon / anak*, the nine-player count, and the playing description

"held in the left hand, struck with a rubber-padded mallet, damped against the player's chest". They

were attributed to Grove Music Online via a **browse-index URL, which is a navigation page and

carries no article text** — it cannot support any specific claim, and no fetchable source in 9.6

corroborates them. Kompas does say the gongs are struck with wooden mallets tipped with rubber, so

the rubber-padded mallet survives; the chest-damping and the measurements do not. Anyone wanting them

must read the Grove *Flores* article itself, or an organological monograph, and cite it by article.

One structural gift survives that deletion intact, because it does not rest on the removed material:

a graded family of small-to-medium gongs, named by size and distributed across separate players,

alongside a dedicated bamboo timekeeper, is a gong-chime-plus-pulse architecture — which is a more

specific and more useful structural claim than the generic three-tier stratification §7.3 currently

settles for. The ring-length question our _marker() decides ("the ring lengths are the span to the

next stroke, because a gong is an acoustic fact") is now formally OPEN for this ensemble rather than

settled in favour of a short damped ring: small hand-carried gongs plausibly ring shorter than a

suspended gong ageng, but this document no longer has a citation that says so.

7.2 Manggarai has its own ensemble, and it is what accompanies caci

docs/spine/CH_03.md is a Manggarai chapter: Wae Rebo, the Compang Ruteng centre-stone, the

lingko spider-web fields, the Todo royal ground, the caci. Manggarai is WEST Flores. It is a

different district from Sikka with a different ensemble.

What the documentation of Manggarai music actually says:

Celestial Harmonies field recording *Music of Indonesia: Flores* (13175-2, 25 tracks, 72:42) is

focused on the Manggarai district specifically — its notes open by calling Manggarai by far the

largest of the five districts of Flores — and covers central, western and eastern Manggarai

including a dedicated Penti harvest-ritual section. Its notes tie the ensemble to the ancestors

who invented it and still often play it at ritual moments. (The women-players claim is NOT from

this recording's notes — see the caci bullet below for where it actually comes from. Corrected on

citation review.)

plus mbata. All of these are confirmed in the recording's notes and track listing. The spatial

rule often quoted alongside them — mbata performed inside the *mbaru gendang* (the drum house),

danding and caci outside in the *natas* (the village courtyard) — is UNVERIFIED: it is not in

the fetched liner-note text, and no other source in 9.6 was found to carry it. It is retained here

as a lead to chase, not as a citable fact, and it must not enter a card or a cue until a source

names it.

(drum), and the musicians are usually women**: during the match the musicians, who are usually

women, gather and play the drums and gongs. Caci is performed by Manggarai people across the

greater Manggarai cultural area of western Flores, is most frequently performed at Penti (held

at roughly five-year intervals), and a caci event at Penti runs at least a full day and often two

or three. The tandak claim — women performing chanted and sung cheering that blends into the

music — is UNVERIFIED and has been demoted: neither the caci reference nor the Celestial

Harmonies notes mention it. A women's vocal layer over the ensemble is a plausible and attractive

compositional idea, but it is currently OURS, not the tradition's, and section 11 does not adopt it.

That is a real, citable, structural picture for our own chapter: a drum-and-gong ensemble, played by

women, in the open courtyard, at a harvest festival held every few years, for a scored contest that

lasts for days. The sung/chanted vocal layer is the one element of that picture the sources do not

yet support.

7.3 What this means for the cue and the card

harness/music_gen/emit_identity_cards.py (the HF_MT_03 Flores card) declares the instrumentation

as a "gong-waning ensemble at reference register — tuned hanging gongs, kettle gongs, ceremonial

drum", declares the care note "the gong-waning register is reference-composed and never sampled from

consecrated performance", and declares substrate confidence "thin on the caci contest detail and the

gong-waning musical theory".

Three problems, in ascending order of seriousness.

of a Manggarai caci at Todo is a factual error, and under CVD §17.1 it is also a care error of the

specific kind the doctrine exists to prevent: it flattens two distinct living cultures on one

island into one.

a kettle-gong chime. Gong waning's gongs are a graded family of small-to-medium gongs struck with

rubber-tipped wooden mallets; Manggarai's caci accompaniment is gong and gendang. (The stronger

"hand-held and chest-damped" characterisation that stood here was removed on citation review — see

7.1. The point that the card's description is gamelan-shaped survives without it.)

performance context and enough ensemble-level organology for both ensembles to compose a

structurally faithful cue with no invention at all. The correct amendment is not "the gap is

filled" — it is that the gap is narrower and better mapped than §7.3 recorded. The specific

remaining gaps are the melodic and modal material, and — after the citation review recorded in 7.1

— the fine organology (exact gong counts, gong names, dimensions, damping technique), on which the

accessible sources visibly disagree with each other.

This is flagged, not applied. It touches region attribution and a §17.1 care call, so it goes to the

director rather than being edited in this lane. The three-line fix is obvious (name Manggarai's own

drum-and-gong ensemble, correct the playing description, restate the confidence note), but naming a

people's ensemble is not a proposal-tier call to make unilaterally.

---

8. The failure modes, named

Every one of these is present in the landed Flores cue and every one is measurable before a single

sample is rendered.

thing in performed music. This is the primary defect.

and no accent — our shaker. It occupies the sixteenth level permanently, so no other part can

create an event there, and it can never be subtracted for effect because its absence would be the

only thing anyone noticed.

by R03; but the cap is only checked between voices INSIDE a Groove object, and no plan is built

from a Groove object.

idiom whose entire stress architecture is measured backwards from the end.

design document assigns to metre.

transition signal, and no reason for anything to change at any particular moment.

is only available as layers switching on and off.

reaction to this document. See 2.4.

---

9. SOURCES

Every source below was read or fetched for this document. Where a fetch failed or a source is an

aggregator, that is stated inline rather than hidden.

CITATION REVIEW, 2026-08-08. This list was independently re-verified after the first draft. Every

entry marked ✅ was re-fetched and confirmed to exist AND to say what this document claims of it.

Entries marked ⚠ could not be re-fetched (paywall, 403, dead host, or a format the fetcher could not

read) and are cited at reduced confidence. Six defects were found and repaired in place — they are

listed here so the repair is auditable rather than silent:

1. Author error. "Syncopation and Groove in Polyphonic Music" was credited to "Sioros, Witek et

al." Witek is not an author. Corrected throughout to Sioros, Madison, Cocharro, Danielsen &

Gouyon (2022).

2. Terminology error. Anku's term was given as "Referential Time Point". His term is

Regulative Time Point (RTP). Corrected in 4.3.

3. Misattributed quote. Tenzer's "the lower tone has acoustic dominance" was applied to an

interlocked polos/sangsih dyad. He states it of the kempyung interval. Corrected in 6.2,

RG-28 and GAP-15, and the rule was narrowed accordingly.

4. Misread finding. Polak's 28:36:36 was described as the far end of a performer-to-performer

range. It is a tempo-dependent shift beyond ~200 ternary BPM (600 ppm, not the "570 ppm" first

written). Corrected in 2.3.

5. Unsupported organology. The gong waning measurements, the gong-name list, the nine-player

count and the chest-damping playing description were sourced to a Grove Music Online BROWSE-INDEX

url, which carries no article text, and are contradicted or unmentioned by all three fetchable

Indonesian sources. Removed from 7.1, 7.3, GAP-12 and GAP-13; the surviving claims are restated

from the sources that actually carry them, disagreements shown.

6. Misattributed field-recording claims. The Celestial Harmonies liner notes were credited with

saying the nggong-tembong ensembles are played by local women (that claim belongs to the caci

source) and with the mbaru-gendang/natas spatial rule and the women's *tandak* chanting (neither

appears in any fetched source). Re-attributed and demoted in 7.2.

Nothing in section 11 (WHAT WE ADOPT) changed as a result: items 1–8 rest on ✅ sources, and item 9

is a FLAG to the director whose factual core — gong waning is Sikka's, CH_03 is Manggarai — is

confirmed by both the caci reference and all three Sikka sources.

9.1 Groove: empirical psychology of rhythm

"Syncopation, Body-Movement and Pleasure in Groove Music." *PLoS ONE* 9(4): e94446. Re-verified:

the article reports "an inverted U-shaped relationship between degree of syncopation in drum-breaks

and movement- and pleasure-ratings, indicating that intermediate degrees of syncopation elicit the

most desire to move and pleasure in music associated with groove."

https://journals.plos.org/plosone/article/file?id=10.1371/journal.pone.0094446&type=printable

(PubMed record: https://pubmed.ncbi.nlm.nih.gov/24740381/ ; 2015 correction, which the authors

state does not affect the outcome or interpretation:

https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0139409 )

and complex melodies, and how listeners perceive it." *Frontiers in Psychology* 5:894.

https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2014.00894/full

Re-verified: four professional musicians, twelve melodies (six simple, six complex), deadpan plus

intentional minimum- and maximum-groove renditions; maximum-groove performances show higher event

density, greater syncopation, and more notes on 8th- and 16th-note positions. Micro-timing carries

"no significant weights at all" with "five out of six weights are slightly negative".

(2022). "Syncopation and Groove in Polyphonic Music: Patterns Matter." *Music Perception* 39(5):

503–531. DOI 10.1525/mp.2022.39.5.503

https://online.ucpress.edu/mp/article/39/5/503/182325/Syncopation-and-Groove-in-Polyphonic-MusicPatterns

(publisher returned 403; verified via the University of Plymouth research portal record:

https://researchportal.plymouth.ac.uk/en/publications/syncopation-and-groove-in-polyphonic-music/ ).

An earlier revision of this document credited this paper to "Sioros, Witek et al." — **Witek is not

an author**, and the error is corrected here and in 1.3. The verified finding: a moderate level of

syncopation increases groove but only for certain syncopation patterns, with the key difference

lying in the distribution of syncopation across instruments and metrical positions.

ISMIR 2012. https://ismir2012.ismir.net/event/papers/283_ISMIR_2012.pdf (PDF text layer did not

extract; cited for the WNBD and LHL definitions as summarised in the indexed abstract)

https://www.researchgate.net/profile/George-Sioros/publication/275886115_Syncopation_as_Transformation/links/557af01c08ae8d0481931ef1/Syncopation-as-Transformation.pdf

collapsed them under a single author and url:

Kilchenmann, L., Hoesl, F., Baldassarre, A., & Alessandri, E. (2020). "Experience of Groove

Questionnaire: Instrument Development and Initial Validation." *Music Perception* 38(1): 46–65.

DOI 10.1525/mp.2020.38.1.46. Two correlated scales: urge to move and pleasure.

*Music Perception* 39(1): 83–99. DOI 10.1525/mp.2021.39.1.83. Lead author is Düvel, not Senn —

the first draft attached Senn's name and the original paper's title to this url.

https://online.ucpress.edu/mp/article/39/1/83/118491/Experience-of-Groove-QuestionnaireGerman

43(1): 91–103. DOI 10.1525/mp.2025.2457869.

https://online.ucpress.edu/mp/article/43/1/91/211844/Japanese-Version-of-the-Experience-of-Groove

The body claim in 1.1 — that Senn and colleagues built the EGQ around two factors and that it has

been re-validated in German and Japanese — is confirmed by all three records.

properties and listeners' attitudes." *PLoS ONE*.

https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0199604

https://www.researchgate.net/publication/384351633_The_Effect_of_Tempo_Manipulation_on_the_Urge_to_Move

(ResearchGate returned 403 on re-fetch; the 89–130 BPM stimulus range and the ~100 BPM optimum

reported in 1.5 are therefore UNVERIFIED at this pass. RG-25 depends on this number and should be

treated as provisional until the paper is read directly. Note that RG-25 is a *declared cost*

field, not a refusal, so a wrong optimum mis-labels a cue rather than blocking one.)

bass patterns with behavioural, structural, and audio measurements."

https://www.researchgate.net/publication/392490455_The_Lucerne_Groove_Library_An_audio_stimulus_corpus_of_444_short_Western_popular_music_drum_and_bass_patterns_with_behavioural_structural_and_audio_measurements

https://escholarship.org/content/qt2sw3r2dw/qt2sw3r2dw_noSplash_e9a6f0db254762f58a16e0f2528004c1.pdf

lower musical pitch explains why bass-ranged instruments lay down musical rhythms." *PNAS* 111(28):

10383–88. https://pubmed.ncbi.nlm.nih.gov/24982142/ ; publisher:

https://www.pnas.org/doi/abs/10.1073/pnas.1402039111 (403 on re-fetch); author PDF:

https://trainorlab.mcmaster.ca/publications/pdfs/PNAS_2014_Low_pitch_timing.pdf (text layer did not

extract). Re-verified via PubMed: "mismatch negativity responses were larger for timing deviants of

the lower tones"; "tapping synchronization was more influenced by the lower-pitched stream"; and

"a biologically plausible model of the auditory periphery suggest[s] that nonlinear cochlear

dynamics contribute to the observed effect." All three claims made in 1.6 are confirmed.

https://www.pnas.org/doi/pdf/10.1073/pnas.1801421115

(Foundational statement of the position the experiments in 2.4 test; cited by title and author.)

33(1); and Butterfield, M. (2010), "Participatory Discrepancies and the Perception of Beats in

Jazz," *Music Perception* 27(3). Benadon's published commentary on Butterfield:

https://mtosmt.org/issues/mto.07.13.1/mto.07.13.1.benadon.php

9.2 Micro-timing and swing

Microtiming Behavior." *Music Theory Spectrum* 45(2): 181–198. DOI 10.1093/mts/mtad005

https://academic.oup.com/mts/article/45/2/181/7234305 (authors and pagination added on citation

review — the first draft cited it anonymously). Re-verified: all three theories are present as

described, the D'Angelo "Left and Right" analysis carries the 55–80 ms figure quoted in 2.1 and

RG-18, the rumba columbia case is Los Muñequitos de Matanzas' "Elegía a los columbianos", and the

polska case is "Frisells storpolska".

https://mitpressbookstore.mit.edu/book/9781409403401 ; review discussion of the beat-bin model:

https://distantreader.org/stacks/journals/dancecult/dancecult-366.htm

Compound Musical Sounds." *Annals of the New York Academy of Sciences*.

https://nyaspubs.onlinelibrary.wiley.com/doi/10.1111/nyas.70306 (paywalled — HTTP 402 on fetch;

cited for existence and framing only, no findings claimed)

Evidence for a Common Rhythmic Pattern." *Music Perception* 19(3): 333–349.

DOI 10.1525/mp.2002.19.3.333

https://online.ucpress.edu/mp/article-abstract/19/3/333/61900/Swing-Ratios-and-Ensemble-Timing-in-Jazz

Re-verified: the swing ratio runs from 3.5:1 at slow tempi to 1:1 at fast tempi; the 2:1

"triple-feel" appears only at particular tempi; the short note holds a roughly constant ~100 ms

duration, read as a perceptual limit. All three numbers used in 2.2 and RG-16 are confirmed.

*Ethnomusicology* 50(1): 73–98.

https://scholarlypublishingcollective.org/uip/etm/article/50/1/73/234546/Slicing-the-Beat-Jazz-Eighth-Notes-as-Expressive

; JSTOR: https://www.jstor.org/stable/20174424 ; author copy:

http://www.fernandobenadon.com/uploads/1/8/4/2/18429773/slicing_the_beat.pdf

Existence and exact citation CONFIRMED via Benadon's own reference list in *Music Theory

Online* 13/1 (2007), which cites it as "Benadon, F. 2006. Slicing the Beat: Jazz Eighth-Notes as

Expressive Microrhythm. *Ethnomusicology* 50(1), 73–98." Every route to the article text itself

(publisher, SEM page, author site) returned 403 or failed, so the specific numeric BUR span is

UNVERIFIED and 2.2 no longer asserts it.

Mali." *Music Theory Online* 16(4). Re-verified in full: the 27:33:40 ratio and its gloss, the ~2%

standard deviation, the four lead players conforming to the same short-medium-long feel, the

independent realisation by dunun and second jembe, the 135 → 205 ternary BPM span, and the

28:36:36 shape beyond 200 ternary BPM. One error corrected in 2.3: the first draft presented

28:36:36 as the far end of a performer-to-performer range and placed the shift at "570 pulses per

minute". It is a tempo-dependent transformation at the top of the range, at beyond 600 ppm.

https://mtosmt.org/issues/mto.10.16.4/mto.10.16.4.polak.html ; PDF:

https://www.mtosmt.org/issues/mto.10.16.4/mto.10.16.4.polak.pdf ; author publication list:

https://www.rainerpolak.de/publications/

Stable Ensemble Entrainment: A Corpus Study of Malian Jembe Drumming."

https://www.academia.edu/28459109/Both_Isochronous_and_Non_Isochronous_Metrical_Subdivision_Afford_Precise_and_Stable_Ensemble_Entrainment_A_Corpus_Study_of_Malian_Jembe_Drumming

with Musical Properties in Samba Music." *Journal of New Music Research* 40(3): 225–238.

DOI 10.1080/09298215.2011.603833

https://www.tandfonline.com/doi/full/10.1080/09298215.2011.603833

Citation confirmed exactly (authors, journal, volume, issue, pages, year, DOI). The publisher

returned 403 on every re-fetch, so the two specifics used in 2.3 — the 106-excerpt corpus size and

the systematic anticipation of the third and fourth semiquavers — are UNVERIFIED at this pass.

Nothing in section 10 depends on them: RG-15's mechanism comes from Polak, which is ✅.

microtiming on the perceived groove quality of a simple drum pattern performance."

*Musicae Scientiae* 17(2): 246–260. DOI 10.1177/1029864913486793

https://journals.sagepub.com/doi/abs/10.1177/1029864913486793 (publisher 403; verified via the

Crossref record and its deposited abstract). Confirmed: 93 music students; five conditions at −25,

−15, 0, +15, +25 ms; "the highest ratings of perceived drum pattern quality were given for the

rhythmically accurate (quantized) version"; "early time shift was rated more negatively than the

comparable late time shift". The two remaining results reported in 2.4 — snare deviations rated

worse than bass-drum deviations, and no effect of rock/pop expertise — plus the "aesthetics of

exactitude" phrasing, are from the full text and were not re-confirmable from the abstract.

Perception of Groove in Short Rhythms." *Music Perception*.

https://www.diva-portal.org/smash/get/diva2:698301/FULLTEXT01.pdf (PDF text layer did not extract;

its result is characterised here only as Madison & Sioros themselves characterise it)

https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2017.01709/full

Rosanna Shuffle." arXiv 2411.06892. https://arxiv.org/abs/2411.06892 (authors added on citation

review). Re-verified: it analyses Jeff Porcaro's original drum track on Toto's 1982 "Rosanna" and

reports "clear long-range correlations in the microtiming deviations", that "the two-bar phrases of

the song feature a distinctive repeating pattern in the timing and dynamics of the hi-hat beats",

and "notable tempo drift typical of tracks recorded without a metronome". All three claims in 2.5

and RG-19 are confirmed.

https://www.scup.com/doi/10.18261/ISSN1504-2960-2006-01-11

9.3 Metre and rhythmic theory

Press. https://global.oup.com/academic/product/hearing-in-time-9780199744374 ; Oxford Academic

record: https://academic.oup.com/book/9899 ; author's introduction PDF:

https://musikwissenschaft.univie.ac.at/fileadmin/user_upload/i_musikwissenschaft/Forschung/Vortragsreihen/J_London_Hearing_in_Time_Intro.pdf

(the introduction PDF's text layer did not extract on re-fetch and the book itself is not openly

readable). The book is real and is the standard reference; the two NUMBERS this document leans on —

the ~100 ms floor and the ~1.5–2.0 s ceiling for a metric element's inter-onset interval, and the

maximal-evenness constraint licensing non-isochronous beats — are UNVERIFIED at this pass, and

RG-09, the 4.1 table and GAP-08 all depend on them. They are consistent with the well-known shape

of London's constraints and with Polak's ✅ demonstration that non-isochronous subdivision is

metric, but the exact bounds should be read out of a copy of the book before RG-09 is coded as a

hard validator with those thresholds. Note the direction of the risk is mild: the Flores cue's

colotomic periods are 3.243 s, 6.486 s and 25.9 s, which sit far outside any plausible reading of

the ceiling, so GAP-08's conclusion survives a wide margin of error in the bound itself.

(Already the definition in use in harness/music_gen/groove.py.)

'Standard Pattern' of West African Rhythm." *Journal of the American Musicological Society* 59(1):

1. https://online.ucpress.edu/jams/article-abstract/59/1/1/50100/Structural-Analysis-or-Cultural-Analysis-Competing

(403 on re-fetch); verified via CUNY open record: https://academicworks.cuny.edu/gc_pubs/935/

Confirmed: author, exact title, journal, volume, issue, year, and the description of the standard

pattern as "a seven-stroke figure spanning twelve eighth notes" set against "a putative

African-cultural understanding" — the structural-vs-cultural framing 4.3, RG-30 and GAP-25 rely on.

Rhythm in African Music." *Music Theory Online* 6(1).

https://www.mtosmt.org/issues/mto.00.6.1/mto.00.6.1.anku.html

Re-verified, and the first draft had Anku's term wrong. He writes: "since the regulative beat

occurs on one of the time points of each set rhythm, it is expedient to label it *Regulative Time

Point* (*RTP*) instead of regulative beat." The term is Regulative Time Point, not

"Referential Time Point". Corrected in 4.3.

*Music Theory Online* 16(4). https://www.mtosmt.org/issues/mto.10.16.4/mto.10.16.4.burns.html

the tresillo cross-rhythm derivation, which is corroborated by Anku and Burns above)

9.4 Javanese gamelan

https://sumarsam.faculty.wesleyan.edu/files/2023/01/4_Temporal_and_Density_Flow.pdf (PDF text layer

did not extract on fetch; retained as the standing scholarly reference for the irama/density

relationship and already cited by COUNTERPOINT_AND_VOICE_LEADING.md §7.3)

https://sumarsam.faculty.wesleyan.edu/files/2023/01/2_Theorizing_About_Music.pdf

https://lsa.umich.edu/content/dam/cseas-assets/cseas-documents/gamelan/JavaneseGamelanMusic.pdf

(PDF text layer did not extract)

but the table is standard and matches Sumarsam's framing)

kepatihan notation carries the colotomic structure)

https://centerforworldmusic.org/2022/08/instruments-of-the-central-javanese-gamelan-1/

http://bernjordan.com/gamelan/glossary.html (fetch failed on a self-signed certificate; listed for

a later re-fetch of the per-form stroke schedules)

as COUNTERPOINT_AND_VOICE_LEADING.md §7.3 flags the same site for imbal; used only for the

lancaran schedule shape, which must be confirmed against Sumarsam or a gamelan primer before it is

transcribed into code)

9.5 Balinese gamelan

Chicago Press. https://books.google.com/books/about/Gamelan_Gong_Kebyar.html?id=im7j-tHxOLAC ;

lending copy: https://archive.org/details/gamelangongkebya0000tenz ; review with the dynamics/tempo/

drumming assessment: https://symposium.music.org/index.php/42/item/3190-gamelan-gong-kebyar-the-art-of-twentieth-century-balinese-music-by-michael-tenzer

6(2). Re-verified. Confirmed verbatim: "In each stratum, such points of stress are measured

backwards in groups of four tones from the final tone of the melody, which receives the strongest

stress of all according to the way Balinese conceptualize it"; "This is where all parts converge

and are supported by the stroke of the large gong"; and the midpoint "receives the second-strongest

stress and is reinforced by the *jegogan*". These carry 5.2, RG-11 and GAP-06, which are the

document's highest-value structural repair — they survive review intact.

One correction: the quote "the lower tone has acoustic dominance" is stated of the *kempyung*

interval (the pelog fifth), NOT of an interlocked polos/sangsih dyad as the first draft had it.

Corrected in 6.2, RG-28 and GAP-15.

https://mtosmt.org/issues/mto.00.6.2/mto.00.6.2.tenzer.html ; PDF:

https://www.mtosmt.org/issues/mto.00.6.2/mto.00.6.2.tenzer.pdf ; further copy:

https://hugoribeiro.com.br/biblioteca-digital/Tenzer-Theory_Analysis_Melody_Balinese_Gamelan.pdf

30(4). https://mtosmt.org/issues/mto.24.30.4/mto.24.30.4.tenzer.pdf (PDF text layer did not extract;

listed as the current indigenous-theory reference and queued for re-fetch)

Music and Beyond.* Chicago Studies in Ethnomusicology, University of Chicago Press. Re-verified:

the publisher's description confirms the two case studies named in 6.2 — "the *reyong* gong chime's

melodic *norot* practice and the interlocking drumming tradition *kendang arja*" — and the

collective-improvisation argument that RG-29 and GAP-16 rest on.

https://press.uchicago.edu/ucp/books/book/chicago/M/bo44520596.html ; review:

https://academic.oup.com/ml/article-abstract/101/4/767/6218796 ; Project MUSE review:

https://muse.jhu.edu/article/858213/summary

4(2): 2–15. The volume/issue/page citation could NOT be independently confirmed at this pass.

*Balungan* (American Gamelan Institute) is not indexed in Crossref, gamelan.org returned 403/404,

and WorldCat rate-limited. Wayne Vitale is confirmed as a real and active Balinese-music scholar

(e.g. his review in *Asian Music* 49/1, 2018, pp. 125–29, DOI 10.1353/amu.2018.0007), and the

article is widely cited in the kotekan literature, so this is a *could-not-verify*, not a

fabrication — but the page numbers should be checked against a library record before this document

is cited onward. Load-bearing note: the figuration taxonomy 6.2 attributes partly to Vitale is

independently corroborated in detail by the tertiary entry below, so RG-26/RG-27/GAP-14 do not

stand on the unverified citation alone.

chandetan, tutugan, ochètan, semi-ochètan — as transmitted in the practical summary at

https://www.ancient-future.com/kotekan.html , re-verified: "There were four types of melodic

kotèkans that were recognized in North Bali by *Music in Bali*...chandetan, tutugan, ochètan, and

semi-ochètan", and "The semi-ochètan is an interlocking rhythm in which the parts meet on a

unison" — the definition RG-27 and GAP-14 turn on. Note this page does NOT cite Vitale.)

and confirmed to carry every specific used in 6.2: nyog cag as straightforward alternation with

each part playing every other note; nyok cok with both parts anticipating the next pokok pitch in

unison then taking neighbour tones; kotekan telu's three pitches with "the middle pitch is always

played in unison by both parts" and the reyong exception; kotekan empat's four pitches with no

shared pitch where "usually the lowest and highest pitches are struck simultaneously". *Norot* is

NOT in this entry — 6.2 correctly sources it to Tilley.)

of the ensemble hierarchy; gong gedé marking cycle conclusions; paired detuning; explosive tempo

and dynamic change)

(eCampusOntario Pressbooks). Chapter:

https://ecampusontario.pressbooks.pub/beyondtheclassroom/chapter/balinese-music-gamelan/ ; Gilak

lecture-demonstration transcript:

https://ecampusontario.pressbooks.pub/beyondtheclassroom/chapter/transcript-balinese-music/ (both

returned 403 to the fetch; the gilak eight-beat structure with kajar, gong, kempur and kempli is

taken from the indexed summary and should be re-fetched before transcription)

https://openwa.pressbooks.pub/bbccworldmusic/chapter/balinese-music-gamelan/ (403 on fetch)

refused at the time of writing; this is the canonical online table of Balinese colotomic schedules

and must be re-fetched before any schedule is coded)

https://www.cambridge.org/core/journals/yearbook-for-traditional-music/article/abs/different-temporalities-the-time-of-balinese-gamelan/0317894144F7A2FF3B5CBDD1A80AB93F

9.6 Flores

https://www.harmonies.com/releases/13175.htm Re-verified. The liner notes DO carry: the Manggarai

focus ("The district (*kabupaten*) of Manggarai is by far the largest of the five districts of the

island of Flores"), the "ancestors who invented and still often play the *nggong–tembong*

(drum-gong) ensembles at ritual moments", the "musical whip duels (*main caci*)", the "solo and

choral circle dances (*raga*, *gezang*, *danding*, *sanda* and *ronda*)", mbata in the track

listing, and a dedicated Penti Harvest Ritual section.

They do NOT carry, and the first draft wrongly attributed to them: that the ensembles are

played by local women (that belongs to the caci source below), the *mbaru gendang* / *natas*

spatial rule, or *tandak* chanting. Corrected and demoted in 7.2. Track listing example:

https://www.amazon.com/Nggong-Mese-Great-Gongs-Tembong/dp/B000QMDL58

https://folkways.si.edu/music-of-indonesia-vol-9-from-central-and-west-flores/islamica-world/album/smithsonian

Confirmed: "Caci is mainly performed by Manggarai people distributed within the greater Manggarai

cultural area of western parts of Flores island"; "During the match, musicians, who are usually

women will gather and play drums and gongs"; Penti held "usually at 5-year intervals" with caci

"most frequently performed during Penti"; and "caci fights might last at least a full day — but

more often they may take two or three days". This — not the Celestial Harmonies notes — is the

source of the women-musicians claim in 7.2. It does NOT mention tandak, which is why that claim

is now marked UNVERIFIED. Also listed, the Indonesian Ministry of Tourism's "Tari Caci — the

warrior dance of Flores":

https://www.indonesia.travel/gb/en/travel-ideas/culture/tari-caci-the-warrior-dance-of-flores

Re-fetched: gives "5 buah gong (semacam kempul Jawa)" — five gongs, unnamed — two single-membrane

*waning* drums, and "satu buah saur (sepotong bambu yang berukuran ± 1 meter)". No dimensions, no

player count, no playing technique.

https://travel.kompas.com/read/2019/05/08/152100627/mengenal-gong-waning-musik-tradisional-dari-sikka-flores?page=all

Re-fetched: gives four gongs — "gong Inan (besar), gong Lepen (sedang), gong Udong Beit (kecil),

dan gong Anak (paling kecil)" — struck with "kayu yang ujungnya ada gulungan karet ban" (wooden

mallets tipped with rubber), two *waning* of coconut wood and dried hide, a *sa'ur* bamboo tube

~1.5 m struck in alternating strokes to hold the rhythm, and "anggota 8 orang" (eight members).

Sikka." (ResearchGate 403 on re-fetch; not relied on for any claim.)

https://www.researchgate.net/publication/395187933_MAKNA_PSIKOLOGIS_MUSIK_GONG_WANING_DALAM_RITUAL_ADAT_KEMATIAN_MASYARKAT_HEWOKLOANG_KABUPATEN_SIKKA

https://www.cintaindonesia.web.id/2018/08/gong-waning-musik-tradisional-dari.html

Re-fetched: gives five gongs with a third name set — "gong Ina wa'a, gong Ina depo, gong lepe,

gong Higo-hagong, dan gong Udong", the *higo-hagong* being a pair struck together — two drums, the

larger plus a smaller called *dodor*, "terbuat dari batang kelapa dan kulit sapi/kambing yang sudah

dikeringkan", and *peli anak*/*saur*, bamboo of ~1 m, which stabilises the rhythmic pattern. No

playing technique, no player count.

Music Online, organology browse for traditional and Indigenous musics of Asia" at

https://oxfordmusiconline.com/grovemusic/browse as the source for detailed gong waning organology:

waning inan ~35 cm × 60 cm, waning anak ~25 cm, five bossed gongs named inan / depun / beit / udon

/ anak, chest-damped, rubber-padded mallet, nine players. **That url is a browse/navigation index

with no article text — it cannot be the source of any specific measurement**, and no name in that

list matches any of the three name sets the fetchable sources actually give. Those claims have been

removed from 7.1, 7.3, GAP-12 and GAP-13 rather than carried at "MEDIUM confidence". The rubber-

tipped mallet survives on the Kompas source above. If the detail is wanted, read the Grove *Flores*

article itself (subscription) or an organological monograph and cite it by article, not by

browse index.

(Eastern Flores, Eastern Timor)" (2015).

https://www.academia.edu/12501949/Music_as_evidence_of_settlement_the_case_of_diphonic_singing_in_Eastern_Indonesia_Eastern_Flores_Eastern_Timor_2015_

9.7 Drum programming and production practice

(With Online Resource).* Backbeat Books (Hal Leonard). ISBN 9781480392878.

https://www.amazon.com/Drum-Programming-Handbook-Complete-Creating/dp/1480392871 ; publisher/press

coverage: https://www.mixonline.com/the-wire/drum-programming-handbook-426093 ; review:

https://audionewsroom.net/2015/12/the-drum-programming-handbook-how-to-create-great-rhythm-tracks/

Re-verified: the ISBN, the publisher, "more than 250 downloadable audio files", Paterson leading

"the MA course in Advanced Music Technology at the London College of Music", and the coverage arc

claimed in section 3 — rhythm-programming history, MIDI and one-shot programming, samplers and

romplers, advanced timing for swing and beat-mapping, drum synthesis, production and effects, and

per-style chapters.

https://blog.samplefocus.com/blog/how-to-produce-ghost-notes-for-organic-drums/

https://www.musicradar.com/tuition/tech/how-to-add-groove-and-pace-to-a-beat-using-ghost-notes-625526

https://www.loopmasters.com/articles/4436-How-to-Program-Realistic-MIDI-Drums-5-advanced-tips-for-virtual-drummers

https://www.loopcloud.com/cloud/blog/5254-7-Drum-Programming-Tips-to-Improve-Any-Groove

https://blog.native-instruments.com/drum-programming-101/

https://musicproductionwiki.com/articles/how-to-use-groove-and-swing-in-music.html

https://melodiefabriek.com/sound-tech/mpc-swing-reason/

https://brettworks.com/2013/07/23/roger-linn-on-drum-machine-groove-and-j-dillas-off-beat-sound/

Rhythm.* (Cited by title and author for the documented practice of turning quantise off and applying

irregular per-element swing.)

9.8 Game audio practice

Rhythm: Bending the Power of Groove To Your Will." GDC 2025, Audio track.

https://gdcvault.com/play/1035504/Fascinating-Rhythm-Bending-the-Power ; schedule page (403 on both

fetches): https://schedule.gdconf.com/session/fascinating-rhythm-bending-the-power-of-groove-to-your-will/907146

Re-verified via GDC Vault: Graves is credited to Jason Graves Music, Inc.; the description covers

creative drum/percussion patterns, orchestral writing in odd time signatures, musical phrasing's

gameplay impact, grooves supporting in-game action, and layered rhythms building to a satisfying

interactive experience; and all four games named in 3.5 — *Dead Space*, *Still Wakes The Deep*,

*No Rest For The Wicked*, *Tomb Raider* — are confirmed. Co-presenters added on citation review;

the first draft credited Graves alone.

https://www.gamedeveloper.com/game-platforms/pure-vertical-layering-for-game-music-composers-from-spyder-to-sackboy-gdc-2021-

to Sackboy: GDC 2021)."

https://www.gamedeveloper.com/audio/horizontal-resequencing-and-dynamic-transitions-for-game-music-composers-from-spyder-to-sackboy-gdc-2021-

https://schedule.gdconf.com/session/from-sibelius-to-game-crafting-adaptive-music-for-kingdom-come-deliverance/915597

---

10. ACTIONABLE RULES, mapped to our stack

Each rule names the file it lands in and the tier it belongs to. CODE-ABLE means it is a constraint on

authored symbolic material and can be enforced before a sample is rendered. MEASURE-ONLY means it

needs the render. FLAG means it touches canon or care and goes to the director.

Source-strength note (citation review, 2026-08-08). These rules were re-checked against the

verification states recorded in section 9, because a rule is only as good as the finding under it.

The result: the rules the document actually adopts first are the best-sourced ones. RG-06/RG-07 rest

on Witek ✅ and Sioros et al. ✅; RG-11 on Tenzer ✅, quoted verbatim; RG-13 on Hove ✅; RG-15 on Polak

✅; RG-16 on Friberg & Sundström ✅, whose three numbers were all confirmed; RG-17 on Frühauf ✅ and

Madison & Sioros ✅; RG-18 on Danielsen et al. ✅; RG-19 on the Rosanna analysis ✅; RG-26/RG-27 on the

kotekan taxonomy ✅ and McPhee's semi-ochètan definition ✅; RG-29 on Tilley ✅; RG-30 on Agawu ✅.

RG-09 depends on London's bounds, which are ⚠ — code it as a REPORTED table first and only as a hard

validator once the thresholds are read out of the book. RG-25 depends on Etani ⚠ and is a declared

cost rather than a refusal, so it degrades safely. RG-10, RG-14, RG-21, RG-22 and RG-23 depend on

per-form gamelan schedules and kebyar descriptions that could not be fetched (GAP-26) and must be

re-fetched before any schedule is transcribed. RG-01 through RG-05 and RG-24 rest on the practitioner

drum-programming consensus: Paterson's manual is ✅ verified as to existence, authorship, provenance

and scope, but the specific velocity figures (ghost notes at 20–40 of 127, a ~20-point hi-hat spread)

come from the working tutorial literature listed in 9.7, which was not individually re-fetched — they

are ordinary craft numbers rather than research findings, and RG-01/RG-03 should be tuned by ear

against our own palette rather than treated as measured constants.

10.1 Dynamics — the primary repair

distinct velocity tiers across its onsets: accent, normal, ghost. Ghost tier targets roughly 0.15–0.32

of the accent tier (the 20–40-of-127 figure normalised against a 127 accent), with a subtle sub-tier

down to about 0.08–0.17 available. Lands in harness/music_gen/groove.py _accent(), which today

returns three tiers by METRICAL POSITION but is never used by a plan; and in

harness/music_gen/pass2_realise.py, which cannot express it. CODE-ABLE.

reads one scalar vel_scale for a whole pattern. It needs an optional vels list, parallel to

grid, defaulting to the scalar for backward compatibility. Same for dur. Without this, RG-01

cannot reach audio through any of the ten ostinato layers in the landed Flores plan. Lands in

harness/music_gen/pass2_realise.py and the PATTERN_KINDS schema in

harness/music_gen/pass2_plan.py. CODE-ABLE. **This is the single highest-value line of code in

this document.**

carry the same velocity, and a sustaining figure must span at least a 20/127 range around its own

mean. Refuse. Lands as a new finding in groove.check() and as an axis in

harness/music_gen/instr_groove.py. CODE-ABLE.

exposes a multi-key stroke inventory for an instrument (gong.stroke 60-62, frame_drum 60-65,

slit_drum 60-61), the dynamic tier must select the key, not merely scale the velocity. Lands in

groove.py's voice construction and in sfz_palette.py as a declared tier→key map. CODE-ABLE.

currently tests onsets per beat. A voice that plays every subdivision is a carpet even at low

density if it is also dynamically flat. Extend the predicate; keep the existing threshold.

CODE-ABLE.

10.2 Syncopation and the composite

per-voice mean and deliberately ignores the composite. Add a separate finding that refuses a

composite syncopation of exactly 0.0 (or below a small floor, e.g. 0.02) for any class above

AMBIENCE. The literature ties the composite to groove; ours has been pinned at zero for six cues

and no rule has ever fired. Lands in harness/music_gen/groove.py check() with a mutation control

in self_test, and as a reported axis in harness/music_gen/instr_groove.py. CODE-ABLE.

as bands. Record in the file's docstring that the upper bound exists because high syncopation

reduces the urge to move (Witek et al.), not because it is "too much". No code change; a claim

repair. CODE-ABLE.

activity target is measured on Groove.composite_grid(); no individual voice may exceed the carpet

threshold to achieve it. This is the formal statement of "use hocket, not a busier drummer", and it

is already how groove.py is built — it just is not stated as a rule with a number. CODE-ABLE.

10.3 Metre and the clock

tempo_bpm, any level claimed to state the metre must have an inter-onset interval between 100 ms

and 2.0 s (London). A level outside that window may exist but must be declared as FORMAL

PUNCTUATION, not as metre. Lands as a validator in harness/music_gen/pass2_plan.py and as a

reported table in harness/music_gen/instr_groove.py. CODE-ABLE.

Javanese schedule: a fast punctuation every 2 beats, a mid every 4, a cycle-closing stroke, and one

deliberate omission (*wela*) so the pattern is asymmetric. Two positions is not a colotomic clock.

Lands in the colotomic pattern in harness/music_gen/pass2_realise.py (already supports

every/phase, so this is authoring plus a validator) and in the plan generators

pass3_flores.py / pass7_flores.py. CODE-ABLE.

not at position 0, because stress in this idiom is measured backwards from the final tone (Tenzer)

and the gong marks cycle conclusions. Secondary stress at the midpoint. Refuse a colotomic layer

whose maximum vel_scale sits at at_beat 0.0 while a later stroke exists. Lands in

harness/music_gen/pass2_realise.py validation and groove.py R04, which currently checks

coincidence but not polarity. CODE-ABLE. Highest-value structural repair in this document.

continuous, timbrally distinct, unvarying, at the tactus or half-tactus, never the gong and never a

drum. This is the voice that makes the metre audible when the punctuation period is above the

entrainment ceiling. Lands in groove.py's library and the role vocabulary in

harness/music_gen/pass2_plan.py. CODE-ABLE. Strengthened by the citation review: the Balinese

kajar/kempli evidence sits in sources that would not fetch (GAP-26), but the *saur* / *peli anak* —

a bamboo tube of roughly 1–1.5 m, struck in alternating strokes, whose stated function is to hold

the ensemble's rhythm — is confirmed by all three fetchable gong waning sources. So the dedicated,

timbrally distinct, non-gong non-drum timekeeper is attested in the Flores ensemble our own slice

is actually citing, independently of the Bali material. This rule now has a ✅ source, and for the

right island.

be the lowest-pitched articulate part, and its low band should vary beat to beat. Refuse a cue whose

tactus-carrying voice is not its lowest articulate voice. Lands in groove.py check() and as an

axis in harness/music_gen/instr_groove.py; the audio half is MEASURE-ONLY via low-band spectral

flux variance.

beats (gilak, bapang, batél). At our tempi those land inside the entrainment window where our

16-beat cycle does not. Treat cycle length as a composed parameter with a stated reason, not as a

default 4 bars. Lands in pass2_plan.py / the flores plan generators. CODE-ABLE.

10.4 Performance layer

per-voice subdivision_ratio (e.g. [27, 33, 40] for a ternary feel, [54, 46] for a light

binary swing) that the compiler applies as an exact position map. It is metre, not humanisation:

deterministic, auditable, identical every cycle, reported in the manifest. Lands in

harness/music_gen/pass2_realise.py (compile_layer's abs_beat * beat_s) and

harness/music_gen/groove.py (metrical_weights and _tile must stop assuming equal

subdivisions). CODE-ABLE.

declared, it must scale with tempo toward 1:1 as tempo rises, and the short element must not fall

below roughly 100 ms (Friberg & Sundström). Express as a formula in the plan, not a constant.

CODE-ABLE.

different ratios (kick straighter than hats). No code path may introduce a per-note random timing

offset, ever — the experimental record says it makes things worse. Lands as a hard prohibition in

harness/music_gen/pass2_realise.py's docstring and as a grep-able control in

harness/music_gen/instr_groove.py. CODE-ABLE.

declare a stack order and per-voice offsets in the low tens of milliseconds. Danielsen's D'Angelo

case measures 55–80 ms between kick and bass and is still heard as one beat. Zero is a choice and

should be an explicit one. Lands in harness/music_gen/pass2_realise.py compile_layer and

harness/music_gen/mix_policy.py. CODE-ABLE.

structure, it repeats on a stated period (the Rosanna two-bar hi-hat pattern is the exemplar). A

deviation table indexed by position-within-phrase, not by note index. CODE-ABLE.

10.5 Form, change and the leader

elaborating layers' subdivision against an unchanged structural line, with the Javanese ladder

(1, 2, 4, 8, 16) as the available set. This is already boarded as item 7 of

COUNTER_MELODY_AND_DIALOGUE.md's operations ledger and unbuilt. Lands in the section schema in

harness/music_gen/pass2_plan.py and the kotekan branch of pass2_realise.py. CODE-ABLE.

idioms we borrow from treat tempo motion as the primary formal device, and kebyar's signature is

explosive tempo and dynamic change. Add a per-section tempo (or a tempo map) and let geometry()

integrate it. Lands in harness/music_gen/pass2_realise.py and every generator that reads

tempo_bpm. CODE-ABLE, and non-trivial — flag the cost.

section transitions are keyed to ITS figures rather than to a bar count. Modelled on the kendang

wadon, which sets tempi and cues transitions. Lands in groove.py's role vocabulary and

pass3_flores.py / pass7_flores.py. CODE-ABLE.

coincides on a strong accent and then resumes. This is the one place the anti-tutti ceiling (R03) is

legitimately suspended, and the suspension must be DECLARED, exactly as the marker-pair exemption

already is. Lands in groove.py check() R03's exemption list and a new pattern in the library.

CODE-ABLE.

complementary addition — a denser, differently-articulated figure in the last half-bar before a

formal boundary, and an anacrusis leading into a phrase. Lands in harness/music_gen/groove.py.

CODE-ABLE.

BPM entrainment optimum, and if not, what it is buying. Not a refusal — a declared cost. Lands as a

reported field in harness/music_gen/instr_groove.py. MEASURE-ONLY on the audio side, CODE-ABLE on

the plan side.

10.6 Idiom fidelity

and empat: nyog_cag (straight alternation, no shared pitch), nyok_cok (both parts in unison on

the pokok anticipation, then neighbour tones), and allow empat to strike its outer pitches

simultaneously. Lands in pass2_realise.compile_pattern's kotekan branch. CODE-ABLE.

and sangsih share no onset. That is true of nyog_cag and false of three other documented classes,

and McPhee's semi-ochètan is DEFINED by the parts meeting on a unison. Scope R5 to the classes it

actually describes. CODE-ABLE.

interval (the pelog fifth), NOT of a polos/sangsih interlock — corrected on citation review; an

earlier revision of this rule over-generalised it to any interlocked dyad. Scope it accordingly:

where our writing produces a simultaneous kempyung dyad, encode the lower tone's dominance as a

velocity relation rather than leaving both parts at the layer default. Whether the same relation

holds at polos/sangsih coincidence points is an open question this document does not answer.

CODE-ABLE, narrowly.

connections between polos and sangsih, and shows kotekan being improvised. Our generator should

carry a small, bounded variation space inside the fixed frame — which is precisely the operator

notes_for(..., variation=n) already implements and which is currently unused for interlocking

parts. CODE-ABLE.

additive figure". Agawu argues at length that "additive rhythm" is a transcription artefact rather

than an indigenous conception. Keep the figure, keep the existing refusal to attribute it to any

living tradition, and change the word to a neutral description of the stroke distribution.

CODE-ABLE, one docstring.

names a Sikka ensemble (gong waning) for a Manggarai chapter (CH_03), and describes it with

gamelan-shaped organology it does not have. FLAG — region attribution plus a §17.1 collective-care

call. See section 7 and GAP-11.

COUNTERPOINT_AND_VOICE_LEADING.md §7.3's "must not invent it" stands, but the surrounding claim

that there is nothing to say is now falsified by published organology and field-recording

documentation for BOTH Flores ensembles. Supersede in place (living-source rule), narrowing the

declared gap to the melodic and modal material. CODE-ABLE as a doc edit; the ensemble NAME half is

FLAG.

---

11. WHAT WE ADOPT

Ranked by value per unit of work. The first four are the answer to "no rhythm"; everything below is

depth.

1. **RG-02 plus RG-01: per-onset velocity in the ostinato kind, and a three-tier accent ladder on

every articulated voice.** This is a small change to one compile branch plus a schema field, and it

converts every percussion part in the program from a metronome into a played figure. Nothing else

in this document is worth as much per line.

2. RG-11: flip the colotomic clock to end-accented. One authoring change plus one validator. It

re-aligns the entire phrase-goal architecture with the idiom we cite as our authority, and it costs

nothing.

3. RG-06: a refusal on a degenerate composite syncopation. We have shipped six cues with the one

number the literature ties to groove pinned at exactly zero, and no rule fired. Arming this is a

dozen lines and a mutation control.

4. RG-09 plus RG-12 plus RG-10: make the metre audible. Validate every claimed metric level

against the 100 ms / 2 s window; add the kajar-style beat-keeper; give the colotomic clock three

periods and a hole. Together these fix the specific mechanism by which our cue can pass every

structural rule and still not present a metre.

5. RG-20: irama as a per-section density level. Already boarded, already CODE-ABLE, and it is the

single most powerful formal device in the tradition we are borrowing from — and it maps directly

onto the vertical-layering system the game side needs anyway.

6. **RG-15 and RG-17 together: a declared, deterministic subdivision ratio, and an absolute ban on

random jitter.** Adopt the Polak model of micro-timing (categorical, stable, auditable) and

explicitly refuse the humanise-knob model the experimental record repeatedly finds harmful. Adopting

the ban is free and prevents a plausible wrong reaction to this document.

7. RG-22 through RG-24: leader, angsel, fill. The apparatus by which cyclic music changes. Higher

cost, and it should follow the first six.

8. **RG-26 through RG-29: the kotekan taxonomy, the retired no-shared-onset law, the lower-tone

dominance rule, and the bounded variation space.** Idiom fidelity, and each is small.

9. RG-31 and RG-32: the Flores attribution and the amended substrate ruling. Flagged to the

director. It is a factual correction with a care dimension and it should not wait on the music work.

What we explicitly do NOT adopt: a humanise function, a global random timing spread, a "groove

template" applied by ear, and any per-note velocity randomisation. All four are the failure mode

section 2.4 documents. Variation in this program is composed, deterministic, and reported — or it does

not happen.

---

12. GAP NOTES

Deviations between the practice found above and the named files in our stack, as they stand at head.

The audit phase consumes this list. Each entry names the file, the observed state, and the practice it

departs from.

repository is harness/music_gen/instr_groove.py (line 115). pass2_plan.py, pass3_flores.py,

pass3_grammar.py, pass5_flores.py and pass7_flores.py do not import it. The metrical

hierarchy, the groove library, the density ladder, the accent function, the interlock rule and the

break window all exist and none of them has ever produced a note. Every other gap below is

downstream of this one.

a whole pattern.** The branch reads pat["vel_scale"] and pat["dur"] as scalars. Practice (the

velocity-ladder consensus across the drum-programming literature; ghost notes at 20–40 of 127,

hi-hats at a ~20-point spread with no two consecutive equal) requires at minimum a per-onset

velocity list. Ten layers in build/audio/pass5/plans/PASS5_FLORES_ROUNDS.json (B02B08,

M04, M05, M08) are ostinati and therefore dynamically flat by construction. B06, the shaker,

is 32 consecutive identical eighths.

vel = base_vel * vscale * (0.55 + 0.65 * intensity). Even where a pattern kind could vary

velocity, the only variation available above the pattern is a whole-layer section intensity. There

is no accent geography anywhere in a rendered cue. Deviates from Tenzer's "each stratum has its own

points of metric stress" and from the entire practitioner literature.

subdivision ratio, no per-voice offset, no phrase-periodic deviation. Deviates from Polak

(categorical non-isochronous subdivision at 27:33:40 with ~2% SD, stable across a 135→200+ BPM

range), from Naveda (systematic samba anticipation of the 3rd and 4th semiquavers), and from

Friberg & Sundström (tempo-dependent swing with a ~100 ms short-note floor). Note this gap is

DIRECTIONAL: the fix is a declared ratio, and the same literature (Frühauf; Davies; Madison &

Sioros) says the fix is emphatically NOT random jitter.

grid is built from subdiv equal positions per beat and figures are placed on integer fractions.

Deviates from London's maximal-evenness constraint, which exists precisely to license

non-isochronous beats and subdivisions, and from Polak's demonstration that such subdivisions are

metric rather than expressive.

sit at at_beat 0.0 with vel_scale 1.0 and at_beat 8.0 with vel_scale 0.7. Practice is

end-accented: Tenzer states stress is measured backwards from the final tone, which "receives the

strongest stress of all", with the gong marking that final convergence point and the midpoint taking

secondary stress; the kebyar literature says the gong gedé marks cycle CONCLUSIONS. We have built the

Western downbeat and labelled it colotomy.

Javanese lancaran runs kethuk every 2 beats, kenong every 4, kempul every 4 offset, gong at the

close, with one kempul deliberately omitted so the pattern is asymmetric. Our clock is a two-hand

clock with no hole. COUNTERPOINT_AND_VOICE_LEADING.md §7.3's own sentence — "smaller gongs

subdivide it at fixed positions" — is not realised by the plan that cites it.

period is 6.486 s, the interior stroke is 3.243 s away, and the every-fourth-cycle stroke is 25.9 s.

London's well-formedness constraint puts the upper bound for a metric level at roughly 1.5–2.0 s.

The layer whose declared function is to state the metre states nothing a listener can entrain to.

Meanwhile the Balinese working forms (gilak 8 beats, bapang 8, batél 4) would land at 3.24 s and

1.62 s — inside the window.

(continuous, timbrally distinct, unvarying pulse) from the gong (punctuation) and from the kendang

(leader). Our B01 is asked to be all three and is none of them; the pulse role is spread across

seven hand-typed ostinati with no accent.

scalar. Practice: the kendang wadon "typically tops the hierarchy of the ensemble, setting tempi and

aurally cuing transitions like a conductor"; the Javanese kendang "controls the tempo and rhythm of

pieces as well as transitions from one section to another"; kebyar's defining feature is explosive

change in tempo and dynamics. groove.break_window() is a subtraction, not an angsel, and the

program has no addition-before-a-boundary primitive at all (no fill, no pickup).

declares a "gong-waning ensemble at reference register — tuned hanging gongs, kettle gongs,

ceremonial drum" for a chapter (docs/spine/CH_03.md) that is unambiguously Manggarai: Wae Rebo,

Compang Ruteng, the lingko fields, the Todo royal ground, the caci. Gong waning belongs to **Sikka

Regency**, central-east Flores. The Manggarai ritual ensemble documented in the Celestial Harmonies

Manggarai-focused field recording is nggong-tembong (drum-gong), and caci is accompanied by

gong and gendang, with the musicians during a match usually women. This is a factual error and

a §17.1 collective-care issue (two distinct living cultures on one island flattened into one).

FLAG — director call, not this lane's to apply. (Citation review: both halves of this gap —

gong waning is Sikka's, CH_03 is Manggarai, and Manggarai's own ensemble is nggong-tembong with

gong-and-gendang caci accompaniment played by women — are CONFIRMED against the Celestial Harmonies

liner notes and the caci reference. The women's *tandak* chanting that this gap previously asserted

is UNVERIFIED and has been struck; see 7.2. The correction the director is being asked to make does

not depend on it.)

gongs" describes a gamelan-family gong chime. Gong waning is a graded family of small-to-medium

gongs struck with rubber-tipped wooden mallets, plus two single-membrane coconut-shell drums, plus

a bamboo *saur*/*peli anak* timekeeper; Manggarai's caci accompaniment is gong and gendang. Neither

is a kettle-gong chime, and neither card description mentions the bamboo timekeeper at all.

(REVISED on citation review: an earlier version of this gap asserted that gong waning's gongs are

hand-held and chest-damped and therefore contradict groove._marker()'s free-ring rule. That

playing description is not supported by any fetchable source — see 7.1 — so the _marker() ring

question is OPEN for this ensemble, not a confirmed contradiction. The card-vs-ensemble mismatch

stands on its own.)

The section says the lane "must not fill that gap and must not invent it" and settles for a generic

three-tier stratification. But published sources give the gong waning ensemble as **a graded family

of small-to-medium gongs named by relative size, two single-membrane drums of coconut stem and

dried hide, and a bamboo *saur* / *peli anak* timekeeper of roughly 1–1.5 m whose stated job is to

hold the rhythm**; and give Manggarai's own ensemble, its women performers, its ritual calendar

(Penti at roughly five-year intervals, caci running one to three days) and its named vocal forms

(raga, gezang, danding, sanda, ronda, mbata). The remaining genuine gaps are melodic and modal, and

the FINE organology. Supersede in place per the living-source rule; the ensemble-NAME half goes with

GAP-11 to the director. (Confidence note, REVISED on citation review: the sources visibly disagree

on gong count — four or five — and give three mutually inconsistent name lists; ensemble size is

eight in one source and unstated in the others. The centimetre measurements, the name list

*inan/depun/beit/udon/anak*, the nine-player count and the chest-damping description that stood

here previously were sourced to a Grove Music Online BROWSE-INDEX url — a navigation page with no

article text — and have been removed. Nothing organological finer than "a graded gong family, two

drums, one bamboo timekeeper" may enter a card until a named Grove article or an organological

monograph is read and cited by article.)

The branch enforces polos strictly on-beat and sangsih strictly off-beat with a single line, and

the file's own self-test R5 asserts as law that the two parts "share no onset". Documented practice:

nyok cok has both parts in UNISON on the pokok anticipation; kotekan empat typically strikes its

lowest and highest pitches SIMULTANEOUSLY; McPhee's semi-ochètan is defined by the parts meeting

on a unison; nyog cag is the only class our rule actually describes. The pitch-set logic for telu

and empat is correct; the rhythm logic is one of five classes hard-coded as all of them.

*kempyung* interval (the pelog fifth) "the lower tone has acoustic dominance" — a claim about that

dyad, not about interlocking parts in general (corrected on citation review; an earlier revision of

this gap mis-stated it as a kotekan rule). Our polos and sangsih layers carry independent

layer-level velocities (M02 at 84, M03 at 80 in the landed plan) with no rule connecting them

and no treatment at coincidence points, and no cue anywhere in the program encodes a velocity

relation for a simultaneous dyad of any kind. The kempyung case is the one this document can cite.

Tilley's *Making It Up Together* documents fixed AND flexible connections between polos and sangsih

and shows kotekan being improvised. groove.interlock() displaces deterministically "in the kotekan

idiom rather than by jitter" — the right instinct — but there is no bounded variation space, and

notes_for(..., variation=n) is not used for interlocking parts at all.

per layer; sections carry intensity, harmony_variant, pokok_variant and cut, but no density

level. Practice gives five levels at 1 / 2 / 4 / 8 / 16 elaborating notes per structural note, with

tempo (*laya*) as a SEPARATE axis. This is already boarded as item 7 of

COUNTER_MELODY_AND_DIALOGUE.md's operations ledger and remains unbuilt.

The exclusion is reasoned and the reasoning is sound, but the consequence is that the composite has

been exactly 0.0000 in all six rendered cues (instr_groove.py's own headline) with no rule

firing. The empirical construct in Witek et al. and in Sioros et al.'s polyphonic follow-up is the

composite. We measure it, print it, and never refuse it.

bar-downbeat, on-beat, off-beat. There is no ghost tier below the off-beat tier, no variance

requirement, and no dependence on anything except position — so two adjacent off-beat strokes are

guaranteed identical, which RG-03 refuses.

exactly 1.** The rule is guarding against the wrong end of the range. Every ostinato in the Flores

plan carries a single dur. Tappability in the source rule (SNES_JRPG_SCHOOL.md ECON-07) depends

on the pattern being recognisable tapped without pitch, and a pattern with no duration contrast and

no dynamic contrast is not recognisable, it is a pulse train.

beat 0 of the Flores cycle simultaneously. Danielsen's beat-bin analysis measures 55–80 ms between

kick and bass in a groove that is still heard as one beat. Zero asynchrony is a choice our stack has

never made explicitly.

timing perception. In the Flores plan, B02 (bass drum) plays 4 strokes per 16-beat cycle at one

velocity and M06 (bass line) is a pokok at one note per several beats. Neither is an articulate,

dynamically varying voice on the tactus. Nothing in the program states that it must be.

runs at 148 BPM; the entrainment/urge-to-move literature puts the optimum around 100–120 BPM. This

may well be the right authored choice for a ceremonial-drive cue, but it is currently an unexamined

default rather than a recorded trade.

file's header says that "where the palette carries a tradition-named instrument (conga, bongos,

agogo_bells, sfz_palette.py:456-462, :504-517) this module does not reach for it". The landed

Flores plan's layer M08 is agogo_bells. The rule and the artefact disagree; one of them should

move.

"additive rhythm is a highly problematic concept for African music" and a default grouping mechanism

of transcribers. The file's refusal to attribute the figure to any living tradition is correct and

should stand; the theoretical label attached to it should not.

swept rather than the instance.** The independent citation review of 2026-08-08 (logged at the head

of section 9) found six defects, and five of them share one root cause: **a claim was written at

the confidence of the paragraph it sat in rather than at the confidence of the source behind it.**

The worst instance hung five specific organological facts on a Grove Music Online *browse-index*

url — a navigation page with no article text — and carried them at "MEDIUM confidence" instead of

refusing them. The others attached a paper's title to a different paper's url, added an author who

was not on the paper, generalised a quote from the interval it described to a technique it did not,

and read a tempo-dependent shift as a performer range. None of these would have been caught by any

gate we own, because we have no gate that reads a citation. Two rules follow, and they are cheap:

(1) a url that cannot contain the claim cannot be its source — browse pages, search pages and

journal front pages are never citations; (2) **every numeric or named specific carries the

verification state of the source it came from**, so a paywalled source yields a confirmed CITATION

and an unconfirmed FINDING, and the document must say so at the point of use rather than in a

footnote. Both are enforceable by eye at authoring time and by a critic at review time. This gap is

the audit's and the lane's, not the composer's.

Gamelan Bali forms table (connection refused), the eCampusOntario gilak lecture-demonstration

transcript (403), the openwa Balinese gamelan chapter (403), and the Javanese gamelan glossary

(self-signed certificate) are all listed in SOURCES and none was read directly. The gilak/bapang/

batél and lancaran/ketawang/ladrang stroke schedules are reported here from indexed summaries at

MEDIUM confidence and **must be re-fetched and verified before any of them is transcribed into

pass2_realise.py or a plan generator.** This gap is the audit's, not the composer's.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root