diff --git a/modules/juce_audio_basics/midi/juce_MidiMessage.cpp b/modules/juce_audio_basics/midi/juce_MidiMessage.cpp index 36cbd03448..d1ad950583 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessage.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiMessage.cpp @@ -623,6 +623,12 @@ bool MidiMessage::isAllSoundOff() const noexcept return data[1] == 120 && (data[0] & 0xf0) == 0xb0; } +bool MidiMessage::isResetAllControllers() const noexcept +{ + auto data = getRawData(); + return (data[0] & 0xf0) == 0xb0 && data[1] == 121; +} + MidiMessage MidiMessage::allControllersOff (const int channel) noexcept { return controllerEvent (channel, 121, 0); diff --git a/modules/juce_audio_basics/midi/juce_MidiMessage.h b/modules/juce_audio_basics/midi/juce_MidiMessage.h index 867831f5e0..8327223ca7 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessage.h +++ b/modules/juce_audio_basics/midi/juce_MidiMessage.h @@ -501,6 +501,11 @@ public: */ bool isAllSoundOff() const noexcept; + /** Checks whether this message is a reset all controllers message. + @see allControllerOff + */ + bool isResetAllControllers() const noexcept; + /** Creates an all-notes-off message. @param channel the midi channel, in the range 1 to 16 @see isAllNotesOff