diff options
Diffstat (limited to 'src/adlmidi_midiplay.cpp')
-rw-r--r-- | src/adlmidi_midiplay.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index d66101e..86ff369 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -261,6 +261,8 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) MIDIchannel::activenoteiterator i = m_midiChannels[channel].activenotes_find(note); if(i) { + const int veloffset = i->ains->midi_velocity_offset; + velocity = (uint8_t)std::min(127, std::max(1, (int)velocity + veloffset)); i->vol = velocity; noteUpdate(channel, i, Upd_Volume); return false; @@ -367,6 +369,9 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) ains = &bnk->ins[midiins]; } + const int veloffset = ains->midi_velocity_offset; + velocity = (uint8_t)std::min(127, std::max(1, (int)velocity + veloffset)); + int32_t tone = note; if(!isPercussion && (bank > 0)) // For non-zero banks { |