| @@ -23,6 +23,7 @@ | |||
| #ifndef AudioTuner_h_ | |||
| #define AudioTuner_h_ | |||
| #include <core_pins.h> | |||
| #include "AudioStream.h" | |||
| #include "arm_math.h" | |||
| /*********************************************************************** | |||
| @@ -50,76 +51,75 @@ public: | |||
| * | |||
| * @return none | |||
| */ | |||
| AudioTuner( void ) : AudioStream( 1, inputQueueArray ), | |||
| data( 0.0 ), | |||
| coeff_p( NULL ), | |||
| enabled( false ), | |||
| new_output( false ), | |||
| coeff_size( 0 ) | |||
| { | |||
| } | |||
| /** | |||
| * initialize variables and start | |||
| * | |||
| * @param threshold Allowed uncertainty | |||
| * @param coeff coefficients for fir filter | |||
| * @param taps number of coefficients, even | |||
| * @param factor must be power of 2 | |||
| */ | |||
| void begin( float threshold, int16_t *coeff, uint8_t taps, uint8_t factor ); | |||
| /** | |||
| * sets threshold value | |||
| * | |||
| * @param thresh | |||
| * @return none | |||
| */ | |||
| void threshold( float p ); | |||
| /** | |||
| * triggers true when valid frequency is found | |||
| * | |||
| * @return flag to indicate valid frequency is found | |||
| */ | |||
| bool available( void ); | |||
| /** | |||
| * get frequency | |||
| * | |||
| * @return frequency in hertz | |||
| */ | |||
| float read( void ); | |||
| /** | |||
| * get predicitity | |||
| * | |||
| * @return probability of frequency found | |||
| */ | |||
| float probability( void ); | |||
| /** | |||
| * fir decimation coefficents | |||
| * | |||
| * @return none | |||
| */ | |||
| void coeff( int16_t *p, int n ); | |||
| /** | |||
| * disable yin | |||
| * | |||
| * @return none | |||
| */ | |||
| void disable( void ); | |||
| /** | |||
| * Audio Library calls this update function ~2.9ms | |||
| * | |||
| * @return none | |||
| */ | |||
| virtual void update( void ); | |||
| AudioTuner(void) | |||
| : AudioStream(1, inputQueueArray) | |||
| , data(0.0) | |||
| , coeff_p(NULL) | |||
| , coeff_size(0) | |||
| , new_output(false) | |||
| , enabled(false) | |||
| {} | |||
| /** | |||
| * initialize variables and start | |||
| * | |||
| * @param threshold Allowed uncertainty | |||
| * @param coeff coefficients for fir filter | |||
| * @param taps number of coefficients, even | |||
| * @param factor must be power of 2 | |||
| */ | |||
| void begin(float threshold, int16_t *coeff, uint8_t taps, uint8_t factor); | |||
| /** | |||
| * sets threshold value | |||
| * | |||
| * @param thresh | |||
| * @return none | |||
| */ | |||
| void threshold(float p); | |||
| /** | |||
| * triggers true when valid frequency is found | |||
| * | |||
| * @return flag to indicate valid frequency is found | |||
| */ | |||
| bool available(void); | |||
| /** | |||
| * get frequency | |||
| * | |||
| * @return frequency in hertz | |||
| */ | |||
| float read(void); | |||
| /** | |||
| * get predicitity | |||
| * | |||
| * @return probability of frequency found | |||
| */ | |||
| float probability(void); | |||
| /** | |||
| * fir decimation coefficents | |||
| * | |||
| * @return none | |||
| */ | |||
| void coeff(int16_t *p, int n); | |||
| /** | |||
| * disable yin | |||
| * | |||
| * @return none | |||
| */ | |||
| void disable(void); | |||
| /** | |||
| * Audio Library calls this update function ~2.9ms | |||
| * | |||
| * @return none | |||
| */ | |||
| virtual void update(void); | |||
| private: | |||
| /** | |||
| * check the sampled data for fundamental frequency | |||
| @@ -132,14 +132,14 @@ private: | |||
| * @return tau | |||
| */ | |||
| uint16_t estimate( uint64_t *yin, uint64_t *rs, uint16_t head, uint16_t tau ); | |||
| /** | |||
| * process audio data | |||
| * | |||
| * @return none | |||
| */ | |||
| void process( int16_t *p ); | |||
| /** | |||
| * Variables | |||
| */ | |||