Notes You Can’t Delete
depth
findings/Metal
Metal

The whole band

Guitar, bass, and drums in one model — 316M tokens, arrangements composed together instead of a lone riff.

val 0.18

The guitar-only models were only ever modelling half the band. Metal MIDIs carry bass and drums too — a quarter of every song is drums we’d been throwing away. Keeping all three turns a lone riff into an arrangement, and unlocks the question of whether one instrument can be rebuilt from another.

A band, composed from a single start token

No prompt: the model is handed one “begin” token and writes guitar, bass, and drums together, interleaved beat by beat. These are raw samples, rendered through a general-MIDI kit.

g_metal_band_s1, generating

0:00 / 0:00

Every take has all three parts with sensible densities — riff, root-following bass, kick/snare. It's arranging, not just riffing.

d512/8L, ctx 2048, 26.4M params, batch 24, 12k steps on an RTX 4090 (~25 min, ~$0.35). Validation loss 0.18 — the lowest of any model here, because the drum track is so repetitive it drags the average down.

How the band fits in one stream

A multi-instrument tokenizer flattens the whole arrangement into one time-ordered sequence. Each note carries a Program marker for its instrument, and within every beat the order is fixed: guitar, then bass, then drums. That ordering is not a detail — it’s what makes reconstructing the drums from the riff even possible, because a drum token is always predicted with the same-beat guitar and bass already in view.

14,666
full-band songs (guitar + bass + drums)
316M
training tokens
tokens per piece vs guitar-only
0.18
validation loss

What it is, and isn’t

This is the riff genome of metal — harmony and rhythm — not the genre: there are no vocals, no timbre, no production. Instrument roles are recovered from unreliable general-MIDI program numbers, so the extraction is clean on roughly 55% of files (the ones with a full rhythm section). The drums are programmed, not performed.

Researcher notes

  • Extraction. Per song: merge distorted/overdrive guitars → one part, GM-bass → one part, all drum tracks → one; require guitar + drums, bass optional; dedupe within each instrument; keep tempo.
  • Tokenizer. REMI with use_programs, one interleaved stream, programs restricted to guitar / bass / drums; drums as PitchDrum tokens. Vocabulary 271.
  • Not comparable to the guitar-only line. New tokenizer and vocabulary, so g_metal_band_s1 starts a fresh family of models rather than extending g_metal_s1.