Liches Brew - somewhat random signal generator

Hello everyone. I’ve just wrapped up testing on this patch I’ve been working on. It’s a noise/chaotic signal/random source patch based on a handful of patches that I often put together with my modular system. I wanted to consolidate them all into a Lich patch so I don’t have to dedicate half my system to creating these sounds, and I’m very happy with how it has turned out!

Here’s a short video manual and a written overview:

Liches Brew is based on a pair of oscillators being modulated by malformed sample and hold circuits. I’m not sure exactly what is wrong with the S&H circuits, but I liked the way these sounded better than when they functioned properly so I kept them. It sounds more like track and hold to me, but I haven’t confirmed if that’s actually what they’re doing.

Additionally, Oscillator 1 applies a fixed amount of frequency modulation to Oscillator 2. All sounds and signals available at the outputs are derived from this core.

Controls:

Knob A controls the master sample rate of the system. This control is asymmetrical, with one of the halves operating at a fraction of the other’s sample rate. At high sample rates, a wide variety of multicolored noise and tones can be produced. At lower sample rates, pseudo-random sequences, radio signal sounds, and chirpy server noises will emerge.

Knob B controls the spread between each side’s oscillator. At its fully CCW position, oscillator 1 will be at its highest frequency while oscillator 2 will be at its lowest. As the knob is moved clockwise, the oscillators move in opposite directions, passing each other in the middle. At its fully CW position, oscillator 1 will be at its lowest frequency, and 2 at its highest.

Knobs C and D control the amount of modulation affecting oscillators 1 and 2 respectively.

Button 1 switches between modes at the Left Output. Both buttons and Gate inputs act like trigger inputs rather than gates.

Button 2 switches between modes at the Right Output.

Left Output passes two versions of the final, wide-spectrum signal. The first is a ring modulated result of the two halves, and the second is their sum with a subtle low pass filter applied.

Right Output passes more intermittent, low frequency signals derived from the sum output. The first is bandpass filtered at 1200 Hz and can range from vinyl-like crackle, to geiger counter clicks, to tonal bursts of sound. The second is lowpass filtered at 100 Hz, and can sound like thunder or or the rumble of an avalanche. This output is especially useful as a modulation source.

CV Out 1 passes a unipolar stepped random signal derived from the first half of the noise circuit. The clock rate of this is influenced by the master sample rate, but is not proportional to the main sample and hold circuits. The clock rate ranges in time from around 200 milliseconds to 2 seconds.

CV Out 2 passes a unipolar smooth random signal derived from the second half of the noise circuit, and shares a clock with the stepped random generator. The slew rate is proportional to the clock rate, so this signal should wander continuously, rarely hanging at any voltage.

Gate Output passes the clock that controls the smooth and stepped random output signals.

The Left Input will offset oscillator 1’s sample rate.

The Right Input will offset oscillator 1’s frequency.

Hope you enjoy playing with it!

I’m super new to Pure Data too, so I’d love any advice on things I could have done better/easier/more cleanly here.

I’d especially appreciate any advice on how to create a way to use an external clock at the Right Input jack that will control the smooth and stepped random section without permanently disabling the internal clock. I’ve been able to make it so that I can override the internal clock with an external one, but I can’t figure out how to make the internal clock take over again after the external clock is removed.

Thanks for taking your time to make a video and write a detailed description!

I would say you should consider that if external clock doesn’t receive high signal within some reasonable time (i.e. 2 seconds), the patch code should consider that it’s not present and fall back to using the internal clock source. OWL runs at 48kHz SR, so if you increment a counter for every audio sample, 2 seconds will pass once that counter reaches 96000.

1 Like