You Are Here: Home » AVR ATmega Projects » Sensor - Transducer - Detector Projects » Vocal Trainer Using Atmel Mega32

Vocal Trainer Using Atmel Mega32




Introduction

With the Vocal Trainer, expect to resurrect your singing, and ultimately become a vocal expert!

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.

Vocal Trainer Using Atmel Mega32

Vocal Trainer Using Atmel Mega32

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.

Standards and Others

The most relevant standards that apply to our project are those established in music, such as the setting of concert pitches by the International Standarizing Organization in 1953. We’ve adhered to their convention of referring to pitches by their musical names (i.e. C,F#,A,etc). We also try to follow the code of IEEE ethics, and of course only use equipment that abides by their standards.

Program Design

Vocal Trainer Using Atmel Mega32 diagram

Main Menu

The following six choices are shown in a scrolling menu:

  1. Play Music
  2. Karaoke Mode
  3. Custom Mode
  4. Tuner Mode
  5. Easy Match Mode
  6. Modify Settings

The user may enter any key from 1-6 to select the menu option they wish to use. Also, the user may press the menu button (‘*’ button) at any moment in almost any mode (exceptions are when the program is playing music or trying to listen to input from the microphone). All other keys pressed will have no response.

Play Music

The following ten songs are shown in a scrolling menu:

  1. Happy Birthday to You
  2. Take Me Out to the Ballgame
  3. LAutumn Voiceka, by Jerry Chiang
  4. Rainbow, by Jerry Chiang
  5. Small World
  6. Power of Love
  7. Beauty and the Beast (Beauty and the Beast)
  8. Music of the Night (Phantom of the Opera)
  9. Close Every Door (Joseph & the Amazing Technicolored Dreamcoat)
  10. Caro Mio Ben (Italian Aria)

Similar to the main menu, the user may enter any key from 0-9 to select the menu option they wish to use. After the song selection has been made, the program will start to play the specified song. The enter key (‘#’ button) will act as the stop button, which the user can press to quit this mode anytime. The LCD will display a “scrolling notes” display.

 Parts list:

ComponentsCost
STK500 Board$15
LCD Display$8
White Board$6
Keypad (2)$12
MicrophoneFree
SpeakerFree
Op-ampsFree
ResistorsFree
CapacitorsFree
WiresFree
Total:$41

 

For more detail: Vocal Trainer

Leave a Comment

You must be logged in to post a comment.

Read previous post:
Variable Traffic Controller

Introduction Our project is a Traffic Controller that is sensible to traffic condition and adjust the traffic lights accordingly. Our...

Close
Scroll to top