Maintaining Harmonious Colors in Video Synthesis Without Knowing Color Theory

Maintaining Harmonious Colors in Video Synthesis Without Knowing Color Theory

We got our house painted this past summer. We went with a rather saturated trio of orange, blue, & yellow. I absolutely love the result. It genuinely makes me happy that the exterior of my house is so colorful.

But I'm generally terrible when it comes to working with color. I'm not a traditionally trained artist. I see those TikToks where people mix paint to match a specific color and it just feels like a magic trick. I know there is a lot of science and psychology and theory behind working with color, but I haven't internalized nor have the muscle memory for it.

I know some color theory. It's the basics you get in grade school: primary colors; complimentary colors; what are warm colors, what are cool colors; what a color wheel looks like.

When I was in college working on the school magazine, I learned exactly one color hack that I still use to this day: in the Photoshop color picker, pick a color to work with then select the radio button next to Hue and then use the rainbow slider to grab other colors with the same saturation and brightness. It won't work for everything, but in 90% of digital work, it'll get me very close to what I need.

I also love Coolors. You can randomly generate palettes, generate a palette based on an image you upload, and make adjustments all over the place. There's a lot of theory happening behind the scenes and if you wish, it'll try to keep your colors within the confines of specific color systems. Ridiculously handy tool.

Unfortunately, none of these hacks really help when working with video synthesis voltages.

Color in Modular Video Synthesis

Think of every signal being passed around in the system as a grayscale image. When the signal is at zero volts, you get black, when the signal is at 1 volt, you get white.

If you feed three of these grayscale images into a color encoder–one each into the Red, Green, and Blue channels–wherever those images overlap you will get the sum of the overlapping voltages. If all of the images are maxed out in one area, you'll end up with white (and the inverse is true of black).

But because you're working with voltages, you can do things that voltages make very easy, but traditional RGB workflows do not. You can completely invert the signal (all whites become blacks), or modulate the level of the individual color components, or modulate signal inversions while modulating the individual color components.

My Workflow

There are two modules that I effectively have permanently connected. For someone that gleefully tears down every patch as he starts a new one, that's a rare setup. I can think of exactly one time in the last 2 years of making videos where I disconnected them. I really only did it to prove to myself that I could make a video using a slightly different colorization workflow.

Final mixing & colorization

My final color processing is Color Chords into a Color Video Encoder. Both of these modules complement themselves quite well.

The Color Chords is a four channel mixer where three of the channels have individual RGB controls and an opacity slider between the layers. I'll tell you a secret, though. I don't often adjust the colors of the individual channels. My "at rest" configuration of the module has layer one as a red channel, layer 2, as a green channel, and layer 3 and a blue channel. Occasionally, I will max out the knobs in various combinations to get cyan, magenta, yellow, black, or white.

💡
Tip: Set layer one to black and max out the opacity. Whatever you feed into that channel will act like a shadow; like carving away at the image with another image. A lot of interesting motion can happen this way, like a kind of moiré.

So why don't I fiddle with values in between? I certainly did when I first got the Color Chords. I understood the RGB workflow enough that I tried to dial in specific colors: "If the R value is 189, then I need to put the red knob at about 3 o'clock..." Maddening. Absolutely not the way to go about this. This was me trying to map my limited understanding of color (in very Photoshop terms) onto a physical piece of hardware that had a similar-ish idea of RGB, but was actually much more powerful.

If I restrict myself to only using the colors red, green, and blue (and sometimes cyan, magenta, yellow, black, and white), I maintain a color space that I can manipulate with the Color Video Encoder (CVE)–and it will stay in harmony.

The CVE has two sets of RGB controls: one column that controls the relative brightness of each color channel, and one column that controls the strength of each individual channel. The latter also has one important feature: it can invert the signal.

I do most of my color adjustments directly on the CVE. Slightly inverting certain channels over others can really change a composition. "Slightly" is the operative word here. While I may have a "knobs to 11" approach with the Color Chords, making fine adjustments on the CVE results in these colorization palettes that really work for me.

And because I start with a limited palette that inherently have their own relationships to each other, when I make my adjustments, everything shifts in a very pleasing way, maintaining those relationships. It's only when I start fiddling with the individual channels, trying to tune into a specific color that the color relationships can get out of whack. Maintain the harmony.

If I turn up the brightness knobs in equal amounts, I can shift the entire image into pastels, if I turn them down, I get a much more muted image. I find a lot of video art can end up as only these highly saturated, often only primary-and-secondary colorizations, when there is really a wide range to explore.

I'm sure there's some color-wheel explanation of what I'm doing, and if you know, please reach out because I'd love to hear about it.

Ideation

There are, of course, other approaches to colorization in video synthesis. For the most part, these use modules that I either don't own or would not fit into what is currently working for me.

There is one area that I'd like to explore, however. I'd love to be able to load palettes from Adobe Swatch Exchange (.ASE) or similar files. If a module could load a new palette–something different than my usual red, green blue, cyan, magenta, yellow, black, and white–and mix them in a similar way to a Color Chords, I would have such wonderful color options. I'd be able to maintain my harmonic adjustment workflow, even.

Given that this is a niche approach within a niche interest, I don't think that I am likely to see a module actually do this. I may just have to build it myself. The code  is straightforward. Converting RGB values into voltages is straightforward. I just need to get a handle on the rest of the electronics needed to make it a reality.

I'll let you know how it goes.