[sdiy] converting white noise to pink noise

Eric Brombaugh ebrombaugh at earthlink.net
Wed Mar 5 00:38:02 CET 2008


Andre Majorel wrote:
> But note that long period does not imply good sound. For example,
> http://www.maxim-ic.com/appnotes.cfm?appnote_number=1743&CMP=WP-9
> is a 32-bit LFSR with a 2**32 period that does not sound very
> white.

If it doesn't sound white, what does it sound like? The polynomial they 
used gives a uniform distribution so it ought to work as well as any 
other. I've been using LFSRs for years now and haven't come across any 
information on some polynomials providing better quality than others 
(aside from longer ones being more desirable in some situations).

I don't know anything about the MAX765x processor discussed in that app 
note, so I've got no idea how fast that noise generator was running. 
Maybe the one you heard was running too slow. One of the problems with 
using straight binary LFSR outputs for audio noise is that there is a 
sin(x)/x rolloff due to the zero-order hold nature of the shift register 
output. This gives roughly 3dB loss at half the LFSR clock rate and deep 
notches at multiplies of the clock rate. To get around that you need to 
have a fairly high clock rate so that losses due to the sinc response 
are negligible within normal human hearing range.

> y = yprev + rand has more LF energy than y = rand (i.e. white
> noise). But I don't think that's pink distribution, otherwise
> people would use that !

That's an interesting linear system you've defined there - notice that 
the impulse response is an infinite hold (it converts an impulse into a 
step). That aside, it is a second-order system with a lowpass response 
falling off at roughly 6dB/octave starting from DC while true pink noise 
is 3dB/octave.

Eric



More information about the Synth-diy mailing list