A tutorial series on using virtual control voltages (CV) in Propellerhead Reason music production software. Revised 2013-01-19.
In the previous two tutorials, CV tutorial 1 and CV tutorial 2, we showed that CV signals are implemented similarly to audio signals, but at 1/64 audio rate. Like audio signals, CV signals have virtually unlimited headroom internally. We set up a CV testbench that allows you to record CV signals in audio clips and to view CV signal levels on audio meters. We will continue working with variants of the CV testbench setup from the preceding tutorials:
This tutorial will cover one of the original applications of CV, modeled after vintage analog synths, where "voltage" signals are used to control oscillator pitches. Here, CV levels correspond to discrete musical note pitches. Thus, MIDI notes from C-2 to G8 are represented as integers 0 to 127, and then converted to CV values to control oscillator pitch. Similarly, MIDI note durations are converted to on/off gate signals that include MIDI note velocities 1 to 127, with 0 equivalent to note off. This Sequencer Control CV protocol is used by devices such as Matrix and RPG-8 to run Reason synths. All Reason instruments (except ID8) have Sequencer Control CV inputs that allow them to be controlled, hardware-sequencer style, by Matrix and RPG-8.
Sequencer Control CV is suitable for playing target devices monophonically, one note at a time. For more general, polyphonic control of target devices, you can wrap the devices in a Combinator. That will be the topic of a later tutorial.
RPG-8 is Reason's analogue to a hardware arpeggiator, sending out CV signals to play patterns on target instruments. But more importantly for our present purposes, RPG-8 is also a MIDI-to-CV converter, which can translate keyboard or sequencer MIDI input to CV signals. We will use the following variant of the basic CV testbench setup:
You can download this setup here: CV-Seq-Ctrl.reason.zip (zip archive of Reason song file)
The Arpeggiator section of the RPG-8 is turned off. And unlike the way you would normally connect the RPG-8, we will be taking its CV outputs into Thor's CV modulation inputs, so that the CV signals can be converted to audio signals and recorded into audio clips for viewing:
Here's Thor's modulation routing:
CV In 1 is the signal from RPG-8. In this setup, it is not playing Thor, only being converted to audio on Audio Out 3. CV In 1 is also modulating Osc 1 pitch slightly, just to give an aural cue as to what's going on. (This modulation will not produce the "correct" pitches on Osc 1.) In the examples below, I'll be using Thor's sequencer track to play one long note (C3) on Thor, which note will be modulated by the CV input:
In the above setup, we have assigned a sequencer track to the RPG-8, to supply various MIDI input patterns.The first note lane in the track contains the MIDI note sequence C-2, C-1, C0, C1, C2, C3, C4, C5, C6, C7, C8, G8, or in other words, MIDI note numbers 0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 127:
Notice that some of these notes are detached while others overlap. We record the resulting CV signal as described in Recording CV into an audio clip. This produces a full-scale, unipolar CV signal that steps up from 0 to 127:
The notes in the above note lane also have varying velocities: 1, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 127:
Reconnect RPG-8's CV output from Note CV Out to Gate CV Out,
rewind the sequencer, and record the resulting CV signal. This also produces a full-scale, unipolar CV signal that ranges from 0 to 127. Here 0 just "closes the gate" or turns the note off:
This gate/velocity output graph reflects the fact that some of the input notes are detached, while others abut or overlap.
If you want, you can use the "mod wheel" and "pitch bend" note lanes on the RPG-8 sequencer track to explore how these MIDI controllers translate to CV. You will need to reconnect RPG-8's CV output to Mod Wheel CV Out or Pitch Bend CV Out. If you do this, you will find that Mod Wheel is a full-scale, unipolar signal, while Pitch Bend is a full-scale, bipolar signal. Mod Wheel nominally ranges from 0 to 127, while Pitch Bend nominally ranges from -8192 to +8191. For CV purposes, however, it is clearer to think of both of these signals in normalized terms, as ranging from -1.0 to +1.0.
You can use unipolar or bipolar CV signals to trigger gates. Basically, the gate opens whenever the CV signal goes positive and closes whenever the CV signal drops to 0 or below. As a separate example (not part of the download), you could try connecting Malstrom's Mod A CV Out to one of Kong's drum pads as follows:
Notice that whenever the signal goes positive, it triggers the pad with a velocity equal to the first positive value. For example, a triangle wave triggers with a low velocity because the positive values start low,
while a sawtooth triggers with a high velocity because the first positive value is high:
Try stepping through the more random LFO patterns to get more varied results. Also try changing the LFO rate. With an even more variable CV source such as the Pulsar rack extension, things can get very interesting as you apply FM to the LFOs, or turn on Shuffle. Check it out.
Now let's return to the "CV-Seq-Ctrl.reason" example and examine Thor as an alternative MIDI-to-CV converter. In Thor's modulation section, use the Last Key > Note global modulation source routed to Audio Out 3, to be recorded into an audio clip:
You can find Last Key > Note in the Source context menu:
Let's make a few other changes in the test setup. First, go to Thor's Osc 1 and turn Keyboard Tracking all the way off, so that Osc 1 responds only to Last Note:
Then go to Thor's sequencer track, mute the "hold long note" lane, and unmute the "note/gate/vel" lane:
The "note/gate/vel" lane contains a copy of the note data that we sent to RPG-8 above. The pitch sequence C-2, C-1, ..., C7, G7 produces the following graph when translated to CV via Thor's Last Note:
Unlike the previous result using RPG-8, this produces a bipolar signal centered on MIDI C3 — that is, MIDI C3 translates to CV 0. Thor's architecture has all the oscillators centered on C3 — the note that you get if keyboard tracking is turned all the way off. The Last Note mod source is also centered on C3 and can be used to modulate pitches up or down from that center.
Thor also has a voice mod source called Voice Key > Note.
This is similar to the global mod source Last Note, but is accessible polyphonically, per voice. For example, the following mod routing is entirely equivalent to turning Keyboard Tracking all the way up on Osc 1, and can be used polyphonically:
The global mod source Last Note just monophonically tracks the last note played into Thor — via either MIDI, Sequencer Control CV, or the internal Step Sequencer. Since CV is a monophonic protocol, we may as well use Last Note to do the MIDI-to-CV conversion.
Thor also has a global mod source MIDI Key > Note, which is almost equivalent to Last Note:
This differs from Last Note only in that it doesn't respond to the internal Step Sequencer. So a common application is to transpose Step Sequencer patterns on the fly, via real-time MIDI input.
Next let's change the mod source to Last Key > Velocity,
resulting in the following modulation routing:
Last Velocity picks up the velocity of the most recent note-on, but doesn't respond to the note-off information in the note lane:
Finally, change the mod source to Last Key > Gate:
Last Gate picks up the gates, but loses the velocity values. Notice that the gate stays open throughout the series of nondetached notes:
In the Sequencer Control protocol, velocity and gate information are combined into one CV signal. We can do the same thing with Thor's Last Key mod source. Set up Thor's modulation section as follows:
This multiplies the velocity signal and the gate signal together. The result is essentially identical to the output we get if we play the note sequence through RPG-8's Sequencer Control:
In addition to the Last Key and MIDI Key global modulation sources, Thor supports Performance Controller mod inputs for Mod Wheel, Pitch Bend, Breath, Aftertouch, and Expression. These work similarly to the equivalents on RPG-8, and can be used to translate MIDI controllers to CV.
These examples show that Thor's pitch response is calibrated differently from that of Sequencer Control. We will give an example below on how to convert Thor's Last Note to Sequencer Control note/pitch. We will see that there are a few situations where such a conversion is useful.
But basically, if you want to coordinate Thor with another device that responds to MIDI note pitches — such as perhaps FXpansion's EtchRed rack extension, or other synths like Malstrom or SubTractor — your best bet is to wrap all the devices in a Combinator.
As I just mentioned, the easiest way to coordinate Thor with other synths such as Malstrom or SubTractor is to wrap them all in a Combinator so that they can access the same incoming MIDI data.
So why would you want to use Thor's Last Note CV Out to drive other synths? Well, usually you don't. But to take one example, you might want to use Neptune's Pitch CV Out to drive other synths, and Neptune's Pitch CV Out is calibrated the same as Thor's Last Note. So if we can get Thor to drive another synth, we can also get Neptune to drive it. Here's a setup that works with SubTractor:
You can download this setup here: CV-Thor-Sub.reason.zip (zip archive of Reason song file)
Thor is routing Last Note, Velocity, and Gate to its CV outputs. Here I'm using Last Gate to scale Last Velocity, to produce a combined signal on CV Out 2 that is equivalent to Sequencer Control's gate/velocity signal:
This combined gate/velocity signal (CV Out 2) is routed into SubTractor's Sequencer Control Gate In, and Last Key > Note (CV Out 1) is routed to SubTractor's Osc Pitch Mod In:
The Trim control is set to 84:
We have set Thor and SubTractor each to play a triangle wave on a single oscillator, and have tuned SubTractor's oscillator down by a major third:
Finally we have deleted SubTractor's sequencer track, and have assigned master keyboard input to Thor, so that Thor is driving SubTractor:
If you play Thor, you will also hear SubTractor following along, and the two synths will play perfectly in tune. What's going on here, I think, is that SubTractor's oscillators are centered on MIDI note 64 (E3) while Thor's oscillators are centered on MIDI note 60 (C3). So tuning SubTractor down by a major third aligns the pitch references on the two synths. Also, Thor's Last Note CV signal has a little more amplitude (bottom to top) than the Sequencer Control note/pitch CV signal, so we use the Trim control to reduce its amplitude slightly. This aligns the pitch modulation across the keyboard.
You can, if you wish, make similar setups where Thor is driving other instruments such as Malstrom or NN-XT. The magic formula is to tune the target synth's oscillators down by a major third, then modulate oscillator pitch with a Trim setting of 84.
Again, the motivation for this example is to prepare to use Neptune, in place of Thor, to drive synthesizers, in a setup something like this:
We're using Thor as a mod source in these examples simply because Thor's pitch calibration matches Neptune's.
If all you want to do is coordinate Thor with other instruments, the easiest approach is to wrap them all in a Combinator, so that they all respond to the same incoming MIDI data.
This extends the preceding example. Now we want to convert Thor's Last Note CV signal so that it can be routed to Sequencer Control CV inputs on different instruments. Reasons to do this?
We will be using the following setup. The Combinator contains a Matrix and Spider CV that are used in the CV conversion, and I've put them in a Combi to allow the configuration to be saved for future use. This Combi patch has external CV routings that have to be reconnected whenever the patch is reloaded. Run must be enabled on the Combi (and the Matrix) in order for the converter to work:
You can download this new setup here: CV-Thor-Seq-Ctrl.reason.zip (zip archive of Reason song file)
As we saw above, Sequencer Control note/pitch is a unipolar signal, while Thor's Last Note is a bipolar signal. So we will do something similar to what we did in Converting Bipolar to Unipolar. Starting with the bipolar Last Note signal, which is centered on C3,
we want to raise the centerline of the Last Note signal upwards so that it matches Sequencer Control's C3. The easiest way to do this is to set up a Matrix that plays a continuous Sequencer Control C3. Important: Run must be enabled:
Then we merge Matrix's C3 signal with Thor's Last Note signal,
with Trim again set to the magic number 84:
Voila, SubTractor is now driven by Thor via Sequencer Control, and plays perfectly in tune with Thor. With this setup you can change patches on SubTractor and it will still play in tune. (For best results, set SubTractor's polyphony to 1 and play mode to mono.) A future tutorial will show how to use this kind of setup to drive instruments from Neptune.
Next: CV tutorial 4: Thor as a CV (control voltage) utility, part I
Images in these tutorials refer to Reason 6.5 user interface elements, which are, of course, Copyright 2012 Propellerhead Software.