Loading...
Searching...
No Matches
juce::MidiMessage Class Reference

## Detailed Description

Encapsulates a MIDI message.

See also
  MidiMessageSequence, MidiOutput, MidiInput

The documentation for this class was generated from the following file:

- juce_audio_basics/midi/juce_MidiMessage.h

## Classes

struct | VariableLengthValue
| Holds information about a variable-length value which was parsed from a stream of bytes. More...

## Public Types

enum | SmpteTimecodeType { fps24 = 0 , fps25 = 1 , fps30drop = 2 , fps30 = 3 }
| SMPTE timecode types. More...
enum | MidiMachineControlCommand { mmc_stop = 1 , mmc_play = 2 , mmc_deferredplay = 3 , mmc_fastforward = 4 , mmc_rewind = 5 , mmc_recordStart = 6 , mmc_recordStop = 7 , mmc_pause = 9 }
| Types of MMC command. More...

## Public Member Functions

| MidiMessage (int byte1, int byte2, int byte3, double timeStamp=0) noexcept
| Creates a 3-byte short midi message.
| MidiMessage (int byte1, int byte2, double timeStamp=0) noexcept
| Creates a 2-byte short midi message.
| MidiMessage (int byte1, double timeStamp=0) noexcept
| Creates a 1-byte short midi message.
template<typename... Data>
| MidiMessage (int byte1, int byte2, int byte3, Data... otherBytes)
| Creates a midi message from a list of bytes.
| MidiMessage (const void *data, int numBytes, double timeStamp=0)
| Creates a midi message from a block of data.
| MidiMessage (const void *data, int maxBytesToUse, int &numBytesUsed, uint8 lastStatusByte, double timeStamp=0, bool sysexHasEmbeddedLength=true)
| Reads the next midi message from some data.
| MidiMessage () noexcept
| Creates an empty sysex message.
| MidiMessage (const MidiMessage &)
| Creates a copy of another midi message.
| MidiMessage (const MidiMessage &, double newTimeStamp)
| Creates a copy of another midi message, with a different timestamp.
| ~MidiMessage () noexcept
| Destructor.
MidiMessage & | operator= (const MidiMessage &other)
| Copies this message from another one.
| MidiMessage (MidiMessage &&) noexcept
| Move constructor.
MidiMessage & | operator= (MidiMessage &&) noexcept
| Move assignment operator.
const uint8 * | getRawData () const noexcept
| Returns a pointer to the raw midi data.
int | getRawDataSize () const noexcept
| Returns the number of bytes of data in the message.
String | getDescription () const
| Returns a human-readable description of the midi message as a string, for example "Note On C#3 Velocity 120 Channel 1".
double | getTimeStamp () const noexcept
| Returns the timestamp associated with this message.
void | setTimeStamp (double newTimestamp) noexcept
| Changes the message's associated timestamp.
void | addToTimeStamp (double delta) noexcept
| Adds a value to the message's timestamp.
MidiMessage | withTimeStamp (double newTimestamp) const
| Return a copy of this message with a new timestamp.
int | getChannel () const noexcept
| Returns the midi channel associated with the message.
bool | isForChannel (int channelNumber) const noexcept
| Returns true if the message applies to the given midi channel.
void | setChannel (int newChannelNumber) noexcept
| Changes the message's midi channel.
bool | isSysEx () const noexcept
| Returns true if this is a system-exclusive message.
const uint8 * | getSysExData () const noexcept
| Returns a pointer to the sysex data inside the message.
int | getSysExDataSize () const noexcept
| Returns the size of the sysex data.
Span< const std::byte > | getSysExDataSpan () const noexcept
| Returns a span that bounds the sysex body bytes contained in this message.
bool | isNoteOn (bool returnTrueForVelocity0=false) const noexcept
| Returns true if this message is a 'key-down' event.
bool | isNoteOff (bool returnTrueForNoteOnVelocity0=true) const noexcept
| Returns true if this message is a 'key-up' event.
bool | isNoteOnOrOff () const noexcept
| Returns true if this message is a 'key-down' or 'key-up' event.
int | getNoteNumber () const noexcept
| Returns the midi note number for note-on and note-off messages.
void | setNoteNumber (int newNoteNumber) noexcept
| Changes the midi note number of a note-on or note-off message.
uint8 | getVelocity () const noexcept
| Returns the velocity of a note-on or note-off message.
float | getFloatVelocity () const noexcept
| Returns the velocity of a note-on or note-off message.
void | setVelocity (float newVelocity) noexcept
| Changes the velocity of a note-on or note-off message.
void | multiplyVelocity (float scaleFactor) noexcept
| Multiplies the velocity of a note-on or note-off message by a given amount.
bool | isSustainPedalOn () const noexcept
| Returns true if this message is a 'sustain pedal down' controller message.
bool | isSustainPedalOff () const noexcept
| Returns true if this message is a 'sustain pedal up' controller message.
bool | isSostenutoPedalOn () const noexcept
| Returns true if this message is a 'sostenuto pedal down' controller message.
bool | isSostenutoPedalOff () const noexcept
| Returns true if this message is a 'sostenuto pedal up' controller message.
bool | isSoftPedalOn () const noexcept
| Returns true if this message is a 'soft pedal down' controller message.
bool | isSoftPedalOff () const noexcept
| Returns true if this message is a 'soft pedal up' controller message.
bool | isProgramChange () const noexcept
| Returns true if the message is a program (patch) change message.
int | getProgramChangeNumber () const noexcept
| Returns the new program number of a program change message.
bool | isPitchWheel () const noexcept
| Returns true if the message is a pitch-wheel move.
int | getPitchWheelValue () const noexcept
| Returns the pitch wheel position from a pitch-wheel move message.
bool | isAftertouch () const noexcept
| Returns true if the message is an aftertouch event.
int | getAfterTouchValue () const noexcept
| Returns the amount of aftertouch from an aftertouch messages.
bool | isChannelPressure () const noexcept
| Returns true if the message is a channel-pressure change event.
int | getChannelPressureValue () const noexcept
| Returns the pressure from a channel pressure change message.
bool | isController () const noexcept
| Returns true if this is a midi controller message.
int | getControllerNumber () const noexcept
| Returns the controller number of a controller message.
int | getControllerValue () const noexcept
| Returns the controller value from a controller message.
bool | isControllerOfType (int controllerType) const noexcept
| Returns true if this message is a controller message and if it has the specified controller type.
bool | isAllNotesOff () const noexcept
| Checks whether this message is an all-notes-off message.
bool | isAllSoundOff () const noexcept
| Checks whether this message is an all-sound-off message.
bool | isResetAllControllers () const noexcept
| Checks whether this message is a reset all controllers message.
bool | isMetaEvent () const noexcept
| Returns true if this event is a meta-event.
int | getMetaEventType () const noexcept
| Returns a meta-event's type number.
const uint8 * | getMetaEventData () const noexcept
| Returns a pointer to the data in a meta-event.
int | getMetaEventLength () const noexcept
| Returns the length of the data for a meta-event.
bool | isTrackMetaEvent () const noexcept
| Returns true if this is a 'track' meta-event.
bool | isEndOfTrackMetaEvent () const noexcept
| Returns true if this is an 'end-of-track' meta-event.
bool | isTrackNameEvent () const noexcept
| Returns true if this is an 'track name' meta-event.
bool | isTextMetaEvent () const noexcept
| Returns true if this is a 'text' meta-event.
String | getTextFromTextMetaEvent () const
| Returns the text from a text meta-event.
bool | isTempoMetaEvent () const noexcept
| Returns true if this is a 'tempo' meta-event.
double | getTempoMetaEventTickLength (short timeFormat) const noexcept
| Returns the tick length from a tempo meta-event.
double | getTempoSecondsPerQuarterNote () const noexcept
| Calculates the seconds-per-quarter-note from a tempo meta-event.
bool | isTimeSignatureMetaEvent () const noexcept
| Returns true if this is a 'time-signature' meta-event.
void | getTimeSignatureInfo (int &numerator, int &denominator) const noexcept
| Returns the time-signature values from a time-signature meta-event.
bool | isKeySignatureMetaEvent () const noexcept
| Returns true if this is a 'key-signature' meta-event.
int | getKeySignatureNumberOfSharpsOrFlats () const noexcept
| Returns the key from a key-signature meta-event.
bool | isKeySignatureMajorKey () const noexcept
| Returns true if this key-signature event is major, or false if it's minor.
bool | isMidiChannelMetaEvent () const noexcept
| Returns true if this is a 'channel' meta-event.
int | getMidiChannelMetaEventChannel () const noexcept
| Returns the channel number from a channel meta-event.
bool | isActiveSense () const noexcept
| Returns true if this is an active-sense message.
bool | isMidiStart () const noexcept
| Returns true if this is a midi start event.
bool | isMidiContinue () const noexcept
| Returns true if this is a midi continue event.
bool | isMidiStop () const noexcept
| Returns true if this is a midi stop event.
bool | isMidiClock () const noexcept
| Returns true if this is a midi clock event.
bool | isSongPositionPointer () const noexcept
| Returns true if this is a song-position-pointer message.
int | getSongPositionPointerMidiBeat () const noexcept
| Returns the midi beat-number of a song-position-pointer message.
bool | isQuarterFrame () const noexcept
| Returns true if this is a quarter-frame midi timecode message.
int | getQuarterFrameSequenceNumber () const noexcept
| Returns the sequence number of a quarter-frame midi timecode message.
int | getQuarterFrameValue () const noexcept
| Returns the value from a quarter-frame message.
bool | isFullFrame () const noexcept
| Returns true if this is a full-frame midi timecode message.
void | getFullFrameParameters (int &hours, int &minutes, int &seconds, int &frames, SmpteTimecodeType &timecodeType) const noexcept
| Extracts the timecode information from a full-frame midi timecode message.
bool | isMidiMachineControlMessage () const noexcept
| Checks whether this is an MMC message.
MidiMachineControlCommand | getMidiMachineControlCommand () const noexcept
| For an MMC message, this returns its type.
bool | isMidiMachineControlGoto (int &hours, int &minutes, int &seconds, int &frames) const noexcept
| Checks whether this is an MMC "goto" message.
Span< const std::byte > | asSpan () const &
Span< const std::byte > | asSpan () const &&=delete

## Static Public Member Functions

static MidiMessage | noteOn (int channel, int noteNumber, float velocity) noexcept
| Creates a key-down message (using a floating-point velocity).
static MidiMessage | noteOn (int channel, int noteNumber, uint8 velocity) noexcept
| Creates a key-down message (using an integer velocity).
static MidiMessage | noteOff (int channel, int noteNumber, float velocity) noexcept
| Creates a key-up message.
static MidiMessage | noteOff (int channel, int noteNumber, uint8 velocity) noexcept
| Creates a key-up message.
static MidiMessage | noteOff (int channel, int noteNumber) noexcept
| Creates a key-up message.
static MidiMessage | programChange (int channel, int programNumber) noexcept
| Creates a program-change message.
static MidiMessage | pitchWheel (int channel, int position) noexcept
| Creates a pitch-wheel move message.
static MidiMessage | aftertouchChange (int channel, int noteNumber, int aftertouchAmount) noexcept
| Creates an aftertouch message.
static MidiMessage | channelPressureChange (int channel, int pressure) noexcept
| Creates a channel-pressure change event.
static MidiMessage | controllerEvent (int channel, int controllerType, int value) noexcept
| Creates a controller message.
static MidiMessage | allNotesOff (int channel) noexcept
| Creates an all-notes-off message.
static MidiMessage | allSoundOff (int channel) noexcept
| Creates an all-sound-off message.
static MidiMessage | allControllersOff (int channel) noexcept
| Creates an all-controllers-off message.
static MidiMessage | endOfTrack () noexcept
| Creates an end-of-track meta-event.
static MidiMessage | textMetaEvent (int type, StringRef text)
| Creates a text meta-event.
static MidiMessage | tempoMetaEvent (int microsecondsPerQuarterNote) noexcept
| Creates a tempo meta-event.
static MidiMessage | timeSignatureMetaEvent (int numerator, int denominator)
| Creates a time-signature meta-event.
static MidiMessage | keySignatureMetaEvent (int numberOfSharpsOrFlats, bool isMinorKey)
| Creates a key-signature meta-event.
static MidiMessage | midiChannelMetaEvent (int channel) noexcept
| Creates a midi channel meta-event.
static MidiMessage | midiStart () noexcept
| Creates a midi start event.
static MidiMessage | midiContinue () noexcept
| Creates a midi continue event.
static MidiMessage | midiStop () noexcept
| Creates a midi stop event.
static MidiMessage | midiClock () noexcept
| Creates a midi clock event.
static MidiMessage | songPositionPointer (int positionInMidiBeats) noexcept
| Creates a song-position-pointer message.
static MidiMessage | quarterFrame (int sequenceNumber, int value) noexcept
| Creates a quarter-frame MTC message.
static MidiMessage | fullFrame (int hours, int minutes, int seconds, int frames, SmpteTimecodeType timecodeType)
| Creates a full-frame MTC message.
static MidiMessage | midiMachineControlCommand (MidiMachineControlCommand command)
| Creates an MMC message.
static MidiMessage | midiMachineControlGoto (int hours, int minutes, int seconds, int frames)
| Creates an MMC "goto" message.
static MidiMessage | masterVolume (float volume)
| Creates a master-volume change message.
static MidiMessage | createSysExMessage (const void *sysexData, int dataSize)
| Creates a system-exclusive message.
static MidiMessage | createSysExMessage (Span< const std::byte > data)
| Creates a system-exclusive message.
static VariableLengthValue | readVariableLengthValue (const uint8 *data, int maxBytesToUse) noexcept
| Reads a midi variable-length integer, with protection against buffer overflow.
static int | getMessageLengthFromFirstByte (uint8 firstByte) noexcept
| Based on the first byte of a short midi message, this uses a lookup table to return the message length (either 1, 2, or 3 bytes).
static String | getMidiNoteName (int noteNumber, bool useSharps, bool includeOctaveNumber, int octaveNumForMiddleC)
| Returns the name of a midi note number.
static double | getMidiNoteInHertz (int noteNumber, double frequencyOfA=440.0) noexcept
| Returns the frequency of a midi note number.
static bool | isMidiNoteBlack (int noteNumber) noexcept
| Returns true if the given midi note number is a black key.
static const char * | getGMInstrumentName (int midiInstrumentNumber)
| Returns the standard name of a GM instrument, or nullptr if unknown for this index.
static const char * | getGMInstrumentBankName (int midiBankNumber)
| Returns the name of a bank of GM instruments, or nullptr if unknown for this bank number.
static const char * | getRhythmInstrumentName (int midiNoteNumber)
| Returns the standard name of a channel 10 percussion sound, or nullptr if unknown for this note number.
static const char * | getControllerName (int controllerNumber)
| Returns the name of a controller type number, or nullptr if unknown for this controller number.
static uint8 | floatValueToMidiByte (float valueBetween0and1) noexcept
| Converts a floating-point value between 0 and 1 to a MIDI 7-bit value between 0 and 127.
static uint16 | pitchbendToPitchwheelPos (float pitchbendInSemitones, float pitchbendRangeInSemitones) noexcept
| Converts a pitchbend value in semitones to a MIDI 14-bit pitchwheel position value.

## Member Enums

## SmpteTimecodeType

enum juce::MidiMessage::SmpteTimecodeType

SMPTE timecode types.

Used by the getFullFrameParameters() and fullFrame() methods.

Enumerator
fps24 |
fps25 |
fps30drop |
fps30 |

## MidiMachineControlCommand

enum juce::MidiMessage::MidiMachineControlCommand

Types of MMC command.

See also
  isMidiMachineControlMessage, getMidiMachineControlCommand, midiMachineControlCommand

Enumerator
mmc_stop |
mmc_play |
mmc_deferredplay |
mmc_fastforward |
mmc_rewind |
mmc_recordStart |
mmc_recordStop |
mmc_pause |

## Constructors and Destructors

## MidiMessage() [1/10]

juce::MidiMessage::MidiMessage | ( | int | byte1,
|  | int | byte2,
|  | int | byte3,
|  | double | timeStamp = 0 )

noexcept

Creates a 3-byte short midi message.

Parameters

  byte1 | message byte 1
  byte2 | message byte 2
  byte3 | message byte 3
  timeStamp | the time to give the midi message - this value doesn't use any particular units, so will be application-specific

Referenced by aftertouchChange(), allControllersOff(), allNotesOff(), allSoundOff(), channelPressureChange(), controllerEvent(), createSysExMessage(), createSysExMessage(), endOfTrack(), fullFrame(), keySignatureMetaEvent(), masterVolume(), midiChannelMetaEvent(), midiClock(), midiContinue(), midiMachineControlCommand(), midiMachineControlGoto(), MidiMessage(), MidiMessage(), MidiMessage(), MidiMessage(), MidiMessage(), MidiMessage(), midiStart(), midiStop(), noteOff(), noteOff(), noteOff(), noteOn(), noteOn(), operator=(), operator=(), pitchWheel(), programChange(), quarterFrame(), songPositionPointer(), tempoMetaEvent(), textMetaEvent(), timeSignatureMetaEvent(), withTimeStamp(), and ~MidiMessage().

## MidiMessage() [2/10]

juce::MidiMessage::MidiMessage | ( | int | byte1,
|  | int | byte2,
|  | double | timeStamp = 0 )

noexcept

Creates a 2-byte short midi message.

Parameters

  byte1 | message byte 1
  byte2 | message byte 2
  timeStamp | the time to give the midi message - this value doesn't use any particular units, so will be application-specific

References MidiMessage().

## MidiMessage() [3/10]

juce::MidiMessage::MidiMessage | ( | int | byte1,
|  | double | timeStamp = 0 )

noexcept

Creates a 1-byte short midi message.

Parameters

  byte1 | message byte 1
  timeStamp | the time to give the midi message - this value doesn't use any particular units, so will be application-specific

References MidiMessage().

## MidiMessage() [4/10]

template<typename... Data>

juce::MidiMessage::MidiMessage | ( | int | byte1,
|  | int | byte2,
|  | int | byte3,
|  | Data... | otherBytes )

inline

Creates a midi message from a list of bytes.

References getMessageLengthFromFirstByte(), jassert, and MidiMessage().

## MidiMessage() [5/10]

juce::MidiMessage::MidiMessage | ( | const void * | data,
|  | int | numBytes,
|  | double | timeStamp = 0 )

Creates a midi message from a block of data.

## MidiMessage() [6/10]

juce::MidiMessage::MidiMessage | ( | const void * | data,
|  | int | maxBytesToUse,
|  | int & | numBytesUsed,
|  | uint8 | lastStatusByte,
|  | double | timeStamp = 0,
|  | bool | sysexHasEmbeddedLength = true )

Reads the next midi message from some data.

This will read as many bytes from a data stream as it needs to make a complete message, and will return the number of bytes it used. This lets you read a sequence of midi messages from a file or stream.

Parameters

  data | the data to read from
  maxBytesToUse | the maximum number of bytes it's allowed to read
  numBytesUsed | returns the number of bytes that were actually needed
  lastStatusByte | in a sequence of midi messages, the initial byte can be dropped from a message if it's the same as the first byte of the previous message, so this lets you supply the byte to use if the first byte of the message has in fact been dropped.
  timeStamp | the time to give the midi message - this value doesn't use any particular units, so will be application-specific
  sysexHasEmbeddedLength | when reading sysexes, this flag indicates whether to expect the data to begin with a variable-length field indicating its size

## MidiMessage() [7/10]

juce::MidiMessage::MidiMessage | ( |  | ) |

noexcept

Creates an empty sysex message.

Since the MidiMessage has to contain a valid message, this default constructor just initialises it with an empty sysex message.

## MidiMessage() [8/10]

juce::MidiMessage::MidiMessage | ( | const MidiMessage & |  | ) |

Creates a copy of another midi message.

References MidiMessage().

## MidiMessage() [9/10]

juce::MidiMessage::MidiMessage | ( | const MidiMessage & | ,
|  | double | newTimeStamp )

Creates a copy of another midi message, with a different timestamp.

References MidiMessage().

## ~MidiMessage()

juce::MidiMessage::~MidiMessage | ( |  | ) |

noexcept

Destructor.

References MidiMessage().

## MidiMessage() [10/10]

juce::MidiMessage::MidiMessage | ( | MidiMessage && |  | ) |

noexcept

Move constructor.

References MidiMessage().

## Member Functions

## operator=() [1/2]

MidiMessage & juce::MidiMessage::operator= | ( | const MidiMessage & | other | ) |

Copies this message from another one.

References MidiMessage().

## operator=() [2/2]

MidiMessage & juce::MidiMessage::operator= | ( | MidiMessage && |  | ) |

noexcept

Move assignment operator.

References MidiMessage().

## getRawData()

const uint8 * juce::MidiMessage::getRawData | ( |  | ) | const

inline noexcept

Returns a pointer to the raw midi data.

See also
  getRawDataSize

References getRawData().

Referenced by asSpan(), and getRawData().

## getRawDataSize()

int juce::MidiMessage::getRawDataSize | ( |  | ) | const

inline noexcept

Returns the number of bytes of data in the message.

See also
  getRawData

Referenced by asSpan().

## getDescription()

String juce::MidiMessage::getDescription | ( |  | ) | const

Returns a human-readable description of the midi message as a string, for example "Note On C#3 Velocity 120 Channel 1".

## getTimeStamp()

double juce::MidiMessage::getTimeStamp | ( |  | ) | const

inline noexcept

Returns the timestamp associated with this message.

The exact meaning of this time and its units will vary, as messages are used in a variety of different contexts.

If you're getting the message from a midi file, this could be a time in seconds, or a number of ticks - see MidiFile::convertTimestampTicksToSeconds().

If the message is being used in a MidiBuffer, it might indicate the number of audio samples from the start of the buffer.

If the message was created by a MidiInput, see MidiInputCallback::handleIncomingMidiMessage() for details of the way that it initialises this value.

See also
  setTimeStamp, addToTimeStamp

## setTimeStamp()

void juce::MidiMessage::setTimeStamp | ( | double | newTimestamp | ) |

inline noexcept

Changes the message's associated timestamp.

The units for the timestamp will be application-specific - see the notes for getTimeStamp().

See also
  addToTimeStamp, getTimeStamp

## addToTimeStamp()

void juce::MidiMessage::addToTimeStamp | ( | double | delta | ) |

inline noexcept

Adds a value to the message's timestamp.

The units for the timestamp will be application-specific.

## withTimeStamp()

MidiMessage juce::MidiMessage::withTimeStamp | ( | double | newTimestamp | ) | const

Return a copy of this message with a new timestamp.

The units for the timestamp will be application-specific - see the notes for getTimeStamp().

References MidiMessage().

## getChannel()

int juce::MidiMessage::getChannel | ( |  | ) | const

noexcept

Returns the midi channel associated with the message.

Returns
  a value 1 to 16 if the message has a channel, or 0 if it hasn't (e.g. if it's a sysex)

See also
  isForChannel, setChannel

## isForChannel()

bool juce::MidiMessage::isForChannel | ( | int | channelNumber | ) | const

noexcept

Returns true if the message applies to the given midi channel.

Parameters

  channelNumber | the channel number to look for, in the range 1 to 16

See also
  getChannel, setChannel

References isForChannel().

Referenced by isForChannel().

## setChannel()

void juce::MidiMessage::setChannel | ( | int | newChannelNumber | ) |

noexcept

Changes the message's midi channel.

This won't do anything for non-channel messages like sysexes.

Parameters

  newChannelNumber | the channel number to change it to, in the range 1 to 16

References setChannel().

Referenced by setChannel().

## isSysEx()

bool juce::MidiMessage::isSysEx | ( |  | ) | const

noexcept

Returns true if this is a system-exclusive message.

References isSysEx().

Referenced by isSysEx().

## getSysExData()

const uint8 * juce::MidiMessage::getSysExData | ( |  | ) | const

noexcept

Returns a pointer to the sysex data inside the message.

If this event isn't a sysex event, it'll return 0.

See also
  getSysExDataSize

References getSysExData().

Referenced by getSysExData(), and getSysExDataSpan().

## getSysExDataSize()

int juce::MidiMessage::getSysExDataSize | ( |  | ) | const

noexcept

Returns the size of the sysex data.

This value excludes the 0xf0 header byte and the 0xf7 at the end.

See also
  getSysExData

References getSysExDataSize().

Referenced by getSysExDataSize(), and getSysExDataSpan().

## getSysExDataSpan()

Span< const std::byte > juce::MidiMessage::getSysExDataSpan | ( |  | ) | const

inline noexcept

Returns a span that bounds the sysex body bytes contained in this message.

References getSysExData(), getSysExDataSize(), and getSysExDataSpan().

Referenced by getSysExDataSpan().

## isNoteOn()

bool juce::MidiMessage::isNoteOn | ( | bool | returnTrueForVelocity0 = false | ) | const

noexcept

Returns true if this message is a 'key-down' event.

Parameters

  returnTrueForVelocity0 | if true, then if this event is a note-on with velocity 0, it will still be considered to be a note-on and the method will return true. If returnTrueForVelocity0 is false, then if this is a note-on event with velocity 0, it'll be regarded as a note-off, and the method will return false

See also
  isNoteOff, getNoteNumber, getVelocity, noteOn

## noteOn() [1/2]

MidiMessage juce::MidiMessage::noteOn | ( | int | channel,
|  | int | noteNumber,
|  | float | velocity )

static noexcept

Creates a key-down message (using a floating-point velocity).

Parameters

  channel | the midi channel, in the range 1 to 16
  noteNumber | the key number, 0 to 127
  velocity | in the range 0 to 1.0

See also
  isNoteOn

References MidiMessage(), and noteOn().

Referenced by noteOn(), and noteOn().

## noteOn() [2/2]

MidiMessage juce::MidiMessage::noteOn | ( | int | channel,
|  | int | noteNumber,
|  | uint8 | velocity )

static noexcept

Creates a key-down message (using an integer velocity).

Parameters

  channel | the midi channel, in the range 1 to 16
  noteNumber | the key number, 0 to 127
  velocity | in the range 0 to 127

See also
  isNoteOn

References MidiMessage(), and noteOn().

## isNoteOff()

bool juce::MidiMessage::isNoteOff | ( | bool | returnTrueForNoteOnVelocity0 = true | ) | const

noexcept

Returns true if this message is a 'key-up' event.

If returnTrueForNoteOnVelocity0 is true, then his will also return true for a note-on event with a velocity of 0.

See also
  isNoteOn, getNoteNumber, getVelocity, noteOff

References isNoteOff().

Referenced by isNoteOff().

## noteOff() [1/3]

MidiMessage juce::MidiMessage::noteOff | ( | int | channel,
|  | int | noteNumber,
|  | float | velocity )

static noexcept

Creates a key-up message.

Parameters

  channel | the midi channel, in the range 1 to 16
  noteNumber | the key number, 0 to 127
  velocity | in the range 0 to 1.0

See also
  isNoteOff

References MidiMessage(), and noteOff().

Referenced by noteOff(), noteOff(), and noteOff().

## noteOff() [2/3]

MidiMessage juce::MidiMessage::noteOff | ( | int | channel,
|  | int | noteNumber,
|  | uint8 | velocity )

static noexcept

Creates a key-up message.

Parameters

  channel | the midi channel, in the range 1 to 16
  noteNumber | the key number, 0 to 127
  velocity | in the range 0 to 127

See also
  isNoteOff

References MidiMessage(), and noteOff().

## noteOff() [3/3]

MidiMessage juce::MidiMessage::noteOff | ( | int | channel,
|  | int | noteNumber )

static noexcept

Creates a key-up message.

Parameters

  channel | the midi channel, in the range 1 to 16
  noteNumber | the key number, 0 to 127

See also
  isNoteOff

References MidiMessage(), and noteOff().

## isNoteOnOrOff()

bool juce::MidiMessage::isNoteOnOrOff | ( |  | ) | const

noexcept

Returns true if this message is a 'key-down' or 'key-up' event.

See also
  isNoteOn, isNoteOff

References isNoteOnOrOff().

Referenced by isNoteOnOrOff().

## getNoteNumber()

int juce::MidiMessage::getNoteNumber | ( |  | ) | const

noexcept

Returns the midi note number for note-on and note-off messages.

If the message isn't a note-on or off, the value returned is undefined.

See also
  isNoteOff, getMidiNoteName, getMidiNoteInHertz, setNoteNumber

References getNoteNumber().

Referenced by getNoteNumber().

## setNoteNumber()

void juce::MidiMessage::setNoteNumber | ( | int | newNoteNumber | ) |

noexcept

Changes the midi note number of a note-on or note-off message.

If the message isn't a note on or off, this will do nothing.

References setNoteNumber().

Referenced by setNoteNumber().

## getVelocity()

uint8 juce::MidiMessage::getVelocity | ( |  | ) | const

noexcept

Returns the velocity of a note-on or note-off message.

The value returned will be in the range 0 to 127. If the message isn't a note-on or off event, it will return 0.

See also
  getFloatVelocity

References getVelocity().

Referenced by getVelocity().

## getFloatVelocity()

float juce::MidiMessage::getFloatVelocity | ( |  | ) | const

noexcept

Returns the velocity of a note-on or note-off message.

The value returned will be in the range 0 to 1.0 If the message isn't a note-on or off event, it will return 0.

See also
  getVelocity, setVelocity

References getFloatVelocity().

Referenced by getFloatVelocity().

## setVelocity()

void juce::MidiMessage::setVelocity | ( | float | newVelocity | ) |

noexcept

Changes the velocity of a note-on or note-off message.

If the message isn't a note on or off, this will do nothing.

Parameters

  newVelocity | the new velocity, in the range 0 to 1.0

See also
  getFloatVelocity, multiplyVelocity

References setVelocity().

Referenced by setVelocity().

## multiplyVelocity()

void juce::MidiMessage::multiplyVelocity | ( | float | scaleFactor | ) |

noexcept

Multiplies the velocity of a note-on or note-off message by a given amount.

If the message isn't a note on or off, this will do nothing.

Parameters

  scaleFactor | the value by which to multiply the velocity

See also
  setVelocity

References multiplyVelocity().

Referenced by multiplyVelocity().

## isSustainPedalOn()

bool juce::MidiMessage::isSustainPedalOn | ( |  | ) | const

noexcept

Returns true if this message is a 'sustain pedal down' controller message.

References isSustainPedalOn().

Referenced by isSustainPedalOn().

## isSustainPedalOff()

bool juce::MidiMessage::isSustainPedalOff | ( |  | ) | const

noexcept

Returns true if this message is a 'sustain pedal up' controller message.

References isSustainPedalOff().

Referenced by isSustainPedalOff().

## isSostenutoPedalOn()

bool juce::MidiMessage::isSostenutoPedalOn | ( |  | ) | const

noexcept

Returns true if this message is a 'sostenuto pedal down' controller message.

References isSostenutoPedalOn().

Referenced by isSostenutoPedalOn().

## isSostenutoPedalOff()

bool juce::MidiMessage::isSostenutoPedalOff | ( |  | ) | const

noexcept

Returns true if this message is a 'sostenuto pedal up' controller message.

References isSostenutoPedalOff().

Referenced by isSostenutoPedalOff().

## isSoftPedalOn()

bool juce::MidiMessage::isSoftPedalOn | ( |  | ) | const

noexcept

Returns true if this message is a 'soft pedal down' controller message.

References isSoftPedalOn().

Referenced by isSoftPedalOn().

## isSoftPedalOff()

bool juce::MidiMessage::isSoftPedalOff | ( |  | ) | const

noexcept

Returns true if this message is a 'soft pedal up' controller message.

References isSoftPedalOff().

Referenced by isSoftPedalOff().

## isProgramChange()

bool juce::MidiMessage::isProgramChange | ( |  | ) | const

noexcept

Returns true if the message is a program (patch) change message.

See also
  getProgramChangeNumber, getGMInstrumentName

References isProgramChange().

Referenced by isProgramChange().

## getProgramChangeNumber()

int juce::MidiMessage::getProgramChangeNumber | ( |  | ) | const

noexcept

Returns the new program number of a program change message.

If the message isn't a program change, the value returned is undefined.

See also
  isProgramChange, getGMInstrumentName

References getProgramChangeNumber().

Referenced by getProgramChangeNumber().

## programChange()

MidiMessage juce::MidiMessage::programChange | ( | int | channel,
|  | int | programNumber )

static noexcept

Creates a program-change message.

Parameters

  channel | the midi channel, in the range 1 to 16
  programNumber | the midi program number, 0 to 127

See also
  isProgramChange, getGMInstrumentName

References MidiMessage(), and programChange().

Referenced by programChange().

## isPitchWheel()

bool juce::MidiMessage::isPitchWheel | ( |  | ) | const

noexcept

Returns true if the message is a pitch-wheel move.

See also
  getPitchWheelValue, pitchWheel

References isPitchWheel().

Referenced by isPitchWheel().

## getPitchWheelValue()

int juce::MidiMessage::getPitchWheelValue | ( |  | ) | const

noexcept

Returns the pitch wheel position from a pitch-wheel move message.

The value returned is a 14-bit number from 0 to 0x3fff, indicating the wheel position. If called for messages which aren't pitch wheel events, the number returned will be nonsense.

See also
  isPitchWheel

References getPitchWheelValue().

Referenced by getPitchWheelValue().

## pitchWheel()

MidiMessage juce::MidiMessage::pitchWheel | ( | int | channel,
|  | int | position )

static noexcept

Creates a pitch-wheel move message.

Parameters

  channel | the midi channel, in the range 1 to 16
  position | the wheel position, in the range 0 to 16383

See also
  isPitchWheel

References MidiMessage(), and pitchWheel().

Referenced by pitchWheel().

## isAftertouch()

bool juce::MidiMessage::isAftertouch | ( |  | ) | const

noexcept

Returns true if the message is an aftertouch event.

For aftertouch events, use the getNoteNumber() method to find out the key that it applies to, and getAfterTouchValue() to find out the amount. Use getChannel() to find out the channel.

See also
  getAftertouchValue, getNoteNumber

References isAftertouch().

Referenced by isAftertouch().

## getAfterTouchValue()

int juce::MidiMessage::getAfterTouchValue | ( |  | ) | const

noexcept

Returns the amount of aftertouch from an aftertouch messages.

The value returned is in the range 0 to 127, and will be nonsense for messages other than aftertouch messages.

See also
  isAftertouch

References getAfterTouchValue().

Referenced by getAfterTouchValue().

## aftertouchChange()

MidiMessage juce::MidiMessage::aftertouchChange | ( | int | channel,
|  | int | noteNumber,
|  | int | aftertouchAmount )

static noexcept

Creates an aftertouch message.

Parameters

  channel | the midi channel, in the range 1 to 16
  noteNumber | the key number, 0 to 127
  aftertouchAmount | the amount of aftertouch, 0 to 127

See also
  isAftertouch

References aftertouchChange(), and MidiMessage().

Referenced by aftertouchChange().

## isChannelPressure()

bool juce::MidiMessage::isChannelPressure | ( |  | ) | const

noexcept

Returns true if the message is a channel-pressure change event.

This is like aftertouch, but common to the whole channel rather than a specific note. Use getChannelPressureValue() to find out the pressure, and getChannel() to find out the channel.

See also
  channelPressureChange

References isChannelPressure().

Referenced by isChannelPressure().

## getChannelPressureValue()

int juce::MidiMessage::getChannelPressureValue | ( |  | ) | const

noexcept

Returns the pressure from a channel pressure change message.

Returns
  the pressure, in the range 0 to 127

See also
  isChannelPressure, channelPressureChange

References getChannelPressureValue().

Referenced by getChannelPressureValue().

## channelPressureChange()

MidiMessage juce::MidiMessage::channelPressureChange | ( | int | channel,
|  | int | pressure )

static noexcept

Creates a channel-pressure change event.

Parameters

  channel | the midi channel: 1 to 16
  pressure | the pressure, 0 to 127

See also
  isChannelPressure

References channelPressureChange(), and MidiMessage().

Referenced by channelPressureChange().

## isController()

bool juce::MidiMessage::isController | ( |  | ) | const

noexcept

Returns true if this is a midi controller message.

See also
  getControllerNumber, getControllerValue, controllerEvent

References isController().

Referenced by isController().

## getControllerNumber()

int juce::MidiMessage::getControllerNumber | ( |  | ) | const

noexcept

Returns the controller number of a controller message.

The name of the controller can be looked up using the getControllerName() method. Note that the value returned is invalid for messages that aren't controller changes.

See also
  isController, getControllerName, getControllerValue

References getControllerNumber().

Referenced by getControllerNumber().

## getControllerValue()

int juce::MidiMessage::getControllerValue | ( |  | ) | const

noexcept

Returns the controller value from a controller message.

A value 0 to 127 is returned to indicate the new controller position. Note that the value returned is invalid for messages that aren't controller changes.

See also
  isController, getControllerNumber

References getControllerValue().

Referenced by getControllerValue().

## isControllerOfType()

bool juce::MidiMessage::isControllerOfType | ( | int | controllerType | ) | const

noexcept

Returns true if this message is a controller message and if it has the specified controller type.

References isControllerOfType().

Referenced by isControllerOfType().

## controllerEvent()

MidiMessage juce::MidiMessage::controllerEvent | ( | int | channel,
|  | int | controllerType,
|  | int | value )

static noexcept

Creates a controller message.

Parameters

  channel | the midi channel, in the range 1 to 16
  controllerType | the type of controller
  value | the controller value

See also
  isController

References controllerEvent(), and MidiMessage().

Referenced by controllerEvent().

## isAllNotesOff()

bool juce::MidiMessage::isAllNotesOff | ( |  | ) | const

noexcept

Checks whether this message is an all-notes-off message.

See also
  allNotesOff

References isAllNotesOff().

Referenced by isAllNotesOff().

## isAllSoundOff()

bool juce::MidiMessage::isAllSoundOff | ( |  | ) | const

noexcept

Checks whether this message is an all-sound-off message.

See also
  allSoundOff

References isAllSoundOff().

Referenced by isAllSoundOff().

## isResetAllControllers()

bool juce::MidiMessage::isResetAllControllers | ( |  | ) | const

noexcept

Checks whether this message is a reset all controllers message.

See also
  allControllerOff

References isResetAllControllers().

Referenced by isResetAllControllers().

## allNotesOff()

MidiMessage juce::MidiMessage::allNotesOff | ( | int | channel | ) |

static noexcept

Creates an all-notes-off message.

Parameters

  channel | the midi channel, in the range 1 to 16

See also
  isAllNotesOff

References allNotesOff(), and MidiMessage().

Referenced by allNotesOff().

## allSoundOff()

MidiMessage juce::MidiMessage::allSoundOff | ( | int | channel | ) |

static noexcept

Creates an all-sound-off message.

Parameters

  channel | the midi channel, in the range 1 to 16

See also
  isAllSoundOff

References allSoundOff(), and MidiMessage().

Referenced by allSoundOff().

## allControllersOff()

MidiMessage juce::MidiMessage::allControllersOff | ( | int | channel | ) |

static noexcept

Creates an all-controllers-off message.

Parameters

  channel | the midi channel, in the range 1 to 16

References allControllersOff(), and MidiMessage().

Referenced by allControllersOff().

## isMetaEvent()

bool juce::MidiMessage::isMetaEvent | ( |  | ) | const

noexcept

Returns true if this event is a meta-event.

Meta-events are things like tempo changes, track names, etc.

See also
  getMetaEventType, isTrackMetaEvent, isEndOfTrackMetaEvent, isTextMetaEvent, isTrackNameEvent, isTempoMetaEvent, isTimeSignatureMetaEvent, isKeySignatureMetaEvent, isMidiChannelMetaEvent

References isMetaEvent().

Referenced by isMetaEvent().

## getMetaEventType()

int juce::MidiMessage::getMetaEventType | ( |  | ) | const

noexcept

Returns a meta-event's type number.

If the message isn't a meta-event, this will return -1.

See also
  isMetaEvent, isTrackMetaEvent, isEndOfTrackMetaEvent, isTextMetaEvent, isTrackNameEvent, isTempoMetaEvent, isTimeSignatureMetaEvent, isKeySignatureMetaEvent, isMidiChannelMetaEvent

References getMetaEventType().

Referenced by getMetaEventType().

## getMetaEventData()

const uint8 * juce::MidiMessage::getMetaEventData | ( |  | ) | const

noexcept

Returns a pointer to the data in a meta-event.

See also
  isMetaEvent, getMetaEventLength

References getMetaEventData().

Referenced by getMetaEventData().

## getMetaEventLength()

int juce::MidiMessage::getMetaEventLength | ( |  | ) | const

noexcept

Returns the length of the data for a meta-event.

See also
  isMetaEvent, getMetaEventData

References getMetaEventLength().

Referenced by getMetaEventLength().

## isTrackMetaEvent()

bool juce::MidiMessage::isTrackMetaEvent | ( |  | ) | const

noexcept

Returns true if this is a 'track' meta-event.

References isTrackMetaEvent().

Referenced by isTrackMetaEvent().

## isEndOfTrackMetaEvent()

bool juce::MidiMessage::isEndOfTrackMetaEvent | ( |  | ) | const

noexcept

Returns true if this is an 'end-of-track' meta-event.

References isEndOfTrackMetaEvent().

Referenced by isEndOfTrackMetaEvent().

## endOfTrack()

MidiMessage juce::MidiMessage::endOfTrack | ( |  | ) |

static noexcept

Creates an end-of-track meta-event.

See also
  isEndOfTrackMetaEvent

References endOfTrack(), and MidiMessage().

Referenced by endOfTrack().

## isTrackNameEvent()

bool juce::MidiMessage::isTrackNameEvent | ( |  | ) | const

noexcept

Returns true if this is an 'track name' meta-event.

You can use the getTextFromTextMetaEvent() method to get the track's name.

References isTrackNameEvent().

Referenced by isTrackNameEvent().

## isTextMetaEvent()

bool juce::MidiMessage::isTextMetaEvent | ( |  | ) | const

noexcept

Returns true if this is a 'text' meta-event.

See also
  getTextFromTextMetaEvent

References isTextMetaEvent().

Referenced by isTextMetaEvent().

## getTextFromTextMetaEvent()

String juce::MidiMessage::getTextFromTextMetaEvent | ( |  | ) | const

Returns the text from a text meta-event.

See also
  isTextMetaEvent

References getTextFromTextMetaEvent().

Referenced by getTextFromTextMetaEvent().

## textMetaEvent()

MidiMessage juce::MidiMessage::textMetaEvent | ( | int | type,
|  | StringRef | text )

static

Creates a text meta-event.

References MidiMessage(), and textMetaEvent().

Referenced by textMetaEvent().

## isTempoMetaEvent()

bool juce::MidiMessage::isTempoMetaEvent | ( |  | ) | const

noexcept

Returns true if this is a 'tempo' meta-event.

See also
  getTempoMetaEventTickLength, getTempoSecondsPerQuarterNote

References isTempoMetaEvent().

Referenced by isTempoMetaEvent().

## getTempoMetaEventTickLength()

double juce::MidiMessage::getTempoMetaEventTickLength | ( | short | timeFormat | ) | const

noexcept

Returns the tick length from a tempo meta-event.

Parameters

  timeFormat | the 16-bit time format value from the midi file's header.

Returns
  the tick length (in seconds).

See also
  isTempoMetaEvent

References getTempoMetaEventTickLength().

Referenced by getTempoMetaEventTickLength().

## getTempoSecondsPerQuarterNote()

double juce::MidiMessage::getTempoSecondsPerQuarterNote | ( |  | ) | const

noexcept

Calculates the seconds-per-quarter-note from a tempo meta-event.

See also
  isTempoMetaEvent, getTempoMetaEventTickLength

References getTempoSecondsPerQuarterNote().

Referenced by getTempoSecondsPerQuarterNote().

## tempoMetaEvent()

MidiMessage juce::MidiMessage::tempoMetaEvent | ( | int | microsecondsPerQuarterNote | ) |

static noexcept

Creates a tempo meta-event.

See also
  isTempoMetaEvent

References MidiMessage(), and tempoMetaEvent().

Referenced by tempoMetaEvent().

## isTimeSignatureMetaEvent()

bool juce::MidiMessage::isTimeSignatureMetaEvent | ( |  | ) | const

noexcept

Returns true if this is a 'time-signature' meta-event.

See also
  getTimeSignatureInfo

References isTimeSignatureMetaEvent().

Referenced by isTimeSignatureMetaEvent().

## getTimeSignatureInfo()

void juce::MidiMessage::getTimeSignatureInfo | ( | int & | numerator,
|  | int & | denominator ) const

noexcept

Returns the time-signature values from a time-signature meta-event.

See also
  isTimeSignatureMetaEvent

References getTimeSignatureInfo().

Referenced by getTimeSignatureInfo().

## timeSignatureMetaEvent()

MidiMessage juce::MidiMessage::timeSignatureMetaEvent | ( | int | numerator,
|  | int | denominator )

static

Creates a time-signature meta-event.

See also
  isTimeSignatureMetaEvent

References MidiMessage(), and timeSignatureMetaEvent().

Referenced by timeSignatureMetaEvent().

## isKeySignatureMetaEvent()

bool juce::MidiMessage::isKeySignatureMetaEvent | ( |  | ) | const

noexcept

Returns true if this is a 'key-signature' meta-event.

See also
  getKeySignatureNumberOfSharpsOrFlats, isKeySignatureMajorKey

References isKeySignatureMetaEvent().

Referenced by isKeySignatureMetaEvent().

## getKeySignatureNumberOfSharpsOrFlats()

int juce::MidiMessage::getKeySignatureNumberOfSharpsOrFlats | ( |  | ) | const

noexcept

Returns the key from a key-signature meta-event.

This method must only be called if isKeySignatureMetaEvent() is true. A positive number here indicates the number of sharps in the key signature, and a negative number indicates a number of flats. So e.g. 3 = F# + C# + G#, -2 = Bb + Eb

See also
  isKeySignatureMetaEvent, isKeySignatureMajorKey

References getKeySignatureNumberOfSharpsOrFlats().

Referenced by getKeySignatureNumberOfSharpsOrFlats().

## isKeySignatureMajorKey()

bool juce::MidiMessage::isKeySignatureMajorKey | ( |  | ) | const

noexcept

Returns true if this key-signature event is major, or false if it's minor.

This method must only be called if isKeySignatureMetaEvent() is true.

References isKeySignatureMajorKey().

Referenced by isKeySignatureMajorKey().

## keySignatureMetaEvent()

MidiMessage juce::MidiMessage::keySignatureMetaEvent | ( | int | numberOfSharpsOrFlats,
|  | bool | isMinorKey )

static

Creates a key-signature meta-event.

Parameters

  numberOfSharpsOrFlats | if positive, this indicates the number of sharps in the key; if negative, the number of flats
  isMinorKey | if true, the key is minor; if false, it is major

See also
  isKeySignatureMetaEvent

References keySignatureMetaEvent(), and MidiMessage().

Referenced by keySignatureMetaEvent().

## isMidiChannelMetaEvent()

bool juce::MidiMessage::isMidiChannelMetaEvent | ( |  | ) | const

noexcept

Returns true if this is a 'channel' meta-event.

A channel meta-event specifies the midi channel that should be used for subsequent meta-events.

See also
  getMidiChannelMetaEventChannel

References isMidiChannelMetaEvent().

Referenced by isMidiChannelMetaEvent().

## getMidiChannelMetaEventChannel()

int juce::MidiMessage::getMidiChannelMetaEventChannel | ( |  | ) | const

noexcept

Returns the channel number from a channel meta-event.

Returns
  the channel, in the range 1 to 16.

See also
  isMidiChannelMetaEvent

References getMidiChannelMetaEventChannel().

Referenced by getMidiChannelMetaEventChannel().

## midiChannelMetaEvent()

MidiMessage juce::MidiMessage::midiChannelMetaEvent | ( | int | channel | ) |

static noexcept

Creates a midi channel meta-event.

Parameters

  channel | the midi channel, in the range 1 to 16

See also
  isMidiChannelMetaEvent

References midiChannelMetaEvent(), and MidiMessage().

Referenced by midiChannelMetaEvent().

## isActiveSense()

bool juce::MidiMessage::isActiveSense | ( |  | ) | const

noexcept

Returns true if this is an active-sense message.

References isActiveSense().

Referenced by isActiveSense().

## isMidiStart()

bool juce::MidiMessage::isMidiStart | ( |  | ) | const

noexcept

Returns true if this is a midi start event.

See also
  midiStart

References isMidiStart().

Referenced by isMidiStart().

## midiStart()

MidiMessage juce::MidiMessage::midiStart | ( |  | ) |

static noexcept

Creates a midi start event.

References MidiMessage(), and midiStart().

Referenced by midiStart().

## isMidiContinue()

bool juce::MidiMessage::isMidiContinue | ( |  | ) | const

noexcept

Returns true if this is a midi continue event.

See also
  midiContinue

References isMidiContinue().

Referenced by isMidiContinue().

## midiContinue()

MidiMessage juce::MidiMessage::midiContinue | ( |  | ) |

static noexcept

Creates a midi continue event.

References midiContinue(), and MidiMessage().

Referenced by midiContinue().

## isMidiStop()

bool juce::MidiMessage::isMidiStop | ( |  | ) | const

noexcept

Returns true if this is a midi stop event.

See also
  midiStop

References isMidiStop().

Referenced by isMidiStop().

## midiStop()

MidiMessage juce::MidiMessage::midiStop | ( |  | ) |

static noexcept

Creates a midi stop event.

References MidiMessage(), and midiStop().

Referenced by midiStop().

## isMidiClock()

bool juce::MidiMessage::isMidiClock | ( |  | ) | const

noexcept

Returns true if this is a midi clock event.

See also
  midiClock, songPositionPointer

References isMidiClock().

Referenced by isMidiClock().

## midiClock()

MidiMessage juce::MidiMessage::midiClock | ( |  | ) |

static noexcept

Creates a midi clock event.

References midiClock(), and MidiMessage().

Referenced by midiClock().

## isSongPositionPointer()

bool juce::MidiMessage::isSongPositionPointer | ( |  | ) | const

noexcept

Returns true if this is a song-position-pointer message.

See also
  getSongPositionPointerMidiBeat, songPositionPointer

References isSongPositionPointer().

Referenced by isSongPositionPointer().

## getSongPositionPointerMidiBeat()

int juce::MidiMessage::getSongPositionPointerMidiBeat | ( |  | ) | const

noexcept

Returns the midi beat-number of a song-position-pointer message.

See also
  isSongPositionPointer, songPositionPointer

References getSongPositionPointerMidiBeat().

Referenced by getSongPositionPointerMidiBeat().

## songPositionPointer()

MidiMessage juce::MidiMessage::songPositionPointer | ( | int | positionInMidiBeats | ) |

static noexcept

Creates a song-position-pointer message.

The position is a number of midi beats from the start of the song, where 1 midi beat is 6 midi clocks, and there are 24 midi clocks in a quarter-note. So there are 4 midi beats in a quarter-note.

See also
  isSongPositionPointer, getSongPositionPointerMidiBeat

References MidiMessage(), and songPositionPointer().

Referenced by songPositionPointer().

## isQuarterFrame()

bool juce::MidiMessage::isQuarterFrame | ( |  | ) | const

noexcept

Returns true if this is a quarter-frame midi timecode message.

See also
  quarterFrame, getQuarterFrameSequenceNumber, getQuarterFrameValue

References isQuarterFrame().

Referenced by isQuarterFrame().

## getQuarterFrameSequenceNumber()

int juce::MidiMessage::getQuarterFrameSequenceNumber | ( |  | ) | const

noexcept

Returns the sequence number of a quarter-frame midi timecode message.

This will be a value between 0 and 7.

See also
  isQuarterFrame, getQuarterFrameValue, quarterFrame

References getQuarterFrameSequenceNumber().

Referenced by getQuarterFrameSequenceNumber().

## getQuarterFrameValue()

int juce::MidiMessage::getQuarterFrameValue | ( |  | ) | const

noexcept

Returns the value from a quarter-frame message.

This will be the lower nybble of the message's data-byte, a value between 0 and 15

References getQuarterFrameValue().

Referenced by getQuarterFrameValue().

## quarterFrame()

MidiMessage juce::MidiMessage::quarterFrame | ( | int | sequenceNumber,
|  | int | value )

static noexcept

Creates a quarter-frame MTC message.

Parameters

  sequenceNumber | a value 0 to 7 for the upper nybble of the message's data byte
  value | a value 0 to 15 for the lower nybble of the message's data byte

References MidiMessage(), and quarterFrame().

Referenced by quarterFrame().

## isFullFrame()

bool juce::MidiMessage::isFullFrame | ( |  | ) | const

noexcept

Returns true if this is a full-frame midi timecode message.

## getFullFrameParameters()

void juce::MidiMessage::getFullFrameParameters | ( | int & | hours,
|  | int & | minutes,
|  | int & | seconds,
|  | int & | frames,
|  | SmpteTimecodeType & | timecodeType ) const

noexcept

Extracts the timecode information from a full-frame midi timecode message.

You should only call this on messages where you've used isFullFrame() to check that they're the right kind.

References getFullFrameParameters().

Referenced by getFullFrameParameters().

## fullFrame()

MidiMessage juce::MidiMessage::fullFrame | ( | int | hours,
|  | int | minutes,
|  | int | seconds,
|  | int | frames,
|  | SmpteTimecodeType | timecodeType )

static

Creates a full-frame MTC message.

References fullFrame(), and MidiMessage().

Referenced by fullFrame().

## isMidiMachineControlMessage()

bool juce::MidiMessage::isMidiMachineControlMessage | ( |  | ) | const

noexcept

Checks whether this is an MMC message.

If it is, you can use the getMidiMachineControlCommand() to find out its type.

## getMidiMachineControlCommand()

MidiMachineControlCommand juce::MidiMessage::getMidiMachineControlCommand | ( |  | ) | const

noexcept

For an MMC message, this returns its type.

Make sure it's actually an MMC message with isMidiMachineControlMessage() before calling this method.

References getMidiMachineControlCommand().

Referenced by getMidiMachineControlCommand().

## midiMachineControlCommand()

MidiMessage juce::MidiMessage::midiMachineControlCommand | ( | MidiMachineControlCommand | command | ) |

static

Creates an MMC message.

References command, midiMachineControlCommand(), and MidiMessage().

Referenced by midiMachineControlCommand().

## isMidiMachineControlGoto()

bool juce::MidiMessage::isMidiMachineControlGoto | ( | int & | hours,
|  | int & | minutes,
|  | int & | seconds,
|  | int & | frames ) const

noexcept

Checks whether this is an MMC "goto" message.

If it is, the parameters passed-in are set to the time that the message contains.

See also
  midiMachineControlGoto

References isMidiMachineControlGoto().

Referenced by isMidiMachineControlGoto().

## midiMachineControlGoto()

MidiMessage juce::MidiMessage::midiMachineControlGoto | ( | int | hours,
|  | int | minutes,
|  | int | seconds,
|  | int | frames )

static

Creates an MMC "goto" message.

This messages tells the device to go to a specific frame.

See also
  isMidiMachineControlGoto

References midiMachineControlGoto(), and MidiMessage().

Referenced by midiMachineControlGoto().

## masterVolume()

MidiMessage juce::MidiMessage::masterVolume | ( | float | volume | ) |

static

Creates a master-volume change message.

Parameters

  volume | the volume, 0 to 1.0

References masterVolume(), and MidiMessage().

Referenced by masterVolume().

## createSysExMessage() [1/2]

MidiMessage juce::MidiMessage::createSysExMessage | ( | const void * | sysexData,
|  | int | dataSize )

static

Creates a system-exclusive message.

The data passed in is wrapped with header and tail bytes of 0xf0 and 0xf7.

References createSysExMessage(), and MidiMessage().

Referenced by createSysExMessage(), and createSysExMessage().

## createSysExMessage() [2/2]

MidiMessage juce::MidiMessage::createSysExMessage | ( | Span< const std::byte > | data | ) |

static

Creates a system-exclusive message.

The data passed in is wrapped with header and tail bytes of 0xf0 and 0xf7.

References createSysExMessage(), and MidiMessage().

## readVariableLengthValue()

VariableLengthValue juce::MidiMessage::readVariableLengthValue | ( | const uint8 * | data,
|  | int | maxBytesToUse )

static noexcept

Reads a midi variable-length integer, with protection against buffer overflow.

Parameters

  data | the data to read the number from
  maxBytesToUse | the number of bytes in the region following data

Returns
  a struct containing the parsed value, and the number of bytes that were read. If parsing fails, both the value and bytesUsed fields will be set to 0 and isValid() will return false

## getMessageLengthFromFirstByte()

int juce::MidiMessage::getMessageLengthFromFirstByte | ( | uint8 | firstByte | ) |

static noexcept

Based on the first byte of a short midi message, this uses a lookup table to return the message length (either 1, 2, or 3 bytes).

The value passed in must be 0x80 or higher.

Referenced by MidiMessage().

## getMidiNoteName()

String juce::MidiMessage::getMidiNoteName | ( | int | noteNumber,
|  | bool | useSharps,
|  | bool | includeOctaveNumber,
|  | int | octaveNumForMiddleC )

static

Returns the name of a midi note number.

E.g "C", "D#", etc.

Parameters

  noteNumber | the midi note number, 0 to 127
  useSharps | if true, sharpened notes are used, e.g. "C#", otherwise they'll be flattened, e.g. "Db"
  includeOctaveNumber | if true, the octave number will be appended to the string, e.g. "C#4"
  octaveNumForMiddleC | if an octave number is being appended, this indicates the number that will be used for middle C's octave

See also
  getMidiNoteInHertz

## getMidiNoteInHertz()

double juce::MidiMessage::getMidiNoteInHertz | ( | int | noteNumber,
|  | double | frequencyOfA = 440.0 )

static noexcept

Returns the frequency of a midi note number.

The frequencyOfA parameter is an optional frequency for 'A', normally 440-444Hz for concert pitch.

See also
  getMidiNoteName

## isMidiNoteBlack()

bool juce::MidiMessage::isMidiNoteBlack | ( | int | noteNumber | ) |

static noexcept

Returns true if the given midi note number is a black key.

References isMidiNoteBlack().

Referenced by isMidiNoteBlack().

## getGMInstrumentName()

const char * juce::MidiMessage::getGMInstrumentName | ( | int | midiInstrumentNumber | ) |

static

Returns the standard name of a GM instrument, or nullptr if unknown for this index.

Parameters

  midiInstrumentNumber | the program number 0 to 127

See also
  getProgramChangeNumber

References getGMInstrumentName().

Referenced by getGMInstrumentName().

## getGMInstrumentBankName()

const char * juce::MidiMessage::getGMInstrumentBankName | ( | int | midiBankNumber | ) |

static

Returns the name of a bank of GM instruments, or nullptr if unknown for this bank number.

Parameters

  midiBankNumber | the bank, 0 to 15

References getGMInstrumentBankName().

Referenced by getGMInstrumentBankName().

## getRhythmInstrumentName()

const char * juce::MidiMessage::getRhythmInstrumentName | ( | int | midiNoteNumber | ) |

static

Returns the standard name of a channel 10 percussion sound, or nullptr if unknown for this note number.

Parameters

  midiNoteNumber | the key number, 35 to 81

References getRhythmInstrumentName().

Referenced by getRhythmInstrumentName().

## getControllerName()

const char * juce::MidiMessage::getControllerName | ( | int | controllerNumber | ) |

static

Returns the name of a controller type number, or nullptr if unknown for this controller number.

See also
  getControllerNumber

References getControllerName().

Referenced by getControllerName().

## floatValueToMidiByte()

uint8 juce::MidiMessage::floatValueToMidiByte | ( | float | valueBetween0and1 | ) |

static noexcept

Converts a floating-point value between 0 and 1 to a MIDI 7-bit value between 0 and 127.

References floatValueToMidiByte().

Referenced by floatValueToMidiByte().

## pitchbendToPitchwheelPos()

uint16 juce::MidiMessage::pitchbendToPitchwheelPos | ( | float | pitchbendInSemitones,
|  | float | pitchbendRangeInSemitones )

static noexcept

Converts a pitchbend value in semitones to a MIDI 14-bit pitchwheel position value.

References pitchbendToPitchwheelPos().

Referenced by pitchbendToPitchwheelPos().

## asSpan() [1/2]

Span< const std::byte > juce::MidiMessage::asSpan | ( |  | ) | const &

inline

References asSpan(), getRawData(), and getRawDataSize().

Referenced by asSpan(), and juce::MidiOutput::sendMessageNow().

## asSpan() [2/2]

Span< const std::byte > juce::MidiMessage::asSpan | ( |  | ) | const &&

delete

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited