Teaching machines the musicianly thing
Almost every electronic music setup makes the human follow the machine. The click is the boss. The sequencer is the boss. The DAW timeline is the boss. Speed up into a chorus and the machine does not care; it just keeps going, and now you are wrong.
I spent the last while building the opposite: a system where the drummer is the boss and everything else follows - tempo, dynamics, feel, fills, endings. It started as an Android app built with a drummer I met online, but the core problem is platform-agnostic and it turned out to be much more interesting than I expected. This post is the writeup, including everything I got wrong.
Hits are not a clock
The first idea everyone has (including me): take the kick drum, turn each hit into a pulse, feed that to your clock input. Done, right?
A real kick pattern is not a clock. Play anything with syncopation and the pulses land on offbeats. Play a fill and you fire six pulses in half a beat. Play a section where the kick lays out for a bar and your clock stops dead. A drummer playing a perfectly steady tempo still produces wildly uneven hit intervals, because the hits are music, not a metronome.
Tap-tempo boxes have the same problem one layer up: most of them just average recent intervals, so one fill yanks the tempo around. And resetting your sequencer's phase on every kick - another popular idea - believes every kick is beat one, which is perfect right up until the drummer syncopates and your whole rig snaps to the wrong downbeat mid-groove.
A hit should be treated as evidence, not as a command. Following a drummer, not obeying one.
Division is free, multiplication is prediction
Here is an asymmetry that took me embarrassingly long to see. Clock division is causal: every incoming pulse just advances a counter, tempo never needs to exist, and it works at any speed. This is why a modular clock divider fed from a drum trigger feels bulletproof.
Multiplication is different. To fire the second 16th note between two hits, you need an opinion about when the next hit will land. Anything that ratchets, arpeggiates, or runs a synced delay is secretly carrying a tempo model. The cheap ones assume a BPM floor and fall apart below it. The honest ones have to solve the actual problem:
Given the hits so far, where is the grid?
The estimation layer
What worked for me is a free-running clock that is steered by the playing rather than driven by it. A software phase-locked loop with a beat-aware front end:
- Hits arrive as timestamped onsets.
- The tracker fits them against a grid hypothesis: a period (tempo) and a phase (where beat one is), with the downbeat inferred from accent patterns across kick and snare.
- Each onset that agrees with the hypothesis nudges the clock proportionally. Onsets that disagree - fills, syncopation, ornaments - are mostly ignored. Confidence builds when hits keep landing where the clock predicted, and decays when they do not.
- The clock never jumps. It bends. Tempo changes get smeared over about a bar, so everything downstream glides instead of lurching.
The tightrope is sensitivity. If the clock chases every hit, it eats the groove: the drummer's pocket - those deliberate, beautiful deviations - becomes tempo wobble. If it is too stiff, it misses a real push into a chorus. The rule that works: small deviations are feel, sustained drift is tempo. Lean on it for a bar and it comes with you. It will not flinch at one laid-back snare.
Worth noting what this is not: it is not the beat detection in DJ software. Traktor and Rekordbox get the whole track up front and can look ahead, run a second pass, fix mistakes. A live tracker only ever has the hits that already happened, and it has to commit in real time. No lookahead, no undo.
The bug that taught me the most
My worst version of this worked beautifully in testing and fell apart with a real drummer. The tracker would lock, the band would come in, and then - the moment the drummer did anything interesting - confidence would dip, the lock would flicker, and the band would vanish. Play, band starts, band stops, repeat. It felt broken in the most demoralizing way possible.
The fix was coasting: when confidence wobbles but hits are still arriving, the clock keeps running on its last good estimate and waits. It only actually stops on real silence. Obvious in hindsight. A human bandmate does exactly this: when the drummer gets weird for two bars, you do not stop playing, you hold your groove and listen harder.
If you are building any version of this - hardware or software - I suspect coasting is not optional. A follower that gives up during the interesting parts is worse than no follower at all.
Prediction, not reaction
One more architectural point that matters more than it looks: the system schedules ahead. Notes are placed against the clock's forecast of the next beats, not triggered in response to each hit. That keeps the audio latency budget out of the drummer's timing loop entirely - the band is not late-reacting to you, it is meeting you where you were both already going. This is also what a human rhythm section does. Nobody waits to hear beat one before playing beat one.
The part machines still lose
Two references that came out of discussing this with the modular community, both worth your time.
James Holden's human timing work (and the Hennig et al. research underneath it) shows that human timing deviations are not random jitter - they are correlated, drift with memory, which is exactly why quantized backing feels dead and why a follower's clock has to bend rather than snap. Holden's Max patches go further than mine: his machines and humans pull on each other, proper mutual entrainment, coupled oscillators. Mine is deliberately one-way - the drummer leads, the band never pushes back - because that is the premise. But his direction is fascinating.
And the humbling one: a human tapping along is still the best tempo tracker ever built. Brains predict, they do not react. You hear a fill coming and you are already leaning into where the one lands. No algorithm I know of touches that. The only reason to build this in software at all is that a drummer cannot be their own tapper - both hands are busy - and not every jam has a second human attached.
This whole problem is really about teaching the machines the musicianly thing, instead of making the humans play machinely - which is what click tracks and quantized backing have been doing to us for forty years.
Where this lives
I built these ideas into DrumMate, an Android app where you plug in an e-drum kit over USB MIDI and a generated band (bass, keys, lead) follows your tempo, dynamics, and feel - free beta at drummate.app. But most of what is written here applies to any version of the problem: a Eurorack module, a Max patch, a plugin. If you build one, I would genuinely love to compare notes - the community threads that sharpened half these ideas are the best part of working on this.
© 2026 Sashyo & Petty Vendetta. All rights reserved. · drummate.app · more posts