From 356eeb7a319b6ee865f5001d1e3d8fab2f57e3c0 Mon Sep 17 00:00:00 2001 From: Jamie Bullock Date: Mon, 10 Nov 2014 20:29:19 +0000 Subject: Initial unit testing setup with an example test --- tests/xttest_util.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/xttest_util.cpp (limited to 'tests/xttest_util.cpp') diff --git a/tests/xttest_util.cpp b/tests/xttest_util.cpp new file mode 100644 index 0000000..ad223fd --- /dev/null +++ b/tests/xttest_util.cpp @@ -0,0 +1,37 @@ + + +#include "xttest_util.hpp" + +#include + +#include +#include + + +#define XTTEST_2PI 6.28318530717958647693 + +void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude) +{ + int samples_per_period = samplerate / frequency; + + for (int i = 0; i < tablesize; ++i) + { + int phase = i % samples_per_period; + table[i] = sin((phase / (double)samples_per_period) * XTTEST_2PI) * amplitude; + } +} + +void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude) +{ + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_real_distribution dist(-amplitude, amplitude); + + for (int i = 0; i < tablesize; ++i) + { + table[i] = dist(gen); + printf("%f\n", table[i]); + } + +} + -- cgit v1.2.3 From acb301168deafed61ff4c59910cc989d67e25f40 Mon Sep 17 00:00:00 2001 From: Jamie Bullock Date: Tue, 11 Nov 2014 16:15:28 +0000 Subject: Add more F0 tests --- tests/xttest_util.cpp | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'tests/xttest_util.cpp') diff --git a/tests/xttest_util.cpp b/tests/xttest_util.cpp index ad223fd..47fbf8a 100644 --- a/tests/xttest_util.cpp +++ b/tests/xttest_util.cpp @@ -1,6 +1,7 @@ #include "xttest_util.hpp" +#include "xttest_tables.hpp" #include @@ -14,7 +15,7 @@ void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, doubl { int samples_per_period = samplerate / frequency; - for (int i = 0; i < tablesize; ++i) + for (uint32_t i = 0; i < tablesize; ++i) { int phase = i % samples_per_period; table[i] = sin((phase / (double)samples_per_period) * XTTEST_2PI) * amplitude; @@ -23,15 +24,32 @@ void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, doubl void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude) { - std::random_device rd; - std::mt19937 gen(rd()); - std::uniform_real_distribution dist(-amplitude, amplitude); - - for (int i = 0; i < tablesize; ++i) + for (uint32_t i = 0; i < tablesize; ++i) { - table[i] = dist(gen); - printf("%f\n", table[i]); + table[i] = xttest_noise1024[i] * amplitude; } +} + + +uint16_t xttest_ftom(double frequency) +{ + return (int)roundf(6900.0 + 1200.0 * log2(frequency / 440.0)); +} + +void xttest_add(double *table1, double *table2, uint32_t tablesize) +{ + for (uint32_t i = 0; i < tablesize; ++i) + { + table1[i] += table2[i]; + } +} +void xttest_mul(double *table, uint32_t tablesize, double constant) +{ + for (uint32_t i = 0; i < tablesize; ++i) + { + table[i] *= constant; + } } + -- cgit v1.2.3 From b3b6e6fd6b39e7f2bbbd8e2209302590d6d155eb Mon Sep 17 00:00:00 2001 From: Jamie Bullock Date: Tue, 11 Nov 2014 17:30:17 +0000 Subject: Add sawtooth tests --- tests/xttest_util.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'tests/xttest_util.cpp') diff --git a/tests/xttest_util.cpp b/tests/xttest_util.cpp index 47fbf8a..c10ff53 100644 --- a/tests/xttest_util.cpp +++ b/tests/xttest_util.cpp @@ -22,6 +22,17 @@ void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, doubl } } +void xttest_gen_sawtooth(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude) +{ + int samples_per_period = samplerate / frequency; + + for (uint32_t i = 0; i < tablesize; ++i) + { + int phase = i % samples_per_period; + table[i] = ((phase / (double)samples_per_period) * 2.0 - 1.0) * amplitude; + } +} + void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude) { for (uint32_t i = 0; i < tablesize; ++i) @@ -30,7 +41,6 @@ void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude) } } - uint16_t xttest_ftom(double frequency) { return (int)roundf(6900.0 + 1200.0 * log2(frequency / 440.0)); -- cgit v1.2.3