Run one in three lines
pip install torch numpy miditok symusic huggingface_hub
# model.py + generate_example.py are in the repo
python generate_example.py --model g_metal_s1 # writes out.midEach checkpoint is a state dict plus its config; the matching tokenizer ships alongside. The whole point is the pairs — a control and its edited twin, differing in exactly one thing — so you can probe the reconstruction yourself.
The checkpoints
| model | what it is |
|---|---|
g_metal_band_s1 | Full band — guitar + bass + drums, ctx 2048, 316M tokens · val 0.18 |
g_metal_s1 | Guitar base — 22,037 metal tracks, 163M tokens · val 0.23 |
g_metal_deb5 | The b5-deleted twin — never saw a tritone — still expects it at 99% |
g_metal_td_s2 / g_metal_bm_s3 | Subgenre fine-tunes — tech-death and black metal, 12-second edits |
g_metal_minus_bm / dj / rand | Lineage cuts — a genre (or random data) removed |
blues_control_s0 / deblue_s0 | Blue-note deletion — the matched jazz pair |
inject_control / loose / clean | Blue-note injection — classical, two doses |
remap_permuted_s0 | Scrambled tonal function — un-scrambles to coherent tonality |
+ 8 more | the full set — invented rule, chord-melody, dom7 pilot, drums-only… |
The training data
All public: the Weimar Jazz Database (jazz solos with ground-truth chords), MAESTRO v3 (classical piano), and a Kaggle metal-MIDI dump (PDDL). Prefer to just hear them? Every finding has playable audio, and the playground runs the tiny models live in your browser.