Files
product-vamp/docs/composer/data_migration.md
T
khodowany ef62af892b Cleanup
2026-10-04 22:29:06 -05:00

26 lines
3.1 KiB
Markdown

# 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.
| 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](https://www.berklee.edu/berklee-today/summer-2014/tension-and-resolution), [available tensions](https://college.berklee.edu/berklee-today-55), [Locrian natural six](https://www.jazz-guitar-licks.com/pages/guitar-scales-modes/modes-of-the-harmonic-minor-scale/the-locrian-natural-6-mode.html). 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.