A GrooveTransformer ML model can predict a full drum pattern from a sparse hit/velocity/offset input vector
The GrooveTransformer is a trained neural network (a transformer architecture trained on drum groove data) that takes a 32-step input representation — three parallel arrays of hits (0/1), velocities (0.0–1.0), and micro-timing offsets (−0.5 to +0.5) — and predicts a full 9-voice drum groove using those arrays as a conditioning signal. In SOURCE’s Push2 controller, the current MIDI clip (or a random input) is encoded into this 32-step format and fed to the model. The model outputs h/v/o arrays for each of 9 drum voices (kick, snare, closed/open hi-hat, three toms, crash, ride) and a per-voice sampling threshold decides which predicted hits survive. SOURCE exposes one ‘DENSITY’ control mapped as voice_threshold = 1.0 - density, so a higher density setting lowers the threshold and keeps more hits (denser pattern). The result is a generated groove that reflects the rhythmic feel of the input while adding stylistically coherent new hits. The pattern is written back as a MIDI clip.
Examples
A pattern with only a kick on beat 1 is encoded as hits=[1,0,0,...]. The GrooveTransformer predicts a complete drum arrangement that preserves the hit on step 1 and fills in snare, hi-hat, and ghost notes. Raising the DENSITY control lowers each voice’s threshold, so more predicted hits survive.
Assessment
What three arrays represent the input to the GrooveTransformer, and how many drum voices does it output? How does SOURCE’s DENSITY control map to the model’s threshold, and which direction makes the groove denser? Could you use this model to generate a groove that deliberately avoids a kick on beat 1?