Project Proposal 1. Project description Abstract We plan to design and implement an animated music tutorial for young children. The user will be able to associate a certain sound/note, within a range of a couple of octaves, with its name with the help of an associated video figure. The function will be as follows: • Each button on a “keyboard” will correspond to a different note on a particular instrument (TBC). • When the user presses a “key”, a sound is synthesised, the name of the note and a corresponding cartoon figure are displayed on the screen. These all act as teaching aids. • The sequence of notes is recorded, as well as the corresponding visuals, and is played back on request. Description: The sequence of notes inputted by the user is stored in a memory unit, and can be played back on request. A new recording will erase the previous one. It also goes, at the same time, to a module which synthesises the notes of a piano and outputs the sounds. The playback also takes into account the length each key was pressed for. This will be implemented using a set of counters. We will create a directory containing 8 different images, each corresponding to a note from Do to Ti. The image will be scale depending on which octave the note is, i.e. bigger for the lower octave, and smaller for the higher one. Simple animations will be implemented using a Finite State Machine during the transitions between each image. There will also be a game which tests perfect pitch. Here, the system will output a random note and ask the user to guess which note it is. A message is then displayed informing the user whether they got it right or not.2. Specifications Inputs: • Keys [15:0]: a set of 16 synchronised and debounced buttons which, when depressed, correspond to the white keys on a piano. The rhythm of the ‘tune’ will be taken from the length the key is held for (as for a real piano). The memory address will be updated every time a button is released, and Write_Enable will be high on the next pressing of a button when recording. No two buttons should be pressed at the same time. • Recording Enable: this button needs to be pressed before recording a sequence and to end the recording. • Clock: a 65MHz system clock, to allow correct operation of the video. This allows a 60Hz refresh for a 1024x768 pixels screen size (XVGA). • Global Reset: used to set all the modules back to their reset state, i.e. empty memory, initial display. Outputs: • Sound: the synthesized notes.• Video Display: on the screen, output from the Video module. • Record Confirmation: LED, on when recording from the keys. • A series of other LEDs for testing purposes. Tests used: Test Bench Waveforms, Hex display of the memory addresses and of the video directory locations, implementation in steps, etc… 3. Project division Sarah-Jean will implement the Video Module, while Anne will implement the Storing and the Audio
View Full Document