Azi's Metronome 2 - MIDI Edition

A Free Metronome for your Mobile Phone

Back to Music Page | Main Software Page |

Copyright (C) Aziraphal 2011
Current version: 1.0.00

Stop wasting my time, take me straight to downloads!

Don't panic; what's this Do you want do detect buffer now thing??

We now have a Troubleshooting n' FAQ section!

Yes, the GUI is prehistoric. Dude, it's a ticker, not a PhD in visual communications.
What is it all about
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. :P
  • 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?

"Do you want to detect buffer size now?"

When running for the first time, this dialog is displayed by default; it can also be accessed from the Advanced menu.

Choosing Yes runs a detection process. The gadget will test various buffer lengths and minute durations until the click track can run with no errors. It can take a few minutes so be patient. If it freezes for real (nothing happening for a minute or more) or fails to find a match even after several minutes, shutdown the app (or the phone, whatever it takes) then set the buffer / duration manually using the Advanced menu on restart.

NOTE: The detected buffer size might be very large and able to execute, but the processing time before it's played (when you hit START) might be very long. In that case, go to Advanced -> Buffer and decrease length to e.g. 256k. I'll think about some optimisation of the detection process, when I got time :)

How to calibrate your ticker

As mentioned before, I've not yet discovered a phone that plays MIDI files terribly off-beat, but anything goes in the cruel J2ME world. So if it happens to you: The calibration value means how many seconds of actual time takes a minute of the MIDI player's time. This is a pretty annoying way to do it but hey, you get what you paid for. So work with me.

- Set tempo to something that amounts to seconds counting (like 60 bpm, beat 1 or, I prefer 120 bpm, beat 2)
- Get a hold of a trusty stopwatch
- Run the Java metronome
- Get ready :)
- When you be ready, on a click sound run the stopwatch. Then count 60 clicks under your alcoholic breath, but - starting with 0!! 0,1,2,3,...60! (only us programmers can do that, right? Prove me wrong! :P ). On click number 60 stop your stopwatch.
- Read the seconds on it - that's your calibration value!!

Troubleshooting n' FAQ

Q. The application won't load
A. Check your phone's specs, does it support MIDP 2.0 / CLDC 1.1 and Java apps at all?

Q. It says "MIDI not supported" on startup
A. Tough luck. Try Azi's Metronome 1 or better yet, buy an electronic metronome. Ibanez MU40 rocks.

Q. There's no sound, but it says *** RUNNING *** after I hit Start!
A. You most probably have sound turned off; you might be using Silent Profile or something like that; it might be just a Java apps-specific setting - see your phone's manual; some models turn Java apps sound off by default (and who can blame them, the music in java games is usually terrible)

Q. The ticking takes an eternity (over 1 minute) to start! (Alternatively, Buffer detection took an eternity to finish!)
A. (This was first noticed on a Blackberry) On some devices that have enormous RAM it takes a while to generate and play a 4096k-long MIDI file; decrease the buffer (Advanced -> Buffer) to e.g. 256k and try again. (Note: there might be another build soon where you won't get 4096 by default on high-end devices since it's way too much overhead ..

Q. The clicking stops after .. minutes!
A. Try Advanced -> MIDI Buffer, set it to as high value as possible without causing errors on start, then do the same with Duration. The length is displayed on the bottom of the display after the ticking starts. (see screenshot) Alternative, try setting the Looping option in Advanced Menu to YES.

Q. When hitting Start, I get an "Out of memory" error
A. Try Advanced -> MIDI Buffer, set it to a lower value and try again

Q. When hitting Start, I get an "device error" message
A. Try Advanced -> MIDI Buffer, set it to a lower value and try again; alternatively try Advanced -> Duration and set it to 9 (or less) minutes, try again... experiment a bit

Q. The timing is off, it's too slow/fast
A. Try the calibration trick described

Q. How can I say how much I appreciate your hard work and superhuman coding skills?
A. Listen to my music here and e-mail me how much I rock :) Buy a tune/album here. Or play Azi's Turbo Worm and Azi's Gerbil of Armageddon and let me know the same.

RAQ (Rarely Asked Questions)

Q. Can we get instrument sounds instead of percussion?
A. No. This is a metronome, not a mobile MIDI workstation.

Q. Can we get swing rhythms?
A. No, beacuse a) I can't be bothered to write it and b) Swing, as any decent jazz musician will tell you, is not pure 2/1 thirds but is a divine fuzzy ratio that the gods see fit to grant you .. or not.

Q. How about x+y+z+a+b+c.. beat, ritardandos, aleatoric tempo changes??
A. Shut up.

Azi's Metronome 2 is Album-Ware.
You can use it for all eternity free of charge, no nag screens, no time limits, no nothing. HOWEVER! If you find your life significantly enriched by Azi's Metronome 2, consider surfing over to and ordering the author's CD. You'll not only own one of the best indie electronic/classical music CD's out there, you'll make the author very happy and eternally grateful.
Minimum Requirements
First, let's get this over with. This is a J2ME (Java Micro Edition) application. Even us oldtimers with ancient bricks should be able to use it. It was thoroughly tested on my Nokia 6060, which (by today's standards) is primitive beyond words. But make sure your phaser supports this:
  • Java applications: MIDP 2.0 CLDC 1.1
  • Color screen resolution 128 x 128 pixels
  • 256 k available memory
There is no, repeat, no MIDP 1.0 or vendor-specific build of Azi's Metronome 2, nor will ever be.
  • The java (.jar) file is the package with everything you need to rock 'n roll. Most decent phones can load .jar files when you specify direct link. You can also download the .jar file and transfer it to your phone if you have the data cable for it (e.g. my stupid former cellphone, Nokia 2650, had some obscure this-model-only cable that cost an arm and a leg, so I never bought it...)
  • the .jad file is a "descriptor", basically some text info about the .jar (if you know your J2ME you know it, and if you don't you probably don't care, so on with the show..) some phones might require this one instead.
  • Azi's Metronome 2 (MIDP 2)

To Download Directly with your Mobile Phone

Surf your gadget over to and hit the correct link. See notes above.

Current version: 1.0.00

Change history:
  • 2011/feb/05: 1.0.00: The first release is out.
If you don't have the latest version, your phone most probably supports loading application updates. Try it! Many men have tried. They tried and failed, all of them? They tried and died! (Yes, the same J2ME software drives the Fremen Thumpers on Arrakis. Now go away.)
EULA or something.
  • No warranty. Azi's Metronome 2 (henceforth referred to as Da Tick0r 2) is made available by Aziraphal on an "AS IS" basis and with all its faults. It's free, for Moog's sake.
  • In no event will Aziraphal be liable to any party for any damages, claims or costs whatsoever or any consequential, indirect, incidental damages, or any lost profits or lost savings caused by Da Tick0r 2.
  • No Modification. You may not modify, adapt, translate or create derivative works based upon Da Tick0r 2. You may not reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of Da Tick0r 2.
  • Da Tick0r 2 is provided free of charge but the autor retains copyright. You are allowed, encouraged even, to make Da Tick0r 2 available for download on a mobile phone software resource page, a part of a CD compilation or use it for any non-profit purpose - providing that full author credit is given. You are NOT allowed to sell or to rent Da Tick0r 2.
  • You can practice 24/7 with it and you'll still not be as good as me on teh keyz XD XD XD

Aziraphal. The guy who wrote this thing. Note the URL. Better known for his achievements in the world of electronic music.

Fancy mobile phone image courtesy of Sun J2ME Wireless Toolkit 2.5.2

Back to Music Page | Main Software Page |