The goal of project is to helps people develop the musical skills of perfect pitch and relative pitch. Push buttons allow the user to navigate a graphical user interface (GUI) on a liquid crystal display (LCD). In perfect pitch training mode, a note is played and the user tries to identify the note on an animated keyboard. In relative pitch training mode, an interval is played, and the user selects the correct interval name from a list of possible intervals.
The project featured a MIDI input into the microcontroller for users who want to answer using a piano instead push button. Musical notes are generated using direct digital synthesis (DDS).
The project consists of two sources of input that control two outputs. The ATMega644 MCU firmware controls DDS and the LCD. The inputs are push buttons that are debounced by the state machine to control the GUI on the LCD and a MIDI input so that a user can hook up a keyboard. The MIDI is interfaced to the MCU via the universal asynchronous receiver/transmitter (UART).
For more detail: Ear Trainer using ATMega644 microcontroller