diff options
Diffstat (limited to 'src/adlmidi_midiplay.cpp')
-rw-r--r-- | src/adlmidi_midiplay.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index 9db4b67..22019c8 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -1545,6 +1545,13 @@ void MIDIplay::prepareChipChannelForNewNote(size_t c, const MIDIchannel::NoteInf // UNLESS we're going to do arpeggio MIDIchannel::notes_iterator i (m_midiChannels[jd.loc.MidCh].ensure_find_activenote(jd.loc.note)); + if(!m_setup.enableAutoArpeggio) + { + // Kill the note + noteUpdate(j->value.loc.MidCh, i, Upd_Off, static_cast<int32_t>(c)); + continue; + } + // Check if we can do arpeggio. if(((jd.vibdelay_us < 70000) || (jd.kon_time_until_neglible_us > 20000000)) && jd.ins == ins) { @@ -1587,9 +1594,6 @@ void MIDIplay::killOrEvacuate(size_t from_channel, { uint16_t cs = static_cast<uint16_t>(c); - if(!m_setup.enableAutoArpeggio) - break; // Arpeggio disabled completely - if(c >= maxChannels) break; |