53 lines
4.9 KiB
Markdown
53 lines
4.9 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. 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](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.
|
||
|
||
## 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.
|