brumm.ai

Free · microphone · for producers and DJs

BPM counter

Hold your phone to the music and tap Listen. A number shows once the beat is proven, not before; it locks after eight beats, then you get the BPM, how sure it is, half and double time, and the delay, pre-delay, LFO and gate times for that tempo.

Mika, the resident

Mika hears the street's beat from his cushion on the terrace. Eight beats before he believes it.Tap Listen and hold the phone near the speaker. Drums help; a quiet ballad may need the tap pad.

— BPM

How it finds the beat

It reads the sound a hundred times a second and marks every moment the spectrum suddenly gets louder: a kick, a snare, a hat. Every quarter second it looks at the last eight seconds of those marks for the gap that repeats best. That gap is a candidate tempo, and the marks that land on its grid are counted as beats.

A number shows only once four beats sit on one grid and the repeat stands clearly out of the room's noise. It locks after eight beats, when the readings of the last two seconds agree within one and a half percent. After that the tempo is the line through the beats themselves, which is why it reads to a tenth of a BPM. It keeps listening for eight more bars, one history bar each, and the microphone closes.

Half time, double time

A beat has more than one honest tempo. Drum and bass runs at 160 to 180 BPM, and its snare lands on every other beat, so the same track also counts as 85. A hip-hop beat at 70 with hats on the eighths sounds like 140. The counter picks the one closer to the middle of most dance music and puts the other two beside it, marked when the beats fit them nearly as well. A tap on one switches the number, the times and the door.

How it was tested

On 96 loops made from Brumm's drum and instrument samples, six styles from four on the floor to breakbeats and hats alone, 70 to 178 BPM, each through a simulated room and a phone's microphone with noise: it locked on 95, after 4 seconds in the middle. 76 locked on the loop's own tempo, 19 on half or double it, none on any other tempo, and every locked number was within 0.07 BPM. Twelve takes of plain room noise and of chords without a beat: no number at all.

The room is simulated, not a real speaker in a real room, so take it as the floor of what it can do. The test is in the repository (toolbox/bpm-counter/bench.mjs) and runs with every check of the page.

When it can't hear the beat

Music without drums, a song that speeds up and slows down, a live band in a big hall, or a speaker too quiet next to people talking: the counter then says it heard no beat or couldn't lock, instead of guessing. Tap the beat on the pad then; the tap tempo page does only that, with a click to check it against.

Then make something of it

The door opens Brumm at your tempo, a club track with a beat and a bass, folded into the 90 to 150 BPM the app plays. No account, no upload: the tempo travels inside the link. Hum a line over it, and it becomes an instrument.

Audio: your microphone, on only after you tap. The sound is analysed in this tab and never sent. Nothing about the audio reaches the visit count.