Modulators
Func Gen
The function generator - envelope, LFO, slew limiter, and complex modulation source in one module.
Try one in your browser →
What is a Func Gen?
A function generator is a modulation source that does not commit to being one thing. Trigger it and it rises to a peak, then falls back to zero - that is an envelope. Turn on cycle mode and it loops forever - that is an LFO. Patch a signal into its input and it follows that signal with smoothed rise and fall - that is a slew limiter. The same module, the same two knobs, three completely different jobs depending on how you patch it.
The lineage runs back to Serge Tcherepnin and the Serge DUSG (Dual Universal Slope Generator) of the late 1970s, then through the Buchla 281, and was reintroduced to a generation of modular players by Make Noise and the MATHS module in 2009. The defining trick is that *rise and fall are independent*: the rising edge has its own time, the falling edge has its own time, and the curve between them can be linear, logarithmic, or exponential. That is a much richer voltage shape than an LFO's fixed waveform or an ADSR's locked four stages.
Function generators thrive on cross-patching. Two channels next to each other can sum, gate each other, trigger each other when one finishes, follow one another's output. Add EOR (end-of-rise) and EOC (end-of-cycle) trigger outputs and you have the building blocks for sequenced envelopes, complex LFO shapes, generative timing, and unipolar voltage math - all from voltages, no DSP code, no software automation.
Our Func Gen
Ours is a dual function generator in 12 HP in the lineage of Make Noise MATHS and the Serge DUSG. Each channel has a trigger input, a signal input (auto-switches the channel into slew mode when patched), independent rise and fall CV inputs, a cycle toggle, and a shape knob that morphs from logarithmic (fast start, slow finish) through linear to exponential (slow start, fast finish). Times run from 1ms to 10s per stage.
The two trigger outputs are split into EOR (end-of-rise, fires the moment the channel transitions from rising to falling) and EOC (end-of-cycle, fires the moment the channel transitions from falling to idle). Most function generators only give you EOC - the EOR pulse is what lets you build proper AD-then-fire chains and lets a slow envelope time-mark its own midpoint.
We add OR and AND outputs that take max(ch1, ch2) and min(ch1, ch2) of the two channel outputs - the MATHS channel-4 sum trick, simplified. Two cycling channels through OR is one of the most musical sources of complex modulation in any modular system, and it costs you exactly one cable.
In a patch
A function generator can replace half the modulation sources in a rack at once. One channel as a snappy envelope into a VCA, the other as a slow LFO into a filter cutoff, OR both into a VCO pitch input for a compound modulation that breathes. The two channels do not have to be doing the same kind of job.
Self-patching unlocks the generative behaviors the design is famous for. Channel 1 EOC into Channel 2 trigger makes channel 2 fire whenever channel 1 finishes - a cascading two-stage envelope, or a delayed LFO. Channel 2 EOC back to channel 1 trigger creates a ping-pong loop that never resolves and produces evolving rhythmic voltages. With both channels in cycle mode at slightly different rates and the OR output driving a quantizer, you get aleatoric melodies that never repeat.
Slew limiters are also how analog portamento works. Run pitch CV from a sequencer through a function-generator channel in slew mode, and notes glide instead of jumping. Set a gate through the same path and you have soft, cross-faded gates - useful for analog-style phrasing.
Inputs
- Trigger 1 (gate) — Trigger input for channel 1. A rising edge starts the rise phase. Connect a clock, sequencer gate, or another module EOC here.
- Trigger 2 (gate) — Trigger input for channel 2. Works the same as channel 1 trigger.
- Signal 1 (cv) — Signal input for channel 1. When patched, the channel acts as a slew limiter - the output follows the input but smoothed by the rise and fall times.
- Signal 2 (cv) — Signal input for channel 2. Same slew limiter behavior as channel 1.
- Rise CV 1 (cv) — Voltage control over channel 1 rise time. Positive CV shortens the rise; negative lengthens it.
- Fall CV 1 (cv) — Voltage control over channel 1 fall time.
- Rise CV 2 (cv) — Voltage control over channel 2 rise time.
- Fall CV 2 (cv) — Voltage control over channel 2 fall time.
Outputs
- Out 1 (cv) — Channel 1 output. A unipolar voltage (0-10V) that rises and falls at the set rates.
- Out 2 (cv) — Channel 2 output. Same behavior as channel 1 output.
- EOR 1 (gate) — End of Rise - channel 1. Fires a trigger pulse when the rise phase completes and the fall phase begins.
- EOC 1 (gate) — End of Cycle - channel 1. Fires a trigger pulse when the fall phase completes. Patch this to channel 2 trigger for cascading envelopes.
- EOR 2 (gate) — End of Rise - channel 2. Same behavior as channel 1 EOR.
- EOC 2 (gate) — End of Cycle - channel 2. Patch back to channel 1 trigger for ping-pong envelope chains.
- OR (cv) — Maximum of channel 1 and channel 2 outputs. Creates a combined envelope that follows whichever channel is higher at any moment.
- AND (cv) — Minimum of channel 1 and channel 2 outputs. Only passes voltage when both channels are active.
Controls
- Rise 1 — Channel 1 rise time (1ms to 10s). How quickly the voltage climbs from zero to peak. Short = snappy attack, long = slow swell.
- Fall 1 — Channel 1 fall time (1ms to 10s). How quickly the voltage drops from peak to zero. Short = percussive, long = gentle fade.
- Rise 2 — Channel 2 rise time. Same range and behavior as channel 1.
- Fall 2 — Channel 2 fall time. Same range and behavior as channel 1.
- Cycle 1 — Cycle mode for channel 1. When on, the channel automatically re-triggers itself after each cycle, becoming an LFO. Rise and fall times set the LFO speed and waveshape.
- Cycle 2 — Cycle mode for channel 2. Same self-retriggering LFO behavior.
- Shape 1 — Curve shape for channel 1 (-1 to +1). Negative = logarithmic (fast start, slow finish). Zero = linear. Positive = exponential (slow start, fast finish).
- Shape 2 — Curve shape for channel 2. Same range and behavior as channel 1.
Inspired by
A two-channel slope/function generator in the lineage of the Serge DUSG and Buchla 281, popularised in Eurorack by Make Noise MATHS. Each channel rises and falls at independent rates, can self-cycle into an LFO, accepts a signal input to act as a slew limiter, and emits EOR/EOC triggers for chaining. OR / AND outputs (max / min of the two channels) recreate MATHS-style summed modulation.
- Make Noise MATHS
- Buchla 281 Quad Function Generator
- Serge DUSG
- Befaco Rampage
← Back to all modules