@@ -2,7 +2,7 @@ | |||||
#include <algorithm> | #include <algorithm> | ||||
#include "rtmidi/RtMidi.h" | #include "rtmidi/RtMidi.h" | ||||
#include "core.hpp" | #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 | * 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(); | resetMidi(); | ||||
} | } | ||||
@@ -2,7 +2,7 @@ | |||||
#include <algorithm> | #include <algorithm> | ||||
#include "rtmidi/RtMidi.h" | #include "rtmidi/RtMidi.h" | ||||
#include "core.hpp" | #include "core.hpp" | ||||
#include "MidiInterface.hpp" | |||||
#include "MidiIO.hpp" | |||||
#include "dsp/digital.hpp" | #include "dsp/digital.hpp" | ||||
using namespace rack; | using namespace rack; | ||||
@@ -69,16 +69,12 @@ struct MIDIClockToCVInterface : MidiIO, Module { | |||||
clock2ratio = json_integer_value(c2rJ); | clock2ratio = json_integer_value(c2rJ); | ||||
} | } | ||||
} | } | ||||
void initialize() { | |||||
resetMidi(); | |||||
} | |||||
}; | }; | ||||
void MIDIClockToCVInterface::step() { | void MIDIClockToCVInterface::step() { | ||||
static int c_bar = 0; | static int c_bar = 0; | ||||
static float trigger_length = 0.05; | 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). | /* Note this is in relation to the Midi clock's Tick (6x per 16th note). | ||||
* Therefore, e.g. the 2:3 is calculated: | * 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; | 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; | 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; | 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.pos = getAbsolutePos().plus(Vec(0, box.size.y)); | ||||
menu->box.size.x = box.size.x; | 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 *clockRatioItem = new ClockRatioItem(); | ||||
clockRatioItem->ratio = ratio; | clockRatioItem->ratio = ratio; | ||||
clockRatioItem->clockRatio = clockRatio; | clockRatioItem->clockRatio = clockRatio; | ||||
@@ -2,7 +2,7 @@ | |||||
#include <algorithm> | #include <algorithm> | ||||
#include "rtmidi/RtMidi.h" | #include "rtmidi/RtMidi.h" | ||||
#include "core.hpp" | #include "core.hpp" | ||||
#include "MidiInterface.hpp" | |||||
#include "MidiIO.hpp" | |||||
using namespace rack; | using namespace rack; | ||||
@@ -54,7 +54,7 @@ std::vector<std::string> MidiIO::getDevices() { | |||||
std::vector<std::string> names = {}; | std::vector<std::string> names = {}; | ||||
for (int i = 0; i < m->getPortCount(); i++) { | |||||
for (unsigned int i = 0; i < m->getPortCount(); i++) { | |||||
names.push_back(m->getPortName(i)); | names.push_back(m->getPortName(i)); | ||||
} | } | ||||
@@ -75,7 +75,7 @@ void MidiIO::openDevice(std::string deviceName) { | |||||
midiInMap[deviceName] = mw; | 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)) { | if (deviceName == mw->getPortName(i)) { | ||||
mw->openPort(i); | mw->openPort(i); | ||||
break; | break; | ||||
@@ -193,7 +193,7 @@ void MidiChoice::onAction() { | |||||
} | } | ||||
std::vector<std::string> deviceNames = midiModule->getDevices(); | std::vector<std::string> 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 *midiItem = new MidiItem(); | ||||
midiItem->midiModule = midiModule; | midiItem->midiModule = midiModule; | ||||
midiItem->text = deviceNames[i]; | midiItem->text = deviceNames[i]; | ||||
@@ -2,7 +2,7 @@ | |||||
#include <algorithm> | #include <algorithm> | ||||
#include "rtmidi/RtMidi.h" | #include "rtmidi/RtMidi.h" | ||||
#include "core.hpp" | #include "core.hpp" | ||||
#include "MidiInterface.hpp" | |||||
#include "MidiIO.hpp" | |||||
#include "dsp/digital.hpp" | #include "dsp/digital.hpp" | ||||
/* | /* | ||||
@@ -65,7 +65,7 @@ struct MIDIToCVInterface : MidiIO, Module { | |||||
baseFromJson(rootJ); | baseFromJson(rootJ); | ||||
} | } | ||||
void initialize() { | |||||
void reset() { | |||||
resetMidi(); | resetMidi(); | ||||
} | } | ||||
@@ -84,6 +84,8 @@ void MIDIToCVInterface::resetMidi() { | |||||
} | } | ||||
void MIDIToCVInterface::step() { | void MIDIToCVInterface::step() { | ||||
static float sampleRate = engineGetSampleRate(); | |||||
if (isPortOpen()) { | if (isPortOpen()) { | ||||
std::vector<unsigned char> message; | std::vector<unsigned char> message; | ||||
@@ -108,7 +110,7 @@ void MIDIToCVInterface::step() { | |||||
} | } | ||||
if (resetLight > 0) { | if (resetLight > 0) { | ||||
resetLight -= resetLight / 0.55 / gSampleRate; // fade out light | |||||
resetLight -= resetLight / 0.55 / sampleRate; // fade out light | |||||
} | } | ||||
@@ -2,7 +2,7 @@ | |||||
#include <algorithm> | #include <algorithm> | ||||
#include "rtmidi/RtMidi.h" | #include "rtmidi/RtMidi.h" | ||||
#include "core.hpp" | #include "core.hpp" | ||||
#include "MidiInterface.hpp" | |||||
#include "MidiIO.hpp" | |||||
#include "dsp/digital.hpp" | #include "dsp/digital.hpp" | ||||
using namespace rack; | using namespace rack; | ||||
@@ -65,7 +65,7 @@ struct MIDITriggerToCVInterface : MidiIO, Module { | |||||
} | } | ||||
} | } | ||||
void initialize() { | |||||
void reset() final { | |||||
resetMidi(); | resetMidi(); | ||||
} | } | ||||
@@ -1,5 +1,5 @@ | |||||
#include "core.hpp" | #include "core.hpp" | ||||
#include "MidiInterface.hpp" | |||||
#include "MidiIO.hpp" | |||||
void init(rack::Plugin *plugin) { | void init(rack::Plugin *plugin) { | ||||