The purpose of this Vocal Trainer, designed by Anderson Lin and Jerry Chiang, is to train people in singing accurate pitches, and ultimately become a vocal expert. Also, the vocal trainer has other features such as tuning, in which it can be used as a tuning machine for musical instruments. The Vocal Trainer, when used in Karaoke mode, can detect the fundamental frequency that the user sings, with customizable beat rate, while giving feedback to the user; therefore allowing the user to adjust his or her singing pitches, improving his or her singing accuracy.
High Level Design
Background
Our motivations for this project come from a couple things. For Anderson, one of the motivations for the Vocal Trainer comes from the increasingly popular Karaoke. While there are many Karaoke system out in the market, very few offer a scoring system, in which the singer can get feedback on how well he or she sings. The ultimate goal for the Vocal Trainer, therefore, is to make that a reality. This will not only motivate people to improve their singing, but also act as a game similar to that of Dance Dance Revolution, known as the DDR. With its embedded functionality, it makes sense for the Vocal Trainer to come with the feature of tuning for musical instruments. These two functions are both very practical in reality.
For Jerry, the strongest motivating factor has been a more personal need for such a device. Being a composer, he often finds that, though he has tunes in his head which he can readily express by singing or humming, he is unable to record those tunes accurately by hand. With a device that has the ability to match input frequencies to the nearest musical pitch, there is hope for an easy way to transcribe these melodies. And so for him, the vocal trainer has a very practical and direct application.
Design Concept
In designing the Vocal Trainer, we want to be able to take in human voice or instrument tones using a microphone, then filter and amplify the input signal to attain the desired voltage level, and base on this voltage level, we can generate a clock signal like square wave, via Schmitt Trigger, with the fundamental frequency of the input signal. After generating the square wave, we will feed it into Mega32 as an external interrupt, triggered at the rising edge. And using comparison with respect to the internal crystal clock, where the frequency is known, we will be able to calculate the fundamental frequency. However, this can only be accomplished with a well processed signal in order to obtain a stable and accurate result.
In implementing the user interface of the Vocal Trainer, we want to make the matter as simple as possible due to limited time alloted for the project. Another reason for it is that we want to implement many features in our menu, and that our primary focus is to obtain the most accurate results possible. As a result, we choose the 2-line LCD as our display, and 2 keypads as our menu input devices. Also, for optimum efficiency, we want the hardware to take care of most of the signal processing, with the software dedicated mostly to the user interface so that we can implement as many features as possible. The following block diagram offers a view of how the Vocal Trainer is built.