DOC PREVIEW
MIT 6 111 - MUSIC COMPOSITION FOR DUMMIES

This preview shows page 1-2-3-4 out of 13 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 13 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

MUSIC COMPOSITION FOR DUMMIES 6.111 FINAL PROJECT REPORT By Wu, Yun and Seow, Shi Ling 6.111 (Spring 2005) – Introductory Digital Systems Laboratory TA: Kehoe, Charlie Date: May 12, 2005 Abstract For those who enjoy singing, but cannot read or write music, or for those who wish to compose more efficiently, this system allows a person to play or sing a simple tune and obtain a corresponding piece of sheet music on a video output. The system is made of two main parts: a pitch-detecting module and a video output module. The pitch detector determines the note being played based on the frequency of the input, which allows the video component to correctly draw the note being played onto a staff display. This proof-of-concept apparatus allows frequency detection of input sound waves, musical note determination, and display of notes onto a staff.6.111: Music Composition for Dummies 1 1. Design Overview Our project “Music Composition for Dummies” allows amateurs to create a “masterpiece” by simply singing into a microphone. The microphone is inputted into a system that has two main parts: a pitch detector and a video display. The pitch detector retrieves audio data bits from an audio codec, performs a 1024-point Fast Fourier Transform, and determines the frequency and the note value of the input sound. This note value is fed into the video display module, which displays the note onto a staff on the video screen. Figure 1 shows the block diagram of the overall system. Figure 1: Block diagram of overall system The project not only demonstrates how to extract audio data, how to use FFT for frequency detection, and how to implement a video display, but also incorporates many important aspects of large-scale digital systems design and integration. The entire system requires utilizing existing Xilinx audio, video, and labkit modules as well as developing finite state machines to correctly time and send control signals to the existing modules. The project is interesting because besides coding, it also allows us to build analog circuitry, use external peripherals, and employ our creativity while developing a product that is very practical for musicians and dummies alike. Our project demonstrates a proof-of-concept that the frequency of sound waves can be detected and displayed as musical notes. On a more robust level, our device could potentially allow anyone to easily compose music by singing, as well as play an existing song on a CD and obtain the corresponding score. 2. Design Description 2.1 Pitch Detector (Yun Wu) The main purpose of the pitch detector is to transform audio data bits from the codec into a corresponding note value by performing a Fast Fourier Transform of the input data and determining the peak of the frequency domain audio spectrum. Figure 2 shows a block diagram of the pitch detector. Input audio data from codec Notes on staff Note values Pitch Detector Video Display6.111: Music Composition for Dummies 2 Figure 2: Block diagram of pitch detector The external input signals of the pitch detector include a reset from the labkit module, as well as the bit-clock from the ac97 module that interfaces with the audio codec. In addition, the two crucial input signals are the “ready” signal and the 16-bit “right_in_data”. “Ready” signals that audio data is valid, and the most significant 16 of 20 bits in the audio data “right_in_data” are stored into the RAM_dp whenever the RAM_controller detects a rising or falling edge in the “ready” signal. The RAM_dp stores 2048 lines of data, and is addressed with 11 bits. In general, the xfft1024 module will process 1024 lines of data, so it will index through half of the data in the RAM_dp, while the newly inputted audio data is stored in the other half. Since the rate of FFT computation is much higher than the rate of input data storage, the xfft1024 module must wait until a rising or falling edge transition of the most significant bit of the waddress indicating that 1024 lines of data have been stored, before it can begin computation again. The following Figure 3 shows a state transition diagram of the FFT_controller module that sends control signals to the xfft1024 module.6.111: Music Composition for Dummies 3 Figure 3: State Transition Diagram of FFT controller Upon a global reset signal, the FFT controller enters into the IDLE state. On the next clock cycle, it enters the setDefaults state where parameters are sent to the Xilinx xfft1024 module telling it the size of the transform to be computed (nfft), a scaling schedule (scale_sch), whether to perform a forward or inverse transform (fwd_inv), etc. These parameters are registered into the xfft1024 module by the FFT controller’s pulsing of the respective write enable signals. Next, the FFT enters the pulseStart state, where it commands the xfft1024 to begin computing the transform. The FFT controller waits for the RAM controller to finish writing 1024 data lines to the RAM_dp in the waitforRAMcontroller state before returning to the pulseStart state, and repeating the transform operation. After the xfft1024 module computes the 1024-point transform of the input data, the respective imaginary and real frequency output points (xk_im) and (xk_re) that are indexed by xk_index are sent to a multiply/accumulate unit. In the multiply accumulate unit, the squared magnitude of each point in the transform is computed. Next, xk_mag_sqd for each point along with the corresponding index that ranges from 0 to 1023 (rd_addr) is sent to the comparator unit. The comparator determines the peak of the frequency spectrum, and sends the index of the peak to a lookup table called notesROM. The lookup table matches the index of the peak (max_index) to a corresponding 5-bit note value representing the note to be drawn. In this project, the output notes are limited to one octave between middle C and high G on the treble clef, and all other note frequencies are considered out of range and are displayed with either a quarter rest or an empty bar respectively depending on whether the out of range note is too low or too high. 2.2 Video Display (Shi Ling Seow) The video component is implemented on a VGA


View Full Document

MIT 6 111 - MUSIC COMPOSITION FOR DUMMIES

Documents in this Course
Verilog

Verilog

21 pages

Video

Video

28 pages

Bass Hero

Bass Hero

17 pages

Deep 3D

Deep 3D

12 pages

SERPENT

SERPENT

8 pages

Vertex

Vertex

92 pages

Vertex

Vertex

4 pages

Snapshot

Snapshot

15 pages

Memories

Memories

42 pages

Deep3D

Deep3D

60 pages

Design

Design

2 pages

Frogger

Frogger

11 pages

SkiFree

SkiFree

81 pages

Vertex

Vertex

10 pages

EXPRESS

EXPRESS

2 pages

Labyrinth

Labyrinth

81 pages

Load more
Download MUSIC COMPOSITION FOR DUMMIES
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view MUSIC COMPOSITION FOR DUMMIES and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view MUSIC COMPOSITION FOR DUMMIES 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?