Today there are many available software programs that help people to learn how to sing. They offer a favourable alternative for those who prefer not to take lessons from a singing teacher. These programs are cost effective and help participants save on time and money. Typically, this software uses a display to give visual feedback of the pitch sung. This grants the opportunity for the singer to correct the mistakes instantaneously.
These programs use a MIDI file as a reference, which suits the needs of the beginner who wishes to sing more accurately by focusing on simple, individual notes. However, an intermediate singer might want to perform like his/her favourite artist and further examine and practice all the nuances that a professional singer does; bending notes, belting and using vibrato, as is demonstrated in this program.
This app fulfils these performance expectations. The final product is a program in the form of a VST plugin that can load audio files and analyse them quickly. It is then able to compare the pitch of a live performance to the reference in real-time, making an easy-to-navigate tool for vocal performers. It further helps the vocalist practice singing in tune by loading a backing track.
By examining the most well-known pitch detection algorithms, this thesis explores the most common errors that occur within these programs. In order to find the most suitable algorithm for this software, comparison of known programs and errors is vital in order to create a successful program. Additionally, this thesis discusses the basics of VST and JUCE. It shows the fundamental structure of a VST plugin, which simulates a digital recording studio. The introduction of the JUCE development environment demonstrates how JUCE makes handling audio files and creating a graphical user interface simple. This thesis gives a brief explanation about the implementation of the chosen algorithm and the main components of the program: how it interacts with the user and the main functions.
In conclusion, this thesis tests the product with real and synthesizer generated test signals. It measures the accuracy and the dynamic properties of the created program and then compares this plugin to the available software.