Simple Metronome (simetro) is a console program that provides basic metronome functions and supports accent patterns.
If all you want is a 100 bpm metronome, do this:
../simetro 100 9 | ecasound -f:s16,2,44100,i -i:stdin
A sightly fancier example would use simetro like this:
./simetro 240 6232
1st arg: 240 ticks per minute. 2nd arg: a string of one or more digits, possibly annotated with other non-digit characters. 0 is silent. 5 is medium. 9 is loud. The pattern 9099 means loud-rest-loud-loud. The example pattern, 240 6232, represents normally accented sixteenth notes at 60 beats per minute. The length of the second argument determines the length of the pattern.
Typical accent strings (second arg):
5, 73, 733, 8242, 8222, 832-632
For your convenience, you can add non-numeric characters (annotation) to the accent string. These characters are ignored by simetro. So 832-632 and 832632 are equivalent. The groove and military examples in the examples/ directory illustrate this. noaccent-100bpm is the simplest example. tabla is a fanciest example.
The first argument is "ticks per minute" so if you are representing your rhythm with one tick per beat, than the ticks per minute will be equal to the beats per minute. But if, for example, your ticks are 16th notes, then the ticks per minute will be four times the beats per minute.
There are two methods for hearing the output waveform.
1) Pipe the output to a realtime raw audio player.
2) Send the output to a file. Convert to WAV. Play WAV file.
Using Ecasound, you can do it like this:
./simetro 240 6232 | ecasound -f:s16,2,44100,i -i:stdin
This is probably the most practical configuration. Ecasound is good code and I recommend it. Or you can use some other program that can play an audio stream from stdin. Srp also works:
./simetro 240 6232 | srp > /dev/null
It starts immediately, does not create any files, and stops with CTRL-C. srp is part of my Simple Multitrack package which can be found at http://freshmeat.net/projects/simple-multitrack/ and runs on Linux/OSS and on Mac OS X. Other programs undoubtedly provide the same capability.
On Solaris 9, I use this bash command for realtime (but low quality) output:
alias rawplay="sox -t sw -r 44100 -c 2 - -t raw -r 8012 -u -b -c 1 /dev/audio"
./simetro 300 5222 | rawplay
If you want to make a file and play it (method 2), you can do this:
./simetro 240 6232 | dd bs=1024 count=10k > rawfile
sox -t sw -r 44100 -c 2 rawfile outfile.wav
sox is an audio format converter. You can get it here:
Please email your comments, suggestions, and bug reports to me. My email address is on my webpage: http://w140.com/kurt Please include the word simetro in your subject to skip the spam filter.
What's New in This Release:
· Rhythms can now be specified in a more convenient free-form syntax.
· It is easier to read and easier to write rhythms in the new syntax.
· More examples are included.
· Ecasound is used in the examples for sending the audio stream to the sound card.