Files
product-vamp/docs/composer/data_migration.md
T
khodowany 654299decd Cleanup
2026-10-05 08:51:03 -05:00

4.9 KiB
Raw Blame History

Data and consumer migration

The latest approved scope permits target-guided diagnosis of general rules and fitting shared theory coefficients. Production target reads, copied tunes, per-song recipes and hidden phrase banks remain prohibited. Policy provenance records this development influence; these four targets are not an unseen evaluation set. A development weight artifact is not automatically a production resource. The first table records the inherited migration at the starting revision; the selector-repair section below identifies this iteration's changes.

Path Action Live consumer / reason
data/songs/ Keep untouched Authoritative source melody, harmony, meter and form
data/scales/ Keep 21 patterns Ordinary mapped movement; no added scale family
data/sequences/ Keep 2,954 paths Operators licenses exact repeated degree strides; other paths remain available but are not all active choices
data/rhythms/ Keep 3,538 snippets Whole coherent meter-specific representatives; file count does not determine frequency
composition/rhythms.json Keep Authored melodic cells and canonical sparse comping
composition/solo.json Migrate Keep cells/groups; remove hash-selection menus and dead scorer settings; add action durations and search budgets
composition/harmony.json Extend Stable/resolving colors; mapped half-diminished natural 13 only before a functional dominant
composition/lead_ins.json Extend Whole approaches, separated enclosures, complete subdivisions, delayed exact-target resolution
composition/roles.json Migrate solo fields Soft registers and shared action weights replace unused menus; comping fields retained
data/expected/ Keep validation-only Arrangement compatibility, never selection
Four XML files in build/ Keep untouched Explicit development derivation/fitting and downstream comparison
build/.../repair/fitting/ Development artifact Not loaded by production; failed fits are not promoted
<composition-cache>/_resources/ Add derivative Checksummed JSON production catalogs keyed by content and decoder code; no song/role/reference result

routes.py and Rhythms.realize are retired. scoring.py retains the evaluation record; selection.py is the sole scorer. operators.py owns enumerable actions. There is no legacy fallback. Deleted-API tests were replaced by active-constructor tests, not counted as passing removed tests.

The formulas are general relative intervals and durations, not extracted phrases. Supporting discussion: Berklee tension and resolution, available tensions, Locrian natural six. No example melody from these sources was imported. Numerical bounds are project choices, not universal jazz rules. Authored resources retain MIT licensing.

Cold-build independence cannot establish provenance alone; review policy/code diffs too. No source score, target score, tuning, fret limit, runtime score schema, velocity or playback feel was changed.

Selector repair at ef62af8

No scale, sequence, rhythm, harmony, lead-in, source-song or accompaniment vocabulary was added or removed in this step. The live solo budget now names histories=16, per_state=24, and completed=8; the obsolete backtracks setting is removed. Role-level constructor-family weights were removed. Existing duration/metrical preferences remain. Both roles still use all six strings and frets 1–12.

Operators now distinguishes scale thirds from written-chord arpeggios. Sequence licensing is indexed once. Harmonic interval permissions, note objects and color construction are memoized without changing their underlying theory rules. Expensive validation can be deferred past cheap retrieval, but a candidate must pass before it advances. The ordinary Operators.at diagnostic still returns fully validated actions.

The old prefix-perceptron implementation was removed from audition/fit_selection.py. Its replacement is audition/structured_learning.py, with the pinned optional solver in audition/requirements-training.txt. Neither is imported by production. audition/phrase_candidates.py exports ordinary completed alternatives without accepting any target-file arguments. Failed development models remain under build/solo_reference_comparison/structured; none is automatically copied to data.

audition/train_completed.py can form complete-output ranking constraints from ordinary finished candidate reports. It verifies the source, role, vocabulary, and evaluation version, and records explicit training dependencies. Its optional staged data copy is for a subsequent ordinary cold build, not automatic promotion.