After trying to find a nice metronome for my phone I realized all of them has problems to keep the tempo steady. So I tried to investigate about how to achieve nice tempo on the older version of Android (1.3).
It was quite frustating because of the lack of documentation and the bad implementation of the audio library on that release. Anyway I got to do some tricks using NDK to generate a uniform tempo.
The following graph shows the differences between my metronome and the most downloaded on the Play Store:
The application was designed to keep stability and accuracy but include aswell a full set of fully customization features. The main features of Perfect Metronome are:
- Perfect tempo accuracy
- Up to 20 beats per measure and 12 subdivisions per beat
- Many available soundbanks with 3 samples per soundbank
- Accent and disable beats and subdivisions
- BPM range from 20 to 300
- Tapping BPM input
- Volume boost (may produce distortion)
- Automatically increase/decrease BPM
- Store songs with several metronome tracks configurations
- BPM: Dragging the BPM counter will increase/decrease 10 bpms while scrolling on vertical or 1bpm doing it horizontally. Double tapping the counter will show the BPM dialog.
- Sound: Pressing the Speaker icon will show the dialog for sound configuration (volume, boost, soundbank,...). Long pressing the button will mute/unmute the sound.
- Beats/Subdivisions: Dragging the beats/subdivisions balls around the center will increase/decrease the number of beats and subdivisions according to the direction. Pressing the notes button will show the dialog to easly setup the number of beats and subdivision, while long pressing the same button will restore the base setup (4 beats, 1 subdivision).
- Loops: Pressing the loop button will show the loop dialog that allow to setup how we want to count the beats per measure. Aswell we can define automatically increase/decrease of BPM while playing. By long pressing this button it will reset the counter to the first measure. Disable screen lock: It's possible to disable screen lock by setting the option in the preferences menu.
- Song: Dragging the BPM counter will increase/decrease 10 bpms while scrolling on vertical or 1bpm doing it horizontally. Double tapping the counter will show the BPM dialog.