diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/adlmidi_midiplay.cpp | 3 | ||||
-rw-r--r-- | src/adlmidi_private.hpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index b300270..4f57374 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -499,6 +499,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) ir.first->currentTone = tone; ir.first->glideRate = HUGE_VAL; ir.first->midiins = midiins; + ir.first->isPercussion = isPercussion; ir.first->ains = ains; ir.first->chip_channels_count = 0; @@ -1295,7 +1296,7 @@ int64_t MIDIplay::calculateChipChannelGoodness(size_t c, const MIDIchannel::Note } // Percussion is inferior to melody - s += 50 * (int64_t)(k->midiins / 128); + s += k->isPercussion ? 50 : 0; /* if(k->second.midiins >= 25 && k->second.midiins < 40 diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index ffec1b2..8e08077 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -582,6 +582,8 @@ public: double glideRate; //! Patch selected on noteon; index to bank.ins[] size_t midiins; + //! Is note the percussion instrument + bool isPercussion; //! Patch selected const adlinsdata2 *ains; enum |