CPT431 Fall 2015

Music and Audio Computing

Mini Project #3: FM Synthesizer

The goal of this project is building a FM synthesizer running on web-browsers. You start with the simple FM synthesizer example explained in the class. Here is the copy.


1) Making the lowpass filter parameters tunable (20 points)

A lowpass filter is used to make the output of modulated oscillator more gentle in the example. The filter control parameters, which include initial cut-off frequency, target cut-off frequency and decay time for that, are fixed to constant values. The code snippet below shows the three parameters as 2000 Hz, 500 Hz and 0.5 second.

Make them "preset parameters" with the following names so that every preset sound can different values.

  • FilterFreq: 2000
  • FilterFreqTarget: 500
  • FilterFreqDecayTime: 0.5

2) Adding a new preset (20 points)

Add a "bell sound" with the following parameters

  • presetName: "Bell"
  • carrierModulationRatio: 1/1.4
  • modulationIndex: 2
  • IndexAttackTime: 0.0
  • IndexDecayTime: 10
  • IndexSustainLevel: 0.001
  • IndexReleaseTime: 3
  • AmpEnvAttackTime: 0.0
  • AmpEnvDecayTime: 10
  • AmpEnvSustainLevel: 0.001
  • AmpEnvReleaseTime: 3
  • FilterFreq: 5000
  • FilterFreqTarget: 2000
  • FilterFreqDecayTime: 5

3) Adding reverberation effect unit (30 points)

Take out the convolution reverb that you implemented in the mini project #2 and plug it in the FM synthesizer. You can choose your favorite room impulse response.

.

4) Designing your own sound (30 points)

Design your own cool FM sound by tuning the preset parameters. First, think about your target sound and try to find the best parameters with which you can synthesize it. Also, add your preset to the code with an appropriate name. Regarding FM synthesis, you can refer to the following web sites to get more ideas.