|
|
@@ -148,22 +148,27 @@ struct HostMIDI : TerminalModule { |
|
|
|
channels = 1; |
|
|
|
polyMode = ROTATE_MODE; |
|
|
|
pwRange = 0; |
|
|
|
panic(); |
|
|
|
panic(true); |
|
|
|
} |
|
|
|
|
|
|
|
/** Resets performance state */ |
|
|
|
void panic() |
|
|
|
void panic(const bool resetPitch) |
|
|
|
{ |
|
|
|
for (int c = 0; c < 16; c++) { |
|
|
|
notes[c] = 60; |
|
|
|
gates[c] = false; |
|
|
|
velocities[c] = 0; |
|
|
|
aftertouches[c] = 0; |
|
|
|
pws[c] = 8192; |
|
|
|
mods[c] = 0; |
|
|
|
pwFilters[c].reset(); |
|
|
|
modFilters[c].reset(); |
|
|
|
} |
|
|
|
if (resetPitch) { |
|
|
|
for (int c = 0; c < 16; c++) { |
|
|
|
notes[c] = 60; |
|
|
|
pws[c] = 8192; |
|
|
|
mods[c] = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
pedal = false; |
|
|
|
rotateIndex = -1; |
|
|
|
heldNotes.clear(); |
|
|
@@ -374,7 +379,7 @@ struct HostMIDI : TerminalModule { |
|
|
|
// all notes off (panic) |
|
|
|
case 0x7b: { |
|
|
|
if (msg.getValue() == 0) { |
|
|
|
panic(); |
|
|
|
panic(false); |
|
|
|
} |
|
|
|
} break; |
|
|
|
default: break; |
|
|
@@ -529,7 +534,7 @@ struct HostMIDI : TerminalModule { |
|
|
|
if (channels == this->channels) |
|
|
|
return; |
|
|
|
this->channels = channels; |
|
|
|
panic(); |
|
|
|
panic(true); |
|
|
|
} |
|
|
|
|
|
|
|
void setPolyMode(const PolyMode polyMode) |
|
|
@@ -537,7 +542,7 @@ struct HostMIDI : TerminalModule { |
|
|
|
if (polyMode == this->polyMode) |
|
|
|
return; |
|
|
|
this->polyMode = polyMode; |
|
|
|
panic(); |
|
|
|
panic(true); |
|
|
|
} |
|
|
|
} midiInput; |
|
|
|
|
|
|
@@ -886,7 +891,7 @@ struct HostMIDIWidget : ModuleWidgetWith9HP { |
|
|
|
menu->addChild(createMenuLabel("MIDI Input & Output")); |
|
|
|
|
|
|
|
menu->addChild(createMenuItem("Panic", "", |
|
|
|
[=]() { module->midiInput.panic(); module->midiOutput.panic(); } |
|
|
|
[=]() { module->midiInput.panic(true); module->midiOutput.panic(); } |
|
|
|
)); |
|
|
|
} |
|
|
|
}; |
|
|
|