Swatch Hacks: Patching Walkthrough

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.

Patch Setup

  1. 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.
  2. Patch the RGB outputs (clamped or non) to your Encoder/output.
  3. 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.

16 Likes

LETTTSS FUCKKKINN GOOO!!! :pray: :pray: :pray:

4 Likes

Nice!
All about clear patching examples for this new stuff. I’ll do my best to make something cool to post. not to say I’m not interested in seeing what @creatorlars can whip up!

2 Likes

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?

3 Likes

Yes, a bias down with PROC works. but you can also utilize both positive and negative inputs for I and Q to create a bipolar function.

4 Likes
  1. 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.

  1. Patch the RGB outputs (clamped or non) to your Encoder/output.

  1. 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.

constant-luma

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.

14 Likes

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.

4 Likes

One of the two IQ dummy plugs may need to be around 0.5V (instead of 0V) to fully desaturate. The other should stay 0V.

2 Likes

??? 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.

Thanks

1 Like



4 Likes

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. :slight_smile:

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.

Thanks @7pip !!

4 Likes


Proc Bias/Atten = Saturation Control

2023-01-25 14-07-20

Navigator Angle = Hue Control

2023-01-25 14-11-05

Navigator Position Controls = Same thing as modulating the IQ- inputs of Swatch, but will displace pre-rotation instead of post-rotation.

2023-01-25 14-14-33

6 Likes

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?

Thanks

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.

3 Likes

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!

Yep. Terminate your inputs somewhere if it matters for your patch. Sum/Dist provides a handy bank of 0V outputs too.

3 Likes

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.

3 Likes

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.

3 Likes

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.

1 Like

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.