|
|
@ -40,12 +40,9 @@ namespace Heck { |
|
|
|
Sequencer sequencer{}; |
|
|
|
|
|
|
|
// function prototypes
|
|
|
|
void AudioCallback( |
|
|
|
ld::AudioHandle::InterleavingInputBuffer in, |
|
|
|
ld::AudioHandle::InterleavingOutputBuffer out, |
|
|
|
size_t size); |
|
|
|
void audio_callback(ld::AudioHandle::InputBuffer in, ld::AudioHandle::OutputBuffer out, size_t size); |
|
|
|
|
|
|
|
void midi_realtime_handler(const ld::MidiEvent& msg); |
|
|
|
void midi_realtime_handler(const ld::MidiEvent &msg); |
|
|
|
|
|
|
|
|
|
|
|
void init_tracks() |
|
|
@ -82,7 +79,7 @@ namespace Heck { |
|
|
|
midi.Listen(); |
|
|
|
|
|
|
|
hw.PrintLine("Starting Audio"); |
|
|
|
hw.StartAudio(AudioCallback); |
|
|
|
hw.StartAudio(audio_callback); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -90,10 +87,8 @@ namespace Heck { |
|
|
|
// RUN
|
|
|
|
// =============================================================================================
|
|
|
|
|
|
|
|
void AudioCallback( |
|
|
|
ld::AudioHandle::InterleavingInputBuffer in, |
|
|
|
ld::AudioHandle::InterleavingOutputBuffer out, |
|
|
|
size_t size) |
|
|
|
|
|
|
|
void audio_callback(ld::AudioHandle::InputBuffer in, ld::AudioHandle::OutputBuffer out, size_t size) |
|
|
|
{ |
|
|
|
float sig_out{}; |
|
|
|
for (size_t i = 0; i < size; i += 2) { |
|
|
@ -101,8 +96,7 @@ namespace Heck { |
|
|
|
sig_out += tracks[i].nextsample(); |
|
|
|
} |
|
|
|
sig_out *= 0.1; |
|
|
|
out[i] = sig_out; |
|
|
|
out[i + 1] = sig_out; |
|
|
|
out[0][i] = sig_out; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -212,10 +206,8 @@ namespace Heck { |
|
|
|
{ |
|
|
|
hw.PrintLine("Entering MainLoop"); |
|
|
|
u32 time_boot_ms{}; |
|
|
|
u32 midi_log_systick_last{}; |
|
|
|
|
|
|
|
bool heartbeat_led_state{ false }; |
|
|
|
u32 heartbeat_systick_last{}; |
|
|
|
|
|
|
|
SWTimer heartbeat{}; |
|
|
|
heartbeat.set_period(500); |
|
|
|