annotate tests/xttest_util.cpp @ 285:89fe52066db1 tip master

MSCV missing ssize_t fix
author Jamie Bullock <jamie@jamiebullock.com>
date Tue, 16 Jul 2019 18:29:20 +0100
parents 446f6d3dc809
children
rev   line source
jamie@264 1
jamie@264 2
jamie@264 3 #include "xttest_util.hpp"
jamie@267 4 #include "xttest_tables.hpp"
jamie@264 5
jamie@264 6 #include <random>
jamie@264 7
jamie@264 8 #include <math.h>
jamie@264 9 #include <stdio.h>
jamie@264 10
jamie@264 11
jamie@264 12 #define XTTEST_2PI 6.28318530717958647693
jamie@264 13
jamie@264 14 void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude)
jamie@264 15 {
jamie@264 16 int samples_per_period = samplerate / frequency;
jamie@264 17
jamie@267 18 for (uint32_t i = 0; i < tablesize; ++i)
jamie@264 19 {
jamie@264 20 int phase = i % samples_per_period;
jamie@264 21 table[i] = sin((phase / (double)samples_per_period) * XTTEST_2PI) * amplitude;
jamie@264 22 }
jamie@264 23 }
jamie@264 24
jamie@269 25 void xttest_gen_sawtooth(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude)
jamie@269 26 {
jamie@269 27 int samples_per_period = samplerate / frequency;
jamie@269 28
jamie@269 29 for (uint32_t i = 0; i < tablesize; ++i)
jamie@269 30 {
jamie@269 31 int phase = i % samples_per_period;
jamie@269 32 table[i] = ((phase / (double)samples_per_period) * 2.0 - 1.0) * amplitude;
jamie@269 33 }
jamie@269 34 }
jamie@269 35
jamie@264 36 void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude)
jamie@264 37 {
jamie@267 38 for (uint32_t i = 0; i < tablesize; ++i)
jamie@264 39 {
jamie@267 40 table[i] = xttest_noise1024[i] * amplitude;
jamie@264 41 }
jamie@264 42 }
jamie@264 43
jamie@267 44 uint16_t xttest_ftom(double frequency)
jamie@267 45 {
jamie@267 46 return (int)roundf(6900.0 + 1200.0 * log2(frequency / 440.0));
jamie@267 47 }
jamie@267 48
jamie@267 49 void xttest_add(double *table1, double *table2, uint32_t tablesize)
jamie@267 50 {
jamie@267 51 for (uint32_t i = 0; i < tablesize; ++i)
jamie@267 52 {
jamie@267 53 table1[i] += table2[i];
jamie@267 54 }
jamie@267 55 }
jamie@267 56
jamie@267 57 void xttest_mul(double *table, uint32_t tablesize, double constant)
jamie@267 58 {
jamie@267 59 for (uint32_t i = 0; i < tablesize; ++i)
jamie@267 60 {
jamie@267 61 table[i] *= constant;
jamie@267 62 }
jamie@267 63 }
jamie@267 64
jamie@267 65