LZX Module Releases Preview 2022

Thanks! There is a very rigid grid imposed, that is based on our previous grids, but maximizes it. In Expedition series there is a little 0.5HP border on the sides of each module, but with Gen3 we went back to the Visionary series approach of spacing everything horizontally in a limited number of HP increments. This creates the illusion of a seamless frontpanel across all modules. The ergonomic spacing for pots is most derived from Cadet – 4HP x 1000mil (1 inch). We want this series to feel like a “video synth construction kit” to the user.

6 Likes

Will escher sketch be revived in some way? Realized today I’d probably want that paired with chromagnon…

3 Likes

They would definitely play well together. We plan to migrate all of our previous functional blocks and module designs into Gen3 over time. It will be easier to make those plans after the first wave of Gen3 is out the door (Chromag, TBC2, first 5 12HP modules.) All the hard infrastructure work is in these, so on the other side we’ll be able to get back to a regular stream of releases and a more predictable schedule.

8 Likes

14 Likes

Sorry about the deleted posts. The forum software didn’t like me making multiple posts, so I’m consolidating them.


So Keychain is three independent multipliers / VCAs?


Matte is just a 6x static voltage generator with a bonus output that sums pairs of voltages? What’s the output range, -2 to +2, or just -1 to +1? The former would be more useful, and in accordance with the attenuverters on other Gen3 modules.

Oh, and if the A and B outputs are -2 to +2, does that mean the A+B outputs are potentially -4 to +4?


Color Wheel… it sounds like it’s not two independent channels. What exactly is the signal flow here?

(RGB in) + (YUV in) → (RGB out and YUV out)


Are the Stencil inputs self-normalled?


What’s up with the Stairs I/O? It can accept a luminance input or an RGB input? Are those RGB inputs weighted? If so, how does the module know whether to apply the weighting or not? Does it depend on how many inputs are active? I.e., I plug signal just into Red, not Green or Blue… Stairs passes that through without a voltage adjustment. But if I plug into all three inputs, the voltages get weighted according to their respective luminances? 0.299 R + 0.587 G + 0.114 B

And it’s outputting just a single channel at each frequency / harmonic? So, for example, if I wanted to multiply the frequency of an RGB color signal, I’d need three modules?


This all looks awesome, especially Color Wheel. @wednesdayayay comment about combining it with Sandin function generator… that is solid gold. Can’t wait to put that into practice with 2x @reverselandfill Triple Function Generators.

And finally, I know the deal is already sealed on Stairs… but what I really want is a true fractal frequency generator. Instead of fixed harmonics at powers of two, a control for the iteration frequency and a gain for the iteration intensity ratio. Both should be on attenuverters to allow positive, fractional, or negative values.

Thanks

1 Like

It is three independent voltage comparators (hard key generators.)

Matte is just a 6x static voltage generator with a bonus output that sums pairs of voltages? What’s the output range, -2 to +2, or just -1 to +1? The former would be more useful, and in accordance with the attenuverters on other Gen3 modules.

It is specifically optimized as an RGB Matte source / color selector, so the knobs go from zero (0%) to 1V (100%). This is so you get the whole sweep of the pot to indicate the color channel’s brightness. If you need +/-1V bias generator, Proc is a good option there (and having the extra attenuverter/sum doesn’t hurt!)

What’s up with the Stairs I/O? It can accept a luminance input or an RGB input? Are those RGB inputs weighted? If so, how does the module know whether to apply the weighting or not? Does it depend on how many inputs are active? I.e., I plug signal just into Red, not Green or Blue… Stairs passes that through without a voltage adjustment. But if I plug into all three inputs, the voltages get weighted according to their respective luminances? 0.299 R + 0.587 G + 0.114 B

Patch into just the top jack, and it is a mono input (single cable.) Patch into all three and it is a luma input (RGB jacks are weighted as an RGB to Luma converter.) All of the inputs on FKG3 work the same way, when you are in the Luma key mode.

So, for example, if I wanted to multiply the frequency of an RGB color signal, I’d need three modules?

Correct, but you could define independent frequencies per color channel – in other words, it’s 3x single processors rather than a function that is necessarily RGB specific.

The RGB-to-Luma input makes Stairs more versatile as a single step Colorizer, that is it’s main purpose. You can recolorize an RGB source based on its luma in 8HP quickly. Keychain can fit the same “role”, but has a more digital than continuous flavor.

And finally, I know the deal is already sealed on Stairs… but what I really want is a true fractal frequency generator. Instead of fixed harmonics at powers of two, a control for the iteration frequency and a gain for the iteration intensity ratio. Both should be on attenuverters to allow positive, fractional, or negative values.

I definitely think there’s room for more complex waveshapers (modulus operators, etc.) But I think this is already what you are asking for. The powers of 2 outputs are simply “taps” from the wavefolder chain. The “Steps CV” works like a variable frequency / fractional iterations control, that responds under video rate modulation. So all the outputs contract and expand continuously in response to the Steps control.

Are the Stencil inputs self-normalled?

This is a “Luma-to-RGB-to-Luma” input, same as described above. It allows you to patch in a luma/mono value, an RGB value, or any RGB channel swap, just by the input structure. Some modules will use it as a Luma input, some modules will use it as an RGB input, some modules will use it as both (like FKG3 in Luma key mode.)

We may try something different for Stencil (like a hard key with voltage controlled Hysteresis / denoise control) since Keychain covers the “lots of keys in little space” use case well.

5 Likes

Nick gave a quick breakdown of each module but then put Keychain centre stage & under the show lights during the latest stream on the LZX Twitch channel, about 7hrs ago.

2 Likes

Color Wheel… it sounds like it’s not two independent channels. What exactly is the signal flow here?
(RGB in) + (YUV in) → (RGB out and YUV out)

Like so:

This is about as complex as the guts for a single function module should ever get, I think. It’s a good example of a function which is very usable and familiar to an artist, but that involves quite a function under the scenes. (There should be an extra VCA here, in the brightness proc, but otherwise this is a good top level look at what’s involved.) Inside the Affine/Pol2Cart blocks there are some very large circuits.

3 Likes

Thanks for answering my questions Lars… now to veer off topic once again into idea land…

I think what I’m talking about is different. My inspiration is from fractal noise generation algorithms. I’m sure there’s a solid mathematical representation of this, but I am crap at that, so will have to use my linguistic skills.

  1. Generator has a base frequency / first iteration

  2. Multiply current frequency by some arbitrary value, usually a positive float, to create a higher frequency. This is sometimes called Lacunarity; the ratio between the frequencies of subsequent iterations.

  3. Multiply current iteration amplitude by some arbitrary value … this is often called Gain. It’s the ratio between the amplitudes of subsequent iterations.

  4. Add or multiply current iteration with the output of previous iterations

  5. Goto 2, loop for a specified number of iterations.

If I’m not mistaken, Stair/case has a fixed frequency multiplier of 2. The artist can change the base frequency and the phase relationship between iterations.

Thanks for typing up the pseudocode, that makes it easy to understand!

Steps #1, #2, #3 could all be describing a patch between one or more Stairs modules and external VCA / Sum blocks.

Step #4 is more complicated. We have to answer the question of “where are we storing the value of the previous iteration”? In a digital graphics system, Step #4 is possible because we have a frame buffer, or a working buffer/variable in the CPU stack more likely. For example, the keyer feedback in Memory Palace performs this kind of fractal function when you have Mirror/Flip engaged inside the internal feedback loop. The feedback is created in this case because the foreground and background layers exist at different temporal points (1 frame is delayed!) In the analog patch, frame delay doesn’t really exist. It’s all happening more or less now.

Stairs I see as a single step ingredient. So much of the power with Staircase and what I liked about it involved doing processing between series waveshaper chains. For example, Waveshape → Gamma → Waveshape → Gamma is the op art mirror from hell – it wiggles its internal wobbles across multiple distorted perspectives. So the reason for an 8HP option is that I wanted something a little slimmer than Staircase to use as a building block in pairs and triples.

4 Likes

Sorry, maybe I’m not understanding the technical problem. Why do you need to store anything in a buffer? Can’t you just employ ordinary analog feedback? I mean, isn’t that what the wavefolder is doing in the first place? This is just adding a couple of extra bells and whistles… a variable frequency ratio and a variable gain stage.

Sure you can, just grab Stairs + Proc and you’re good to go. Or Stairs + FKG3 if feedback keying is more the goal. The voltage controlled variable gain stage / frequency ratio is the control labeled “Steps.”

My point is that typically in fractal algorithms, the feedback is occurring across multiple frames – whereas in the analogue patch, we cannot peek one frame into the past. The only value accessible to us is usually whatever the last couple pixels were. So we can create very fast subpixel feedback, and this may lack the spatial properties of a fractal generator.

I mean, isn’t that what the wavefolder is doing in the first place? This is just adding a couple of extra bells and whistles… a variable frequency ratio and a variable gain stage.

This wave shaper design is a series process through precision full-wave rectifier circuits, and doesn’t involve feedback. Variable frequency control is created by modulating the amplitude of the input signal (which is what the Steps CV does.)

Here’s the top level schematic, which is pretty readable:

6 Likes

Here is a spreedsheet model, I think you should be able to clone it and play with the values.

Would something like a shift register frame buffet be possible, where the register’s values can be variable? For example, you could envision this as a four frame buffer sample at a minimum value and then an every-120-frame buffer (or something) as a max value? Basically a shift register with control of the delay length; in the audio world a combination of E102 and Verbos Random Sampling. I realize this is easy to suggest and likely very hard to implement, but I think the possible results of a module like this would be really cool.

40-120 samples is possible, we do I think a 64-bit triple shift register implementation in Fortress like this for example – but if we’re talking a frame delay, that’s 349,920 samples for 1 frame of video rate delay, presuming we are wanting to access an image instead of just a single value. So FPGA/DDR3 driven systems like TBC2 and Memory Palace are much more suited for this kind of process.

Analog shift registers is definitely an area it would be cool to do more development! Russel Kramer’s Wave Comber has some neat tricks in this vein.

3 Likes

On Matte, the middle column is an average of the other two (50/50 mix.) So if Color #1 is BRIGHT RED, and Color #2 is BRIGHT GREEN, the middle column will be DARK YELLOW.

(Ansi chart for easy reference):

2 Likes

Oh, OK… it’s a rectifier and not a feedback circuit. Got it. So the whole concept of iterations doesn’t apply here. One would need to build that feedback loop via patching through external module(s).

But I’m still confused about some stuff. On the one hand you’re saying I can do this with an external patch, but on the other hand you’re saying I can’t do this because there’s no frame buffer. I still don’t see why a frame buffer is needed. There isn’t a frame buffer in the simple OSL or Bifrost implementations I’ve built. There isn’t a frame buffer in straight-up optical feedback, and that’s as fractal as can be.

And it really looks like the Stair/case Steps parameter is just changing the base frequency. If it was changing the iteration frequency, with a basic ramp input we would see that each successive “band” of luminance gets narrower. That’s not what I’m seeing in the demo video for Staircase.

1 Like
  1. You can do what’s being described in your process steps inside the patch by introducing feedback with another module – you can also apply recursive gain processing by cross modulating the Steps CV input with the output taps.
  2. The temporal constant / memory involved is the key factor in what this output looks like. Does it look like fractal shapes on the screen? With a temporal delay of 1 frame, then yes – that’s how camera and frame buffer feedback creates fractal patterns. With a temporal delay of near nil (analog signal path), I don’t know what to expect – is it “smeared opamp grit” or something more complex? it would probably not produce any kind of 2D shape variations or pattern symmetry for example.

But maybe I don’t understand the rendering part of the algorithm. I am thinking of this in terms of processing a voltage whereas I imagine the fractal algorithm would be processing a vertex (a color value with an XY location attached). For example, the fractal algorithm’s result would iterate thru successive frames in parallel with all other pixels, producing one frame per iteration. So I am presuming in order to get recursive vertex values, we need at least one frame of memory. Unless, of course, the whole image is just 1X1 pixel.

Maybe an image of the kind of output you’d like to produce would help resolve the question.

1 Like

You could always just patch outputs back to inputs, but this works better with a gain control, so it could be done with the onboard attenuverter inputs or an external module like a mixer, keyer or proc.

2 Likes

You could get what you’re describing by patching the input ramp to both Steps CV and the primary Luma input at the same time, and playing with the CV attenuator until the sweep looks like what you want.

2 Likes