Page 1 of 2

BPM tools for Mac

Posted: Mon Jan 31, 2011 7:18 pm
by trev
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!

Posted: Mon Jan 31, 2011 8:36 pm
by Jonas
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

Posted: Mon Jan 31, 2011 9:29 pm
by JesseMiner
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

Posted: Mon Jan 31, 2011 10:01 pm
by trev
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...

Posted: Mon Jan 31, 2011 10:06 pm
by trev
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

Posted: Tue Feb 01, 2011 6:09 am
by Rob
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).

Posted: Tue Feb 01, 2011 3:13 pm
by lipi
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).
Well, yes, it works fine because it's running in Rosetta.

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.

Posted: Tue Feb 01, 2011 6:20 pm
by trev
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.
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!).

I was worried about the performance effects but this alleviated my fears:
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. "
iTunes-BPM it is.

Posted: Wed Feb 02, 2011 3:10 am
by anton
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.
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.

Posted: Mon Feb 28, 2011 8:00 am
by mr. e
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]

Posted: Mon Feb 28, 2011 11:32 am
by lipi
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.
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)?

(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.)

Posted: Tue Mar 01, 2011 2:34 am
by mr. e
lipi wrote:
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.
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)?
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.
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.

Posted: Tue Mar 01, 2011 9:36 pm
by lipi
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.
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.

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.
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.
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?
Maybe I should actually do an experiment with increased polling rate, just to see how stable my tapping is. ;-)
Well, as long as you don't drop any taps, it really ought not matter--even 125 Hz will get you great results.

Posted: Thu Mar 03, 2011 9:21 pm
by trev
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.

Posted: Fri Mar 04, 2011 4:24 pm
by Surreal
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.
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.
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.