Note-producing modules. Each composer takes a beat context, consults trust/regime state, and emits zero or more notes through the cross-layer emission gateway. Composers live in a loose hierarchy -- measure-level orchestration (MeasureComposer) drives note-level choices (ChromaticComposer, PentatonicComposer, ModeComposer, etc.), which may in turn consult sub-composer utilities (voice/, chord/, motif/).
Composers are consumers of conductor signals, never producers. They never mutate conductor state. Emission goes through crossLayerEmissionGateway.emit(...) -- no direct buffer writes.
MeasureComposer.js/HarmonicRhythmComposer.js-- top-level orchestrators invoked per measure/beat<Style>Composer.js-- scale/mode-style producers (ChromaticComposer,PentatonicComposer,ModeComposer,ModalInterchangeComposer,QuartalComposer,BluesComposer)voice/-- per-voice note selection + voice-leadingchord/-- chord quality selection + voicingmotif/-- motif tracking, quote detection, developmentfactory/-- composer instantiation + profile bindingprofiles/-- style profiles (blues, modal, etc.) that bind composer parameter setsintervalComposer.js/ScaleComposer.js/TensionReleaseComposer.js/MelodicDevelopmentComposer.js-- auxiliary selectors
- Self-register via the composer registry at file load
- Implement the composer capability surface from
composerCapabilities.js - All randomness must go through the validator-stamped RNG (never
Math.random()directly --no-math-randomenforces) - Require from the subsystem
index.js; no module requires outside of index