|Fast Whitenoise Generator|
Type : Whitenoise
References : Posted by gerd[DOT]feldkirch[AT]web[DOT]de
This is Whitenoise... :o)
float g_fScale = 2.0f / 0xffffffff;
int g_x1 = 0x67452301;
int g_x2 = 0xefcdab89;
float* _fpDstBuffer, // Pointer to buffer
unsigned int _uiBufferSize, // Size of buffer
float _fLevel ) // Noiselevel (0.0 ... 1.0)
_fLevel *= g_fScale;
while( _uiBufferSize-- )
g_x1 ^= g_x2;
*_fpDstBuffer++ = g_x2 * _fLevel;
g_x2 += g_x1;
Added on : 18/07/06 by scoofy[ AT ]inf[ DOT ]elte[ DOT ]hu
Works well! Kinda fast! The spectrum looks completely flat in an FFT analyzer.
Added on : 29/11/06 by gerd[ DOT ]feldkirch[ AT ]web[ DOT ]de
As I said! :-)
Added on : 29/11/06 by nobody[ AT ]nowhere[ DOT ]com
I'm now waiting for pink and brown. :-)
Added on : 30/11/06 by scoofy[ AT ]inf[ DOT ]elte[ DOT ]hu
To get pink noise, you can apply a 3dB/Oct filter, for example the pink noise filter in the Filters section.
To get brown noise, apply an one pole LP filter to get a 6dB/oct slope.
Added on : 30/11/06 by nobody[ AT ]nowhere[ DOT ]com
Yeah, I know how to do it with a filter. I was just looking to see if this guy had anything else clever up his sleeve.
I'm currently using this great stuff:
Added on : 15/12/06 by tremblap[ AT ]gmail[ DOT ]com
I compiled it, but I get some grainyness that a unisgned long LC algorithm does not give me... am I the only one?
Added on : 17/12/06 by scoofy[ AT ]inf[ DOT ]elte[ DOT ]hu
Did you do everything right? It works here.
Added on : 19/12/06 by gerd[ DOT ]feldkirch[ AT ]web[ DOT ]de
I've noticed that my code is similar to a so called "feedback shift register" as used in the Commodore C64 Soundchip 6581 called SID for noise generation.
Added on : 12/03/07 by Arif[ AT ]mail[ DOT ]---
SID noise! cool.
|Add your own comment|
Comments are displayed in fixed width, no HTML code allowed!