Perlin noise patch and questions

Just published a pretty straight-forward patch I’m calling a Perlin Noise Field that processes incoming audio by treating it like XY lookups for 2d perlin noise (similar to how the noise function of Knoscillator works) and then lets you blend the noise with the original signal. You can get some pretty cool complex oscillator sounding stuff by feeding it two LFOs and cranking up the noise frequency, but it also can work as a kind of wavefolder on simple waveforms. I’m curious if people find it actually useable or if I maybe made the noise frequency range too large?

A weird thing I noticed while working on this patch is that the Lich appears to invert incoming audio. Like, if I patch a cycling envelope from Rampage to In L and then monitor Out L on a scope, I see it cycling between 0 and -10V, even if I comment out all of my code that modifies the output. Taking Rampage directly to my scope gives me 0 to +10V as expected. Is this intentional?

Also @antisvin I’m curious to know if the way I’ve implemented this patch with MultiSignalProcessor feels right to you.

1 Like

Hi Damien,

The code looks very nice and noise processor is reusable. That’s great and I have an idea that I could try using it for.

I’ve noticed this spot:

    float* fmData = fm.getSize() > 0 ? fm.getData() : nullptr;

Usually I deal with optional FM like this

So a single template function is used and compiler can generate the desired version and eliminate conditional check in either of them.

Regarding output sign, we’ll have to wait for @mars to comment about this invertion, but I assume that it gets done in hardware. It would make sense to let firmware invert it on devices with such behavior to restore correct sign, especially if DC coupled output is used.

Ah, yes, cool template trick. I will probably use that when I get a chance.

awesome patches @damikyu btw

1 Like