music/COUNTERPOINT_AND_VOICE_LEADING.md
CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
Canon served: the composition floor atdocs/spine/DECISIONS_PENDING_JOSH.md(commitda627060), and the
interlocking-polyphony anchors ofdocs/spine/CH_04.mdanddocs/spine/CH_11.md.
If this document disagrees with canon, CANON WINS and this document is the defect.
TIER: RESEARCH SYNTHESIS — PROPOSAL-TIER. This document is HOW, never WHAT. It sets no canon, names
no region content, and changes no spine or registry row. Every substantive claim carries a source
(URL, or book plus author plus chapter); where sources disagree the disagreement is stated; where a
statement is craft consensus rather than evidence it is labelled CRAFT CONSENSUS. Every principle
carries a PIPELINE HOOK line declaring whether our stack can COMPOSE it as a constraint, MEASURE it
from the formula card, or neither — and where neither, the missing measurement is named rather than
proxied.
WHAT THIS LANE ANSWERS. Josh's composition floor says a track may carry dozens of layers and an
orchestra's worth of instruments, and then says the thing that makes the whole floor hard: there
cannot just be stacked noise. Layer count is not the variable. Forty layers that fuse into one
undifferentiated mass and forty layers that read as an orchestra differ only in whether the layers
are perceptually separable and whether each one is doing something a listener could follow. That is
counterpoint and voice-leading, and it has an actual science under it, not just a rulebook.
Fux's Gradus ad Parnassum (1725) is the source text; the standard English partial translation is
Alfred Mann's The Study of Counterpoint, and the Latin original is on IMSLP
(https://imslp.org/wiki/Gradus_ad_Parnassum_(Fux,_Johann_Joseph); biography and reception at
https://en.wikipedia.org/wiki/Johann_Joseph_Fux). The five species are a graded curriculum, and each
grade isolates exactly one problem.
independence of two lines: how to begin, how to end, and how to keep the second line from being
heard as a thickening of the first (https://viva.pressbooks.pub/openmusictheory/chapter/first-species-counterpoint/).
therefore the idea that a dissonance is legal when its approach and departure make it a
by-product of stepwise motion rather than an event
(https://en.wikibooks.org/wiki/Music_Theory/Counterpoint/Species_Counterpoint).
cambiata. This is where a line acquires interior shape rather than merely legal notes.
tonal music, taught as a three-part object: preparation, suspension, resolution
(https://hellomusictheory.com/learn/species-counterpoint/).
PACING: when to be plain and when to be busy inside one line.
CRAFT CONSENSUS, with a real split in the sources. Film composer Robin Hoffmann states plainly that
thorough knowledge of classical counterpoint sharpens musical understanding but that the strict
classical rules have little application in modern film writing
(https://www.robin-hoffmann.com/dfsb/classical-counterpoint-in-film-scoring/). Beth Denisch, whose
Contemporary Counterpoint: Theory and Application is the Berklee text, argues the opposite emphasis
— that contrapuntal principles transfer intact into film, rock and EDM, and that what changes is the
style layer, not the principles
(https://online.berklee.edu/takenote/contemporary-counterpoint-interview-beth-denisch/). Both are
practitioner positions, not evidence.
The reconciliation this lane adopts, and the reason is section 2: the rules that survive are the ones
Huron shows to be derivable from PERCEPTION, because those are about whether a listener can hear two
things at once. The rules that do not survive are the ones that encode a specific historical style
— the modal cadence formulas, the prohibition on the unaccented unison, the ban on the melodic
tritone, the requirement that a piece begin and end on a perfect consonance, the strict ratio of
consonance types. Those are Palestrina-idiom constraints, and a game score that obeys them sounds
like a conservatory exercise, which is a different failure from stacked noise but still a failure.
perfect consonances as a fusion hazard; dissonance as a prepared and resolved OBJECT; the rule
that each line must be singable on its own.
the cantus-firmus-shaped melodic arch; the prohibition on leaping to and from dissonance in a
gesture that a modern ear reads as an appoggiatura.
harness/music_gen/compose_arm_b.py already carries a voice_chord(sym, tonic_pc, low, high, n, prev=...) routine that chooses each voicing by minimum
total motion from the previous one rather than by root-position stacking. That is first-species
discipline expressed as code, and it is the right place to add the surviving rules as filters on
the candidate voicing set rather than as post-hoc checks.
David Huron, Tone and Voice: A Derivation of the Rules of Voice-Leading from Perceptual Principles,
Music Perception 19(1), 2001, pp. 1-64
(https://online.ucpress.edu/mp/article/19/1/1/62106/Tone-and-Voice-A-Derivation-of-the-Rules-of-Voice),
expanded as Voice Leading: The Science Behind a Musical Art, MIT Press 2016 (review:
https://rpm-ns.pt/index.php/rpm/article/download/320/509/1069). Six core principles account for most
of the traditional rule set:
between F2 and G5. Outside that band a note is a colour, not a voice.
roughly 800 milliseconds break the perceived continuity of a part.
simultaneous notes must be spaced more widely as register descends.
them between parts intended to be heard as separate.
fracturing into two apparent voices.
amounts fuse; independent contours segregate.
The derivations that matter to us fall out directly. Registral compass and textural density limits
come from toneness plus masking. Chord spacing — wide low, close high — is minimum masking. Common-
tone retention and conjunct motion are pitch proximity. The parallel-fifths and parallel-octaves
prohibitions are tonal fusion plus co-modulation acting together, which is why parallel motion at a
third or sixth is harmless and parallel motion at a fifth is not: the interval is the fusion hazard,
the parallelism is the co-modulation hazard, and the classic error stacks both.
This is the part the rulebooks state as prohibition and the literature states as mechanism. A perfect
fifth's two fundamentals coincide at low harmonic-series positions (2:3), an octave at 1:2, a unison
at 1:1, so their partials overlap heavily and the auditory system's harmonicity cue votes to fuse
them into one complex tone. Huron ties the prohibition specifically to preserving perceptual clarity
of individual voices by avoiding tonal fusion, and notes the desirability of fusion is context-
dependent: Debussy and Chopin use parallel fifths deliberately, and Huron's reading is that they
WANTED the fused, single-voice colour (summarised at
https://en.wikipedia.org/wiki/Consecutive_fifths and
https://www.schoolofcomposition.com/whats-wrong-with-parallel-fifths/). The octave case is even
starker: because an octave is the same pitch class in another register, a passage in parallel octaves
temporarily REDUCES the voice count — in a two-part texture one voice simply disappears
(https://www.ars-nova.com/cpmanual/independence.htm).
The operational consequence for us is not a ban. It is a switch. Parallel fifths and octaves are the
instrument for deliberately COLLAPSING two layers into one thicker layer — an organum colour, a
power-chord brass mass, a doubled hero statement. Used unconsciously across forty layers, they are
exactly the mechanism by which forty layers become one wall.
parts is computable from the symbolic score before render, and should be classified into DECLARED
(a fusion the card asked for) and UNDECLARED (a defect), the same declared-versus-undeclared
discipline compose_arm_b.py already applies to verbatim repeat runs. From RENDERED audio the
formula card cannot see this at all: lane_analysis reads ten spectral bands, and the card's own
method note says bands are not instruments. Detecting parallel perfects in a generated render needs
multi-f0 polyphonic transcription, which is the single largest measurement gap in this lane.
Contrary motion (voices move oppositely), oblique (one holds, one moves), similar (same direction,
different interval), parallel (same direction, same interval) — definitions and the associated
prohibitions on direct and hidden fifths and octaves, on voice crossing and on voice overlap, are set
out with their exceptions at https://www.ars-nova.com/cpmanual/independence.htm. Two of these deserve
comment because game scoring gets them wrong in a specific way.
outer voices — is a weaker version of the same fusion hazard, and the traditional exception is
instructive: it is tolerated when the upper voice arrives by step. Step arrival preserves pitch
proximity for the upper stream, so the stream survives the fusion moment.
reassigns the crossed notes to the wrong parts. McAdams notes that sufficient TIMBRAL difference
between the instruments defeats this, which is why orchestral practice crosses voices freely when
the parts have distinct timbres (https://mtosmt.org/issues/mto.22.28.3/mto.22.28.3.mcadams.html).
This is a licence our SFZ palette can actually cash: crossing is safe between a plucked part and a
bowed part, and unsafe between two string sections.
parallel) is trivial from the authored score and is a strong single-number health check on a
homophonic-leaning texture. CRAFT CONSENSUS target rather than measured law: a texture claiming
independent voices should not be running above roughly half its adjacent-part motion in the
similar-plus-parallel category.
This is the section that governs most of what a game score actually is. Almost nothing in a modern
score is strict counterpoint; most of it is melody plus sustained harmony, and the difference between
a live-sounding pad bed and a dead one is entirely interior.
Two mechanisms, both from section 2. First, a block chord that changes all voices simultaneously in
the same direction is maximal pitch co-modulation, so the chord fuses into a single object with no
interior — there is nothing to follow. Second, temporal continuity is satisfied trivially by a
sustain but the stream carries no INFORMATION, so attention has nothing to track and the texture
recedes to background. Bregman's framework treats this directly: perceptual organisation groups
sound into events and streams, and a stream with no differentiating change is simply absorbed
(Bregman, Auditory Scene Analysis, MIT Press 1990; encyclopedia summary at
https://themusiclab.github.io/bregman-archive/pdf/2008-New-Encyclopedia-Neuroscience.pdf).
the standard prescription and the reason smooth voice-leading reads as sophisticated rather than
merely correct (https://learningmole.com/using-music-theory-to-explore-film-scoring/).
the tune and often in contrary motion to it. Because it is contrary and rhythmically offset, it
breaks co-modulation and creates a second followable stream at low cost.
change becomes a dissonance and resolves down by step, and a chain of them makes harmonic rhythm
audible without any new instrument entering.
changing harmony is oblique motion by definition, and oblique motion is the cheapest guaranteed
independence in the catalogue (https://filmmusictheory.com/article/pedal-point/,
https://en.wikipedia.org/wiki/Pedal_point).
continues while the timbre stream changes. Our own doctrine already names both at
docs/proposals/MUSIC_COMPOSITION_DOCTRINE.md section 5.3 as the cheapest way to make a short tune
survive long form; the perceptual reason is that sequential grouping binds on pitch proximity while
segmental grouping chunks on timbre change, so the two cues are deliberately put in opposition.
non-melody part carries stepwise motion in every bar where the harmony is static. As a measure: the
formula card's texture_and_density.note_rate_per_s combined with melodic_salience is a blunt but
real proxy — a high sustained voiced_fraction with a low note_rate_per_s and a high
melodic_salience is the signature of melody-over-dead-pad. GAP: the card cannot separate inner-
voice motion from melody motion, because extract_melodic_line in harness/music_gen/feature_rig.py
is explicitly a PREDOMINANT-pitch tracker and harness/music_gen/to_midi.py declares in its own
header that polyphony below the predominant voice is dropped. Inner-voice liveness is therefore
measurable in the authored lane and NOT measurable in a generated render.
The reason this section exists: every device below raises perceived complexity by adding STRUCTURE
rather than by adding energy in new frequency bands. That is precisely the trade Josh's floor
demands.
content per voice, but the listener hears a relationship, and relationship is what reads as
craft. The delay itself is the information.
overlap (https://www.puzzlecanon.com/glossary). Because the entries crowd, stretto is the natural
intensifier for a boss phase transition — it raises density without a single new instrument.
octave, thirds become sixths and sixths become thirds; at the twelfth the sixth becomes the
problem interval, since it inverts to a seventh (https://www.teoria.com/en/reference/i/invertible-counterpoint.php,
https://rothfarb.faculty.music.ucsb.edu/courses/103/invertible-cpt.html,
https://musictech.ithaca.edu/MusicTech/ICTheory/OnlineText/Form/Unit%20I/InvCpt/DblCpt.html). For an
adaptive score this is the highest-value classical device we have: a pair written invertibly gives
two genuinely different-sounding statements of the same material, which is exactly what the 3-to-5
cycle variation law asks for, at zero new asset cost.
produces a composite faster and more intricate than any part, and each part is sparse — the
cheapest possible complexity per unit of spectral occupancy. Section 7 treats the living traditions
that use it as a first-class system rather than an effect.
across Middle Eastern, Balkan and Indonesian practice, and hard to describe in Western terms
precisely because it has no direct Western written analogue (Pärtlas, Theoretical Approaches to
Heterophony, Res Musica 8, 2016, https://resmusica.ee/wp-content/uploads/2017/04/rm8_2016_44-72_P%C3%A4rtlas.pdf;
https://en.wikipedia.org/wiki/Heterophony). Musically it is a middle setting between unison and
counterpoint: the parts share identity so they never fight, and differ in detail so they never
fuse.
compose_arm_b.py already models: it has a Cell object with interval and duration vectors, a
motif corpus loaded as interval spines, and a Score in absolute beats. Canon, stretto, inversion
and hocket are transformations of a Cell placed at offsets in a Part; invertible counterpoint
is a constraint on the interval census between two Part objects. MEASURE, partially: an imitative
or hocketed texture raises motif_economy.interval_3gram_repetition and
interval_4gram_repetition while keeping the verbatim-bar-run tooth quiet, so the existing card can
distinguish imitation from tiling. It cannot tell canon from unison doubling.
McAdams's taxonomy of orchestral grouping effects (Music Theory Online 28.3, 2022,
https://mtosmt.org/issues/mto.22.28.3/mto.22.28.3.mcadams.html) organises the whole problem into three
levels, and it is the most directly useful single source in this lane.
within roughly 30 to 50 milliseconds, harmonicity, and parallel change in pitch and loudness. The
three outcomes are named: timbral AUGMENTATION (one dominant instrument coloured by others),
timbral EMERGENCE (a genuinely new sonority whose components cannot be identified), and timbral
HETEROGENEITY (synchronous, harmonically related parts that stay separate because their timbres
differ enough).
timbre, register and dynamic integrate a stream; contrast segregates. Two failure-adjacent
outcomes are named and both are legitimate: SURFACE TEXTURE INTEGRATION, where many parts merge
into one shimmering surface nobody tracks individually, and STRATIFICATION, the foreground-
middleground-background layering that Koechlin analysed via extensity (apparent auditory size) and
intensité (inherent force).
juxtapositions, and sectional boundaries marked by orchestration change.
The direct reading for a forty-layer track: stacked noise is SURFACE TEXTURE INTEGRATION arrived at
by accident. The fix is not fewer layers, it is deliberate STRATIFICATION — assigning each layer a
declared tier and giving the foreground tier the cues (onset asynchrony against the mass, timbral
contrast, independent contour) that pull it out of the surface. McAdams's 2025 empirical follow-up on
blend in real orchestral excerpts is the evidence layer under this
(https://journals.sagepub.com/doi/10.1177/20592043251326391).
role — compose_arm_b.py's Part dataclass already has one — and the render pass is required to
give foreground roles at least one segregation cue that no background role has. Measure: the card's
lane_analysis.interlap_matrix is the closest existing quantity. On EX_124 the low_mid-to-mid
overlap is 0.9694 and mid-to-air is 0.9065, which says the mid and upper regions are occupied
simultaneously almost the whole time; the sub band's overlaps sit near 0.10, which says the bottom
is used as an event, not a bed. That contrast is exactly the shape a stratified track should have,
and a flat high-overlap matrix across all ten bands is the measurable signature of the wall.
The pedagogical rule keeps adjacent upper voices within an octave while allowing more than an octave
between bass and tenor, justified by the harmonic series: intervals between low partials are wide and
narrow as the series ascends, so chord spacing that mimics the series rings and spacing that does not
muddies (https://musictheory.pugetsound.edu/mt21c/RulesOfSpacing.html,
https://www.orchestrationresources.com/introduction-chapters/chapter-5b-spacing-and-balance). Huron's
minimum-masking principle gives the same answer from the other end: equal energy per critical band
requires wider spacing as register descends.
The low interval limit chart is the craft form of this. Published charts list, per interval, the
lowest position at which it can sound without mud, and every source that carries one attaches heavy
caveats — Funnell's chart states in its own footnote that these are loose guidelines, that instrument
and dynamic change the answer, and that deliberate violation for effect is legitimate
(https://funnelljazz.eu/wp-content/uploads/2020/12/Low-Interval-Limits.pdf); Hoffmann adds that
mud depends on dynamic and on how many upper partials the timbre carries, so soft low string
voicings are far more forgiving than loud low brass
(https://www.robin-hoffmann.com/dfsb/low-interval-limits/). The published charts are images and the
pitch values differ between sources, which is itself the honest finding: there is no single canonical
table.
So compute ours. Sensory roughness peaks when two partials fall within one critical band, with
maximum roughness near a quarter of the critical bandwidth (Plomp and Levelt 1965; the standard
computational treatment is Sethares, Tuning Timbre Spectrum Scale,
https://sethares.engr.wisc.edu/consemi.html, with the pairwise curve and its parametrisations
discussed at https://www.uni-weimar.de/kunst-und-gestaltung/wiki/images/Dissonance_Model_Toolbox_in_Pure_Data.pdf).
Using the Glasberg and Moore equivalent-rectangular-bandwidth formula, ERB(f) = 24.7 times
(0.00437 f + 1) Hz, the lowest pitch at which an interval's two FUNDAMENTALS separate by at least one
ERB comes out as:
| interval | lowest pitch clearing one ERB | fundamental | ERB at that pitch |
|---|---|---|---|
| minor 2nd | never, at any audible register | — | separation always below one ERB |
| major 2nd | A6 | 1760.0 Hz | 214.7 Hz |
| minor 3rd | D#4 | 311.1 Hz | 58.3 Hz |
| major 3rd | E3 | 164.8 Hz | 42.5 Hz |
| perfect 4th | A2 | 110.0 Hz | 36.6 Hz |
| tritone | E2 | 82.4 Hz | 33.6 Hz |
| perfect 5th | C2 | 65.4 Hz | 31.8 Hz |
| minor 6th | G#1 | 51.9 Hz | 30.3 Hz |
| major 6th | F1 | 43.7 Hz | 29.4 Hz |
| minor 7th | D1 | 36.7 Hz | 28.7 Hz |
| octave | A#0 | 29.1 Hz | 29.1 Hz |
Two honest notes. This computed floor is MORE conservative than the published craft charts for the
narrow intervals, because it looks only at the two fundamentals and ignores that in a real timbre the
fundamental is often not the dominant partial and that higher partials supply their own separation.
And the minor-second result is not a bug: a semitone's frequency difference grows more slowly with
register than the ERB does, so a minor second between two fundamentals is inside one critical band
everywhere. That is the physical statement of why a semitone always beats, and it is also why a
semitone clash is an EXPRESSIVE object rather than a spacing choice.
authored score, evaluated per simultaneity, and it belongs in compose_arm_b.py beside
voice_chord as a filter on candidate voicings with a per-part licence to violate when the card
declares a mud effect. MEASURE, weakly: the card's register.octave_band_profile and
lane_analysis.register_spacing_octaves describe energy distribution but cannot see which two
notes are a minor third apart at 90 Hz.
CRAFT CONSENSUS with strong practitioner agreement. The named failure is dogpile orchestration —
choosing a note and having everyone pile onto it — and its companions: doubling the third of a triad
in too many voices because piano and guitar voicings tolerate thirds and orchestras do not, and
misjudging balance by counting players rather than weighing register and dynamic
(https://vi-control.net/community/threads/most-common-orchestration-mistakes.88073/,
https://www.evenant.com/articles/3-beginner-orchestration-mistakes). The same threads land the
sharpest single sentence available on this whole lane: the root problem is usually not orchestration
but harmony, voicing, voice-leading and weak melody, and orchestration cannot rescue a compositional
defect. Our own doctrine section 5.3 already states the balance-is-register-dependent rule and the
avoid-over-doubling-the-third rule; this document supplies the perceptual why: a doubled third at
close spacing in the low-mid puts three or four partial sets in the same critical bands, which is
minimum-masking violation, and it fuses by harmonicity, which is a tonal-fusion violation.
many parts sound each chord member, and flag third-doublings above a declared threshold and any
doubling that also lands inside the ERB floor. MEASURE: none available; band energy cannot report
chord-member identity.
Non-chord tones are dissonances with defined approach and departure: the passing tone is approached
and left by step in the same direction; the neighbour steps away and returns; the appoggiatura is
approached by leap and resolved by step, and is accented; the suspension is prepared as a consonance,
held into the new harmony where it becomes dissonant, and resolves down by step; the anticipation
arrives early (https://pressbooks.pub/harmonyandmusicianshipwithsolfege/chapter/nonharmonic-tones/,
https://elliotthauser.com/openmusictheory/embellishingTones.html,
https://www.ars-nova.com/cpmanual/dissonancerules.htm). Palestrina's dissonance handling is regular
enough that machine learning has recovered its rules from the corpus as explicit symbolic constraints
(https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10319261/), which is direct evidence that this
vocabulary is formalisable and therefore encodable in our authored lane.
Josh asks explicitly for harmonies AND clashes. The distinction is not the amount of dissonance; it is
whether the dissonance is a structured event. Four discriminators, the first three derivable from the
sources above and the fourth from section 5:
device; one that arrives differently on every occurrence reads as noise. This is what the
species vocabulary actually encodes.
two beats is a colour; the same semitone for a sixteenth in passing is a mistake-shaped event.
hypothesis for harmony: masterpieces PLACE a surprise chord at a position, they do not sprinkle it
(docs/proposals/music/MASTERPIECE_PROGRAM.md section 11.5).
region is already beating reads as mud; the same minor second at E5 over a clean low register reads
as a deliberate bite. Same interval, different verdict, and the difference is computable.
vocabulary above from its own approach and departure intervals, and anything unclassifiable is
either an authored exception carrying a declared reason or a defect. MEASURE — GAP, and this is the
second big one. Sensory roughness IS computable from rendered audio via the Plomp-Levelt-Sethares
spectral model, and a roughness-over-time curve would tell us where a track clashes and how hard,
which the current card cannot report at all. It would NOT tell us whether the clash resolved,
because that needs the symbolic layer.
Three living traditions are canon-anchored in the slice, so they enter here as counterpoint systems
with their own theory, not as colour. Canon anchors: docs/spine/CH_11.md line 237 names the Baka and
Aka polyphonic yodelled counterpoint and the liquindi water-drumming and the molimo forest-song,
drawn from the documented tradition at reference register with no reproduction of protected sacred
music; docs/spine/CH_04.md line 242 names the interlocking kotekan register rising at the
shadow-duel; docs/spine/CH_02.md line 234 and docs/spine/CH_03.md line 245 name the Flores
gong-waning tradition at reference register, and
_source/02_Tier_2_Region_Pages/flores_island.md Section 10 names its interlocking-cycle structure
and flags that the gong-waning musical theory is thin in the processed corpus.
Simha Arom's African Polyphony and Polyrhythm: Musical Structure and Methodology (Cambridge, 1991)
established the analytical method — treating the music as a grammatical system and separating the
invariant model from its realisations — and Arom's own assessment is that the polyphonic complexity
of this repertoire was reached in Europe only in the fourteenth century
(https://en.wikipedia.org/wiki/Simha_Arom, https://www.cirmmt.org/en/events/distinguished-lectures/arom).
Susanne Fürniss's Aka Polyphony: Music, Theory, Back and Forth analyses the system as four named
constituent parts, each with distinctive features: mòtángòlè, the principal voice; ngúé wà lémbò,
functioning roughly as a bass; òsêsê, a middle voice; and dìyèí, literally yodel, the upper part sung
by women. Each part carries its own essential melodic pattern with tones systematically located at
specific positions in the cycle, and the whole sits inside an anhemitonic pentatonic system in which
melodic minor seconds never appear as such. The dìyèí is defined by the yodel technique itself — a
constant alternation between laryngeal mechanisms one and two. Analytically, the opening of a cycle
is dominated by derivations of mòtángòlè and òsêsê, while middles and ends are dominated by segments
derived from dìyèí (https://www.semanticscholar.org/paper/2badb87022a5f88145038b2fcd9f94ff1813618b;
the HAL full text at https://shs.hal.science/halshs-00453689/document was access-blocked at time of
writing and the analysis above is from the indexed abstract and figure captions, which is a weaker
citation and is declared as such).
The rules that transfer, stated as composition constraints:
happens within a fixed period rather than by extending the form.
arbitrarily. This is contrapuntal variation over a shared model, which is the same idea as
heterophony operating on four models at once instead of one.
independent parts cannot produce the minor second that section 5.2 shows is always inside one
critical band. The scale is doing the anti-mud work that spacing rules do in orchestral writing.
identifiable by its VOCAL MECHANISM, which is a timbre cue in McAdams's sense, so it stays a
separate stream even when it crosses others in pitch.
liquindi consistently report voices entering successively, each with its own repeating melody and
its own rhythm and cycle, converging into one song
(https://en.wikipedia.org/wiki/Baka_music, https://thekidshouldseethis.com/post/baka-forest-people-water-drumming).
Popular-source descriptions of this repertoire are uneven in quality and the ethnomusicological
sources are the ones to weight.
inventory and a set of cycle positions it may occupy, and a variation operator that reorders or
substitutes within the part's own inventory. That is directly expressible in the Cell plus Part
model. MEASURE: motif_economy.recurrence_lag_s should land at the cycle length and
duration_and_structure.repeat_map should show high similarity with the cycle as its period — a
real, checkable prediction.
Kotekan is two interlocking parts, polos and sangsih, each incomplete alone, whose composite reads as
one line faster than any single player could produce; polos is generally on-beat and sangsih generally
off-beat (https://en.wikipedia.org/wiki/Kotekan). The named figuration types are precise rules, not
styles:
the middle pitch shared in unison.
shared pitch, and the outer notes typically struck together.
elaboration is locked to a slower structural melody rather than free.
Two things make this the single most valuable non-Western import for our problem. First, it is
hocket with an explicit pitch-allocation rule, so the complexity is generated by CONSTRAINT rather
than by addition. Second, the shared middle pitch in kotekan telu is a deliberate fusion point in an
otherwise segregated texture — the two parts touch, then separate — which is exactly the controlled
use of fusion that section 2.2 argues for.
Given a pokok line and a subdivision factor, kotekan telu and empat are deterministic part-splitting
functions. Two thin parts, one dense composite, no new spectral territory. MEASURE:
tempo_and_time_grammar.groove.onset_rate_per_s rises sharply while per-part note density stays
low — but the card measures the mix, so the per-part half of that check only exists in the authored
lane.
Javanese and Balinese gong-chime practice organises time colotomically: the largest gong marks the
cycle, and smaller gongs subdivide it at fixed positions, so the metrical structure is stated by
INSTRUMENTATION rather than by accent (https://www.newworldencyclopedia.org/entry/Gamelan,
https://www.britannica.com/art/gamelan; Sumarsam on temporal and density flow,
https://sumarsam.faculty.wesleyan.edu/files/2023/01/4_Temporal_and_Density_Flow.pdf). Imbal is the
Javanese interlocking technique, described by Yampolsky as a simpler form of unimprovised hocket, and
it produces its rippling effect at moderate to fast irama levels (https://grokipedia.com/page/imbal —
a lower-tier aggregator source, flagged; the Yampolsky attribution should be confirmed against his
own writing before this line is treated as settled).
For Flores gong waning specifically, the canon page already declares the substrate thin. This lane
does not fill that gap and must not invent it. What it can say is structural and general: a
gong-chime ensemble gives us a ready-made STRATIFICATION — a cycle-marking layer, a slow structural
melody layer, and a fast elaborating layer — which is the same three-tier foreground-middleground-
background architecture McAdams describes, arrived at independently.
it is a few lines against Score's absolute-beat model and gives a track an audible formal clock
without a drum kit. MEASURE: colotomic articulation should appear in the card as periodic
low-band events — lane_analysis.entry_exit_map segments for the sub and low_bass lanes recurring
at the cycle period — which is one of the few non-Western structural features the current card can
actually see.
CRAFT CONSENSUS, assembled from the pedagogy sources cited throughout rather than from a curriculum
survey; treat as informed synthesis, not evidence.
its first grade on this and nothing else. The self-taught failure is a beautiful melody over parts
that are chord-tone filler nobody could sing.
failure is dissonance as a texture setting.
that the skeleton is correct. Our doctrine already asks for this at section 5.3. The self-taught
failure is a page that has no skeleton, which is the technical definition of stacked noise.
returning to the same diagnosis: composers who cannot hear the balance count instruments instead.
that masterpieces step complexity at structural boundaries and hold it flat inside sections, with
variation coming from orchestration rather than constant churn — is the same claim from the
measurement side, and EX_124's complexity_law.boundary_step_share of 0.333 is a datum against it,
not for it, which is worth noting honestly.
layering. A game layer must be musically complete when the layers above it are muted, which is a
constraint no concert score ever faces. Vertical layering requires all stems to share tempo, metre
and harmony (https://www.thegameaudioco.com/making-your-game-s-music-more-dynamic-vertical-layering-vs-horizontal-resequencing,
https://splice.com/blog/adaptive-music-video-games/). Counterpoint is the discipline that makes this
possible rather than merely legal: a texture built from independent, individually-singable lines
degrades gracefully when lines are removed, and a texture built by dogpile doubling collapses into
a fragment of itself.
Stated plainly, because a proxy invented to fill a gap is worse than the gap.
build/audio/exemplars/formula_cards/*.json: register distribution and spacing in octaves; band-pair simultaneity via interlap_matrix; lane entries and exits; onset
rate; melodic salience and voiced fraction; the predominant melodic line's contour, interval
vocabulary and range; motif recurrence and n-gram repetition; sectional structure and repeat map;
complexity per bar and its step map; dynamics arc; loop seam. These support stratification checks,
wall-detection via a flat interlap matrix, and cycle-period verification.
chord-member doubling, voice crossing, cadence census and dissonance classification all require
knowing WHICH NOTES ARE SOUNDING, not which bands are energised. The current rig is explicitly a
predominant-pitch tracker (harness/music_gen/feature_rig.py extract_melodic_line), and
to_midi.py declares in its own header that it drops everything below the predominant voice. The
2025 multi-instrument transcription challenge results state the honest position: several systems
now beat the MT3 baseline, but dense polyphony and timbrally similar instruments remain the
persistent weaknesses, and all systems degrade as instrument count rises
(https://ai4musicians.org/transcription/2025transcription.html, https://arxiv.org/pdf/2603.27528;
survey at https://arxiv.org/html/2406.15249v1). For a forty-layer orchestral render this gap will
NOT close by transcription alone in the near term.
9.2 dB with per-source fine-tuning, and the six-source variant adds piano and guitar with the piano
source acknowledged as weak (https://github.com/facebookresearch/demucs). Separating first and
transcribing the separated stems is the standard path, and per-stem monophonic tracking is far more
reliable than polyphonic transcription of a mix. This is worth building, with the honest caveat
that Demucs is trained on popular-music stems and orchestral separation is out of its distribution.
Plomp-Levelt-Sethares model is implementable directly from an STFT and needs no transcription: sum
pairwise roughness over detected partials, frame by frame. This is the CHEAPEST high-value
measurement addition in this document and it speaks directly to the clash question.
motif_economy and repeat_map usechroma and MFCC self-similarity, so a motif restated a fourth higher scores as new material. A
transposition-invariant recurrence plot — cross-correlating chroma across all twelve rotations and
taking the maximum — would let the card see sequence and development, which is precisely the
device that satisfies the 3-to-5 cycle variation law without adding an instrument. Currently the
card would score a good sequence as a novelty event and a bad one identically.
method note says so: two instruments in one octave read as one lane and one instrument spanning two
octaves reads as two. Non-negative matrix factorisation over the spectrogram would give component
activations that approximate part count and per-part sparsity, which is what the hocket and kotekan
checks in section 7 actually need. NMF components are not instruments either, and the honest tier
of that measurement must say so on the artifact the way lane_analysis.confidence already does.
The asymmetry is the practical conclusion. Almost every principle in this document is expressible as
a CONSTRAINT on authored symbolic material, and only about half are recoverable as MEASUREMENTS from
rendered audio — and the measurable half is mostly the coarse half. A principle enforced at
composition time is guaranteed; a principle checked after generation is a rejection filter that
throws away tokens. For a text-prompted generator such as Stable Audio 3 or ACE-Step, no counterpoint
constraint can be enforced at all — the prompt can request imitation or interlocking and the model
may or may not deliver, and the only recourse is a post-hoc filter built on the gaps above. That
argues for the authored lane carrying the contrapuntal load and the generative lane carrying beds,
colour and ambience, which is what our current split already does; this document supplies the
technical reason it is the correct split rather than merely a convenient one.