Build a model · 2
Rehearsal
Fit one of the three architectures on the prepared notes. A tenth of the corpus is held out for validation, and checkpoints are saved every five epochs into checkpoints/lstm_attention/, so models never overwrite each other and any two can meet in the arena.
Field notes
Reading the rehearsal
Loss is a more reliable marker than epoch count, since it scales with your dataset, a run of 200 files reaches a given loss in a different number of epochs than a run of 20. Here is the arc most training runs follow.
Finding a pulse
The safest bet the model has before it understands sequence at all: one note, or a narrow cluster, held far longer than anything in the dataset, with only the occasional stray token breaking the silence. Not a bug, just the starting line.
Chords before rhythm
Harmony tends to arrive before timing does. Expect the full pitch range in use and dense vertical stacks, the model has learned which notes co-occur, but note durations stay suspiciously uniform and the texture repeats in blocky columns.
Phrasing emerges
Duration starts to vary, the texture thins toward a single line with harmony underneath, and a melodic contour appears across bars. Usually the first checkpoint worth actually generating from and listening to.
Past the sweet spot
Don't assume lower is better. A loss this low is exactly as consistent with genuine mastery as with quoting the dataset outright. Trust your ears less here, and your comparisons more.
Picking a checkpoint
- Sample more than once. One generated clip is a noisy read on a checkpoint, generate a handful before judging a run by ear.
- Watch for verbatim quoting. If a late checkpoint reproduces long unbroken runs from the dataset, that is overfitting, no matter how good the loss number looks.
- Check the distribution, not just the ear. The note-distribution comparison in
backend/maistro/overfit_check.pyscores a generated piece against every dataset track by cosine similarity, above ~0.8 means it is closer to copying than composing, 0.5–0.7 is the range you want. - When in doubt, go earlier. Between two checkpoints that sound about the same, the earlier one is the safer bet, it has had less opportunity to memorize anything.