A drum hit that lands a few milliseconds early or late makes a performance sound loose. Quantising moves it onto the beat, but the usual tools stretch the audio to do it, and you can hear that. I’m building a model that uses the same tools a human engineer would: cut the audio and move it, so nothing is stretched.
Why I started again
I have tried this before. An earlier attempt, from December 2025, went straight to the deep end. So this version starts again from the simplest data I can make, one hit per clip, and only gets harder once the model has earned it.
What I built
I’ve built a data synthesis engine that makes training pairs with exact labels: a clip with the hit off the beat, and the same clip with it on the beat. I’m using it to train a model that uses the same tools a human engineer would, starting with the simplest one: cut the hit and move it. The model predicts how far each hit should move, in milliseconds, forwards or back. A fixed cut-and-move step then applies that move to the waveform.
What it showed
The test is deliberately narrow. There are 512 held-out clips, each with a single hit, and one question: after the model’s edit, how many hits sit within one millisecond of the beat? I set the pass mark at 95% before running the experiment.
The best model, trained for 30,000 steps, puts 98.4% ± 0.9 of hits within a millisecond, the mean of three training seeds. Doing nothing leaves the median hit 30.3 ms from the beat. After the model’s edit it is 0.29 ms. Only one model setup cleared the pass mark. The next best reached 94.8%. Training longer mattered: the same setup scored 79.4% after 3,000 steps and 91.4% after 10,000.
What it did not show
A classical method still does better. A hand-written signal-processing routine that finds each hit and snaps it to the nearest beat gets every one of the 512 hits within a millisecond, with a median of 0.016 ms. So this rung passes my gate, but it is not solved.
The data is also clean and synthetic, and I haven’t tried a real recording.
What’s next
The point of this stage is to find out what lets a network hear exactly where a hit starts, before I make the data harder. Matching the classical method on clean data is the bar for the next rung. Real drum one-shots are that rung, and I haven’t started it.