diff --git a/src/core/MidiCCToCV.cpp b/src/core/MidiCCToCV.cpp index 5ce93a07..c5967965 100644 --- a/src/core/MidiCCToCV.cpp +++ b/src/core/MidiCCToCV.cpp @@ -2,7 +2,7 @@ #include #include "rtmidi/RtMidi.h" #include "core.hpp" -#include "MidiInterface.hpp" +#include "MidiIO.hpp" /* * MIDIToCVInterface converts midi note on/off events, velocity , channel aftertouch, pitch wheel and mod weel to @@ -63,7 +63,7 @@ struct MIDICCToCVInterface : MidiIO, Module { } } - void initialize() { + void reset() { resetMidi(); } diff --git a/src/core/MidiClockToCV.cpp b/src/core/MidiClockToCV.cpp index e1caab0e..cd94991f 100644 --- a/src/core/MidiClockToCV.cpp +++ b/src/core/MidiClockToCV.cpp @@ -2,7 +2,7 @@ #include #include "rtmidi/RtMidi.h" #include "core.hpp" -#include "MidiInterface.hpp" +#include "MidiIO.hpp" #include "dsp/digital.hpp" using namespace rack; @@ -69,16 +69,12 @@ struct MIDIClockToCVInterface : MidiIO, Module { clock2ratio = json_integer_value(c2rJ); } } - - void initialize() { - resetMidi(); - } - }; void MIDIClockToCVInterface::step() { static int c_bar = 0; static float trigger_length = 0.05; + static float sampleRate = engineGetSampleRate(); /* Note this is in relation to the Midi clock's Tick (6x per 16th note). * Therefore, e.g. the 2:3 is calculated: @@ -146,13 +142,13 @@ void MIDIClockToCVInterface::step() { } - bool pulse = clock1Pulse.process(1.0 / gSampleRate); + bool pulse = clock1Pulse.process(1.0 / sampleRate); outputs[CLOCK1_PULSE].value = pulse ? 10.0 : 0.0; - pulse = clock2Pulse.process(1.0 / gSampleRate); + pulse = clock2Pulse.process(1.0 / sampleRate); outputs[CLOCK2_PULSE].value = pulse ? 10.0 : 0.0; - pulse = resetPulse.process(1.0 / gSampleRate); + pulse = resetPulse.process(1.0 / sampleRate); outputs[RESET_PULSE].value = pulse ? 10.0 : 0.0; } @@ -208,7 +204,7 @@ struct ClockRatioChoice : ChoiceButton { menu->box.pos = getAbsolutePos().plus(Vec(0, box.size.y)); menu->box.size.x = box.size.x; - for (int ratio = 0; ratio < ratioNames.size(); ratio++) { + for (unsigned long ratio = 0; ratio < ratioNames.size(); ratio++) { ClockRatioItem *clockRatioItem = new ClockRatioItem(); clockRatioItem->ratio = ratio; clockRatioItem->clockRatio = clockRatio; diff --git a/src/core/MidiIO.cpp b/src/core/MidiIO.cpp index 6183df29..3d7eb727 100644 --- a/src/core/MidiIO.cpp +++ b/src/core/MidiIO.cpp @@ -2,7 +2,7 @@ #include #include "rtmidi/RtMidi.h" #include "core.hpp" -#include "MidiInterface.hpp" +#include "MidiIO.hpp" using namespace rack; @@ -54,7 +54,7 @@ std::vector MidiIO::getDevices() { std::vector names = {}; - for (int i = 0; i < m->getPortCount(); i++) { + for (unsigned int i = 0; i < m->getPortCount(); i++) { names.push_back(m->getPortName(i)); } @@ -75,7 +75,7 @@ void MidiIO::openDevice(std::string deviceName) { midiInMap[deviceName] = mw; - for (int i = 0; i < mw->getPortCount(); i++) { + for (unsigned int i = 0; i < mw->getPortCount(); i++) { if (deviceName == mw->getPortName(i)) { mw->openPort(i); break; @@ -193,7 +193,7 @@ void MidiChoice::onAction() { } std::vector deviceNames = midiModule->getDevices(); - for (int i = 0; i < deviceNames.size(); i++) { + for (unsigned int i = 0; i < deviceNames.size(); i++) { MidiItem *midiItem = new MidiItem(); midiItem->midiModule = midiModule; midiItem->text = deviceNames[i]; diff --git a/src/core/MidiToCV.cpp b/src/core/MidiToCV.cpp index 51b0961b..4e12a25a 100644 --- a/src/core/MidiToCV.cpp +++ b/src/core/MidiToCV.cpp @@ -2,7 +2,7 @@ #include #include "rtmidi/RtMidi.h" #include "core.hpp" -#include "MidiInterface.hpp" +#include "MidiIO.hpp" #include "dsp/digital.hpp" /* @@ -65,7 +65,7 @@ struct MIDIToCVInterface : MidiIO, Module { baseFromJson(rootJ); } - void initialize() { + void reset() { resetMidi(); } @@ -84,6 +84,8 @@ void MIDIToCVInterface::resetMidi() { } void MIDIToCVInterface::step() { + static float sampleRate = engineGetSampleRate(); + if (isPortOpen()) { std::vector message; @@ -108,7 +110,7 @@ void MIDIToCVInterface::step() { } if (resetLight > 0) { - resetLight -= resetLight / 0.55 / gSampleRate; // fade out light + resetLight -= resetLight / 0.55 / sampleRate; // fade out light } diff --git a/src/core/MidiTriggerToCV.cpp b/src/core/MidiTriggerToCV.cpp index be58da7d..ee507119 100644 --- a/src/core/MidiTriggerToCV.cpp +++ b/src/core/MidiTriggerToCV.cpp @@ -2,7 +2,7 @@ #include #include "rtmidi/RtMidi.h" #include "core.hpp" -#include "MidiInterface.hpp" +#include "MidiIO.hpp" #include "dsp/digital.hpp" using namespace rack; @@ -65,7 +65,7 @@ struct MIDITriggerToCVInterface : MidiIO, Module { } } - void initialize() { + void reset() final { resetMidi(); } diff --git a/src/core/core.cpp b/src/core/core.cpp index b69f46cc..a083c008 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -1,5 +1,5 @@ #include "core.hpp" -#include "MidiInterface.hpp" +#include "MidiIO.hpp" void init(rack::Plugin *plugin) {