Toxic Synth (8 note Polyphonic FM synth with modular effects routing)
So here is another of my old patches from back in 2010 (I didn’t blog it until the following January however as it was a Uni project and I thought I needed a couple of months time off).
This synth is divided into 10 main sections – Carrier, Partials, FM (level 1), FM (level 2), AM, Envelope, Delay, Distortion, Filters and Reverb. 3 minor sections allow for access to presets, selection of input device, and control of DAC and master output volume.
This section allows for choice of wavetype for the carrier wave. The selections are Cycle, Saw, Rect and Tri. A slider is provided to change the duty cycle/symmetry of the rect and tri wavetypes. A pull down menu is provided to allow routing of the output signal to any of the effects. By default the output is set to the DAC, this can be reset using the menu or the ‘reset fx chain’ button.
This section allows for 3 harmonic partials to be added to the carrier wave. Each partial can be a different wavetype, using the same selection as in the carrier section. A number box is provided to allow control of the frequency hierarchy of the partials.
FM (Level 1)
In this section a pull down menus allows for the selection of the Pure Carrier wave (with partials if selected) or a frequency modulation of the carrier wave. The wavetypes available for frequency modulation are : cycle, saw, rect, tri and phasor with sliders provided to allow control of modulation frequency, modulation index, modulation amplitude and duty cycle/symmetry for the rect and tri wavetypes.
FM (Level 2)
This section is fundamentally the same as level 1, but the modulation is applied to the level 1 modulating wave rather than directly to the carrier wave. A toggle box is provided to disable this level of frequency modulation.
AM can be applied or bypassed using the pulldown menu and the same selection of wave types that are used for FM are available here. Sliders control AM frequency, AM depth and AM duty cycle/symmetry for the rect and tri wavetypes.
The amplitude envelope for each note is controlled here using a standard Attack, Decay, Sustain and Release format, each parameter controlled using a rotary.
(Effects are applied using the pull down menu in the carrier wave section, then by using the pull down menus in each effect section to create a chain of effects. The default setting is for each effect to be bypassed and all routing menus can be reset to default using the ‘reset fx chain’ button in the carrier wave section. NOTE: creating a loop, i.e. sending from reverb to filter then back to reverb, will result in system crash.)
The delay is adapted from the patch distributed by R.Hoadley ‘Tapin/Tapout example v.0.6 RH 2006-10′. A toggle box allows this effect to be bypassed and sliders provide control of input volume, delay volume, delay time and delay feedback.
Distortion is provided using the ‘degrade’ object and allows control of ‘word size’ (bits)’ and effective sampling rate. A toggle box allows bypassing the distortion and a rotary provides a ‘wet/dry’ control.
A toggle box is provided to enable the filter to be applied to the signal path and a pull down menu provides a list of filter types to choose from. The selection available is : Low Pass, High Pass, Band Pass, Band Stop, Peak Notch, High Shelf, Low Shelf, Resonant and Allpass. Slider control the Cutoff/centre frequency, Gain and Resonance/Slop. A graphical display is also provided.
Reverb is provided through the use of the ‘yafr’ object. Controls available are Reverb time, Reverb/Early reflection Mix and Reverb Liveness (High frequency rolloff). A rotary allows for ‘wet/dry’ control, which is also controls volume of the input to the ‘yafr’ object, increasing the volume as the signal becomes more ‘wet’ to compensate for perceived output volume decrease)
A spectrograph and oscilloscope are provide for wave analysis.
MIDI controls are as follows.
Pitchbend wheel = Pitchbend
Mod wheel = Reverb wet/dry
Slider c9 (cc number 41) = Master output volume
Rotary c1 (cc number 17) = FM (level 1) frequency
Rotary c2 (cc number 18) = FM (level 1) Index
Rotary c3 (cc number 19) = FM (Level 1) Amplitude
Rotary c4 (cc numer 20) = AM frequency
Rotary c5 (cc number 21) = FM (level 2) frequency
Rotary c6 (cc number 22) = FM (level 2) Index
Rotary c7 (cc number 23) = FM (Level 2) Amplitude
Rotary c8 (cc number 24) = AM depth
The synth is designed so that on each ‘note on’ message sent, the relevant poly~ instance sets its FM waveform phase to 0.5, so that each note played should be identical in its morphology.
However this only applies to FM. Experiments trying to apply the same logic to AM resulted in system crash.
How did this project use Max?
Patch created in Max 5