Pink Noise Generators

This is an interesting paper about pink noise, and the best/most computationally cheap ways to generate pink noise. It’s an interesting topic – for some values of interesting – and I’m only

I am not a plugin developer, but I am a programmer, and this suggests some good approaches to generating pink noise. There are a few modules that have a pink noise output, like Nohmad Noise & Charred Desert Noise. But I don’t know if they’re as good (as Pink) as some of the ones suggested in this article.

1 Like


Nohmad Noise uses the -3dB/oct filtering method described in the text, and uses exactly the coefficients in the pk3 code listed there. We have used this also in the Branes module in the Geodesics collection. Thanks for the reference! :slight_smile:

You want to know what kind of nerd I am? I want a standalone fixed 3dB/Octave lowpass filter, because that’s a good curve to treat a lot of sounds with, particularly noisy things like distortion modules.

Paul Kellet is a DSP master. I used to work with him at one point.

Squinky Labs “Colors” makes colored noise doing an inverse FFT of the spectrum of ideal colored noise. Kind of crazy, but pretty novel afaik.

1 Like

I would think using FFT for filtering would be more expensive than the simple polynomial.

I really don’t know enough about DSP at I’m old enough to know what I’m comfortable not knowing.

But over the years there has been a TON of research into audio DSP, and there are probably dozens of funky old algorithms that would be cool in a VCVRack module…

I suspect you are right. But it you check out Colors I think you will find the CPU usage is very, very low.

Cool article! The inexactness of the “fits” could give nice color to the audio. Maybe a more exact method could be to take the fractional derivative D^{-1/2} x[n] of the white noise signal, where

D^\alpha x[0] = \frac{1}{\Delta X^\alpha} \sum_{n=0}^\infty \frac{(-1)^n \Gamma(\alpha+1)}{n! \Gamma(\alpha-n+1)} x[-n]

That’s just a convolution/FIR, so you can either truncate the sum to N or approximate it with IIRs so get a “better” polynomial filter than the ones in that article.