#ifndef _SEQUENCER_TIMER_H_ #define _SEQUENCER_TIMER_H_ class AudioSequencerTimer : public AudioStream { public: AudioSequencerTimer(void): AudioStream(1, inputQueueArray) { tick = 0; bpm = 60; sequencer_step_function = NULL; } virtual uint32_t get_tick(void); virtual void set_bpm(uint8_t b); virtual void step_function(void(*func)()); virtual void update(void); private: audio_block_t *inputQueueArray[1]; uint8_t bpm; void (*sequencer_step_function)(); volatile uint32_t tick; const float beat = AUDIO_SAMPLE_RATE_EXACT / float(AUDIO_BLOCK_SAMPLES) / 60.0; }; #endif