Little Modulator (LM) is a polyphonic synthesizer built for Pure Data and plugdata using the ELSE library. It’s subtractive synthesis design focusses heavily on (cross)modulation and it aims at easy routing between VCOs and various modulation generators. Depending on settings, LM is capable of a wide variety of different sounds, including some very dissonant and unapologetically digital sounding timbres. Certain modulation intervals can often result in unexpected and interesting outcomes and the included presets should provide some examples.
LM consists out of 3 separate VCOs per voice that use ELSE’s bandlimited oscillators. The square wave oscillator allows for pulse width modulation (PWM) and the shape adjustable variable saw oscillator can produce upward saw, triangle and downward saw waveforms according to the width setting and modulation. The level knobs on each VCO sets soft clipping saturation and the output knobs set the pre-filter mix levels.
The 3 modulation sections per VCO allow for Exponential FM, phase modulation and PWM/shape modulation. Each section shares the same design but with different output ranges. The two LFOs, two modulation envelopes and each VCO (including feedback) serve as selectable inputs. The shaper knob raises the signal before going into the togglable shaping functions: a wave folder, cosine function and soft clipping saturation. The final toggles allow the two modulation envelopes to attenuate the modulation over time. For something resembling simple phase modulation (more popularly known as FM synthesis in for example Yamaha’s famous DX7) use an upward saw oscillator going into a cosine shaper.
The amplitude and modulation envelope generators are per voice while all the voices share the dual multi filters, VCF envelope and LFOs. The filters include keytrack to change filter cuttoff frequency with the played note where both the base note and the amount of keytrack can be set. By default, LM is configured to allow for 4 voices of polyphony.
The toggles above the envelope generator, LFO rate and the delay time knobs scale each knob’s range and the buttons above the filter cutoff knobs only changes the unit type displayed between frequency and note/octave plus note number.
Input
LM takes MIDI note input but also can be played from a QWERTY keyboard when the keyboard toggle at the bottom is on. The first 2 keyboard rows, keys “Z” to “/” are the first one and a half octave and the two rows above from “Q” to “P” are an octave up.
ELSE
This patch requires the ELSE library 1.0-0 RC8 or greater which is included with plugdata and can be installed in Pd vanilla. To install in vanilla using deken go to Help -> Find externals and search for “else”. See https://github.com/porres/pd-else for more info.
Changelog
0.1.3
– Added amplitude modulation/bias option for ring modulators.
– Added Moog filter.
– Fixed keytrack offset and removed negative keytrack.
– Fixed resonant filter Q.
– Some UI text changes.
0.1.2
– Fixed VCF LFOs polarity.
– Fixed output knobs float issue.
– Changed LFO types order.
– Changed resonance knobs to exp. mode.
– Removed some excessive DC filters.
0.1.1
– Fixed DC offset with ringmodulation/drive.
– Preset fixes.
0.1.0
– Replaced [else/voices] with [poly], switching to round robin voice allocation.
– Added unison.
– Added (not very smart) glide/portamento.
– Added filter feedback (nasty).
– Added randomize buttons for each VCO.
– Changed all detune knobs to exp. mode and improved precision.
– Extended computer keyboard and added octave control keys (-/=).
– Replaced [else/sum] to prevent memory leaks.
– Fixed dead voices issue on MIDI panic button.
– Further reduced retrigger clicks by adding very short delays on envelopes.
– Streamlined message routing.
– Moved presets to seperate folder.
0.0.6
– Changed execution order of VCO retrigger and moved logic up to voice level to reduce clicking.
– Preset display now shows filename on save.
– Added more presets.
0.0.5
– Added global octave knob.
– Fixed sync oscillators missing object error.
0.0.4
– Fixed ELSE path errors.
0.0.3
– Lowered minimum resonance setting to 0.5 on VCFs.
– Added more presets.
0.0.2
– Various small fixes.
0.0.1
– Initial release.
Issues
– Rare crash with random buttons.
– Retrigger can cause clicks with voice stealing.
– Since LM is a big patch consisting out of many subpatches and abstractions there will almost always be at least a sample block (64 samples) delay between various (modulation) sections which can result in many noticable effects.