Telling a tom from a snare - DrumMate blog
DRUMMATE
Telling a tom from a snare
Acoustic drums, one phone microphone, and the part I got wrong
By Sashyo · July 2026 · DrumMate blog
The question that started this was a boring one about mapping. In DrumMate, hitting a tom tells the sequencer to roll out a new pattern, and somebody wanted to know whether they had to map their rack tom, floor tom and low tom separately for that to work.
They didn't, as it happens. There's only one tom role and all six standard tom notes already point at it, so mapping one is the same as mapping all of them. But answering the easy half made me look at the hard half, which is that if you play an acoustic kit into the phone's microphone, none of it works, because the microphone had never been able to hear a tom at all. Every tom you hit was going in as a snare.
I already knew that. There was a comment in the source saying so, which I had written myself and then stopped thinking about:
// Toms are deliberately out of scope: they sit on top of the snare<br>// band and bleed; kick/snare/hat is what tempo needs.
Which was fair enough at the time. The acoustic mode exists so that a drummer with a wooden kit can drive the band without a MIDI trigger on every drum, and to do that you only really need to know where the pulse is. Kick and snare give you that. Toms were a luxury. Then toms stopped being a luxury, because I hung a feature off them, and the comment quietly turned into a bug.
The bit that already worked
The existing detector is not clever and I don't want to oversell it. It leans entirely on an accident of the instrument, which is that the three drums you need for tempo happen to sit in different parts of the spectrum and mostly stay out of each other's way. A kick is nearly all sub-100 Hz. A hi-hat is nearly all top end, 6 kHz and up. A snare is stuck in the middle, but its crack covers roughly 300 Hz to 3 kHz and it is louder there than anything else on the kit.
So there are three filters, an envelope follower on each, and a threshold that slowly adapts to whatever the room is already doing, so that a fan or a hum or a bit of PA bleed gets absorbed into the noise floor instead of firing the band every two seconds. A rising edge well clear of that floor counts as a hit, and then a short refractory window stops one strike being counted twice. That's the whole thing. It works because the drums cooperate, not because I was smart.
Toms don't cooperate. A tom's fundamental sits somewhere around 80 to 200 Hz depending which one it is, which is not a gap in the spectrum, it's the bit of fence between the kick and the snare with both of them leaning on it. My first instinct was to do the thing that had worked three times already and give the tom its own band, and it took about ten minutes of thinking about where that band would go to realise it fires on kicks and it fires on snares and I would have swapped one wrong answer for two.
What a snare actually is
A snare drum is a shallow drum with a set of wires stretched across the underside of the bottom head. That's the whole difference. Take the wires off and what's left, acoustically, is a shallow tom. The wires are also why a snare sprays broadband hiss well past 5 kHz, long after the shell itself has stopped contributing anything, and a tom does not do that, because it hasn't got any.
So the detector doesn't need a new band, it needs a different question, asked about a strike that the snare detector has already caught. Measure the low-mid body, call it 100 to 250 Hz, which is the shell. Then measure the top, 2 to 5 kHz, which is where the wires live. Then look at the ratio between the two rather than at either number on its own.
I like the ratio more than I like most of my ideas, and the reason is not elegance, it's that ratios survive the real world. The absolute level of a drum through a phone microphone depends on how hard you hit it, how far away the phone is, whether you're in a carpeted room or a kitchen, and which phone it is. Trying to reason about any of that from my desk is hopeless. The proportion between two parts of the same strike doesn't care about any of it, because all of those things scale both halves at once.
Then rock music turned up
Snare on 2 and 4 with a kick underneath is possibly the most common thing a drummer has ever done, and it broke this immediately.
When a kick and a snare land on the same beat, the microphone hears both, and the kick dumps a large amount of low energy into precisely the range I had decided to call "body". So the body number goes up, the ratio goes down, and the detector concludes, with total confidence, that the backbeat of every rock song ever recorded is a tom.
The fix is a guard rather than anything sophisticated: if the kick is loud enough to account for the low energy by itself, then that low energy isn't evidence of anything. Only treat body as tom-shaped when it can't be explained by the kick. The snare...