diff --git a/src/generators.cpp b/src/generators.cpp index efbd2c7..1af4e53 100644 --- a/src/generators.cpp +++ b/src/generators.cpp @@ -1,4 +1,6 @@ #include +#include +#include "common.h" #include "generators.h" #include "wave.h" @@ -84,3 +86,18 @@ sample_table_t gen_isaw() return isaw_vals; } + +sample_table_t gen_noise() +{ + // setup RNG for floats in [-1, 1] + std::default_random_engine generator; + std::uniform_real_distribution distribution(-1, 1); + sample_table_t noise_vals = {}; + // Set first and last value to 0 + noise_vals[0] = 0; + noise_vals[DEFAULT_N_SAMPLES - 1] = 0; + for (uint16_t i = 1; i < DEFAULT_N_SAMPLES - 1; i++) { + noise_vals[i] = distribution(generator); + } + return noise_vals; +} diff --git a/src/generators.h b/src/generators.h index c48cb1b..188be9e 100644 --- a/src/generators.h +++ b/src/generators.h @@ -31,4 +31,9 @@ sample_table_t gen_isaw(); */ sample_table_t gen_tri(); +/*! Generate noise wave data + @return a table of values + */ +sample_table_t gen_noise(); + #endif // GENERATORS_H_