jamie@264: jamie@264: jamie@264: #include "xttest_util.hpp" jamie@267: #include "xttest_tables.hpp" jamie@264: jamie@264: #include jamie@264: jamie@264: #include jamie@264: #include jamie@264: jamie@264: jamie@264: #define XTTEST_2PI 6.28318530717958647693 jamie@264: jamie@264: void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude) jamie@264: { jamie@264: int samples_per_period = samplerate / frequency; jamie@264: jamie@267: for (uint32_t i = 0; i < tablesize; ++i) jamie@264: { jamie@264: int phase = i % samples_per_period; jamie@264: table[i] = sin((phase / (double)samples_per_period) * XTTEST_2PI) * amplitude; jamie@264: } jamie@264: } jamie@264: jamie@269: void xttest_gen_sawtooth(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude) jamie@269: { jamie@269: int samples_per_period = samplerate / frequency; jamie@269: jamie@269: for (uint32_t i = 0; i < tablesize; ++i) jamie@269: { jamie@269: int phase = i % samples_per_period; jamie@269: table[i] = ((phase / (double)samples_per_period) * 2.0 - 1.0) * amplitude; jamie@269: } jamie@269: } jamie@269: jamie@264: void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude) jamie@264: { jamie@267: for (uint32_t i = 0; i < tablesize; ++i) jamie@264: { jamie@267: table[i] = xttest_noise1024[i] * amplitude; jamie@264: } jamie@264: } jamie@264: jamie@267: uint16_t xttest_ftom(double frequency) jamie@267: { jamie@267: return (int)roundf(6900.0 + 1200.0 * log2(frequency / 440.0)); jamie@267: } jamie@267: jamie@267: void xttest_add(double *table1, double *table2, uint32_t tablesize) jamie@267: { jamie@267: for (uint32_t i = 0; i < tablesize; ++i) jamie@267: { jamie@267: table1[i] += table2[i]; jamie@267: } jamie@267: } jamie@267: jamie@267: void xttest_mul(double *table, uint32_t tablesize, double constant) jamie@267: { jamie@267: for (uint32_t i = 0; i < tablesize; ++i) jamie@267: { jamie@267: table[i] *= constant; jamie@267: } jamie@267: } jamie@267: jamie@267: