Live toolkit: MIDI to CV with Expert Sleepers ES-3 Lightpipe/CV

In the previous post discussing calibration I demonstrated how Voice Controller (one of many plugins in Expert Sleepers' Silent Way suite) comes in both Instrument and Audio Effect flavors for Ableton Live. Both work equally well, so deciding on the one to use comes down to your preference for how you interact with its inputs: the Instrument type expects MIDI but can receive audio sent to it from another track, while the Audio Effect type expects audio but can receive MIDI sent to it from another track.

I also mentioned that Voice Controller has six outputs, and this applies to both Instrument and Audio Effect types. I didn't describe how those outputs work since the calibration patch I was using only depended on Pitch and Gate. Those functions are assigned to the first two VC outputs by default, and by extension to the track where the plugin is loaded. So I didn't need or discuss the other four outputs available. Much of this post will focus on Voice Controller's six outputs, and how to use them to get CV signals to the ES-3 Lightpipe/CV module's outputs.

Voice Controller

It's helpful to understand a bit about how signals are routed from Voice Controller to Live, so let's start there.

The Voice Controller plugin has six outputs, with the following default assignments:

  VC output 1: Pitch
  VC output 2: Gate
  VC output 3: Envelope 1
  VC output 4: Envelope 2
  VC output 5: Envelope 3
  VC output 6: Triggers

Think of these as virtual outputs with no relation to the physical outputs used for sending signals to your hardware. These are outputs from the plugin to Live.

In the VST/3 formats, these outputs can be arranged in Voice Controller's preferences as a single output bus (5.1), three stereo output pairs (Stereo x3), or six mono outputs (Mono x6). The default arrangement (Stereo x3) is the recommended one for Live. If you do change this setting, it affects all VC instances and requires reloading the plugin.

"Stereo x3" means that the plugin's six outputs are grouped in pairs, which aligns with Live's paradigm of using stereo channels for routing signals within the DAW:

  VC outputs 1-2  [reserved output pair from VC to the track]
  VC outputs 3-4  [output pair 2]
  VC outputs 5-6  [output pair 3]

How these output pairs are named differs between the VST and VST3 formats of the plugin (I believe that's a Live thing, not a choice by Expert Sleepers). The VST format shares its naming convention with that of the AU format: output pair 2 (for example) is named "3/4"; whereas in the VST3 format it appears as "Output2". So the following equivalencies may be helpful to know if you mix and match plugin formats:

  Post Mixer (VST/AU) = Post Mixer (VST3)
  3/4 (VST/AU) = Output2 (VST3)
  5/6 (VST/AU) = Output3 (VST3)

Any of the three pairs can be used as inputs on other stereo tracks. In all three plugin formats the first output pair is the plugin's reserved stereo output to the track where it's loaded, so you'll choose "Post Mixer" if you need to select it as the source on another track's input. But if you choose one of the other pairs, the source will be (for example) "3/4" or "Output2", depending on the plugin format.

This screenshot might make the differences clearer:

Comparing the plugin's six outputs with the output pairs to which they map, notice that Pitch & Gate (VC outputs 1-2) are automatically directed to the track on which the plugin is loaded. So if pitch and gate are all you need, there's little else to configure.

One final note on VC outputs: "Arrangement" only refers to how the output numbers are grouped, not how the outputs themselves are assigned. You can assign any of the six VC outputs to any available function you'd like (e.g. you can assign Pitch to VC output 5, and Triggers to VC output 1). You'll just need to be cognizant of how the VC outputs map to their associated output pairs when choosing the correct pair as an input on another track.

VC output function assignments can be found by clicking the Outputs button in the plugin. This reveals a matrix of outputs and functions that can be freely assigned, and are unique to each instance of Voice Controller.

Each row in the Output Matrix corresponds to one of the plugin's six outputs, and any non-zero values (including negative, or inverted ones) that appear on that row are combined and sent to that row's output.

Each output has a default function assigned, and these can be identified by the row/column intersections that have a value of 1.00.

Sending CVs from Live to the ES-3

Having described how Voice Controller sends its signals to Live, we can now turn to getting those signals from Live to the ES-3's outputs. The Live set linked below uses an Instrument type of Voice Controller with default output mappings to send pitch, gate, three envelopes, and triggers to its outputs. The only non-default setting is the trigger length, which I increased from 0.2ms to 5ms to make it easier to see its associated output light on the ES-3.

The V/Oct calibration saved in this set's Voice Controller instance might work as-is for you, but it's recommended to perform a new calibration for each output/VCO combination.

Live set: MIDI to CV - 1-VCO - ES-3 pitch, gate, envelopes, trigger.als

The physical patch for this set expands on the calibration patch, but is more open-ended for you to decide what the envelopes and triggers control:

  -ES-3:1 (Pitch) -> VCO V/Oct input
  -ES-3:2 (Gate) -> EG gate input
  -ES-3:3 (Env1) -> ?
  -ES-3:4 (Env2) -> ?
  -ES-3:5 (Env3) -> ?
  -ES-3:6 (Trig) -> ?
  -VCO output -> VCA audio input
  -EG output -> VCA control input
  -VCA output -> Live input 1

I said earlier that Voice Controller's six outputs are unrelated to the physical outputs of your interface, and yet this patch layout might seem to imply otherwise. But remember that you have control over what the VC outputs do using the Output Matrix in the plugin. The main intent behind this Live set is to show what you can do with a fresh instance of Voice Controller with its default settings.

The other intent is to demonstrate at the track inputs how the VC outputs map to their associated output pairs. I used the VST3 format here, so the sources for the Env1 & Env2 and Env3 & Trig tracks refer to Voice Controller's "Output2" and "Output3", respectively.

And as I've mentioned before, your interface numbering may be different than mine. My ADAT outputs in this set are numbered 13-18, so you may need to adjust things to match your outputs.

What next?

The Live set linked above covers a single voice and a few ancillary CVs. If you'd rather have more voices, delete the Env1 & Env2 and Env3 & Trig tracks, duplicate the Voice Controller track for each additional voice, and then adjust the track outputs accordingly. If each voice only needs pitch and gate, you can support up to four voices using the ES-3's eight outputs.

In fact, in a future post we'll do that and more, including how to use an additional 'master' instance of Voice Controller to manage individual 'voice' instances to achieve polyphony.

But first, in the next post I'll add the ES-5 'ES-3 Expander' module to the mix, which (among other things) allows us to offload gate signals in a multi-oscillator pitch/gate patch, freeing up ES-3 outputs for more voices, envelopes or other variable CV signals.

(Thanks to Os from Expert Sleepers for his feedback on this write-up)