Browse Source

use non-interleaving audio callback

master
heck 9 months ago
parent
commit
bfac86d8a4
  1. 18
      src/main_osp.cc

18
src/main_osp.cc

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

Loading…
Cancel
Save