77 void noteOff (
int noteNumber,
int midiChannel = -1);
83 bool isLegacy =
false;
84 std::unique_ptr<MPEZoneLayout::Zone> zone;
85 int channelIncrement, numChannels, firstChannel, lastChannel, midiChannelLastAssigned;
91 int lastNotePlayed = -1;
92 bool isFree()
const noexcept {
return notes.
isEmpty(); }
94 std::array<MidiChannel, 17> midiChannels;
97 int findMidiChannelPlayingClosestNonequalNote (
int noteNumber)
noexcept;
130 void reset() noexcept;
141 int channelIncrement;
142 int firstChannel, lastChannel;
144 uint32 sourceAndChannel[17];
149 bool applyRemapIfExisting (
int channel, uint32 sourceAndChannelID,
MidiMessage& m) noexcept;
150 int getBestChanToReuse() const noexcept;
155 bool messageIsNoteData (const
MidiMessage& m) {
return (*m.getRawData() & 0xf0) != 0xf0; }