BPM tools for Mac

It's all about the equipment

Moderators: Mr Awesomer, JesseMiner, CafeSavoy

Message
Author
User avatar
trev
Posts: 736
Joined: Tue Sep 14, 2004 8:20 pm
Location: Perth, Australia

BPM tools for Mac

#1 Post by trev » Mon Jan 31, 2011 7:18 pm

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!

User avatar
Jonas
Posts: 172
Joined: Wed Nov 10, 2004 6:00 am
Location: Uppsala, Sweden

#2 Post by Jonas » Mon Jan 31, 2011 8:36 pm

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

User avatar
JesseMiner
Posts: 1034
Joined: Mon Nov 18, 2002 5:36 pm
Location: San Francisco, CA
Contact:

#3 Post by JesseMiner » Mon Jan 31, 2011 9:29 pm

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

User avatar
trev
Posts: 736
Joined: Tue Sep 14, 2004 8:20 pm
Location: Perth, Australia

#4 Post by trev » Mon Jan 31, 2011 10:01 pm

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

User avatar
trev
Posts: 736
Joined: Tue Sep 14, 2004 8:20 pm
Location: Perth, Australia

#5 Post by trev » Mon Jan 31, 2011 10:06 pm

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

Rob
Posts: 15
Joined: Mon Feb 01, 2010 12:00 pm

#6 Post by Rob » Tue Feb 01, 2011 6:09 am

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

lipi
Posts: 789
Joined: Mon Jan 10, 2005 3:26 pm
Location: menlo park

#7 Post by lipi » Tue Feb 01, 2011 3:13 pm

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.

User avatar
trev
Posts: 736
Joined: Tue Sep 14, 2004 8:20 pm
Location: Perth, Australia

#8 Post by trev » Tue Feb 01, 2011 6:20 pm

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.

User avatar
anton
Posts: 409
Joined: Wed Aug 02, 2006 12:41 pm
Location: Malmö, Sweden

#9 Post by anton » Wed Feb 02, 2011 3:10 am

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.

mr. e
Posts: 51
Joined: Wed Feb 06, 2008 8:01 pm

#10 Post by mr. e » Mon Feb 28, 2011 8:00 am

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]

lipi
Posts: 789
Joined: Mon Jan 10, 2005 3:26 pm
Location: menlo park

#11 Post by lipi » Mon Feb 28, 2011 11:32 am

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

mr. e
Posts: 51
Joined: Wed Feb 06, 2008 8:01 pm

#12 Post by mr. e » Tue Mar 01, 2011 2:34 am

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.

lipi
Posts: 789
Joined: Mon Jan 10, 2005 3:26 pm
Location: menlo park

#13 Post by lipi » Tue Mar 01, 2011 9:36 pm

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.

User avatar
trev
Posts: 736
Joined: Tue Sep 14, 2004 8:20 pm
Location: Perth, Australia

#14 Post by trev » Thu Mar 03, 2011 9:21 pm

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.

Surreal
Posts: 402
Joined: Fri Aug 25, 2006 3:31 pm
Location: Winnipeg, Manitoba, Canada

#15 Post by Surreal » Fri Mar 04, 2011 4:24 pm

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.

Locked