Beats-per-minute Meter |
December 16th, 2011 |
ideas, music, tech |
To help me out, I want to write software where I can tell it a target
BPM and it will let me know non-intrusively where we are relative to
it. I think the easiest way to do this is with color [1]: blue if
we're below min
, red if we're above max
, green at
target
[2]. Between these colors we can have smooth
variation.
This needs to have as input the audio signal, either through a board feed (especially if we're also recording) or through the built in mic (which should be plenty good for beat detection). It needs to disable the screensaver. And it needs to write to a giant window. Ideally this would just run in a web browser as javascript, but for that I think I'm waiting on navigator.getUserMedia(), which appears to currently exist only in opera. (If you want, you can check your browser.) So this leaves me with flash, a java applet, or a standalone program. [3]
General fully automated beat detection is a hard problem, but there are two things that make it easier in this case. One is that it only needs to work in the 90-130 range for a nearly constant tempo. The normal problem of "is this 100bpm or 200?" doesn't apply. I'm also not trying to say exactly where the beats are, just how often, so consistent syncopation isn't a problem either. There are some libraries; whether I end up using one probably depends on whether I'm in a browser and needing to use javascript.
Any chance this already exists? [4]
[1] The important thing to me is that this be something that requires
minimal mental energy during the performance. Having a colored screen
does that. Giant BPM numbers might work too, I'm not sure.
[2] I think the right values are min = 112
, max =
122
and target = 118
. You could make target
adjustable, but I think I'd rather just mentally aim for a blueish
color when we were intentionally playing slow and reddish when
intentionally playing fast. The goal is for max
and
min
to be set at the bounds of the danceable range.
[3] You could also make some sort of standalone box, like a tuner or metronome. Possibly with a spiffy analogue needle. One advantage of a box is that you could sell them. You'd probably sell it as a "better metronome". Hmm, sales pitch: "Why make the musician adapt to the device? Just as we've replaced tuning forks with tuners that can tell what note you're trying to play and help you adjust to where you want to be, the bpm-o-matic lets you know how fast you're playing without any work on your part. Throw that old metronome away and buy a bpm-o-matic today!"
[4] You could just say: 'learn to use a metronome'. I don't like metronomes; they feel too rigid. The standard way of using one involves playing the downbeats when the metronome says to. This doesn't really combine well with having a group of people play where only one of them is paying attention to it. You could learn to tell whether you are getting ahead or behind of an arbitrary metronome beat, but that sounds hard, confusing, and attention demanding.
Comment via: google plus, facebook, r/WeAreTheMusicMakers