diff --git a/MEMLNaut-NISPS.ino b/MEMLNaut-NISPS.ino index d6460cd..93105d7 100644 --- a/MEMLNaut-NISPS.ino +++ b/MEMLNaut-NISPS.ino @@ -106,9 +106,6 @@ void setup() { WRITE_VOLATILE(interface_ready, true); Serial.println("Bound interface to MEMLNaut."); - if (midi_interf) { - currentMode->setupMIDI(midi_interf); - } WRITE_VOLATILE(core_0_ready, true); while (!READ_VOLATILE(core_1_ready)) { @@ -203,6 +200,9 @@ void setup1() { delay(1); } + if (midi_interf) { + currentMode->setupMIDI(midi_interf); + } currentMode->setupAudio(AudioDriver::GetSampleRate()); diff --git a/modes/AudioApps/BreakOrAudioApp.hpp b/modes/AudioApps/BreakOrAudioApp.hpp index 726158c..05ad5a0 100644 --- a/modes/AudioApps/BreakOrAudioApp.hpp +++ b/modes/AudioApps/BreakOrAudioApp.hpp @@ -3,12 +3,14 @@ #include "../../src/memllib/audio/AudioAppBase.hpp" #include "../../src/memllib/synth/maximilian.h" +#include "../../src/memllib/interface/MIDIInOut.hpp" + #include #include #include // Added for std::shared_ptr -#include "../../src/memllib/interface/InterfaceBase.hpp" // Added missing include +#include "../../src/memllib/interface/InterfaceBase.hpp" #include @@ -24,6 +26,8 @@ public: static constexpr size_t kN_Params = NPARAMS; static constexpr size_t nVoiceSpaces=0; + std::shared_ptr midiIO; + std::array, nVoiceSpaces> voiceSpaces; VoiceSpaceFn currentVoiceSpace; @@ -63,6 +67,12 @@ public: stereosample_t __force_inline Process(const stereosample_t x) override { + phasor0 += 1.f; + if (phasor0>=48000.f) { + phasor0-=48000.f; + midiIO->queueNoteOn(36, 127); + midiIO->flushQueue(); + } stereosample_t ret { 0.f,0.f }; return ret; } @@ -73,7 +83,9 @@ public: maxiSettings::sampleRate = sample_rate; sampleRatef = static_cast(sample_rate); } - + void setupMIDI(std::shared_ptr new_midi_interf) { + midiIO = new_midi_interf; + } void loop() override { AudioAppBase::loop(); @@ -91,6 +103,8 @@ protected: float sampleRatef; bool firstParamsReceived = false; + + float phasor0=0.f; }; #endif // __BREAKOR_AUDIO_APP_HPP__ diff --git a/modes/MEMLNautModeBreakOr.hpp b/modes/MEMLNautModeBreakOr.hpp index f79c701..a2bc557 100644 --- a/modes/MEMLNautModeBreakOr.hpp +++ b/modes/MEMLNautModeBreakOr.hpp @@ -5,7 +5,7 @@ #include "../src/memllib/interface/MIDIInOut.hpp" #include "../src/memllib/hardware/memlnaut/MEMLNaut.hpp" -#include "AudioApps/BreakOrAudioApp.hpp" +#include "./AudioApps/BreakOrAudioApp.hpp" #include "../src/memllib/examples/InterfaceRL.hpp" #include "../src/memllib/PicoDefs.hpp" #include "MEMLNautMode.hpp" @@ -39,6 +39,7 @@ public: void setupAudio(float sample_rate) { audioAppBreakOr.Setup(sample_rate, interfacePtr); voiceSpaceList = audioAppBreakOr.getVoiceSpaceNames(); + audioAppBreakOr.setupMIDI(midi_interf); } __force_inline void loop() { @@ -49,8 +50,9 @@ public: void setupMIDI(std::shared_ptr new_midi_interf) { midi_interf = new_midi_interf; - midi_interf->Setup(16); + midi_interf->Setup(0); midi_interf->SetMIDISendChannel(1); + midi_interf->SetMIDINoteChannel(10); interface.bindMIDI(midi_interf); } diff --git a/src/memllib b/src/memllib index 5bae63d..1693e46 160000 --- a/src/memllib +++ b/src/memllib @@ -1 +1 @@ -Subproject commit 5bae63daa89332f333ace163818b23308cdf3518 +Subproject commit 1693e46e0b38c5920ebdf6cdf2a9107503003c8d diff --git a/src/memlp b/src/memlp index 5d2935d..2eaef77 160000 --- a/src/memlp +++ b/src/memlp @@ -1 +1 @@ -Subproject commit 5d2935d6420f5e6ab0ad8321bab5125cce2fb500 +Subproject commit 2eaef772c985e221e13c62676eaa293cf75d87e2