Swatch is a deceptive module. On paper, it’s rather dry – a bidirectional color space converter with fixed color space, but the modular context of this function opens up some exciting use cases. Swatch is designed to interface RGB signals with parts of your system dealing with 2D vector processing (for Chroma processing) and waveshaping (for Luma processing). But even on it’s own, the interface has been designed to be highly hackable, through some patching tricks I’d like to share.
Send an RGB source to the RGB inputs. Whatever source you choose, pick something with strong regions of color across all color channels. Patching from shapes and ramps makes this easy to achieve. If using a photographic source, use a Macaw parrot or something else with sloping luminance ranges and strong areas of saturated color. Test pattern bars aren’t as useful, due to the lack of any luma gradients to play with.
Patch the RGB outputs (clamped or non) to your Encoder/output.
At this stage, you should be seeing just a clean pass thru of RGB. The signal is being converted to YIQ, then converted back to RGB. Now you’re ready to try any of the patch hacks below.
Invert Chroma. Patch the I- and Q- outputs to the I+ and Q+ inputs. Invert Chroma (First Axis Only). Patch the I- output to the I+ input. Invert Chroma (Second Axis Only). Patch the Q- output to the Q+ input. Swap Chroma. Patch the Q+ output to the I+ input. Patch the I+ output to the Q+ input. Remove Chroma / Desaturate. Patch 0V or a dummy cable to the I+ and Q+ inputs. Remove Chroma / Desaturate (First Axis Only). Patch 0V or a dummy cable to the I+ input. Remove Chroma / Desaturate (Second Axis Only). Patch 0V or a dummy cable to the Q+ input. Luma Replacement. Patch a shape or waveform into the Y input. Luma To Chroma. Patch the Y out to any of the I+, I-, Q+, Q- inputs. Chroma To Luma. Patch any of the I+, I-, Q+, Q- outputs to the Y input. Constant Luma. Patch a static offset (from Matte or Proc) to the Y input. Saturation Boost X2. Patch I- out to I- in, and Q- out to Q- input. Chroma Linear Displacement. Patch oscillators or offsets to the I- and Q- inputs. Chroma Orbital Displacement. Patch the Sin/Cos outputs from a quadrature oscillator to the I- and Q- inputs.
I’m sure I’ll think of more! If anyone patches along, post some screenshots of your results.
This post gives me some ideas to expand on what I’ve already learned, thanks!
I’m very excited about Swatch, and want to make a Tools & Techniques video about it. Still need time to experiment, and to give @Johnnywoods a chance to release an official documentation video.
So far, I’ve seen that Swatch really shines in combination with other utility modules. Specifically Proc, SMX3, Crossfade.
For example, Crossfade is convenient for controlling saturation by attenuating both I and Q at once.
Proc+SMX3 is a great way to combine the original chroma with modulation, such as quadrature oscillators. Crucially, I and Q are bipolar, and all of the LZX ecosystem LFOs I know of are unipolar. That means the oscillators are only going to push I and Q toward positive. They need to be biased down into negativland to address the whole color space. Right?
Yes, and in addition to what Nick said, it’s the Polar-to-Cartesian module that makes this a lot easier, since it has the parameters for Hue/Angle and Saturation/Depth. Those can be modulated with the unipolar signals or a mix of unipolar signals, in order to generate the bipolar IQ signals (which can then be further modified, mixed or converted to RGB with Swatch.) The Rotator/Transform module will have unipolar and bipolar IO as well.
??? I’m sorry, I don’t understand why this is. Perhaps this is also why I saw some unexpected results using Crossfade as an input to Swatch. Had to set the CV input pot to a non-zero position to fully desaturate.
I was overthinking it – my concern was that with I+Q+ patched to dummy cables, there was still a pink offset in the output. I asked @7pip to patch cables to 0V source instead, and as you can see above, that resolves it. There’s an input offset with a dummy cable because the input isn’t terminated to ground thru the switch of the input jack any more. TLDR; don’t leave one end of a cable unpatched if you need the input to be 0V.
When I said set one channel to 0V and the other to 0.5V, I was thinking about quadrature relationship. A “legal” IQ signal should have IQ 90 degrees out of phase with each other (so when one input is zero, the other should be 0.5 or -0.5) While that’s the correct way to get to zero degrees of quadrature phase, it doesn’t apply in this desaturation context.
OK, is this related to the behavior I’m seeing with DSG3…? Using a dummy plug to break the normal of one of the compositing channels. This causes the SUM output to drop to ~half gain. Workarounds are to use the ABS output, or to connect a patch cable to a zero volt output of Matte. I guess another workaround would be to connect to any grounded input jack?
Yes, you understand correctly, but on that last question (input jack) it would not work – input jacks are grounded when unpatched, floating (with a high impedance weak pull to 0V) when patched, but not connected to a source. If left floating and not connected to a source, there’s a bias on the input.
Easy answer is to make some dummy plugs that short Tip to Sleeve on the floating connector, forcing the connection to ground. I don’t know if anyone makes something like that, but it would be handy.
Thanks. The even easier answer with DSG3 is to use an ordinary dummy plug and the ABS output.
But this is really good to know in general. Sounds like best practice for breaking any normalled connection without inserting a signal is to send zero volts from Matte. Yet another reason why Matte is actually a necessary module, not an optional extra!
Ooh, ooh, the Function Generator gives the ability to amplify or attenuate the positive and negative voltages of I and Q separately. So I can dial down the positive part of I without affecting the negative part. And all through one module.
The lack of documentation for the @reverselandfill Triple Function Generator had me scratching my head about what the toggle switch even does. Finally had the brainstorm to do a search on the LZX Visionary version… and it’s right there on the front panel. -0.5V offset. Bipolar or unipolar. Bingo. Then I realized, this is perfect for Swatch.
Good call!! I kept a bipolar mode on this module specifically, because the Sandin IP’s native voltage range was +/-0.5Vpp. I wanted to make sure the circuit could replicate the behavior of the original circuit. But you are right, it is perfect for Swatch.
Actually I think I posted a little too soon. The breakpoint between the High and Mid voltage ranges is not landing right at zero. If my math is right, it’s 0.66 - 0.5 = 0.16. So, not really isolating the positive and negative parts of I and Q, The Mid control is affecting the positive voltages a little.
But still, a cool discovery. At the very least, this simplifies my saturation control patch by eliminating the Proc passive splitter trick. Function Generator can amplify the bipolar I and Q directly.
I think you may want to keep the offset turned off, with IQ as source. The -0.5V is for converting 0-1V to the +/-0.5V expected by the function generator, and then restoring it to 0-1V on the output as well IIRC. That’s not necessary if the in/out is already +/-0.5V as is the case with the Swatch IQ outputs/inputs.
Hmm. Well, I’m using the @reverselandfill Triple Function Generator. The toggle switches aren’t labeled. The up position works for normal 0-1V video. For Swatch input, I put the toggle switch in the down position, and it’s passing the bipolar voltages, no problem. Works perfectly for saturation control.
Carrying the conversation from another thread… how would one patch bipolar modulation of bipolar signals such as I and Q?
In the “Questions about DSG3” thread, @creatorlars brought this up. A four quadrant multiplier accepts bipolar factors and outputs a bipolar product. Canonical use case is ring modulator. I’m sure there are many more, apparently Navigator. Aaaand… Swatch? Practically speaking, what are the connections and settings to accomplish bipolar multiplication of I and Q? Where a positive modulation gives a positive output, and negative modulation gives an inverted output. Or, at least a +1V modulation gives a positive output, and a 0V modulation gives a negative output.
At least part of the patch could involve Proc/Passage and Bridge. Here is what I understand in the case of a unipolar input signal:
Take a 0…1V signal, cut its gain in half and bias it up 0.5. Now it’s a 0.5…1 V signal.
Invert a copy of that signal.
Use Fader VC to crossfade between the positive and inverted signals. When VC = -0.5, positive and inverted signals cancel out.
But does Bridge support bipolar signals like I and Q? It does look like the Mults do not, so I would be pleasantly surprised if the Inverter and Fader did.
Would this work?
Scale and bias Swatch I+ and Q+ to unipolar 0…1 V
Invert copies of unipolar I+ and Q+ (rather than scaling I- and Q- to preserve precise values for later phase cancellation)
Crossfade between unipolar I+ and Q+ and their respective inverted copies
Scale and bias the results back to bipolar -1…+1 V
This is a great question. Say that we want to set up 4QM with a pair of Bridge modules. Here’s a patch.
Swatch I+ Out to Bridge1 Fade B In
Swatch I- Out to Bridge1 Fade A In
Swatch Q+ Out to Bridge2 Fade B In
Swatch Q- Out to Bridge2 Fade A In
0-1V source (I modulator) to Bridge1 Fade CV In
0-1V source (Q modulator) to Bridge2 Fade CV In
Bridge1 Fade Out to Swatch I+ In
Bridge2 Fade Out to Swatch Q+ In
That should do it. The IQ modulator signals will each sweep from negative to zero to positive IQ. Bridge should pass +/-1V bipolar signals just fine on the Fade AB inputs. The CV input will only respond to voltages above 0.
Thanks so much. This simplifies things considerably. I and Q are pretty low rez to begin with, due to human color perception and ubiquitous digital color subsampling. So I and Q will stand up to considerable abuse, going through a long processing chain won’t degrade them very noticeably. But the shorter the chain is, the less delay we’ll see, therefore the less misalignment with Y.