|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
-
-
- #ifndef AudioTuner_h_
- #define AudioTuner_h_
-
- #include "AudioStream.h"
-
- #define AUDIO_BLOCKS 24
-
- class AudioTuner : public AudioStream {
- public:
-
-
- AudioTuner( void ) : AudioStream( 1, inputQueueArray ), enabled( false ), new_output(false) {
-
- }
-
-
-
- void initialize( float threshold );
-
-
-
- void threshold( float p );
-
-
-
- bool available( void );
-
-
- float read( void );
-
-
-
- float probability( void );
-
-
-
- virtual void update( void );
-
- private:
-
-
- uint16_t estimate( int64_t *yin, int64_t *rs, uint16_t head, uint16_t tau );
-
-
-
- void process( void );
-
-
-
- uint64_t running_sum;
- uint16_t tau_global;
- int64_t rs_buffer[5], yin_buffer[5];
- int16_t AudioBuffer[AUDIO_BLOCKS*128] __attribute__ ( ( aligned ( 4 ) ) );
- uint8_t yin_idx, state;
- float periodicity, yin_threshold, cpu_usage_max, data;
- bool enabled, next_buffer, first_run;
- volatile bool new_output, process_buffer;
- audio_block_t *blocklist1[AUDIO_BLOCKS];
- audio_block_t *blocklist2[AUDIO_BLOCKS];
- audio_block_t *inputQueueArray[1];
- };
- #endif
|