A common deficiency of beginner musician is, that they play with incorrect tempo or they can’t keep a constant tempo. The role of this skill is especially important for drummers. To correct this deficiency one option is to use a metronome which is gives back beats with a fix tempo. The goal of my thesis was to develop a software which can provide feedback for the user about the currently played tempo. The application also follows the tempo changes. My software is using the audio input of the computer to calculate the tempo and give this information to the user. Furthermore it is able to provide information about the difference between the metronome beats and the played beats.
In connection with my thesis, I have learned a lot about digital signal processing and I have developed an algorithm which can calculate the accurate tempo of a music. During my literature research I have learned about available BPM (Beat Per Minute) detection algorithms. I have used this knowledge for the development of my own algorith. I have tried out various algorithms and I have compared these solutions during the development.
For the comparison I have used Matlab and I have tested the system with recorded sounds to measure its precision. Finally, I have implemented the best solution in C++ and I have used the JUCE development tool for it. The final programme has a graphical user interface and can be executed independently. I have also compared the application with the results of the Matlab algorithm, so I was able to check its correctness.
The application includes different features that were formerly available in separate devices. The tempo detection function has been implemented on mobile phones and also on computers before. Some electronic drum kits are able to give information about the time difference between the played beats and the metronome beats. My goal with my work was to make a software which is includes both functions and can be used for practice with acoustic musical instruments.