| @@ -6,25 +6,25 @@ http://www.firstpr.com.au/dsp/pink-noise/ | |||||
| */ | */ | ||||
| template <int QUALITY = 8> | template <int QUALITY = 8> | ||||
| struct PinkNoiseGenerator { | struct PinkNoiseGenerator { | ||||
| int frame = -1; | |||||
| float values[QUALITY] = {}; | |||||
| float process() { | |||||
| int lastFrame = frame; | |||||
| frame++; | |||||
| if (frame >= (1 << QUALITY)) | |||||
| frame = 0; | |||||
| int diff = lastFrame ^ frame; | |||||
| float sum = 0.f; | |||||
| for (int i = 0; i < QUALITY; i++) { | |||||
| if (diff & (1 << i)) { | |||||
| values[i] = random::uniform() - 0.5f; | |||||
| } | |||||
| sum += values[i]; | |||||
| } | |||||
| return sum; | |||||
| } | |||||
| int frame = -1; | |||||
| float values[QUALITY] = {}; | |||||
| float process() { | |||||
| int lastFrame = frame; | |||||
| frame++; | |||||
| if (frame >= (1 << QUALITY)) | |||||
| frame = 0; | |||||
| int diff = lastFrame ^ frame; | |||||
| float sum = 0.f; | |||||
| for (int i = 0; i < QUALITY; i++) { | |||||
| if (diff & (1 << i)) { | |||||
| values[i] = random::uniform() - 0.5f; | |||||
| } | |||||
| sum += values[i]; | |||||
| } | |||||
| return sum; | |||||
| } | |||||
| }; | }; | ||||