You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MicroDexed/sequencer_timer.h

28 lines
649 B

#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