ece481 | doering | ece labs | ece | rhit |
MIDI-Based FM SynthesizerOverviewPart 1 of this project gives you a chance to experiment with the basic FM sound synthesis equation. Part 2 demonstrates how making the modulation index track the amplitude envelope can produce sounds that are similar to brass instruments, woodwinds, and some types of percussion instruments. Part 3 ties together FM synthesis with MIDI-based notelists. Notelists can be rather tedious to generate by hand, so I have written a set of MATLAB functions which can be used to read individual tracks from a MIDI file and convert them into the standard notelist format used in MiniProject 3. The notelist can be turned into one large sound vector by making repeated calls to the functions you will write in Part 2. DeliverablesOne-page memo detailing your results, plus additional attachments as needed. Be sure to include the following:
Part 1 FM SoundsExperiment with the FM synthesis equation and listen to the results. Try various combinations of fc, I (modulation index), and H (harmonicity ratio; H=fm/fc). Try H=N and 1/N where N is an integer; also try irrational numbers for H such as 1/sqrt(2). Write a summary of your findings (explain the effect of each of the three parameters fc, I, and H). Part 2 FM InstrumentsWrite a set of functions that generate the sounds specified on pp. 327 329 in the text (horn, bassoon, clarinet, bell, and gong). The function should accept two parameters: the first parameter is a 1x3 vector consisting of duration (in s), frequency (in Hz), and amplitude (usually a value between 0 and 1); the second parameter is sampling frequency in Hz. You will need to spend some time learning enough cmusic syntax to extract the parameters from the note statements. See p. 184 and p. 514 of the text to learn about the gen4 envelope generator (I have written a MATLAB implementation of gen4 that you may use see gen4.m). Also see horn.m for an example translation of the HORN instrument on p. 327 of the text. Experiment with each of the functions (e.g., consider variations in pitch, duration, etc.). Pick two or three of your favorite sounds and save them as a .wav file. Part 3 FM Composition a la MIDIFind a multi-track MIDI file (zillions are available on the web) and follow the procedure below to render the MIDI file into a sound vector. Use three or more of the instruments you created in Part 2 to form the voices of a multi-instrument composition. Example:The following example details the procedure needed to play the peanuts.mid standard MIDI file in MATLAB.
|
|