97 bool isMemberChannel (
int midiChannel)
noexcept;
104 bool isMasterChannel (
int midiChannel)
const noexcept;
123 void setPressureTrackingMode (TrackingMode
modeToUse);
126 void setPitchbendTrackingMode (TrackingMode
modeToUse);
129 void setTimbreTrackingMode (TrackingMode
modeToUse);
138 virtual void processNextMidiEvent (
const MidiMessage& message);
165 virtual void pitchbend (
int midiChannel,
MPEValue pitchbend);
173 virtual void pressure (
int midiChannel,
MPEValue value);
182 virtual void timbre (
int midiChannel,
MPEValue value);
189 virtual void sustainPedal (
int midiChannel,
bool isDown);
196 virtual void sostenutoPedal (
int midiChannel,
bool isDown);
202 void releaseAllNotes();
318 void enableLegacyMode (
int pitchbendRange = 2,
328 void setLegacyModeChannelRange (
Range<
int> channelRange);
334 void setLegacyModePitchbendRange (
int pitchbendRange);
346 uint8 lastPressureLowerBitReceivedOnChannel[16];
347 uint8 lastTimbreLowerBitReceivedOnChannel[16];
348 bool isMemberChannelSustained[16];
359 TrackingMode trackingMode = lastNotePlayedOnChannel;
360 MPEValue lastValueReceivedOnChannel[16];
365 LegacyMode legacyMode;
366 MPEDimension pitchbendDimension, pressureDimension, timbreDimension;
368 void updateDimension (
int midiChannel, MPEDimension&, MPEValue);
369 void updateDimensionMaster (
bool, MPEDimension&, MPEValue);
370 void updateDimensionForNote (MPENote&, MPEDimension&, MPEValue);
371 void callListenersDimensionChanged (
const MPENote&,
const MPEDimension&);
372 MPEValue getInitialValueForNewNote (
int midiChannel, MPEDimension&)
const;
374 void processMidiNoteOnMessage (
const MidiMessage&);
375 void processMidiNoteOffMessage (
const MidiMessage&);
376 void processMidiPitchWheelMessage (
const MidiMessage&);
377 void processMidiChannelPressureMessage (
const MidiMessage&);
378 void processMidiControllerMessage (
const MidiMessage&);
379 void processMidiResetAllControllersMessage (
const MidiMessage&);
380 void handlePressureMSB (
int midiChannel,
int value)
noexcept;
381 void handlePressureLSB (
int midiChannel,
int value)
noexcept;
382 void handleTimbreMSB (
int midiChannel,
int value)
noexcept;
383 void handleTimbreLSB (
int midiChannel,
int value)
noexcept;
384 void handleSustainOrSostenuto (
int midiChannel,
bool isDown,
bool isSostenuto);
386 const MPENote* getNotePtr (
int midiChannel,
int midiNoteNumber)
const noexcept;
387 MPENote* getNotePtr (
int midiChannel,
int midiNoteNumber)
noexcept;
388 const MPENote* getNotePtr (
int midiChannel, TrackingMode)
const noexcept;
389 MPENote* getNotePtr (
int midiChannel, TrackingMode)
noexcept;
390 const MPENote* getLastNotePlayedPtr (
int midiChannel)
const noexcept;
391 MPENote* getLastNotePlayedPtr (
int midiChannel)
noexcept;
392 const MPENote* getHighestNotePtr (
int midiChannel)
const noexcept;
393 MPENote* getHighestNotePtr (
int midiChannel)
noexcept;
394 const MPENote* getLowestNotePtr (
int midiChannel)
const noexcept;
395 MPENote* getLowestNotePtr (
int midiChannel)
noexcept;
396 void updateNoteTotalPitchbend (MPENote&);
398 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MPEInstrument)