Tue Dec 13 2016  [Updated: Wed Jan 10 2018]

OpenMetronome is a Windows metronome program that started out as a project called “Weird Metronome” by David Johnston, was renamed to “OpenMetronome” and further enhanced by Mark Billington, and now I’ve added a few more minor modifications. If you’re ready to try OpenMetronome without reading through this whole article, you can scroll down to the end to find the installation instructions.

Drum Machine Feature

One of my favorite features of OpenMetronome is that it goes beyond the basic “tic-tock” of a simple metronome and can produce actual drum beats like a drum machine. Select “Custom” as the metronome beat mode and fill in the text field adjacent to it with a series of numbers corresponding to the percussion instruments you have selected for the nine available voices. If you have installed OpenMetronome using the installer program, there will be several example drum beats already set up for you as presets. Click the down arrow next to the word “Preset” at the bottom of the window and choose one of the available presets.

Here’s an example of one of these built-in presets:

Hopefully it sounds close to “Walk This Way” by Aerosmith. The custom measure string used to produce this beat is:

[4*](56)070 (34)075 (35)0(75)0 (34)070

This may look confusing, but generating your own beats is really pretty simple as explained under “Custom Drum Beats” below.


Basics of Operation

OpenMetronome offers pop-up help messages when you hover over any of the controls to explain what they do. Use the radio buttons to run OpenMetronome in any of the three modes:

  1. Straight Metronome – This mode plays whatever sound you select as voice 1 on each beat.
  2. Simple Metronome – This mode plays voice 2 on beat one of each measure and voice 1 on the remaining beats. Set the number next to “Simple Measure” to the number of beats per measure.
  3. Custom – Fill in the space next to “Custom” with a string of numbers to design your own custom drum beats.

Custom Drum Beats

Here’s how to set up your own custom drum beat. First, select the radio button next to “Custom”. Second, make sure all the drum sounds you want to use for your beat are among the nine available voices. Then, in the text box next to “Custom” you enter the number of the voice to play on beat one, followed by the number to play on beat two, etc. For example, the string “1225” plays voice 1 on beat 1, voice 2 on beat 2, voice 2 again on beat 3 and voice 5 on beat 4. You can continue on for as many beats as you like.

Now just playing one drum sound per beat makes for somewhat boring beats. But there are a few options to make things more interesting. You can play multiple drum sounds on the same beat by enclosing them in parentheses. For example, we can change our previous string from “1225” to “(16)2(27)5” so that now beat one consists of voices 1 and 6 playing together, beat 2 is still voice 2 alone, beat 3 is voices 2 and 7 together, and beat 4 is voice 5 alone.

Playing only on quarter notes is also a bit limiting. You may start off your string with some characters inside square brackets to modify the beat in two different ways. First, you can subdivide the beat into between 2 and 8 sub-beats. So if our string starts with “[4*]”, then we will have four sub-beats per beat, or in other words, each beat is a sixteenth note. Say we started with our original example beat again of “1225” and changed it to “[4*]1225”. Essentially what happens is it plays 4 times as fast, so that each voice is playing on a sixteenth note. Of course this means that now the string “1225” is only one full beat (i.e. each beat consists of 4 sub-beats) so a full measure in 4/4 time would require 16 voice entries. So four full beats of sixteenth notes would look something like “[4*]1225 1225 1225 1225”. You may find it useful to use spaces as I did to separate the sub-beats. OpenMetronome plays whatever string you enter in a loop, so in this example, since I have the same pattern for every beat, the string “[4*]1225” would sound identical to the longer string.

Mark Billington added an interesting feature that provides the second way of altering the beat. From his web page:

“Playing in Fix” (Control of microtiming/ dialect)
Apparently, in Cuban and African music, it is common to place the first few beats of each bar somewhere between where sixteenth and triplet beats would fall. If anyone knows the proper name for this kind of tempo, please let me know (
This can be controlled via new syntax in the “Custom” box. By example:
would play the first 3 beats out of every four 12% faster than the current tempo. The resulting feel is that the first three beats per bar are “rushed”, but the fourth lands where you’d expect it to in standard 4/4 time.
You can specify a negative percentage (e.g., “[3/4@-12%]”) to make the first beats 12% slower than the current tempo.
You can also specify an absolute tempo, by omitting the “%” sign (e.g., “[3/4@120]” would play the first three beats per bar at 120 bpm regardless of the main tempo).

You may combine both the beat subdivision and the “Playing in Fix” capabilities by putting them both within the same square brackets at the start of your string. If you do this, the beat subdivision command (i.e. the number followed by the multiply symbol) must come first as in “[2*3/4@12%]”.

Internal Clock Training

Developing your internal clock, your ability to keep accurate time on your own without a metronome to help you is an important skill no matter what instrument you play. One way to do this is to play with a metronome that “drops out” for a period of time and then you see if you are landing right on the beat when it comes back in. I’ve only seen a few metronomes out there with this capability, but it’s very easy to do with OpenMetronome. Entering a zero as the voice in a custom string causes nothing to be played on that beat. So here’s a custom measure string that plays in 4/4 time using voice 2 to mark beat one of each measure. It plays for two full measures, then drops out for one measure: “2111 2111 0000”. Want to make it more difficult? Make it two measures of silence: “2111 2111 0000 0000”.


You may capture the current settings of OpenMetronome and save them as a preset. Click in the space to the left of the word “Preset” at the bottom of the window and type in the name you want to give the current settings. Then click the “Save” button to create the preset. You’ll be warned if a preset with that name already exists. You may delete a preset by selecting it from the dropdown list and then clicking on the “Delete” button.

Hotkeys and Configuration

Clicking on the “Hotkeys/Cfg” menu heading brings up the “Hotkeys & Settings” dialog box. You set hotkeys by clicking in the box next to the function you want to activate. Then press the key you want to use as the hotkey for that function. Be warned that the hotkeys you select will be captured by OpenMetronome as long as it is running — even if it’s not the active window. So if, for example, you use the space key for the “Play/Stop” function, and you go to type an email (with OpenMetronome still running), you’ll find that you can’t type spaces in your email message. My preference is to use keys on the numeric keypad as hotkeys. I use the zero key for “Play/Stop”, the “+” key for “Increase Tempo”, and the “-” key for “Decrease Tempo”. The corresponding keys (i.e. the 0, +, -) on the regular keypad will still work normally, so it doesn’t affect your ability to use other applications.

The “Beats Per Minute” settings allow you to set reasonable minimum and maximum BPM limits. The value entered for “Inc.” (increment) is the amount the tempo will increase or decrease when you press the corresponding hotkey.

Finally, the “WAV Export” allows you to specify the number of loops of your beat that will be saved into the WAV file (see “Exporting” below).


The “Exp” (export) button performs two functions. When you click it a “Save As” dialog box will appear. At the bottom, the “Save as type:” will be set to “Wave Sound”. If you leave that as is, and fill in the file name then when you click “Save” OpenMetronome will generate a sound file of OpenMetronome playing your beat for the number of loops specified in your configuration settings. This only works in the WAV version of OpenMetronome.

If you change the “Save as type:” to “Registry Files”, then when you click “Save” a .REG file will be created containing all the registry settings for OpenMetronome. Opening that .REG file on another computer allows you to easily duplicate your current OpenMetronome settings including configuration, hotkeys, and presets.

Command-line Options

The reason I got started working on OpenMetronome was I wanted a metronome program I could launch from another program with the tempo already set. So this version supports command line options enabling you to launch OpenMetronome and start it running with your desired settings. You can see all options available by running OpenMetronome from a command line with the “/help” option:

> OpenMetronomeWAV.exe /help
OpenMetronomeWAV.exe options:
/t:, /tempo: (tempo in beats per minute)
/p:, /preset: (existing preset to select)
/s, /straight (straight metronome mode)
/m:, /measure: (simple measure number of beats)
/c:, /custom: (custom beat string)
/b, /blink (enable visual beat display)
/B, /noblink (disable visual beat display)
/S, /start (start metronome)

Each option has both a short one character version and a longer full word version that do the same thing. So you can set the tempo to 80 bpm with “/t:80” or “/tempo:80”.

Two Versions: WAV and MIDI

OpenMetronome comes in two flavors represented by two different executable (.EXE) files. OpenMetronomeWAV.exe is the WAV sample version. It plays sound samples of percussion instruments contained in WAV files. These can be found in a “Samples” subdirectory under the installation directory. OpenMetronomeMIDI.exe makes its sounds by using Windows built-in MIDI sound library. The advantages of the WAV version are:

  1. it should have more accurate timing
  2. it gives you the option of exporting your beat as a WAV file
  3. you may add your own drum samples to the “Usr” directory that is located inside the “Samples” directory.

The MIDI version has the advantage of being completely standalone. You can copy OpenMetronomeMIDI.exe to any Windows computer and run it from any directory and it should work.


You can find the installer for OpenMetronome on my github page (you need to scroll down to the bottom). Running the installer will put the OpenMetronome files in the directory “C:\Program Files(x86)\OpenMetronome” and add a few entries to the registry to give you some sample presets.

You can always uninstall OpenMetronome by going to your Control Panel and then “Add/Remove Programs”. The uninstaller will remove all traces of OpenMetronome from your computer.


If you practice your instrument in front of your computer as I do, I hope you will find OpenMetronome useful. I give all credit to the original authors David and Mark, but any bugs you find are probably mine. Mark’s version also runs on Windows Mobile devices so definitely check it out if you still have one of those. The only significant differences between my version and Mark’s is the addition of the beat subdivision operator in custom measure strings and the ability to use command-line options.

Keywords: music,guitar,drums,windows,software