i Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital System Laboratory “Bird’s” Music Transcriber Authors: Alessandro Yamhure, Roberto Carli T.A: Javier Castro This report describes the design, implementation and testing of a digital music transcriber. Our system allows musicians to pick a tempo, play any instrument and get a transcription of the notes played on the screen. The system recognizes the value and duration of the notes played, and transforms them into a music sheet. The device is divided into two main subsystems. The first is the note recognizer system, which inputs the audio signal, and detects the pitch and duration of the notes played in units of “beats”. A pitch detector calculates the pitch of the note and a counter detects its duration by counting tempo units up to a change in pitch. The system also detects rests. The note value and duration are the inputs to the video display system, which converts them to the final music sheets on video by use of movable sprites on a non-erasable video memory. First, the system decides which note font to use and the position it must have on screen, then it feeds coordinates and font address to the movable sprites, which finally draw the symbols on screenii Contents 1 Overview.........................................................1 2 Description......................................................3 2.1 Note Recognizer.......................................4 2.1.1 Codec ............................................4 2.1.2 FFT................................................4 2.1.3 Peak Detector................................7 2.1.4 Lookup Table................................7 2.1.5 Rhythm..........................................8 2.1.6 Metronome....................................9 2.2 Video Display..........................................10 2.2.1Control Module..............................11 2.2.2 Font Generation Module ...............11 2.2.3 Note Displayer ..............................12 2.2.4 Clef Displayer...............................12 2.2.5 Stave Displayer.............................12 2.2.6 Video-to-Address Converter .........12 2.2.7 Video Memory..............................12 2.2.8 XVGA...........................................13 3 Testing and Debugging...................................13 3.1 Note Recognizer.......................................13 3.1.1 FFT................................................13 3.1.2 Peak Detector................................13 3.1.3 Lookup Table................................13 3.1.4 Rhythm..........................................14 3.2 Video Display..........................................15 3.1.1 Multiple Clocks.............................15 3.1.2 Movable Sprites ............................15 3.1.2 Control and Font Generation.........16 3.3 Integration................................................16 3.4 Final Testing............................................17 4 Conclusion......................................................18 5 Citations..........................................................18 6 Acknowledgments ..........................................18 7 Appendices .....................................................19 Figures Figure 1............................................................. 3 Figure 2............................................................. 4 Figure 3............................................................. 5 Figure 4............................................................. 6 Figure 5............................................................. 10 Figure 6............................................................. 14 Figure 7............................................................. 15 Figure 8............................................................. 16 Figure 9............................................................. 17 Tables Table 1 .............................................................. 71 1 Overview It is often quite a hassle and a burden to have to write music, and musicians often express the desire to have a system that will write music for them. Music composers and musicians would be much better off with a system that allows them to play music on an instrument of their choice and have that system analyze and display the music being played in proper musical format, and thus liberate the composer himself from that responsibility. This involves recognizing and displaying the note pitch being played (A, F#, Bb etc) and measuring and displaying the duration of the note being played (quarter, half, whole etc). In addition it is convenient for the composer to have the option of selecting a tempo from a range of predefined tempos (largo, allegro, presto etc.). The intent of this project is to design and build a system which performs these functions. Moreover the aim of this project is to build a fully functioning music transcriber that writes music it receives in a tempo defined by the user. From the user’s perspective, the composer can communicate with the transcriber in two ways; either he plugs his electric instrument directly into the audio input of the system or communicates to the system through a microphone that is held near the instrument. The musician will see a metronome flashing at the desired tempo on the LEDs of the labkit. He can also hear the beats in headphones in the form of beeps sounding at the previously defined tempo. The user can select a specific tempo from a list of predefined tempos using the switches on the labkit. Finally, the composer observes the music he is playing in real-time on the monitor connected to the labkit. He observes notes of the right pitch and duration on a background of staves and treble clefs. When the whole screen is filled with music and the last stave has been used, the composer has the option of refreshing the page and starting from the top stave by pressing the reset button. A key element of the project is modularity. The system is made up of three main submodules. First, we have the Note Recognizer module, which is responsible for detecting the pitch and duration of the current note being played. It takes in the music audio and the user’s choice of tempo as its only two inputs and outputs the pitch and duration of the note that has just been played along with a new-note pulse that signals that a new note is being played. Additionally,
View Full Document