Spring 2002EECS150 - Lec13-proj Page 1 EECS150 - Digital Design Lecture 13 - Final Project Description March 7, 2002 John Wawrzynek
Spring 2002EECS150 - Lec13-proj Page 2 Project Everyone will design, debug, and demonstrate a Music Synthesizer Operation based on principle of waveform synthesis or sampling. –Sounds from recordings of real musical instruments are stored in memory then pitch-shifted and played back in response to note commands. 1 or 2 partners/group
Spring 2002EECS150 - Lec13-proj Page 3 Digital Waveforms In digital systems waveforms are represented as a series of numbers, rather than a voltage or current, as in analog systems. –Example: sound waveform –Sound can be produced by sending series of numbers to Digital to Analog converter, then to Amplifier, then to speaker. –In principle any sound can be produced. Sampling rate: 31.25KHz 16-bits per sample
Spring 2002EECS150 - Lec13-proj Page 4 Interfaces MIDI: Musical Instrument Digital Interface. –Commands are sent from a keyboard (or computer) to control the synthesizer. Waveforms are stored in the ROM (read only memory). Monophonic: one voice at a time.
Spring 2002EECS150 - Lec13-proj Page 5 Theory of Sound and Music Air vibrating in the frequency range of 20Hz to 20KHz is perceived as sound. The three important characteristics of perceived sound are: –loudness (relates to amplitude) –pitch (relates to frequency) –timbre (relates to shape) Human hearing is approximately logarithmic in perceiving loudness and pitch: –we perceive the loudness as being prop to the log of the sound wave amplitude
Spring 2002EECS150 - Lec13-proj Page 6 Timbre tone quality or “color” Different instruments have different timbres. We perceive timbre based on how a note begins, repeats, and ends. For many instruments a simple model can be used to represent the shape of the waveform. –Attack, sustain, release (decay) Works best for “driven” instruments: woodwinds, brass, bowed strings. Pluck and struck instruments don’t have the “sustain” [picture]
Spring 2002EECS150 - Lec13-proj Page 7 Pitch Middle C has frequency of Hz. –MIDI encoding of “60” High C (an octave above middle C) has frequency Hz –MIDI encoding of “72” Other tones can be produced by multiplying and dividing the frequency by factors of 12 th root of 2. Pitch: –12 semi-tones form the chromatic scale of the western scale. –To move from one up to the next: freq next = freq * 12 th root of 2. –After 12 such multiplications we will have doubled the freq and reached the octave. Most people can detect pitch differences as small as a few hundreds of a semi-tone (or a few times the 1200 th root of 2)!
Spring 2002EECS150 - Lec13-proj Page 8
Spring 2002EECS150 - Lec13-proj Page 9 Playing Notes ROM used to store notes has limited capacity. For notes with “sustain” portion, would like to vary note duration
Spring 2002EECS150 - Lec13-proj Page 10 Pitch Shifting
Spring 2002EECS150 - Lec13-proj Page 11 Pitch Shifting
Spring 2002EECS150 - Lec13-proj Page 12 Linear Interpolation
Spring 2002EECS150 - Lec13-proj Page 13 ROM (EEPROM) Layout One stored note per instrument is never enough. –Timbre varies from note to note over the range of the instrument. ROM holds directory with one entry per MIDI note number. Entry holds pointer to note “template” and “step size”. Note step sizes are precomputed (synthesizer does not need to do 12 th root of 2 calculation. One instrument per ROM (might change this later).
Spring 2002EECS150 - Lec13-proj Page 14 Directory Entry Layout 20-bit template pointer 12 bits of “step size”
Spring 2002EECS150 - Lec13-proj Page 15 Template Layout
Spring 2002EECS150 - Lec13-proj Page 16 Instrument Template Files We will provide you with template files and a program for converting these to EPROM format. We also have programs for taking instrument samples from standard file formats and converting them to our template format. You are encouraged to generate your own template files and EPROMs. We might extend the format (and project) to allow for more than one instrument per EPROM. –Switch among the instruments either through dip switches or MIDI commands.
Spring 2002EECS150 - Lec13-proj Page 17 High-level Block Diagram This is only a suggestion. Your organization is up to you. FSM and datapath for each block.
Spring 2002EECS150 - Lec13-proj Page 18 Checkpoints 3/11UART Design and Test 3/18ROM Interfacing 3/25Recess 4/1MIDI Interface 4/1Audio Stage 4/8Monotone Notes 4/15Notes of Arbitrary Frequency 4/22Velocity Sensitivity 4/29Spare 5/6Final Checkoff Your are strongly suggested to work ahead. These are only minimum requirements. Completion of checkpoints are part of your project grade. Project spec document online today. All checkpoint write-ups available in next couple days (in draft form).
Spring 2002EECS150 - Lec13-proj Page 19 Extra Credit Early Final Checkoff. –1 week or more Low CLB Count. –“low” quantified later Interpolation –add linear interpolation for sample lookup Polyphony. –The ability to play multiple keys at once Velocity Sensitive Template Lookup. –Index templates not only on key number but also velocity. Extra credit only considered for fully functional designs. Point assignment announced later. Usually in the 15% range.
Spring 2002EECS150 - Lec13-proj Page 20
Spring 2002EECS150 - Lec13-proj Page 21 Connections
Spring 2002EECS150 - Lec13-proj Page 22
Spring 2002EECS150 - Lec13-proj Page 23
Spring 2002EECS150 - Lec13-proj Page 24 Note On
Spring 2002EECS150 - Lec13-proj Page 25 Note off
Spring 2002EECS150 - Lec13-proj Page 26 Keyboard Mapping
Spring 2002EECS150 - Lec13-proj Page 27
Spring 2002EECS150 - Lec13-proj Page 28 “Running Status” The MIDI standard convention allows a transmitter to compress the data stream by dropping status bytes. A command without a status byte implicitly uses whatever status byte was most recently sent. Therefore a keyboard can send a sequence of note-on and note-off commands only the first of which having a status byte. Your synthesizer must conform to the running status convention.