New Projects - Fresh from the Labs
This month, I'm covering projects I've wanted to showcase but have held off on due to space constraints. CountBeats is a cracker of a little application—it's simple, yet it covers such a need for so many musicians, so I'm proud to give it top billing here. To quote the README file:
This is a simple little program designed to help you determine the speed of a piece of music on the radio or on a CD.
To use it, just invoke the program from the command line. You'll be presented with a screen describing the program, a time-bar, and a few buttons. Most should be self-explanatory. Just start tapping the spacebar in time to the music...the tempo bar will update and show how many beats per second are being played.
First, there is a library you probably won't have installed: Tkinter. This was under the package name python-tk on my system, but it's worth looking in your local package manager for yours. The only other requirement seems to be a working version of Python 2.x onward.
Otherwise, installing this thing is a walk in the park. Simply download the 1K (!) tarball from the Web site, extract it, and open a terminal in the new folder. From here, run CountBeats simply by entering:
The README file did a pretty good job of explaining how it all works, but I can expand on it a little further. As soon as you have a song for which you want to find the BPM rate, start the program and press the spacebar in time with the music. The more times you do this, the more accurate the rating will be, so stick with it for a good minute or two. If you want to clear away previous readings and start again (perhaps when another song comes on), click Clear at the bottom-left corner.
Given the cumbersome nature of a spacebar, it's generally best if you track a song's quarter notes, as eighths or sixteenths may track a bit inaccurately. If you know your way around Python syntax (which I don't), you may want to change the key to something like Ctrl for faster music.
That small niggle aside, this is an invaluable tool for musicians. Many times I've been working on a project and forgotten to note what tempo a song was in, making tracking a nightmare at times. DJ-remixing types probably will use this most of all, as they can use it to gauge the speed of whatever songs they're piecing together and work out which samples will be compatible with each other. All in all, this is a brilliant tool that is simple to use and install, and it probably takes the prize for smallest file size of any project I've covered!
If you like minimalism and are chasing a tuning reference for your acoustic guitar, this may well be the project for you. I especially meant that minimalism part—the only info I could find on the project's Freshmeat entry was the following: “wxGuitar is a useful application that will easily help the novice guitarist to faster (and better) tune the guitar.” And, that's pretty much it—that's all the information I can find anywhere on the Net. But, maybe I can illuminate things a little here.
I couldn't find an actual home page for wxGuitar, so you have to make do with the files provided on the (brief) Freshmeat page. Source is provided, along with Debian and Gentoo packages. As far as libraries go, the INSTALL file says you'll need wxWidgets >= 2.8.10 (I had to install libwxbase2.8-dev), along with alsa-utils, including aplay. If you're running with the source, once you have the needed libraries, grab the latest tarball, extract it, and open a terminal in the new folder. Enter the following commands to compile wxGuitar:
$ ./configure $ make
If your distro supports sudo:
$ sudo make install
$ su # make install
Once wxGuitar is installed, you may have it in your system's menu, or you can run it with the command:
When you're inside the main screen, I think you'll find it rather straightforward. wxGuitar is very basic. Turn your speakers on and press any of the buttons on the left to play the corresponding note. The notes start from the highest note E string and go down to the lowest note E string. The second button is curiously marked H, but unless there's some kind of unique Eastern European scale I don't know about, logic dictates that should be a B string.
Press the button on the left for each string's note, and play the corresponding string on your own guitar as you fine-tune it. If you look on the bottom-left corner, there's a repeat option that will be set to every three seconds by default, which can be made longer or shorter if you so desire.
That's pretty much all there is to it. wxGuitar may not be complex (and if you're looking for a sophisticated tuning recognition program, you should look elsewhere), but if you want a minimalist program to tune by ear, this is probably for you.
John Knight is the New Projects columnist for Linux Journal.
- Bruce Nikkel's Practical Forensic Imaging (No Starch Press)
- Transitioning to Python 3
- Progress on Privacy
- Linux Journal December 2016
- Stepping into Science
- FutureVault Inc.'s FutureVault
- Radio Free Linux
- Tech Tip: Really Simple HTTP Server with Python
- CORSAIR's Carbide Air 740
- A Better Raspberry Pi Streaming Solution