If you've ever tried building your own modular synthesizer, you know that triggers and gates are often the limiting factors in the design. Lenin Modular has perhaps the most flexible trigger/gate routing available anywhere, but all the complexity is hidden behind simple list panels, letting you set up complex paths with just a few mouse clicks.

Single and Unisono Notes from MIDI

The envelopes support many different MIDI/sequencer and mono/poly configurations. Let's start by looking at some basic envelope configurations.

  1. Set ENV1's gate source to be MIDI.

That's pretty simple! But now you can already do several things:

  • You can select more than one envelope to be triggered from MIDI. Each envelope then generates its own separate notes. For each envelope, its HOLD list controls the minimum note duration, and PREDELAY sets a tempo period before the note starts playing, separately. So you can tap a MIDI keyboard to generate one fast note and a long note simultaneously; you can set predelays so the envelopes work like an echo unit; and so on.
  • In the UNISON panel, you can select any of ENV1-3 as a UNISON source. This lets you create two, three, or four notes from one source note. If you set ENV1 as the unison source and set unison to 3, for example, then each note from MIDI generates a 3-note chord for ENV1. Note that in this case ENV2 and ENV3 can still generate single notes which are not turned into chords.
  • All the notes from envelopes 1-3 and the unison panel are internally combined inside the instruments's own voice allocation logic, which assigns voices on a least recently used basis. This means, if one envelope is playing a long note and another envelope is playing a fast sequence, the fast sequence does not cut off the long note. The three envelopes and unisono unit effectively share the polyphony to the best result possible.
  • The voice allocation takes envelope predelay into account too. The predelay will remember notes up to the number of available voices, without wasting polyphony.

Gating Envelopes with Other Envelopes

If you have two envelopes triggered by MIDI, each envelope gets its own voice for each note, so each MIDI note would use up two voices. Instead, you can set one envelope to trigger another envelope. In that case, the second envelope uses the same voices as the first envelope. This can get pretty interesting, for example:

  • O1 feeds F1 input
  • O2 feeds F2 input
  • MIDI triggers Env1 which gets audio from F1.
  • ENV1 triggers Env2 which gets audio from F2.

Now the two envelopes are both playing different sounds on different filters from the same oscillator, without using up additional voices!

Or for a more complex configuration:

  • O1 and O2 feed submixA, which feeds filt1, which feeds env1.
  • O3 and O4 feed submix B, which feeds filt2, which feeds env2.
  • O5 and O6 feed submix C, which feeds filt3, which feeds env3.
  • MIDI triggers env1; env1 triggers env2 and env3.

Now with different pitch offsets for the oscillators, one MIDI note can generate 36 different pitched-tones. Of course, rarely would you want to do that (of if you do, then you can use distortion and waveshaping for even more complex sounds).

And there are other times when you want each envelope to get its own voices, rather than share the same voices. In that case, simply turn the audio on for multiple envelopes and select the gate source for each separately.

Event Envelopes

So far we've only discussed audio envelopes, but sometimes envelopes are useful that work at event rate instead. If you want really good sound quality with rapidly changing envelopes, you can use the audio output from the envelopes. But many times the event rate is fast enough.

Thus, if envelope 1-3 audio is off, internal logic disables the mixer channel path, for reduced CPU usage. However, even if the audio source for an envelope 1-3 is switched off, the envelope still works at event rate, but uses much less CPU. So if you are not using audio output from env1-3, you can save CPU by turning their audio off. (Or you can use Envelopes 4-6, which always work in event envelope mode.) In event mode, the envelopes use no CPU at all except when they have been triggered and are calculating an event curve.

If the audio is off, the event envelope can be gated by another envelope, to create polyphonic envelopes. But envelopes can also be gated by MIDI, sequencers, LFOs, and Modifier units--but the envelope doesn't know how to map these gate sources to the playing audio. So if the trigger source is not another envelope and its audio is turned off, it functions monophonically, sending the same envelope to all voices.

Alternatively, if you want to switch to another snapshot which uses an envelope's audio output *without interrupting the sound output* then leave the audio on in the envelope, and in the two snaps, change the MUTE button in the output mixer channel to enable/disable audio instead. This will use more CPU, but lets you change soundscapes dramatically with a snap change, without putting any clicks in the sound.

While this all may sound very complicated (and took a long time to work out), it's easy to see the effect visually in the different modes with the voice level meter in each envelope panel.

MODE

The MODE list selects the way the envelope is triggered and gated. MIDI, sequencers, other envelopes, and LFOs can trigger the envelope. Trigger modes function as follows:

  • MIDI: incoming midi notes gate the envelope polyphonically. If more than one envelope uses a MIDI source, then separate voices are assigned to each envelope.
  • Env1/2/3: The envelope is triggered and gated by another envelope. In other words the envelope tracks the other envelope exactly.
  • SEQ STEP: any combination of the sequencers can trigger the envelope. Gate time is controlled by the envelope HOLD time. Note the sequencers can themselves be triggered and gated by MIDI, for more complex sounds.
  • SEQ LOOP: the envelopes can also be triggered by the first step of any sequencer.
  • LFO1/2/3: when the respective LFO value rises above 0, the envelope retriggers.

HOLD

For sequencer modes, the HOLD list controls the duration of the high gate. All envelopes are fully polyphonic, so sustain and release phases an overlap for consecutive notes, up to the available polyphony in the Reaktor instance. Note, all three envelopes share the available voices, so if there are long hold periods for one or more envelopes, voice stealing can affect the sound.

For MIDI modes, the HOLD value sets a minimum duration of the note. Even if just touching a MIDI key on an input keyboard, the gate will stay high for the hold period. If the MIDI key is held down longer than the hold period, the gate will stay high for as long as the key is held down.

PREDELAY

Sets the delay after a trigger before the envelope gate starts. PREDELAY also affects notes arriving from a keyboard, so if there is a predelay period you won't hear a note for awhile after pressing a key.

If audio is off, predelay is applied to the gate signal from the MODE source. This means for example, if audio is off on Env1 and its trigger mode is ENV2, then setting a predelay on Env1 causes its gate from ENV2 to be delayed.

XY PANEL

The XY panel displays the current level of each voice. In addition the Y axis provides overall control of the envelope amplitude. Velocity modulations are applied to the level set in the XY control.

A, D, S, R

The A, D, S, and R sliders are the envelope's preset attack, decay, sustain, and release values, before modulation by velocity, pitch, and matrix2.

VSENS

SENS sets the sensitivity of the envelope to velocity.

  • Values between 0 and 1 scale the velocity effect.
  • If set to 0, the envelope velocity is fixed by LVL. If set to 1, the envelope is fully responsive to velocity.
  • If set to negative values, higher velocities reduce the envelope amplitude (useful for attenuating event modulation).

PSCALE, VSCALE

The listboxes select which ADR timing parameters are affected by note pitch and velocity. The numeric panel sets the sensitivity of velocity scaling:

  • 0: pitch/velocity is ignored.
  • Higher values increase sensitivity
  • Lower VSCALE values invert sensitivity. Lower PSCALE values decrease sensitivity.