A Brief Introduction to CV for Guitarists (or Hopefully Anyone)
CV can be the most intimidating aspect of ZOIA for the uninitiated. Control voltage... it sounds like something out of physics or rocket science, full of calculations and obscure, unfamiliar nomenclature. It's easy to get hung up on the eye-catching word 'voltage' -- that arcane harbinger of bizarre Tesla coils and confusing laws named after dead white guys -- but the focus really should be on 'control.' CV is what allows you to exert control across ZOIA.
Now, before we go much further, I should clarify that the "control voltage" in ZOIA is really a digital emulation of the behavior found in analog circuits. But aside from doing away with a bunch of wires, the CV in ZOIA functions much like the CV in a modular rack, using differences between a reference point -- or bias -- and an incoming signal to generate changes.
A simple example of this is one that you probably use without realizing it is CV: a parameter change. If you want to change the mix of a reverb module, you just change the parameter, easy peasy. But within the module itself, that change is being affected by CV; it is CV which translates the change you make with the encoder into a change in code that affects the module's character. We can externalize this process, too: bias -- set a reference point -- the reverb mix to 0, and attach a basic CV module to it, the value module. The value module just holds steady values -- it's kind of like a knob or fader inside your patch; what you set at its input will be mirrored at its output, so here it's really just acting as an extension of that mix control. Now, as we adjust the mix using the value module, we have an external CV module replicating what we did by adjusting the parameter on the module itself; we're using external CV to control the internal CV within the module. But at every level, it's a familiar process: we're just adjusting the reverb mix. You've done it a hundred times, thousands. We're exerting control.
Now, in the immortal words of Prince, let's go crazy. Let's attach a sine wave LFO to the reverb mix. With the LFO in place, the reverb will fade in and out, as if someone were controlling the reverb mix by hand. Which is the point, really. The LFO doesn't do anything obscure or unfamiliar; it just controls some other module independently. If you think of CV as having a bunch of infinitely flexible studio engineers at your disposal to tweak and change and wait for the right cue to do more tweaking and changing, you wouldn't be far wrong. Except these engineers -- these little CV modules -- can perform tasks with speed and precision that we pitiful humans would struggle to match. Worthless flesh bags; all we're good for is producing enduring art and timeless architecture and triple cheeseburgers.
(A reverb lite's mix with bias at 0, indicated by the circle. CV from a connected LFO is modulating the mix, indicated by the moving line.)
I want to introduce an idea about CV. CV interactions (mostly) break down into combinations of four things: changes that happen gradually, or changes that happen all at once; and changes that happen under certain conditions, or changes that happen automatically. With that sine wave LFO -- or the value module we started with -- the reverb mix changes gradually; with the sine wave, that change happens automatically; with the value module, the change happens under certain conditions (namely, when we change its bias by twisting ZOIA's encoder).
Let's look at another familiar example: the stompswitch. The stompswitch doesn't do "gradual." You stomp, and suddenly the stompswitch module's output becomes the change you want to see in the world... of the patch. Let us say for our example that this particular hypothetical stompswitch turns an overdrive effect off and on; it does this by changing the channel on an audio switch, with one channel passing to the overdrive and the other channel passing to the next destination in our chain. The stompswitch also changes under certain conditions; you stomped on it, after all. Without you, the stompswitch is inert.
But what if you did want the stompswitch to exert a gradual change? I'm going to introduce another idea, and with the first idea (the four, basic categories of control), this forms the backbone of just about every CV interaction: control voltage can control other control voltage. (Say that three times fast.) People often get hung up on this part, and, admittedly, it is where CV can easily turn from simple control to Rube Goldberg. But this is also what makes CV special and powerful -- it's what turns modules into modular -- because like a Rube Goldberg machine, we can take a lot of simple interactions and make them complex just by placing them in the right order. If we think back to our little engineers, tirelessly adjusting our sound, it just means these engineers can communicate with one another. One of them taps another on the shoulder and says, "When I do this, you do that." Then they nod in silent agreement, as engineers are wont to do.
So, to return to our question: what if you did want the stompswitch to exert a gradual change? There are modules that can affect the rate of change in control voltage -- a slew limiter, for instance. A slew limiter slows things down, just like the quicksand we were all needlessly terrified of as children, or those little raised speed bumps on roads that we curse as adults. We can send our stompswitch to its input, and rather than changing all at once, from 0 to 1, on to off, the slew limiter can slow things down, rising in a smooth line from 0 to 1, with all the points in between that the stompswitch normally skips right over. Great, so let's stomp on that stompswitch again, and... nothing's really all that different. The overdrive still switches on; it just takes longer to do it. Shall we drop the balloons and confetti now? Hurray.
Okay. That's not a blind alley I led you down. Well, it is, but we went down it because it illustrates the third and (hopefully) final point I want to make: a control voltage source needs an appropriate control voltage target. In our stompswitch example, we've changed the stompswitch's control -- via the slew limiter -- from all at once to gradual, but it doesn't matter a whole lot, because it's exerting control over an audio switch. Switches, like stompswitches, don't do "gradual." They do on and off, yes or no, 0 and 1. Discrete actions. You don't gradually turn on a light switch; you turn it on or you turn it off. (We'll imagine, for the moment, but not too long, that dimmer switches don't exist.) Square pegs, round holes, etc..
If we chose a different target for our stompswitch-by-way-of-slew-limiter gradual change, we can find a more meaningful success than an overdrive that takes slightly longer to switch on. What if, instead of having an on/off switch between our clean sound and our overdriven sound, one gradually faded into the other? Audio switches don't do gradual, but audio balances do. Let's connect our clean signal to one side of an audio balance and our signal after it has passed through the overdrive to the other side. If we bias the mix to 0%, then connect our slew limiter's output to it, when we stomp on our stompswitch, that signal, slowed down by the slew limiter, will cause our clean signal to gradually blend with our overdriven signal, until all that remains is the overdrive.
Viola!, with a little teamwork between CV modules, we've taken something that happens all at once and made it gradual, and by considering where we were directing that control, we were able to produce a gradual change. Teamwork makes the dream work. Many hands make light work. It takes... you know, I'll just leave a book of empty platitudes for you to peruse.
The important thing to remember is that CV is a toolkit. Even more, it's your toolkit; you control it, not the other way around. Even though it may seem like many of the modules do bewildering things, once you understand their mechanics they end being fairly simple machines. And once you understand their mechanics, you can combine them to produce the outcomes you determine. It can seem overwhelming at first, but you control the toolkit and how it is used. Even if, as you first experiment, it seems like those combinations are haphazard and random, just tell yourself that it is your haphazard and random method which connects them. Always remember: CV is what allows you to exert control across ZOIA.
Once you've internalized that, we can initiate you into the sinister control voltage cabal, let you take the Dark Sacraments, and then explain our plans for world domination. They involve a lot of sample and holds.
No engineers were harmed in the writing of this blog post.
You can all thank Steve Bragg for talking me out of an example that used the quantizer module and began with a history of Max Planck's contribution to quantum theory.
There are a lot of resources for learning more about CV. Some specifically ZOIAnese ones include the Module Index (an overview of all the modules available in ZOIA and their parameters) and Tips and Tricks (a collection of techniques and explanations for putting modules into use). There are also a number of online communities -- r/ZOIA, the Empress ZOIA Users Facebook group, the ZOIA discord server -- where you can ask questions and share experiences with other ZOIA users.
Beyond ZOIA, Chris Meyer's "Learning Modular" website offers a vast array of free resources, as well as classes on general and specific modular applications. I've learned a great deal from watching DivKid's YouTube channel. There are many more resources out there, if you go looking.
This blog post was adapted from a longer, unfinished essay I wrote in the heady fall of 2019 (remember 2019? Ahhh, memories). It offers some other practical advice, a little of my world-class MS Paint drawings, and an extended metaphor about robots washing windows.