Files
product-vamp/docs/composer/active_path_audit.md
T
khodowany 0e68f5364b Cleanup
2026-10-04 18:48:02 -05:00

2.8 KiB

Active solo path after the rewrite

The replaced entry path was production.generate_role → composer.compose → leads.thematic_options → themes.phrase_candidates/unit_candidates → routes/gestures → realization.checked_phrase → scoring.musical. The same modules retained paraphrase, draft, cell-search, join-refinement, and older scoring APIs. Source-derived feature contracts could preserve a long head rhythm before a new tune existed.

The sole normal path is now production.generate_role → composer.compose → construction.Builder → rhythm.Rhythms + routes.Routes → scoring.evaluate → placement.alternatives/place → composer.validate → notation/export. There is no legacy mode, silent fallback, pair selector, or reference argument.

Finding Before this rewrite Resolution
Multiple generations of musical construction coexist Confirmed by callers/imports and legacy mode branch Thirteen obsolete construction/helper modules removed
Mandatory source-feature influence Confirmed in theme seed and feature-prefix construction New melody is independent of head rhythm; head references are optional actions
Final scorer overwritten / density omitted Already repaired in the preceding active path; not reproduced as a current defect Old duplicate evaluators retired; one completed-phrase evaluator
Broad score often leaves fingering as decisive term Observed in saved selected/alternative reports No fingering term in musical selection; whole-melody placement runs after selection
Expression only added after strict selection Already partly repaired by joint-arrival proposals All retained production expression construction now precedes route selection; post-passes removed
Bar/cell ends act as mandatory cadences Older paths contained such requirements; active path had some open behavior No cells/plans/drafts with competing ending semantics; only actual phrase destinations
Rhythm packets do not establish a recurring idea Constructor selected separate short material repeatedly Repeat a whole rhythm group before reshaping it; never slice tuplets
Fixed ending/return counts Historical settings remained Those settings and scorers removed; no target counts

Search limits are construction budgets, not musical quotas: 32 proposals per state, eight diverse finalists, two endpoint fingerings per melody, four candidates considered with one-phrase lookahead, one additional planning batch if the first yields nothing. A whole-solo hand-position pass resolves transitions without changing notes.

Shared source analysis contains imported sounding events, tempo and exact measure boundaries. It does not extract compulsory head motifs or source phrase segmentation. Both roles receive the same physical domain and independent deterministic decision streams.