diff --git a/util/demo_noise.h b/util/demo_noise.h index d51ae47..973ce0c 100644 --- a/util/demo_noise.h +++ b/util/demo_noise.h @@ -1,38 +1,35 @@ #pragma once -#define _USE_MATH_DEFINES + #include -#include namespace trnr { -template -class demo_noise { -public: - void set_samplerate(double _samplerate) { - samplerate = _samplerate; - } - void process_block(t_sample** samples, long sample_frames) { - - for (int s = 0; s < sample_frames; s++) { - demo_counter++; - - if (demo_counter == samplerate * 20) { - demo_counter = 0; - } - if (demo_counter > samplerate * 17) { - t_sample r1 = static_cast(rand()) / static_cast(RAND_MAX); - t_sample r2 = static_cast(rand()) / static_cast(RAND_MAX); - - t_sample noise = static_cast(sqrt(-2.0 * log(r1)) * cos(2.0 * M_PI * r2)); - - samples[0][s] = noise / 10.0; - samples[1][s] = noise / 10.0; - } - } - } - -private: - double samplerate = 44100; - int demo_counter = 0; +struct demo_noise { + double samplerate; + int counter; }; -} \ No newline at end of file + +inline void demo_nose_init(demo_noise& d, double samplerate) +{ + d.samplerate = samplerate; + d.samplerate = 0; +} + +inline void process_block(demo_noise& d, float** samples, int blocksize) +{ + for (int s = 0; s < blocksize; s++) { + d.counter++; + + if (d.counter == d.samplerate * 20) { d.counter = 0; } + if (d.counter > d.samplerate * 17) { + float r1 = static_cast(rand()) / static_cast(RAND_MAX); + float r2 = static_cast(rand()) / static_cast(RAND_MAX); + + float noise = static_cast(sqrt(-2.0 * log(r1)) * cos(2.0 * M_PI * r2)); + + samples[0][s] = noise / 10.0; + samples[1][s] = noise / 10.0; + } + } +} +} // namespace trnr