Basic monophonic

This commit is contained in:
Takeshi Yokemura
2021-05-18 23:57:43 +09:00
parent be1f0b4e3b
commit 0a5110c8d3
4 changed files with 34 additions and 1 deletions

View File

@ -9,13 +9,36 @@
*/
#include "CustomSynth.h"
#include "BaseVoice.h"
#include "PluginProcessor.h"
CustomSynth::CustomSynth(Magical8bitPlug2AudioProcessor& p) : processor(p) {}
void CustomSynth::noteOn(int midiChannel, int midiNoteNumber, float velocity) {
Synthesiser::noteOn(midiChannel, midiNoteNumber, velocity);
// Poly
if (!processor.settingRefs.isMonophonic()) {
Synthesiser::noteOn(midiChannel, midiNoteNumber, velocity);
return;
}
// Mono
auto voice = voices.getFirst();
if (voice == nullptr) {
return;
}
if (voice->isKeyDown()) {
((BaseVoice*)voice)->changeNote(midiNoteNumber, velocity);
} else {
Synthesiser::noteOn(midiChannel, midiNoteNumber, velocity);
}
}
void CustomSynth::noteOff(int midiChannel, int midiNoteNumber, float velocity, bool allowTailOff) {
Synthesiser::noteOff(midiChannel, midiNoteNumber, velocity, allowTailOff);
}
void CustomSynth::allNotesOff (const int midiChannel, const bool allowTailOff) {
Synthesiser::allNotesOff(midiChannel, allowTailOff);
}