Multitimbral Sound ModuleValerie GordeskiSusan HwangChristopher SheehanWhat is it? Reads a song from ROM or keyboard for live play or later playback Interpolates stored note samples to obtain the correct pitch Shapes the pitch to imitate the sounds of a piano, violin and a flute Plays a magnificent trio (Bach? Mozart?)The Block DiagramSONGROMMajor FSMPianoViolinFluteDAC controlNoteROMInterpolatorADSRenabledoneormsgDecoding unitDecoderPlay LiveInstrument 1Instrument 2Instrument 3RecorderPlaybackRAMSongROMPlaybackFrontend Block DiagramkclkkdatanotenotemessagemessageMAJORFSMEncodingVoice 3Voice 2Voice 1PassType11100100MSB (2)Message EncodingTime value (6 bits)00 (pass)Nothing (ignored)0 (off)010 (lower C)1 (on)01 (voice 1)Pitch Value (5bits)Note On/OFF(1)Type/Instrument(2)Note EncodingA = 440HzA = 880HzSampled Waveform in ROMGenerate an “A” one octave higherGenerate a higher “E”?E = 659HzConstant sampling rate,Variable PointerSound Generation]1[)(][)1(][++−=+ KROMFKROMFFKROM123ROM[2.5]]12[)5.0(]2[)5.01(]5.02[++−=+ ROMROMROMLinear InterpolationInterpolation: Block DiagramincrementNote LookupTableFSMSample ROMInterpolatorrom_addr rom_dataval_aval_bfractnote_valresetbusystartresultInstrumentplayADSR: An Overview Determines what “instrument” we hear Typical Envelope: http://www.teachnet.ie/amhiggins/lesson6.html#ADSR: The DiagramEnvelopeROMMultiplierADSR FSMcounteratkptrdecayptrsusptrclockresetenableInter_outputenablebusyresultq1resultq2Future Extensions Real MIDI keyboard input Expand number of instruments to full ensemble, including percussion (gated noise) Secure Digital card for extended music Dynamic shaping of the note depending on the input: staccato (fast attack versus slow attack), vibrato, trills
View Full Document