This is an illustrated guide to sequencing hardware from Rack, and sequencing Rack from hardware, with accurate pitch, using a DC-coupled audio interface.
When using Rack together with hardware synthesizers, be they modular or other synths, there’s lots of attractive opportunities for integrating them, into a combined, hybrid system. This can be done over MIDI or over audio channels, and the following deals with the audio based option. Sending audio, triggers, gates, LFO’s, envelopes and such signals across audio channels is fairly easy to do. The issue of sending accurate and usable pitch between the two worlds however is more tricky, because pitch are such precise voltages, that even having them slightly off can make the setup unusable. This is a guide to solving that issue, and having rock-steady pitch over 6-7 octaves, making it possible to not only sequence your hardware synth from Rack, but also to sequence Rack from your hardware sequencer, if you so desire.
The objective is simple: Send pitch over an audio channel, and use it at the receiving end, to make sounds that correspond exactly to that pitch.
The problems that need to be solved are the following:
- Audio interfaces are generally not hardware calibrated to transfer voltages perfectly. They will introduce small offsets to the voltage and that changes the pitch. Further more, those offsets can be non-linear, so that using a simple offset module is not sufficient.
- Oscillators, especially analog ones, are often not tuned exactly, and do not track pitch perfectly across several octaves. Mostly they cannot be calibrated to do so perfectly, all the time.
The solution to these combined problems is to use a calibration module in Rack, that compensates for all of these. In Rack we have two such calibration modules:
- The Expert Sleepers:Voice Controller module, from the $10 Silent Way plugin. This module is generally applicable, and not tied to the Expert Sleepers eurorack hardware modules. Its manual is fairly sparse and this guide expands on it.
- The NYSTHI:Tunathor module, which is free.
Both work as advertised but in my tests I have most often found Voice Controller to give the most reliable and quick results. Your milage may vary.
A potential problem that the calibration will not solve is hardware oscillator tuning drift over time, because of temperature changes, which can happen. If you get this problem you will need to re-run the calibration. Also note that the calibration is per hardware oscillator, as they are all different. Technically the calibration is also per audio port, since they might have different offsets and unlinearities.
Why the need for calibration, instead of just inserting a quantizer at the receiving end? Aside from possibly not having a quantizer available, it turns out that the combined offsets, imprecisions and unlinearities of the whole chain of sequencers, audio ports and VCO’s, can be more than a quantizer can reliably compensate for.
The way the calibration module works is like this: You go through a calibration step during which the module sends out a wide range of pitch voltages and listens to the audio coming back. It calculates how much the audio is off compared to the pitch, at regular intervals, and what voltage would be needed to compensate for this. In that way it builds an internal compensation table across many octaves. When the calibration is done you use it for playing by sending pitch through its input/output ports, and in that way the pitch voltage is adjusted on the fly using its compensation table, for an accurate result.
In the following I illustrate how to do it, both for sending pitch from Rack to hardware, and for sending pitch from hardware to Rack, using both the calibration modules. Most people will use a DC-coupled audio interface for transmitting the pitch over an audio channel, but other more esoteric hardware+sofware modules exist as well, from e.g. Expert Sleepers. In my examples I use my ES-9 eurorack audio interface from Expert Sleepers, so you simple substitute ES-9 for “my interface” in the text.
Before running the calibration step, I recommend you turn off any audio playing programs on the computer, and also any other CPU using programs.
When doing the calibration I recommend using the sine output of the VCO, or second best, the triangle output, to maximize the chance for the audio frequency detection in the calibration module to work correctly. You should not have any filters or effects in the audio path during the calibration, it should be VCO straight to audio input/calibration input.
Sequencing hardware from Rack
This is the most common scenario, and what the calibration modules are made for. For this you need at least one DC-coupled output from your audio interface.
If you are going to use a quantizer in the hardware end, for other purposes, you should probably connect it before running the calibration.
I recommend you warm up the hardware for half an hour before doing the calibration, to allow the tuning to settle down. I also recommend that before the calibration you do a good-enough manual tuning of the oscillator, for example by sending its output straight through the audio interface to e.g. Hot Tuna in Rack.
If you have a VCO that doesn’t accept negative voltages on its V/Oct input, you should tune it to the lowest note you expect to use in the patch. After you have done the calibration you should not be touching the tuning/frequency knobs of your VCO any more.
Using the Voice Controller module
First calibrating:
Then using it/playing:
Using the Tunathor module
First calibrating:
Then using it/playing:
What can go wrong?
I’ve experienced a couple of times, with both calibration modules, that the calibration step would go weird. In Voice Controller the calibration curve should look like a straight line:
If it looks like this with a big “hump”, the calibration has gone wrong and you need to run it again:
I’ve had it go wrong a few times in a row, don’t ask me why, and the solution was to close Rack, turn off the hardware, wait a minute and then turn on both again, then it worked. I know, it sounds like “just reboot Windows”. Don’t ask.
Sequencing Rack from hardware
This is the more unusual scenario, and the Rack calibration modules are not specifically made for this. We make it mostly work anyway with a bit of clever patching. For this you need at least one DC-coupled output and at least one DC-coupled input, from your audio interface. You also need to make sure that any DC-blocking on the input port of the audio interface is turned off for that port.
Using the Voice Controller module
First calibrating:
Then using it/playing:
Using the Tunathor module
First calibrating:
Then using it/playing:
As can be seen, during the calibration step we calibrate for the offsets of both the input and the output channels of the audio interface, but during playback we only incur the offset from the input channel. In other words, it’s a bit of a hack. Since the offset of the output channel is now missing from the equation it means that this method is not always guaranteed to work. It will work as long as the difference in offset between the output and input channel is less than 50 cents (half af semitone), so this depends on your specific audio interface.
If you’re getting wrong notes, try the following: Insert the Bogaudio:Stack module after the output of the calibration module and deactivate its QNTZ switch. Then take the output of Stack directly into Hot Tuna. Now use the fine tune knob of Stack until you get as close as possible to the pitch that you are expecting from the hardware:
In that way you should be able to mostly offset away the effect of the missing output channel, and unless the output channel is very non-linear in its offset, this should have a high degree of succeeding. When you’re done, re-introduce the quantizer between Stack and the VCO:
But of course the guaranteed solution for sequencing Rack from hardware is to use a hardware calibration module …
Using a hardware calibration module
Basically this is the reversed scenario, compared to sequencing hardware from Rack. During calibration a hardware calibration module sends out a series of pitch CV’s, through the audio interface to the VCO in Rack, and analyzes the audio frequencies coming back from the VCO, through the audio interface. Several hardware modules exist (see comments below). I happen to have the Ornament & Crime module, which has a References “app” that contains a VCO calibration mode, and so the following description uses that.
First tuning 0V to C4:
The Umix module is only there because Stack does not pass more than 5V through (possible bug).
Then calibrating:
Then using it/playing:
The quantizer in Rack is not strictly needed here, only if you want to be a bit anal about getting the last couple of cents bang-on. Note the need to select another “app” in Ornament & Crime (e.g. Quantermain), before actually playing through it. This is because the References app can’t actually be used for playing, only calibrating. A bit funny but there it is. I have found that, when calibrated, this setup can deliver accurate pitch over 9 octaves.
I hope you found this useful. Corrections and feedback are welcome.
I’ve found during my testing that it’s actually possible to achieve rock-steady pitch both ways, paving the way for much joy. If you think that this is a lot of text and must be really complicated, it’s actually not. I have just found existing descriptions much too sketchy, glossing over lots of things and missing out on the understanding of what’s going on, and so opted to do a detailed description for your benefit, to make sure you get it right and working properly.
DISCLAIMER: I take no reponsibility what so ever, for any damage that may incur from your fiddling around with your hardware. It’s your own responsibility to know what you’re doing, using the right cables, ports, configurations etc.