NiCMidi 1.1.0
A MIDI library derived from J.D.Koftinoff jdksmidi
|
Stores data representing a MIDI event message. More...
#include <msg.h>
Public Member Functions | |
MIDIMessage () | |
Creates a a NoOp MIDIMessage (an undefined MIDI message, which will be ignored when playing). More... | |
MIDIMessage (const MIDIMessage &msg) | |
The copy constructor. More... | |
virtual | ~MIDIMessage () |
The destructor. More... | |
virtual void | Clear () |
Resets the message and frees the MIDISystemExclusive pointer; the message becomes a NoOp. More... | |
void | ClearSysEx () |
Frees the MIDISystemExclusive pointer without changing other bytes. More... | |
const MIDIMessage & | operator= (const MIDIMessage &msg) |
The assignment operator. More... | |
int | GetLength () const |
Returns the length in bytes of the entire message. More... | |
unsigned char | GetStatus () const |
Returns the status byte of the message. More... | |
unsigned char | GetChannel () const |
If the message is a channel message, returns its MIDI channel. More... | |
unsigned char | GetType () const |
Returns the relevant top 4 bits of the status byte, which describe what type of channel message it is. More... | |
unsigned char | GetMetaType () const |
If the message is a meta-message, returns the type byte. See MIDI Enumerations for meta event types.. More... | |
unsigned char | GetByte1 () const |
Returns the raw value of the data byte 1 of the message. More... | |
unsigned char | GetByte2 () const |
Returns the raw value of the data byte 2 of the message. More... | |
unsigned char | GetByte3 () const |
Returns the raw value of the data byte 3 of the message. More... | |
MIDISystemExclusive * | GetSysEx () |
Returns a pointer to the MIDISystemExclusive object (0 if it is not allocated). More... | |
const MIDISystemExclusive * | GetSysEx () const |
Returns a pointer to the MIDISystemExclusive object (0 if it is not allocated). More... | |
unsigned char | GetNote () const |
If the message is a note on, note off, or poly aftertouch message, returns the note number. More... | |
unsigned char | GetVelocity () const |
If the message is a note on, note off, or poly aftertouch message, returns the note velocity (or pressure). More... | |
unsigned char | GetChannelPressure () const |
If the message is a channel pressure message, returns the pressure value. More... | |
unsigned char | GetProgramValue () const |
If the message is a program change (patch) message, returns the program number. More... | |
unsigned char | GetController () const |
If the message is a control change message, returns the controller number. More... | |
unsigned char | GetControllerValue () const |
If the message is a control change message, returns the controller value. More... | |
int16_t | GetBenderValue () const |
If the message is a bender message, returns the signed 14 bit bender value. More... | |
uint16_t | GetMetaValue () const |
If the message is a meta-message, returns the unsigned 14 bit value attached. More... | |
unsigned char | GetTimeSigNumerator () const |
If the message is a time signature meta-message, returns the numerator of the time signature. More... | |
unsigned char | GetTimeSigDenominator () const |
If the message is a time signature meta-message, returns the denominator of the time signature. More... | |
signed char | GetKeySigSharpsFlats () const |
If the message is a key signature meta-message, returns the key in SMF format. More... | |
unsigned char | GetKeySigMode () const |
If the message is a key signature meta-message, returns major/minor SMF flag. More... | |
float | GetTempo () const |
If the message is a tempo change meta-message, returns the tempo value in bpm. More... | |
unsigned long | GetInternalTempo () const |
If the message is a tempo change meta-message, returns the tempo in SMF format. More... | |
std::string | GetText () const |
If the message is a text meta-message, returns the associated text as a std::string. More... | |
bool | IsChannelMsg () const |
Returns true if the message is some sort of channel message. More... | |
bool | IsNoteOn () const |
Returns true if the message is a note on message (status == NOTE_ON and velocity > 0). More... | |
bool | IsNoteOff () const |
Returns true if the message is a note off message (status == NOTE_OFF or status == NOTE_ON and velocity == 0). More... | |
bool | IsNote () const |
Returns true if the message is a note on or a note off message. More... | |
bool | IsPolyPressure () const |
Returns true if the message is a polyphonic pressure channel message. More... | |
bool | IsControlChange () const |
Returns true if the message is a control change message. More... | |
bool | IsVolumeChange () const |
Returns true if the message is a volume change message (control == 0x07). More... | |
bool | IsPanChange () const |
Returns true if the message is a pan change message (control == 0x0A). More... | |
bool | IsPedalOn () const |
Returns true if the message is a pedal on message (control == 0x40 and value >= 0x64). More... | |
bool | IsPedalOff () const |
Returns true if the message is a pedal off message (control == 0x40 and value < 0x64). More... | |
bool | IsProgramChange () const |
Returns true if the message is a program change message. More... | |
bool | IsChannelPressure () const |
Returns true if the message is a channel pressure message. More... | |
bool | IsPitchBend () const |
Returns true if the message is a bender message. More... | |
bool | IsChannelMode () const |
Returns true if the message is a channel mode message (a control change with control >= 0x7A). More... | |
bool | IsAllNotesOff () const |
Returns true if the message is a all notes off message. More... | |
bool | IsSystemMessage () const |
Returns true if the message is a system message (the status byte is 0xf0 or higher). More... | |
bool | IsSysEx () const |
Returns true if the message is a system exclusive message. More... | |
bool | IsMetaEvent () const |
Returns true if the message is a meta event message. More... | |
bool | IsTextEvent () const |
Returns true if the message is a text message (a subset of meta events). More... | |
bool | IsTrackName () const |
Returns true if the message is a track name meta-message. More... | |
bool | IsMarkerText () const |
Returns true if the message is a marker text meta-message. More... | |
bool | IsTempo () const |
Returns true if the message is a tempo change meta-message. More... | |
bool | IsDataEnd () const |
Returns true if the message is a data end (i.e. end of track) meta-message. More... | |
bool | IsSMPTEOffset () const |
Returns true if the message is a SMPTE offset meta-message. More... | |
bool | IsTimeSig () const |
Returns true if the message is a time Signature meta-message. More... | |
bool | IsKeySig () const |
Returns true if the message is a key signature meta-message. More... | |
bool | IsNoOp () const |
Returns true if the message is a NoOp (not initialized) message. More... | |
bool | IsBeatMarker () const |
Returns true if the message is a beat marker message. More... | |
void | SetStatus (unsigned char s) |
Sets all 8 bits of the status byte of the message. These define, for channel messages, the type and the channel. More... | |
void | SetChannel (unsigned char s) |
Sets the lower 4 bits of the status byte without changing the upper 4 bits. See Numbering conventions. More... | |
void | SetType (unsigned char s) |
Sets the upper 4 bits of the status byte without changing the lower 4 bits. More... | |
void | SetByte1 (unsigned char b) |
Sets the raw value of the data byte 1 of the message. More... | |
void | SetByte2 (unsigned char b) |
Sets the raw value of the data byte 2 of the message. More... | |
void | SetByte3 (unsigned char b) |
Sets the raw value of the data byte 3 of the message. More... | |
void | SetNote (unsigned char n) |
Sets the note number for note on, note off, and polyphonic aftertouch messages. More... | |
void | SetVelocity (unsigned char v) |
Sets the velocity for note on, note off and polyphonic aftertouch messages. More... | |
void | SetController (unsigned char c) |
Sets the controller number for a control change message. More... | |
void | SetControllerValue (unsigned char v) |
Sets the controller value for a control change message. More... | |
void | SetProgramValue (unsigned char v) |
Sets the program number for a program change message. More... | |
void | SetBenderValue (int16_t v) |
Sets the bender value (a signed 14 bit value) for a bender message. More... | |
void | SetMetaType (unsigned char t) |
Sets the meta message type for a meta-event message. More... | |
void | SetMetaValue (unsigned short v) |
Sets the meta value for a meta-event message. More... | |
void | SetNoteOn (unsigned char chan, unsigned char note, unsigned char vel) |
Makes the message a note on message with given channel, note and velocity. More... | |
void | SetNoteOff (unsigned char chan, unsigned char note, unsigned char vel) |
Makes the message a note off message with given channel, note and velocity. More... | |
void | SetPolyPressure (unsigned char chan, unsigned char note, unsigned char pres) |
Makes the message a polyphonic aftertouch message with given channel, note and pressure. More... | |
void | SetControlChange (unsigned char chan, unsigned char ctrl, unsigned char val) |
Makes the message a control change message with given channel, controller and value. More... | |
void | SetVolumeChange (unsigned char chan, unsigned char val) |
Makes the message a volume change (control == 0x07) message with given channel and value. More... | |
void | SetPanChange (unsigned char chan, unsigned char val) |
Makes the message a pan change (control == 0x0A) message with given channel and value. More... | |
void | SetProgramChange (unsigned char chan, unsigned char prog) |
Makes the message a program change message with given channel and program. More... | |
void | SetChannelPressure (unsigned char chan, unsigned char pres) |
Makes the message a channel pressure message with given channel and pressure. More... | |
void | SetPitchBend (unsigned char chan, short val) |
Makes the message a pitch bend message with given channel and value (unsigned 14 bit). More... | |
void | SetChannelMode (unsigned char chan, unsigned char type, unsigned char val=0) |
Makes the message a channel mode message (i.e. More... | |
void | SetAllNotesOff (unsigned char chan) |
Makes the message a all notes off message with given channel. More... | |
void | SetSysEx (const MIDISystemExclusive *se) |
Makes the message a system exclusive message with given MIDISystemExclusive object. More... | |
void | SetMTC (unsigned char field, unsigned char val) |
Makes the message a MIDI time code message with given field (3 bits) and value (4 bits). Frees the sysex pointer. More... | |
void | SetSongPosition (int16_t pos) |
Makes the message a song position system message with given position (14 bits). Frees the sysex pointer. More... | |
void | SetSongSelect (unsigned char sng) |
Makes the message a song select system message with given song. Frees the sysex pointer. More... | |
void | SetSystemMessage (unsigned char type) |
Makes the message a one-byte system message with given status (type must be a valid MIDI system message status byte, see MIDI Enumerations). More... | |
void | SetMetaEvent (unsigned char type, unsigned char v1, unsigned char v2) |
Makes the message a meta-message with given type and data value. More... | |
void | SetMetaEvent (unsigned char type, unsigned short val) |
Makes the message a meta-message with given type and data value. More... | |
void | SetText (const char *text, unsigned char type=META_GENERIC_TEXT) |
Makes the message a text meta-message with given type. More... | |
void | SetDataEnd () |
Makes the message a data end (i.e. end of track) meta-message. More... | |
void | SetTempo (float tempo_bpm) |
Makes the message a tempo change meta-message with given tempo (in bpm). More... | |
void | SetSMPTEOffset (unsigned char hour, unsigned char min, unsigned char sec, unsigned char frame, unsigned char subframe) |
Makes the message a SMPTE offset meta-message with given data. More... | |
void | SetTimeSig (unsigned char num, unsigned char den, unsigned char clocks_per_metronome=0, unsigned char num_32_per_quarter=8) |
Makes the message a time signature meta-message with given time (numerator and denominator). More... | |
void | SetKeySig (signed char sharp_flats, unsigned char major_minor) |
Makes the message a key signature meta-message with given accidents and mode. More... | |
void | SetNoOp () |
The same of Clear(), makes the message an uninitialized message which will be ignored. More... | |
void | SetBeatMarker () |
Makes the message a beat marker internal service message. More... | |
virtual std::string | MsgToText (bool chan_from_1=false) const |
Returns a human readable ascii string describing the message content. More... | |
void | AllocateSysEx (unsigned int len) |
Allocates a MIDISystemExclusive object, with a buffer of given max size. More... | |
void | CopySysEx (const MIDISystemExclusive *se) |
Copies the given MIDISystemExclusive object into the message without changing other bytes. More... | |
Static Public Member Functions | |
static void | UseNoteOnv0ForOff (bool f) |
This static method determines if the SetNoteOff() method will produce a MIDI NOTE_OFF message or a NOTE_ON with velocity 0. More... | |
Friends | |
bool | operator== (const MIDIMessage &m1, const MIDIMessage &m2) |
The compare operator executes a bitwise comparison. More... | |
Stores data representing a MIDI event message.
It consists of a status byte, three data bytes for subsequent data and a pointer to a MIDISystemExclusive object that can store larger amounts of data. Ordinary channel messages only use the data bytes, while some meta messages and sysex messages also use the pointer. Lots of methods are provided for setting and inspecting the message data without worrying about hexadecimal values. See the file midi.h for a set of enum values for MIDI messages data. In addition to MIDI messages, the MIDIMessage can also contain two types of internal service messages: the NoOp (a null, not initialized message) and the beat marker, used by the MIDISequencer as metronome click.
MIDIMessage::MIDIMessage | ( | ) |
Creates a a NoOp MIDIMessage (an undefined MIDI message, which will be ignored when playing).
MIDIMessage::MIDIMessage | ( | const MIDIMessage & | msg | ) |
The copy constructor.
If the target message has a MIDISystemExclusive object it is duplicated, so every MIDIMessage has its own object.
|
virtual |
The destructor.
|
virtual |
Resets the message and frees the MIDISystemExclusive pointer; the message becomes a NoOp.
Reimplemented in MIDITimedMessage.
void MIDIMessage::ClearSysEx | ( | ) |
Frees the MIDISystemExclusive pointer without changing other bytes.
const MIDIMessage & MIDIMessage::operator= | ( | const MIDIMessage & | msg | ) |
The assignment operator.
It primarily frees the old MIDISystemExclusive object if it was allocated, then duplicates the (eventual) new MIDISystemExclusive, so every MIDIMessage has its own object.
int MIDIMessage::GetLength | ( | ) | const |
Returns the length in bytes of the entire message.
It can return -1 for messages whose length is unknown (for example sysex).
|
inline |
Returns the status byte of the message.
If the message is a channel message this contains the message type in the top 4 bits and the channel in the bottom 4, for other messages this is the same of GetType(). See MIDI Enumerations for status bytes.
|
inline |
If the message is a channel message, returns its MIDI channel.
|
inline |
Returns the relevant top 4 bits of the status byte, which describe what type of channel message it is.
See MIDI Enumerations for status bytes.
|
inline |
If the message is a meta-message, returns the type byte. See MIDI Enumerations for meta event types..
|
inline |
Returns the raw value of the data byte 1 of the message.
|
inline |
Returns the raw value of the data byte 2 of the message.
|
inline |
Returns the raw value of the data byte 3 of the message.
|
inline |
Returns a pointer to the MIDISystemExclusive object (0 if it is not allocated).
|
inline |
Returns a pointer to the MIDISystemExclusive object (0 if it is not allocated).
|
inline |
If the message is a note on, note off, or poly aftertouch message, returns the note number.
|
inline |
If the message is a note on, note off, or poly aftertouch message, returns the note velocity (or pressure).
|
inline |
If the message is a channel pressure message, returns the pressure value.
|
inline |
If the message is a program change (patch) message, returns the program number.
|
inline |
If the message is a control change message, returns the controller number.
|
inline |
If the message is a control change message, returns the controller value.
|
inline |
If the message is a bender message, returns the signed 14 bit bender value.
|
inline |
If the message is a meta-message, returns the unsigned 14 bit value attached.
|
inline |
If the message is a time signature meta-message, returns the numerator of the time signature.
|
inline |
If the message is a time signature meta-message, returns the denominator of the time signature.
|
inline |
If the message is a key signature meta-message, returns the key in SMF format.
Negative values mean that many flats, positive values mean that many sharps.
|
inline |
If the message is a key signature meta-message, returns major/minor SMF flag.
0 means a major key, 1 means a minor key.
float MIDIMessage::GetTempo | ( | ) | const |
If the message is a tempo change meta-message, returns the tempo value in bpm.
unsigned long MIDIMessage::GetInternalTempo | ( | ) | const |
If the message is a tempo change meta-message, returns the tempo in SMF format.
This is a 3 bytes value (the number of microseconds per quarter note).
std::string MIDIMessage::GetText | ( | ) | const |
If the message is a text meta-message, returns the associated text as a std::string.
|
inline |
Returns true if the message is some sort of channel message.
You can then call GetChannel() and GetType() for further information.
|
inline |
Returns true if the message is a note on message (status == NOTE_ON and velocity > 0).
You can then call GetChannel(), GetNote() and GetVelocity() for further information.
|
inline |
Returns true if the message is a note off message (status == NOTE_OFF or status == NOTE_ON and velocity == 0).
You can then call GetChannel() and GetNote() for further information.
|
inline |
Returns true if the message is a note on or a note off message.
|
inline |
Returns true if the message is a polyphonic pressure channel message.
You can then call GetChannel(), GetNote() and GetVelocity() for further information.
|
inline |
Returns true if the message is a control change message.
You can then call GetChannel(), GetController() and GetControllerValue() for further information.
|
inline |
Returns true if the message is a volume change message (control == 0x07).
You can then call GetChannel() and GetControllerValue() for further information.
|
inline |
Returns true if the message is a pan change message (control == 0x0A).
You can then call GetChannel() and GetControllerValue() for further information.
|
inline |
Returns true if the message is a pedal on message (control == 0x40 and value >= 0x64).
You can then call GetChannel() for further information.
|
inline |
Returns true if the message is a pedal off message (control == 0x40 and value < 0x64).
You can then call GetChannel() for further information.
|
inline |
Returns true if the message is a program change message.
You can then call GetChannel() and GetProgramValue() for further information.
|
inline |
Returns true if the message is a channel pressure message.
You can then call GetChannel() and GetChannelPressure() for further information.
|
inline |
Returns true if the message is a bender message.
You can then call GetChannel() and GetBenderValue() for further information.
|
inline |
Returns true if the message is a channel mode message (a control change with control >= 0x7A).
|
inline |
Returns true if the message is a all notes off message.
|
inline |
Returns true if the message is a system message (the status byte is 0xf0 or higher).
|
inline |
Returns true if the message is a system exclusive message.
|
inline |
Returns true if the message is a meta event message.
You can then call GetMetaType() and GetMetaValue() for further information.
|
inline |
Returns true if the message is a text message (a subset of meta events).
You can then call GetText() for further information.
|
inline |
Returns true if the message is a track name meta-message.
You can then call GetText() for further information.
|
inline |
Returns true if the message is a marker text meta-message.
You can then call GetText() for further information.
|
inline |
Returns true if the message is a tempo change meta-message.
You can then call GetTempo() or GetInternalTempo() for further information.
|
inline |
Returns true if the message is a data end (i.e. end of track) meta-message.
|
inline |
Returns true if the message is a SMPTE offset meta-message.
The SMPTE data are kept in the MIDISystemExclusive object.
|
inline |
Returns true if the message is a time Signature meta-message.
You can then call GetTimeSigNumerator() and GetTimeSigDenominator() for further information.
|
inline |
Returns true if the message is a key signature meta-message.
You can then call GetKeySigSharpsFlats() and GetKeySigMode() for further information.
|
inline |
Returns true if the message is a NoOp (not initialized) message.
|
inline |
Returns true if the message is a beat marker message.
This is an internal service message used by the MIDISequencer class to mark the metronome clicks.
|
inline |
Sets all 8 bits of the status byte of the message. These define, for channel messages, the type and the channel.
|
inline |
Sets the lower 4 bits of the status byte without changing the upper 4 bits. See Numbering conventions.
|
inline |
Sets the upper 4 bits of the status byte without changing the lower 4 bits.
|
inline |
Sets the raw value of the data byte 1 of the message.
|
inline |
Sets the raw value of the data byte 2 of the message.
|
inline |
Sets the raw value of the data byte 3 of the message.
|
inline |
Sets the note number for note on, note off, and polyphonic aftertouch messages.
|
inline |
Sets the velocity for note on, note off and polyphonic aftertouch messages.
|
inline |
Sets the controller number for a control change message.
|
inline |
Sets the controller value for a control change message.
|
inline |
Sets the program number for a program change message.
void MIDIMessage::SetBenderValue | ( | int16_t | v | ) |
Sets the bender value (a signed 14 bit value) for a bender message.
|
inline |
Sets the meta message type for a meta-event message.
void MIDIMessage::SetMetaValue | ( | unsigned short | v | ) |
Sets the meta value for a meta-event message.
void MIDIMessage::SetNoteOn | ( | unsigned char | chan, |
unsigned char | note, | ||
unsigned char | vel | ||
) |
Makes the message a note on message with given channel, note and velocity.
Frees the sysex pointer.
chan,note,vel | see Numbering conventions |
void MIDIMessage::SetNoteOff | ( | unsigned char | chan, |
unsigned char | note, | ||
unsigned char | vel | ||
) |
Makes the message a note off message with given channel, note and velocity.
Frees the sysex pointer. The default behavior of this method is to put a NOTE OFF type message and copy the given velocity; you can also make the method put a NOTE ON with 0 velocity (ignoring the third parameter). See the UseNoteOnv0ForOff() static method.
chan,note,vel | see Numbering conventions |
void MIDIMessage::SetPolyPressure | ( | unsigned char | chan, |
unsigned char | note, | ||
unsigned char | pres | ||
) |
Makes the message a polyphonic aftertouch message with given channel, note and pressure.
Frees the sysex pointer.
chan,note,pres | see Numbering conventions |
void MIDIMessage::SetControlChange | ( | unsigned char | chan, |
unsigned char | ctrl, | ||
unsigned char | val | ||
) |
Makes the message a control change message with given channel, controller and value.
Frees the sysex pointer.
chan,ctrl,val | see Numbering conventions |
|
inline |
Makes the message a volume change (control == 0x07) message with given channel and value.
Frees the sysex pointer.
chan,val | see Numbering conventions |
|
inline |
Makes the message a pan change (control == 0x0A) message with given channel and value.
Frees the sysex pointer.
chan,val | see Numbering conventions |
void MIDIMessage::SetProgramChange | ( | unsigned char | chan, |
unsigned char | prog | ||
) |
Makes the message a program change message with given channel and program.
Frees the sysex pointer.
chan,prog | see Numbering conventions |
void MIDIMessage::SetChannelPressure | ( | unsigned char | chan, |
unsigned char | pres | ||
) |
Makes the message a channel pressure message with given channel and pressure.
Frees the sysex pointer.
chan,pres | see Numbering conventions |
void MIDIMessage::SetPitchBend | ( | unsigned char | chan, |
short | val | ||
) |
Makes the message a pitch bend message with given channel and value (unsigned 14 bit).
Frees the sysex pointer.
chan,val | see Numbering conventions |
|
inline |
Makes the message a channel mode message (i.e.
a control change with a specific control number. Channel mode messages include:
chan,type,val | see Numbering conventions |
|
inline |
Makes the message a all notes off message with given channel.
chan | see Numbering conventions |
void MIDIMessage::SetSysEx | ( | const MIDISystemExclusive * | se | ) |
Makes the message a system exclusive message with given MIDISystemExclusive object.
The eventual old sysex is freed and the MIDISystemExclusive is copied, so the message owns its object.
void MIDIMessage::SetMTC | ( | unsigned char | field, |
unsigned char | val | ||
) |
Makes the message a MIDI time code message with given field (3 bits) and value (4 bits). Frees the sysex pointer.
void MIDIMessage::SetSongPosition | ( | int16_t | pos | ) |
Makes the message a song position system message with given position (14 bits). Frees the sysex pointer.
void MIDIMessage::SetSongSelect | ( | unsigned char | sng | ) |
Makes the message a song select system message with given song. Frees the sysex pointer.
void MIDIMessage::SetSystemMessage | ( | unsigned char | type | ) |
Makes the message a one-byte system message with given status (type must be a valid MIDI system message status byte, see MIDI Enumerations).
Sets other bytes to 0 and frees the sysex pointer. This is useful mainly for messages which haven't data bytes, for others there are more appropriate methods.
void MIDIMessage::SetMetaEvent | ( | unsigned char | type, |
unsigned char | v1, | ||
unsigned char | v2 | ||
) |
Makes the message a meta-message with given type and data value.
The two bytes of data are given separately. See MIDI Enumerations for meta event types.
void MIDIMessage::SetMetaEvent | ( | unsigned char | type, |
unsigned short | val | ||
) |
Makes the message a meta-message with given type and data value.
You can use this for Sequence number (16 bit value) and Channel Prefix (8 bit value) messages.
void MIDIMessage::SetText | ( | const char * | text, |
unsigned char | type = META_GENERIC_TEXT |
||
) |
Makes the message a text meta-message with given type.
text is a C string containing the ascii characters and is stored in the sysex object (the eventual old pointer is freed). You can use this for Generic text, Copyright, Track name, Instrument name, Lyric, Marker and Cue point messages (see MIDI Enumerations for meta text types).
|
inline |
Makes the message a data end (i.e. end of track) meta-message.
void MIDIMessage::SetTempo | ( | float | tempo_bpm | ) |
Makes the message a tempo change meta-message with given tempo (in bpm).
The tempo is stored in the sysex object as a 3 byte value according to the SMF format and the eventual old pointer is freed.
void MIDIMessage::SetSMPTEOffset | ( | unsigned char | hour, |
unsigned char | min, | ||
unsigned char | sec, | ||
unsigned char | frame, | ||
unsigned char | subframe | ||
) |
Makes the message a SMPTE offset meta-message with given data.
The bytes are stored in the sysex object and the eventual old pointer is freed.
void MIDIMessage::SetTimeSig | ( | unsigned char | num, |
unsigned char | den, | ||
unsigned char | clocks_per_metronome = 0 , |
||
unsigned char | num_32_per_quarter = 8 |
||
) |
Makes the message a time signature meta-message with given time (numerator and denominator).
The bytes are stored in the sysex object and the eventual old pointer is freed.
|
inline |
Makes the message a key signature meta-message with given accidents and mode.
sharp_flats,major_minor | These are in SMF format: see GetKeySigSharpsFlats() and GetKeySigMode(). |
|
inline |
The same of Clear(), makes the message an uninitialized message which will be ignored.
void MIDIMessage::SetBeatMarker | ( | ) |
Makes the message a beat marker internal service message.
|
virtual |
Returns a human readable ascii string describing the message content.
chan_from_1 | if false channels are numbered 0 ... 15, otherwise 1 ... 16. See Numbering conventions |
void MIDIMessage::AllocateSysEx | ( | unsigned int | len | ) |
Allocates a MIDISystemExclusive object, with a buffer of given max size.
The buffer is initially empty and can be accessed with GetSysEx(). An eventual old object is freed.
void MIDIMessage::CopySysEx | ( | const MIDISystemExclusive * | se | ) |
Copies the given MIDISystemExclusive object into the message without changing other bytes.
An eventual old object is freed.
|
inlinestatic |
This static method determines if the SetNoteOff() method will produce a MIDI NOTE_OFF message or a NOTE_ON with velocity 0.
The default is false (NOTE_OFF messages). If you want to use the other form call this with true.
|
friend |
The compare operator executes a bitwise comparison.