|
PortAudio 2.0
|
Generate Pink Noise using Gardner method. More...
Data Structures | |
| struct | PinkNoise |
| struct | paTestData |
Macros | |
| #define | PINK_MAX_RANDOM_ROWS (30) |
| #define | PINK_RANDOM_BITS (24) |
| #define | PINK_RANDOM_SHIFT ((sizeof(long)*8)-PINK_RANDOM_BITS) |
| #define | PINK_MEASURE |
| #define | PINK_TEST |
Functions | |
| void | InitializePinkNoise (PinkNoise *pink, int numRows) |
| float | GeneratePinkNoise (PinkNoise *pink) |
| int | main (void) |
Variables | |
| float | pinkMax = -999.0 |
| float | pinkMin = 999.0 |
Generate Pink Noise using Gardner method.
Optimization suggested by James McCartney uses a tree to select which random value to replace.
x x x x x x x x x x x x x x x x
x x x x x x x x
x x x x
x x
x
Tree is generated by counting trailing zeros in an increasing index. When the index is zero, no random number is selected.
| #define PINK_MAX_RANDOM_ROWS (30) |
| #define PINK_MEASURE |
| #define PINK_RANDOM_BITS (24) |
Referenced by InitializePinkNoise().
| #define PINK_RANDOM_SHIFT ((sizeof(long)*8)-PINK_RANDOM_BITS) |
Referenced by GeneratePinkNoise().
| #define PINK_TEST |
| float GeneratePinkNoise | ( | PinkNoise * | pink | ) |
References PinkNoise::pink_Index, PinkNoise::pink_IndexMask, PINK_RANDOM_SHIFT, PinkNoise::pink_Rows, PinkNoise::pink_RunningSum, PinkNoise::pink_Scalar, pinkMax, and pinkMin.
Referenced by main().
| void InitializePinkNoise | ( | PinkNoise * | pink, |
| int | numRows ) |
References PinkNoise::pink_Index, PinkNoise::pink_IndexMask, PINK_RANDOM_BITS, PinkNoise::pink_Rows, PinkNoise::pink_RunningSum, and PinkNoise::pink_Scalar.
Referenced by main().
| int main | ( | void | ) |
References PaStreamParameters::channelCount, PaDeviceInfo::defaultLowOutputLatency, PaStreamParameters::device, GeneratePinkNoise(), PaStreamParameters::hostApiSpecificStreamInfo, InitializePinkNoise(), paTestData::leftPink, Pa_CloseStream(), Pa_GetDefaultOutputDevice(), Pa_GetDeviceInfo(), Pa_GetErrorText(), Pa_Initialize(), Pa_IsStreamActive(), Pa_OpenStream(), Pa_Sleep(), Pa_StartStream(), Pa_Terminate(), paClipOff, paFloat32, paNoDevice, paNoError, pinkMax, pinkMin, paTestData::rightPink, PaStreamParameters::sampleFormat, paTestData::sampsToGo, and PaStreamParameters::suggestedLatency.
| float pinkMax = -999.0 |
Referenced by GeneratePinkNoise(), and main().
| float pinkMin = 999.0 |
Referenced by GeneratePinkNoise(), and main().