Fix MIDI Output
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
62e65f2f3a
commit
ecc8b00a9f
1 changed files with 9 additions and 5 deletions
|
|
@ -162,12 +162,13 @@ struct HostMIDI : Module {
|
|||
heldNotes.clear();
|
||||
}
|
||||
|
||||
void process(const ProcessArgs& args, std::vector<rack::engine::Output>& outputs)
|
||||
bool process(const ProcessArgs& args, std::vector<rack::engine::Output>& outputs)
|
||||
{
|
||||
// Cardinal specific
|
||||
const int64_t blockFrame = pcontext->engine->getBlockFrame();
|
||||
const bool blockFrameChanged = lastBlockFrame != blockFrame;
|
||||
|
||||
if (lastBlockFrame != blockFrame)
|
||||
if (blockFrameChanged)
|
||||
{
|
||||
lastBlockFrame = blockFrame;
|
||||
|
||||
|
|
@ -261,6 +262,8 @@ struct HostMIDI : Module {
|
|||
outputs[START_OUTPUT].setVoltage(startPulse.process(args.sampleTime) ? 10.f : 0.f);
|
||||
outputs[STOP_OUTPUT].setVoltage(stopPulse.process(args.sampleTime) ? 10.f : 0.f);
|
||||
outputs[CONTINUE_OUTPUT].setVoltage(continuePulse.process(args.sampleTime) ? 10.f : 0.f);
|
||||
|
||||
return blockFrameChanged;
|
||||
}
|
||||
|
||||
void processMessage(const midi::Message& msg) {
|
||||
|
|
@ -554,7 +557,10 @@ struct HostMIDI : Module {
|
|||
|
||||
void process(const ProcessArgs& args) override
|
||||
{
|
||||
midiInput.process(args, outputs);
|
||||
if (midiInput.process(args, outputs))
|
||||
midiOutput.frame = 0;
|
||||
else
|
||||
++midiOutput.frame;
|
||||
|
||||
// MIDI baud rate is 31250 b/s, or 3125 B/s.
|
||||
// CC messages are 3 bytes, so we can send a maximum of 1041 CC messages per second.
|
||||
|
|
@ -564,8 +570,6 @@ struct HostMIDI : Module {
|
|||
if (rateLimiterTriggered)
|
||||
midiOutput.rateLimiterTimer.time -= rateLimiterPeriod;
|
||||
|
||||
midiOutput.setFrame(args.frame);
|
||||
|
||||
for (int c = 0; c < inputs[PITCH_INPUT].getChannels(); c++) {
|
||||
int vel = (int) std::round(inputs[VELOCITY_INPUT].getNormalPolyVoltage(10.f * 100 / 127, c) / 10.f * 127);
|
||||
vel = clamp(vel, 0, 127);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue