Lenin is a complete modular system that you can played both via MIDI and by its internal sequencers (or both at the same time, if desired). Essentially it contains three complete multitimbral synths in one instrument, all the components of which can linked in pretty well any way imaginable.The instrument is freely available to NI customers in the Native Instruments library. Here is its user's manual.

Lenin
Lenin

Delving into the Design

Lenin contains:

  • 2 switchless event matrices, routing 16 modulations from 34 sources to >120 targets. Internal event routing is entirely switchless, providing very smooth operation (and snap changes without interrupting the sound if there are no audio switch differences between the snaps).
  • 5 pitch+velocity sequencers with 32 steps each; loop, midi triggered, one-shot, and cross-trigger modes; sequencers can modulate each other; unified display in A panel, and complete display in B panel; easy button controls for scaling, flipping, shifting, etc.
  • Robust, switch-based audio routing allows configuration of >37 audio sources and destinations in any desired manner.
  • 6 oscillators: 34 oscillator types including waveset and "draw your own;" Audio-rate and event-rate phase, width, FM, and AM modulation with multimode sync; simple UI with many internal optimizations for lowest possible CPU usage.
  • 3 multimode state-variable filters: 25 filter types, including serial/parallel configs for each; multiple gain compensation and saturation modes; fully parametric pitch tracking; FM and comb filter modes with waveguide capability; enhanced XY display provides optimal UI feedback for each filter type; modulation of frequency, Q, fm, mix, saturation, overdrive, frequency split, and more.
  • 6 multimode submixers with level and AM modes. Mix can be modulated in multiple ways.
  • 2 multimode distortion units with a dozen distortion types each.
  • 6 PADGSR envelopes triggered by midi, LIFO, or sequencers; hold, predelay, and ADR timing modulation;
  • 3 polyphonic LFOs with multimode sync and polyphonic phase control; LFO amplitude, frequency, and phase can be modulated.
  • Unique triple waveshaper unit for event and audio modulation.
  • 2 Sample & Hold Units with multiple trigger, gate, and multiplication modes.
  • 3-channel polyphonic mixer with two-channel fx send/return. Delay unit with millisec, tempo, 8-tap, and reverb modes. Chorus unit with 2X, 4X, 8X, and flanger modes. Lo+hi Eq and limiter on mix, fx1, or output.
  • Unisono with individual pitch+gain control and modulation of each voice. Polyphonic, monophonic, and legato modes. Voice spread.
  • Pitch scale mapping and microtuning; polyphonic tempo glide on three separate channels.
  • Built-in audio recorder.
  • Oscilloscope.
  • Switching automates lowest possible CPU usage. Event downsampling and event envelope logic for even lower CPU usage. Robust, crash-free design
  • Fits on 1024*768 display.

New Features in Lenin

The Lenin instrument is based on Marx, another design in the Metamusic series. Besides the obvious changes in the panel views, there are a number of changes. The main improvmeents include:

Expanded oscillator modulations: independent audio-rate modulation is now available for contour, amplitude, phase, and FM for each individual oscillator.

  • Core-based oscillators: each of the 6 oscillators now switch between 60 separate optimized oscillators depending on the FM, sync, and contour modulation settings. For example there are core-based oscillators providing width modulation with FM, and separate core-based oscillators providing width modulation with sync. The optimal oscillator is automatically selected when adjusting the simplified panel controls.
  • New sequencer trigger modes: each pattern sequencer can be triggered by any combination of the other sequencers. If the trigger source's output velocity of any step is zero, the trigger is masked, so you can make easily make complex rythmic patterns.
  • Improved sequencer permutations: the SKIP and AMOUNT knobs let you shift, rotate, flip, copy, paste, and transpose by different amounts over intervals, for example with one click you can rotate three steps (by setitng AMOUNT to 3), only for every other step (by setting SKIP to 2). You can select the range for the permutaiton in a number of different ways. There is also an UNDO available.
  • Separate start step settable for each sequencer.
  • Sample and Hold in all LFOs. The SYNC source prreviously available for resetting the LFO phase now provides a choice either to SYNC, or to SAMPLE the value when the trigger source goes HIGH.
  • Envelope ADR time modulation by velocity is now avialable for all six envelopes.
  • Improved Modifiers: the sample & hold units are replaced with *modifiers* that let you draw lines or curves for adjusting the scale and range of any modulation source.
  • Better filter tracking: filter mix/drive/separation can now be modified by the pitch trakc source. Filters can track the global pitch, the pitch from other filters (after modulation), or any oscillator pitch (after modulation).
  • Two 4-way vector mixers with adjustable vector modulation are now available.
  • Core-based event design, again! virtually all event logic is now in implemented in Reaktor5 core cells, providing smoother operaiton when changing between snaps. CPU usage is slightly higher for a minimal patch, but for more complex patches it is substantially lower.

There are other minor improvements, such as for example, the flange effect now has better gain control.

Voice-Specific Unisono Voice Modulation

The unisono unit now supports up to four voices, moreover with continuous modulation of both pitch and amplitude for each unisono voice, in both mono and poly modes.For example, if unisono is set to 3 in poly mode, then each note request generates three notes; the modulation matrix can apply vibrato or other pitch modulations to just the second and/or third note by sending LFO modulations to unisono pitch 2 and/or pitch 3.

Pitch modulations are applied post-glide. Amplitude modulations are applied post-envelope shaping, in the output mixer. If the resulting amplitude falls below 0, it is clipped to 0.

Designing a Patch

The audio modules are fully modular, so they can be chained in any serial or parallel combination; audio paths can also be blended together with submixers.

Audio Switches

For the audio modules there are switches (displayed as droplists) called "Input" or "Audio" in the top left corner. To build an audio patch, simply build a chain of these from the oscillator to envelopes.

Audio switches have the following inputs:

  • o1/2/3/4/5/6: oscillators.
  • f1/2/3: filters.
  • mA~mF: submixers.
  • d1/2: distortion.
  • Sh: Audio waveshaper.
  • E1/2/3/4/5/6: Envelopes at audio rate.
  • L1/2/3: LFOs at audio rate.
  • Out1/2/3: Output mixer channels (after trim, level, and modulation, but before pan and mute).
  • X1/2: Echo and Chorus: fx1 and fx2 return, pre-mute.

Only the audio path is switched; if two snaps use the same switch settings, you can change between the snaps without interrupting the sound or timing. This lets you use snapshots to change between vastly different sound scenes, either instantaneously, or gradually through morphing. So, the first step in setting up a patch is to choose the audio components you want.

Basic configuration

The three audio envelopes can each play MIDI or different sequencer tracks at the same time, polyphonically, letting you split the modules up into three separate instruments that play different sounds.

Because all the modules are combined in one instrument, the pitch of one envelope can modulate the filter of another, and so on. Alternatively, all the modules can be configured into one giant complex instrument, as desired.

It's sometimes easiest to set up the audio path backwards, starting at one of the audio envelopes.

For a simple patch:

  • In the output mixer, turn on the ENV1 button and turn up its volume.
  • In ENV1, set F1 as the audio input and MIDI as the gate source.
  • In FILTER1, set O1 as the input.
  • In Osc1, select an oscillator waveform.

To make the sound more complex, you can use the submixers to link different components in parallel or in series, simply by chaining modules in different ways. For example:

  • Set MA as the input for filter 1.
  • Set O1 for the mixer's first input, and O2 for the second.
  • Select waveforms for the two oscillators.

For wider mixes, you can feed the output of one submixer into the input of another.

Triple-Channel Polyphony

Envelopes 1-3 can all feed audio to the output mixer in parallel, so there may be up to three separate audio paths (each with different pitch and gates). Alternatively, multiple envelopes can shape the same sound, or envelopes with the same pitch/gate sources can receive audio from different sources.

The three audio envelopes feed the three channels in the output mixer. The output mixer provides polyphonic modulation of the output level, channel pan, echo send, echo pan, and chorus send for each channel separately.

Note also you can use the mixer to put one audio envelope inside another, for example, a fast repeating envelope can modulate audio and its output fed into envelopes 1-3.

Aaudio Modulation

Some components have additional audio switches. For example, the oscillators also have switches for audio modulation of AM, FM, sync, and phase/width. The filters also have FM modulation. These can be routed from any other audio source, including the submixers.

In addition, the audio mixers have a switch labeled AM, which lets one audio signal modulate the amplitude of two others. For example, an envelope or LFO can modulate two oscillators. With the six submixers, multiple envelopes and LFOs can be added together, for complex FM modulations. If you use an oscillator or combination of audio sources, you can make complex ring modulation sounds.

Effects

The output mixer is configured so you can route its channels the effects back into the instrument. The ENV1/2/3 mute buttons mute the master output, but not the channel and effects feeds. So for example, you can route the effects back into the instruments as follows:

  • Set, say channel1, to PRE.
  • Turn off the ENV21 button and raise the FX1/FX levels.
  • Use the X1/X2 as audio sources for submixers, filters, etc.

Pipe the resulting audio signal back into the output mixer, say into ENV2.

Now the master slider and trim controls in the mixer control the resulting processed effects sound.

Also, by muting the channel output, you can use the mixer channel as an audio source in the instrument.

Enviornment

Adjusting Master Gain

Different soundcards have different volume levels. So, there is a snap-isolated control in the instrument, labeled MASTER on the right side of output mixer. This lets you adjust all the preset snaps for your particular soundcard and audio hardware. Generally you can set this control and forget it.

Adjusting CPU Usage

The CPU listbox, in the top right corner, adjusts the downsampling rate of continuous event sources (such as LFOs and envelopes. This list is snap isolated. On a 700Mhz Macintosh it lowers CPU usage by 20-50% when using LFOs or envelopes for event modulation.

To reduce CPU usage, you can also reduce the number of voices; reduce the audio rate; or reduce yhe event rate down to 100Hz.

Table Data Saved with Snaps

The table data (for sequencers and waveshaper) are stored with each snap, so you don't have to worry whether changing the table data for one snapshot is going to change another snapshot incidentally. You can copy and paste sequences between snapshots using the copy/paste editor in the B panel.

Morphing and Randomizing

Reaktor's morph/random controls in the snapshot browser are fully enabled for everything that is not a list or switch. Reaktor's CPU load during morphing can be very intensive. The instrument does what it can to reduce CPU load, but if you are changing a lot of different parameters, you may need quite a fast machine.

MIDI Out

You can use the sequencers, envelopes, and chordgen unit to generate MIDI pitch and gate data for other synthesizers. Simply enable MIDI out in the instrument properties panel.

If you are driving other synths from Lenin and don't want audio output:

  • Drive the envelopes from one oscillator set to SAWF for lowest CPU.
  • Nute the audio output.

You need one oscillator functional to enable the envelope polyphonic mode. You may then capture the polyphonic pitch/gate sequences in an external sequencer, and/or send the midi data to another synth.

The instrument contains logic to prevent MIDI feedback, so you should be able to receive and transmit on the same MIDI channel.

Tempo

The single Tempo knob sets a division factor for the clock, whether it is internal or external. In Lenin 3, the tempo was redesigned so that it directly sets the BPM.

The Tempo knob also has a Qnt button which, if on, keeps the tempo changes to even multiples; if off, the tempo change is continuous.

The tempo division is applied to sequencer step duration, envelope hold periods, env 1-3 predelay, glide times, and sync delay. LFO period is unaffected by tempo, but like other things the modulation matrix can change each LFO frequency as desired.

When the external MIDI clock is off (or the Reaktor tempo control in the application toolbar is stopped), then the instrument automatically uses its own internal 1/96 clock.

The instrument can both receive song position, and also transmit its internal song position counter if MIDI out is enabled. The ENABLE button in the sequencer resets the song position to zero.

Matrix 2 can also modulate tempo in any desired manner.

VST

For VST, the instrument is designed so that the parameter names are not truncated, and are as far as possible legible in Cubase SX 1.0.

By default, only the instrument LEFT and RIGHT outputs are connected. The instrument also contains separate outputs for the dry signal from each output mixer channel, and from the effects channels. You can connect these to mix down channels and effects separately.