BPM tools for Mac
Moderators: Mr Awesomer, JesseMiner, CafeSavoy
BPM tools for Mac
What is everyone using to measure BPMs for Macs these days?
I've been usingiTunes-BPM successfully for years - It's a simple tap window that floats above iTunes and enters the result into the BPM data field. Unfortunately it was written for PPC Macs, and my new Intel machine wants to install Rosetta to use it, which I'm trying to avoid.
Got any Intel Mac alternatives? Simple is better!
I've been usingiTunes-BPM successfully for years - It's a simple tap window that floats above iTunes and enters the result into the BPM data field. Unfortunately it was written for PPC Macs, and my new Intel machine wants to install Rosetta to use it, which I'm trying to avoid.
Got any Intel Mac alternatives? Simple is better!
Have you tried the BPM Counter Widget?
I use iTunes-BPM, so I haven't tried the widget, but maybe it's worth a go for you...
/Jonas
I use iTunes-BPM, so I haven't tried the widget, but maybe it's worth a go for you...
/Jonas
- JesseMiner
- Posts: 1034
- Joined: Mon Nov 18, 2002 5:36 pm
- Location: San Francisco, CA
- Contact:
Thanks for the tip. I have been meaning to figure out a solution for a while since I was never able to get iTunes-BPM to work on my newer Macbook Pro. In a pinch, I have often just used this online tool, but I like the idea of using a tool that interfaces with iTunes and writes the data to the bpm field in the mp3 files. I just downloaded the widget and am experimenting with it. Works great so far!
Jesse
Jesse
Thanks Jonas. I tried it but I'm finding it's not as elegant as iTunes-BPM. It would be fine for BPMing a single song, but if I want to BPM a whole bunch of songs quickly, there's no way of controlling playback from within the Dashboard. This means jumping back and fourth between Dashboard and iTunes.
The search continues...
The search continues...
Okay, I've found a massive list of BPM software solutions.. now to find the right one...!
http://www.mmartins.com/mmartins/bpmdet ... ection.asp
http://www.mmartins.com/mmartins/bpmdet ... ection.asp
Well, yes, it works fine because it's running in Rosetta.Rob wrote:I'm still using itunes-bpm on my Intel Mac with no problems (although still on 10.5.8 so don't know if this has any bearing on things).
And, yes, 10.5.8 kinda matters. It will still run in Snow Leopard, but only if you decide to install Rosetta, which is not installed by default anymore: it still was in 10.5.x.
Ah yes, I'm running 10.6.6 and that is the problem. I guess I'll just give in and install Rosetta for now. Seems kinda silly for such a small app, but iTunes-BPM is pretty much EXACTLY what I want. (unless they invent an automated BPM counter that works with scratchy jazz tunes!).lipi wrote:And, yes, 10.5.8 kinda matters. It will still run in Snow Leopard, but only if you decide to install Rosetta, which is not installed by default anymore: it still was in 10.5.x.
I was worried about the performance effects but this alleviated my fears:
iTunes-BPM it is.Some Guy On The Internet wrote:"Rosetta only runs when you are using s PPC-only application, and does not affect Leopard's performance. However, because PPC applications are running in an emulator they do not perform as fast as they would on a PPC Mac. "
I use iTunes + the BPM Counter Widget when I want to quickly BPM a whole album, and I think it works nicely. I control the iTunes playback using the function keys, so there's no need to leave the Dashboard.trev wrote:It would be fine for BPMing a single song, but if I want to BPM a whole bunch of songs quickly, there's no way of controlling playback from within the Dashboard. This means jumping back and fourth between Dashboard and iTunes.
Some time ago I played around with my own BPM tapping tool. It worked quite nicely, with statistics to actually give me an estimation of how stable my tapping was.
I wondered why I never really got below the +- 2 bpm mark. At some point I investigated closer.
Essentially, operating systems process events at a certain rate. For me, this turned out to be 125 Hz if I recall correctly. These 125 Hz give a limit to the precision a single time interval can be measured at: around 8 milliseconds.
The BPM values that work very well with this frequency are:
129.31, 127.11, 125.00 (obviously), 122.95 , 120.97,
Things get worse quickly at around 250 bpm:
267.86, 258.62, 250.00, 241.93, 234.375
So the raw, single-measurement readings are only +- 8 bpm accurate at these speeds. In order to get a higher precision, multiple taps need to be combined. The most obvious (and very common) method is just to count the number of taps and measure the time from the first to the last tap.
But these simple methods can easily cause another bias: if you miss one tap or add an extra tap, they will also be off. Many people tap around 15-30 seconds at most. At any bpm rate, if you miss one beat (or the application has a rather obvious math mistake that DOES occur), that means at 15 seconds length about +- 4 bpm and at 30 seconds +- 2 bpm for a single error.
My own application had a combined method (including some skipped-beat-detection) but also with a bias to the current tapping speed which only allowed it to get down to +-2 bpm reliably. I did not have the impression that the "total time / total intervals" approximation was more useful, in particular since apparently the first few taps were usually quite off for me until I had found my rhythm.
On a side note, live music also tends to fluctuate in tempo, so sometimes the bpm value is just +-2 bpm by the recording itself. This is also why I wanted the visualization of "speed stability" - to see if the song maybe has such effects.
With automatic detection software, I have mixed experiences. They work well on the easy songs, but in particular once you get out of their main speed range (say with some bal or blues songs) they tend to be off on a completely different rhythm. However when checking the values, I often see them to be off by a factor of 2, 1/2, 1/3 to the speed I tapped. Adjusting the automatic value by this factor often gives a very good bpm value.
So the bottom line is: Tapping is nice, but don't bother about a precision of +- 4 bpm - this probably is just an artifact of the tapping software used.
I've always thought BPM values to be more sensible towards the music. But the also somewhat common "MPM" value ("measures per minute") more adequately reflects the precision we have, and the values are somewhat more readable.[/i]
I wondered why I never really got below the +- 2 bpm mark. At some point I investigated closer.
Essentially, operating systems process events at a certain rate. For me, this turned out to be 125 Hz if I recall correctly. These 125 Hz give a limit to the precision a single time interval can be measured at: around 8 milliseconds.
The BPM values that work very well with this frequency are:
129.31, 127.11, 125.00 (obviously), 122.95 , 120.97,
Things get worse quickly at around 250 bpm:
267.86, 258.62, 250.00, 241.93, 234.375
So the raw, single-measurement readings are only +- 8 bpm accurate at these speeds. In order to get a higher precision, multiple taps need to be combined. The most obvious (and very common) method is just to count the number of taps and measure the time from the first to the last tap.
But these simple methods can easily cause another bias: if you miss one tap or add an extra tap, they will also be off. Many people tap around 15-30 seconds at most. At any bpm rate, if you miss one beat (or the application has a rather obvious math mistake that DOES occur), that means at 15 seconds length about +- 4 bpm and at 30 seconds +- 2 bpm for a single error.
My own application had a combined method (including some skipped-beat-detection) but also with a bias to the current tapping speed which only allowed it to get down to +-2 bpm reliably. I did not have the impression that the "total time / total intervals" approximation was more useful, in particular since apparently the first few taps were usually quite off for me until I had found my rhythm.
On a side note, live music also tends to fluctuate in tempo, so sometimes the bpm value is just +-2 bpm by the recording itself. This is also why I wanted the visualization of "speed stability" - to see if the song maybe has such effects.
With automatic detection software, I have mixed experiences. They work well on the easy songs, but in particular once you get out of their main speed range (say with some bal or blues songs) they tend to be off on a completely different rhythm. However when checking the values, I often see them to be off by a factor of 2, 1/2, 1/3 to the speed I tapped. Adjusting the automatic value by this factor often gives a very good bpm value.
So the bottom line is: Tapping is nice, but don't bother about a precision of +- 4 bpm - this probably is just an artifact of the tapping software used.
I've always thought BPM values to be more sensible towards the music. But the also somewhat common "MPM" value ("measures per minute") more adequately reflects the precision we have, and the values are somewhat more readable.[/i]
Are you referring to the timer rate (you can crank it up, or not use it at all by setting your own NMIs) or the USB poll loop (you can crank that up, too)?mr. e wrote: Essentially, operating systems process events at a certain rate. For me, this turned out to be 125 Hz if I recall correctly.
(Regardless, I assumed everyone would agree that trying to reduce the error below +/- 5 bpm is pointless for DJing purposes. Maybe that's not true.)
Depends on your data source. I've read that you can increase USB polling times for some devices such as gamer mouses. That should then give you faster mouse click accuracy.lipi wrote:Are you referring to the timer rate (you can crank it up, or not use it at all by setting your own NMIs) or the USB poll loop (you can crank that up, too)?mr. e wrote: Essentially, operating systems process events at a certain rate. For me, this turned out to be 125 Hz if I recall correctly.
The system timer often runs at 1000 Hz, actually (at least on Linux) or even in a "NO_HZ" mode of operation nowadays.
I do not know about the keyboard controllers though. I find taping the space bar the easiest. However the keyboard in a laptop probably is using an 8042 style controller.
Maybe I should actually do an experiment with increased polling rate, just to see how stable my tapping is.

In any way, I doubt that many people will increase the polling times for their bpm tapping, or that their bpm tapping software will do this for them. So we just have to acknowledge that our bpm estimations will often be off by +-4 bpm.
Modern distros actually are more likely to use 250 Hz (or, indeed, tickless). For large SMP systems, a kHz timer becomes an annoying overhead (since each CPU gets its own, plus one for the APIC), especially when virtualised--which is why kHz is used less now.mr. e wrote: The system timer often runs at 1000 Hz, actually (at least on Linux) or even in a "NO_HZ" mode of operation nowadays.
Anyway: Mac OS and Windows are far more common DJ platforms: Mac OS has a 100 Hz timer by default (maybe it's 125--I don't remember), and Windows has something of the same sort (it depends on the HAL--it used to be as low as 60 Hz in NT SMP HALs). To get the timer rate up you can ask for a multimedia timer--which commonly gives you 1 kHz, though you can ask for more.
They're not USB? That's bizarre--you'd think they'd use USB, since the controller is already necessary for external ports. Why bother with extra hardware to implement AT or PS2 in modern chipsets? Is there some specific reason?I do not know about the keyboard controllers though. I find taping the space bar the easiest. However the keyboard in a laptop probably is using an 8042 style controller.
Well, as long as you don't drop any taps, it really ought not matter--even 125 Hz will get you great results.Maybe I should actually do an experiment with increased polling rate, just to see how stable my tapping is. ;-)
Okay, I've found some other solutions. I hadn't thought to look in the new Mac App Store.
Cadence BPM Tapper is fairly similar to iTunes-BPM in it's functionality. It takes up a lot more screen space and doesn't seem as precise, but it's free and Intel Mac native, which will be especially important once OSX 10.7 Lion launches because older PowerPC software like iTunes-BPM will no longer work (no Rosetta - cue the Earl Hines!)
ItjBPM looks like it might be better, but I'm too cheap to buy it to test it out, and the description still leaves me wondering. Support for lots of keyboard shortcuts, which could be useful, and again Intel friendly.
Cadence BPM Tapper is fairly similar to iTunes-BPM in it's functionality. It takes up a lot more screen space and doesn't seem as precise, but it's free and Intel Mac native, which will be especially important once OSX 10.7 Lion launches because older PowerPC software like iTunes-BPM will no longer work (no Rosetta - cue the Earl Hines!)
ItjBPM looks like it might be better, but I'm too cheap to buy it to test it out, and the description still leaves me wondering. Support for lots of keyboard shortcuts, which could be useful, and again Intel friendly.
I've been using the bpm tapper that Jeese linked above for years. I just saved the page to my hard drive and load it up whenever I need it.
The tapper above works with any key press, so I usually just tap out a-s-d-f (or j-k-l-;) on the keyboard along with the music. I find it's almost impossible to screw it up this way, and even if you slip and miss a tap (obvious because you're no longer on multiples of 4 at the start of a new bar) it's easy to double tap and that brings the average back.mr. e wrote: So the raw, single-measurement readings are only +- 8 bpm accurate at these speeds. In order to get a higher precision, multiple taps need to be combined. The most obvious (and very common) method is just to count the number of taps and measure the time from the first to the last tap.
But these simple methods can easily cause another bias: if you miss one tap or add an extra tap, they will also be off. Many people tap around 15-30 seconds at most. At any bpm rate, if you miss one beat (or the application has a rather obvious math mistake that DOES occur), that means at 15 seconds length about +- 4 bpm and at 30 seconds +- 2 bpm for a single error.