Cover image for Complex Generative Control Signals using Virtual Control Voltage Circuits in VCV
John Smith
John Smith

Posted on

Complex Generative Control Signals using Virtual Control Voltage Circuits in VCV

Sometimes, no matter how much money we spend, we never have enough hands. Sometimes, there aren't enough midi control surfaces in the world. For everything else, there's VCVRack. (Or touch designer, but I like to think outside the box.)

VCVRack is free music software that emulates Eurorack hardware, and even has some special modules that simply cannot be recreated in hardware format. The techniques I am using here are not special, and can be replicated in many other platforms, such as Touch Designer or even Ableton. I like to keep my costs down, and create unique workflows that translate to the live environment. I think VCV is the best place to start, since it is free. You can get this wonderful piece of software from VCVRack.com.

Image description

I work primarily in Resolume. When I was working in the industry, the ultimate mixer was the MX-50. Resolume v2 had a very similar workflow, and making the transfer from hardware to software video collage was simple. There were many platforms that came out during the late 90's/early 2000's, but Resolume came out on top, and I think that this direct correlation to the MX-50 and similar video mixers was likely a major contributing factor. The suite has grown so much since then, unless you knew the old software, you could hardly recognize the resemblance.

With the advent of projection mapping, the video collage style fell out of, well... style. Single projector video slop backdrops have gone the way of the birds, but I think the new generation of video artists could learn from a bit of history us old farts have to share.

Eurorack, or more collectively, modular synthesis is a dawless method of making unique music. It's actually been around since the dawn of the telephone era, and the ring modulator (Frank A. Cowan in 1934) shaped the foundation for sci-fi cinematic music. Today, some great music artists you will recognize who use modular synthesis are Noisa, Venetian Snares, Aphex Twin, and Alessandro Cortini from Nine Inch Nails. I want to give a special shoutout to Colin Benders, whose live streams started me down the eurorack rabbit hole by being the first person to my knowledge to use eurorack to trigger visuals.

In the past 10 years, Eurorack has had an explosion of interest, but it is one of the most expensive music hobbies to get into, and has one of the steepest learning curves. I picked it up to make generative music simply to create long, license free music to play along to while I streamed VJ performances on twitch or youtube. Boy, I had no idea what I was getting myself into.

After 3 years of practice and studying music theory, I can barely make anything that a discriminating music listener could find palatable. That's okay though. I never wanted to be a musician. I like to beatmatch video clips to whatever the DJ is doing. I did come up with something useful that I now incorporate into my VJ workflow in my journey and I would like to share it with you.

Let's start with audioFFT. Most are familiar with it, but essentially it takes an audio signal, analyzes it, and controls effects and parameters in your video software. Let's build one from scratch.

Image description

What we have here is a very basic kick drum. Let's pretend that this is what the DJ is playing for the crowd, it's our audio signal sent from the sound booth. We have taken our input signal and passed it to an 'Envelope Follower'. It follows along with the amplitude or volume of the input signal and gives us a smooth line. That's basically all audioFFT does. When line goes up, the blend level goes up, or the x/y value of an effect, or whatever we bind it to.

If you use Resolume, and this can be found in most other VJ software as well, you also have the option to select a specific frequency range which affects what audioFFT reacts to. Low frequency for the kick and bass, mid/high frequencies for the snares, hats, lead synth. This is called a band pass filter, and there are many to choose from in VCV.

Here I have added a snare to the kick drum, and pass both to the envelope follower at the same time. Notice how we get a reaction from both the kick and the snare whenever either hits.

Image description

Now I have passed the same input signal to a band pass filter. Once it's set to the right frequency, it is no longer responding to the kick drum. Only the snare. (Some of the snares hit at the same time as the kick, but you can see the last kick had almost no reaction because the filter is tuned to the snare.)

Image description

Very cool. However, because this is modular, you can really ENHANCE! the audio reactivity and dial in what your system is reacting to. Keep in mind that the frequency of instruments change from track to track, so the more accurate you get, the more you have to pay attention and 'aim' the audio analysis.

You may be thinking to yourself, "Well, John Smith, if that is even your real name, we already have that in my software. What makes this special?" Oh my friend... Welcome to the world of modular.

See, the cool thing about VCV is that you can split a signal from just about anywhere, and process it in parallel. Let me show you the kick and the bass at the same time:

Image description

Here, you see the same input signal has been split to two different band pass filters. The green line is the reaction to the kick, the blue line is the reaction to the snare. One is a little more reactive than the other, but those values can be increased or decreased to taste.

That's all well and good, but now I want to talk about something that audioFFT can't do. VCV can take those control signals and generate human like or completely random control signals. Let's turn them into something more useful.

Modular synthesis uses some specific terminology that I think we need to go over. The control signals we've been referring to are called CV in the modular world. This stands for Control Voltage, because they are voltage controlled. Anyone who has worked with video synthesis should be familiar with this term. We also have Triggers and Gates, which are the equivalent of hitting a button or pad on a midi controller. Gates are longer than triggers. Finally, we have Envelopes, which are predefined shapes that occur one time. Our envelope follower is making a best guess as to what the envelope for the sound it is hearing might be. An envelope generator we get to pick exactly how it acts.

Not too bad, right? Those four concepts are the foundation of modular synthesis. Let's use our custom audio analysis control signal (CV) to generate some gates, triggers, and ultimately envelopes. Here, you can see we have used a tool called a Comparator. This module gives us an On signal with the level is above the threshold, or an Off signal when the level is below the threshold. Since the envelope follower is triangle shaped, the higher we push the threshold, the shorter the gate will be. Set it too high, and the CV will not cross the threshold, and we will not get a trigger.

Image description

Now that we have some triggers, there are some cool things we can do. How would you like a random value ever time the kick drum hits? Sample and hold is the module for you.

Image description

How about the same 4 values in a row, that change when the snare hits? For that you want a sequencer.

Image description

These can be applied to the hue rotate effect to cycle between colors, or to the distort or mosaic effects to create glitch effects that are synced to the beat. Anything you want to randomize. The sky's the limit.

Let's add another level of control to our rig. We're going to learn about Envelopes now. Envelopes come in a variety of flavors, but most commonly are made by an ADSR or Attack Decay Sustain Release. This is a topic that you can really dive deep into a Youtube hole about, but the basic concept is simple. When the gate turns on, CV goes up until it reaches the maximum value. Then it drops down about half way and sustains until the gate turns off, and slowly tapers back down to zero. Let's see it in action.

Image description

I like to use envelopes on effects like Fisheye to really create a custom, more real breathing effect. Envelopes in the visual world usually work best with long envelopes. I recommend messing with this technique for a few hours to get a feel for it.

Next, let's talk about Low Frequency Oscillators. Oscillators are the foundation for almost every sound you hear. Bass synths, kick drums, leads all usually start with an Oscillator. We've probably all seen and heard sine waves at some point in our life. Low Frequency Oscillators are oscillators that vibrate at speeds lower than the range of human hearing. They come in many varieties, and are great for things that you want to change slowly over time. For example, if you have a top layer loop from Micah Buzan and you want to slowly fade between two different backgrounds, you could attach an LFO to the fader on the middle layer background and it would slowly reveal and conceal the background clip on the bottom layer underneath. Here are a couple of examples of LFOs.

Image description

You can really see how this can add a new layer of dynamics to your video effects. LFOs are just envelops that occur over and over again, and don't require a trigger.

There's one more concept that I want to cover, and that is clocks. Clocks are gates or triggers that occur at regular intervals. The BPM of a song is just a measurement of the clock. A lot of modules can benefit from a regularly occurring gates. Our sequenced voltage example from earlier is a module that has a clock input. If the DJ you are working with is using Ableton Live, or another daw, they can send a clock input to you so that you can always be in sync. That's not always possible when you are responsible for an entire festival. Luckily, we can derive the clock from our audio analysis CV gates. For this, we need a clock divider.

Image description

Here you can see that we've taken the kick drum, and turned it into a relatively even set of triggers that is basically a clock. We know that the 'song' has three kick drums per measure. The counter module is counting 3 kicks, then sending a signal to our clock divider. We've multiplied this to get a slightly more useful clock rate than 1 beat per measure. This gives us more evenly spaced, predictable sequenced CV signals that are in sync, but not tied to the instrument we are tuned to.

Now, the clock that we get will sometimes be higher or lower than the actual bpm of the song, but it will ultimately average out over a longer period of time, and thus stay in sync. It's always better if you can work with one specific dj and get an exact clock, but this works in a pinch. Also, I like that the clock has a tendency to drift. It adds what musicians call 'swing' to my performance.

So how do we get all these cool control features into Resolume or your favorite VJ software? Well, you could map the CV to midi directly. Honestly, because of the way midi learning works, and the fact that you have to reference both pieces of software in order to align the mapping, I prefer to use OSC. So far as I am aware, there is only one module that does this. It is maintained by a very busy man named Jason Casey, who is a resident VJ at Terrace Afterhours and resident DJ at Slowburn, both in Las Vegas. Right now, you can only get the modules for the current version of software in Github, but they will eventually be added back to the official library. His github is here: https://github.com/j4s0n-c/trowaSoft-VCV/releases

Please do not bug him about using the software. Read the documentation, or reach out to me directly with questions. He's already busy, so if there's a massive influx of users asking him questions he might go back into hiding. Do visit the venues he works at in Vegas and give him thank you cards and tips if you can make the trip. He may also have a patreon or some other means of receiving developer funding. Without him, none of this would be possible.

So as you can see, there is a lot you can do with this free software. Every module that I have used is completely free, and I am using the free version of VCV for this guide. I wanted to make sure that anybody could try this out without having to make a big investment. I do buy modules for myself to help fund the software and the individual module developers. I encourage you to research and experiment. This is only a small taste of what this software is capable of. I would love to see all of your patch ideas and creations!

Discussion (2)

vdmo profile image

This approach can seed lots of good ideas for people :) great article !

mr_j profile image
Mr J

Hi John Smith, if that's even your real name :)

Oh the MX-50, can't beat that beast for live mixing, unfortunately mine stopped working a couple of years ago. I know what you mean about not having enough hands. In the mid-90's there was a winamp plugin you could use to A/B cut the MX-50 via it's RS232 port (external mic > 98se PC > winamp plugin > RS232 > MX50 > A/B cut), providing a free hand to swap video tapes.

And about 10 years ago i saw some video guys in Brooklyn feeding their MX-50 audio input with various waveforms, triggering their visuals

I VJ using Isadora (from Troikatronix), with a 64 knob Doepfer midi controller, adjusting various waveforms and clocks as triggers, plus some frequency analysis and recently some bpm detection

For ages i've been thinking about incorporating (physical) modular synths and your posting has now opened my eyes, so thanks for introducing me to VCV, which i've just downloaded and started to play with tonight.

I've got some questions for you about your examples above, can we talk direct?

Cheers, Mr J