Every result so far lives inside one instrument: take a note, a chord, or a genre out of the guitar, and the guitar rebuilds it. Full-band models let us ask the next question up — can a model rebuild one instrument’s part from another’s? Reconstruction between players, not just within one.
Hear it first
Strip the drums off a real riff and let the full-band model fill them back in, beat by beat. Because of how the tokens are ordered, when the model places a drum hit it has already seen the guitar and bass on that beat — so it’s literally answering “given this riff, what do the drums do?”
Drums, reconstructed from the riff
The model's kicks land on a guitar onset 100% of the time — identical to the real drums, and well above a shuffled floor (~54–65%). It even adds more kicks than the original: busier, but every one locked to the chug.
Constrained decoding: feed the real guitar+bass tokens position by position; at each beat let the model emit 0+ drum notes, then move on. Kick–guitar alignment measured within a 0.15-beat tolerance. Caveat: the guitar onset grid is dense, so the tolerance baseline is generous — the shuffle floor is where the real signal shows.
The clean test: scramble the guitar, watch what breaks
The drum demo is vivid, but drums are also extremely repetitive — a groove largely predicts itself, so it’s hard to prove the guitar is what’s doing the work. The bass gives a clean handle. Bass follows the guitar’s pitch (it doubles the root); drums follow the guitar’s timing. Guitar pitch lives in the guitar’s own tokens — so we can corrupt it and see whether each instrument breaks.
Permute only the guitar’s pitches (keeping their distribution and every note’s timing), then measure how well the same model predicts each instrument. Nothing else changes — same drums, same bass, same rhythm.
| predicting… | real guitar | guitar pitches scrambled | effect |
|---|---|---|---|
| Bass | 0.169 | 1.017 | +503% (6×) |
| Drums | 0.119 | 0.120 | +1% (nothing) |
Corrupt the guitar’s notes and the bass becomes six times harder to predict. The drums, sitting in the exact same corrupted context, don’t move.
That drum row is what makes it airtight. If scrambling just made everything noisier, the drums would rise too. They don’t — so the bass collapse is specific: the bass rides the guitar’s pitch, the drums ride its timing, and one perturbation cleanly severs the first without touching the second. The model didn’t just learn “the band plays together.” It learned which channel each instrument couples to the guitar through.
Why the bass rebuilds so cleanly
Because the bass is nearly a function of the guitar. In the raw data, across 130,000 bass notes, the bass’s pitch-class equals the guitar’s lowest note 83% of the time — it doubles the riff’s root. A near-deterministic mapping is exactly the kind of thing these models reconstruct perfectly, and exactly why destroying the guitar’s pitches destroys the bass: the model was reading the guitar to write the bass.
The verdict
Reconstruction lifts cleanly from within an instrument to between instruments. The bass rebuilds from the guitar — provably, causally, a 6× effect — because it’s a near-deterministic function of the riff. The drums rebuild too, but they’re overdetermined: the kick-lock is real and audible, yet the groove also predicts itself, so the information is redundant across two channels at once.
Where we stopped short
The drum case can’t be cleanly isolated the way the bass can: drums couple to the guitar’s timing, which lives in shared position tokens we can’t scramble independently. So “does the guitar specifically predict the drums, holding the drum’s own history fixed?” stays honestly open. The drum reconstruction rests on the demo and the kick-alignment, not a clean causal knockout. Also: these drums are programmed and quantized, not a human performance — so we’re rebuilding the transcription’s patterns, which are already somewhat formulaic.
Researcher notes
- Setup. One full-band model (
g_metal_band_s1, d512/8L, ctx 2048, 26.4M params, val 0.18) trained on 14,666 songs / 316M tokens. The bass test and the drum demo reuse it — no second model. The drum cross-entropy comparison also trained a drums-only baseline (g_metal_drums_s1, 137M drum tokens, val 0.12). - Token order. Within each beat the stream lists guitar notes, then bass, then drums (each note is
Program · Pitch · Velocity · Duration; drums usePitchDrum). So a drum token is always predicted with the same-beat guitar+bass already in context — the reason “reconstruct drums from the riff” is even askable. - Scramble. Guitar
Pitchtoken values permuted within each piece (distribution preserved, timing untouched), then per-model cross-entropy measured at bass-pitch and drum-pitch target positions. Bass 0.169→1.017; drums 0.119→0.120. The drum invariance is the control. - Drums-only CE (the overdetermination). Drum-token CE: full model 0.137, drums-only 0.110 — the drums-only model predicts drums as well or better, partly because its 2048-token window holds ~3× more bars of drum history and it’s specialized, partly because metal drums are genuinely that repetitive (~89% confident per token).
This sits at the top of the reconstruction ladder. The full band it’s built on is its own finding: the whole band.