Tuesday, March 1, 2011

This is a metronome, a wonderful machine that goes CLICK residing in your cellphone, helps you improve your rhythm and is universally hated by all lackluster music pupils. No more, no less. For this very cause the User Interface is just as miserable as the one you see on the screenshot. No bloody revolving 3d raytraced metronomes will ever dance around the screen, I swear it. But hopefully this little gadget will do its job of going CLICK properly, just as good or even better than some of the J2ME metronomes out there that I've tested and they all sucked, which inspired me to start writing my own... and because Azi's Metronome 1 sucked too, the combined suckage inspired me to write a sequel!!

Is this any better than version One?
Oh yes! This one works by generating and playing a long MIDI click track, rather than triggering individual sounds, which has proven to be the only reliable method of keeping exact tempo in Mobile Java applications. Among all the previous features it also supports composite beats (2+3, 3+4 etc), custom selection of MIDI percussion tones for up/downbeat and much more!

The Main Menu

* Start / Stop: Run or freeze the ticker.
* Exit: Quit the app. Your settings will be saved.
* BPM: Set current BPM. Pressing 5 or Fire button on this field opens a small dialog box to enter the BPM directly using your numeric keypad; left/right will change it by tiny bits. Range: 30 all the way to 299. Glory.
* Tap Tempo: Repeatedly push any button but up/down with a rock-steady beat, man, and you got yourself the desired BPM. Check Advanced menu for more intricacies...
* Beat: Set number of beats: e.g. 4 will set a 4-beat rhythm with one downbeat and three upbeats. And so on. Setting it to 1 will play only the downbeat sound. Complex custom beats also available when you push the option far right ... see Advanced!
* Advanced... Venture in the forbidden secrets of the Masters.
* About... Read all about the Author and his many talents.

The "Advanced" Menu

* Custom Beat 1/2/3: Choose your own fancy beat. Want 3+4+7? Choose 3/4/7, of course. Want 4+9? Choose 4/9/0. Want 19? Choose 19/0/0. Please tell me you're after prog rock, not some nasty avantgarde..
* Looping: (Yes / No) Some phones can handle MIDI track looping seamlessly, most of course don't. That's why the default value is NO. The way to test is:
- Set the duration to 1 minute
- Choose a decent testing beat like 4 at 120 BPM
- Set Looping to YES
- Run the ticker and listen to the transition that comes after one minute. If it sounds good enough, keep it. It rarely does, in my experience.
- If the transition sucks, turn Looping back off and stick to longest possible buffer / duration values instead.
* Buffer The amount of memory to generate the MIDI click track, in kilobytes. Too large a value will cause Out of memory errors, too small and the track will be too short (which kinda sucks unless the aforementioned Looping miraculously works good on your device). Note that the preset duration (without running the "Detect buffer size" process" is 4kb, which is almost nothing - about 3 minutes worth of clickz. - if the autodetection failed, be sure to change it manually and try to find as large value as possible.
* Duration (minutes) The maximum allowed duration of the click track. The default value is "Unlimited". Some cheap toys, like my tumor of a 6060, won't play longer MIDI's than X minutes... 10 minutes in my case... is that sad or what? So you might want to take advantage of this option. Or buy something more up to date. No bitten fruits though.
* Detect Buffer Size... Allow your phone's superior intelligence to guess the optimal buffer and duration for ya
* UpBt This is short for Upbeat! Select the MIDI percussion sound for the Upbeat note. Default is C#1 Side Stick.
* DnBt This is short for Downbeat! Select the MIDI percussion sound for Downbeat note. Default is A4 Open Triangle.
* Calibration Haven't seen it happen yet, but some ungodly device might not play the MIDI files at proper tempos. Here's the workaround!
* Tap Average When using the Tap Tempo functionality, use the average of your last X taps to calculate tempo. Nifty eh?