openshot-audio
0.1.7
|
#include <juce_audio_basics.h>
Public Types | |
enum | SmpteTimecodeType { fps24 = 0, fps25 = 1, fps30drop = 2, fps30 = 3 } |
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 } |
Static Public Member Functions | |
static MidiMessage | noteOn (int channel, int noteNumber, float velocity) noexcept |
static MidiMessage | noteOn (int channel, int noteNumber, uint8 velocity) noexcept |
static MidiMessage | noteOff (int channel, int noteNumber, uint8 velocity=0) noexcept |
static MidiMessage | programChange (int channel, int programNumber) noexcept |
static MidiMessage | pitchWheel (int channel, int position) noexcept |
static MidiMessage | aftertouchChange (int channel, int noteNumber, int aftertouchAmount) noexcept |
static MidiMessage | channelPressureChange (int channel, int pressure) noexcept |
static MidiMessage | controllerEvent (int channel, int controllerType, int value) noexcept |
static MidiMessage | allNotesOff (int channel) noexcept |
static MidiMessage | allSoundOff (int channel) noexcept |
static MidiMessage | allControllersOff (int channel) noexcept |
static MidiMessage | endOfTrack () noexcept |
static MidiMessage | textMetaEvent (int type, StringRef text) |
static MidiMessage | tempoMetaEvent (int microsecondsPerQuarterNote) noexcept |
static MidiMessage | timeSignatureMetaEvent (int numerator, int denominator) |
static MidiMessage | keySignatureMetaEvent (int numberOfSharpsOrFlats, bool isMinorKey) |
static MidiMessage | midiChannelMetaEvent (int channel) noexcept |
static MidiMessage | midiStart () noexcept |
static MidiMessage | midiContinue () noexcept |
static MidiMessage | midiStop () noexcept |
static MidiMessage | midiClock () noexcept |
static MidiMessage | songPositionPointer (int positionInMidiBeats) noexcept |
static MidiMessage | quarterFrame (int sequenceNumber, int value) noexcept |
static MidiMessage | fullFrame (int hours, int minutes, int seconds, int frames, SmpteTimecodeType timecodeType) |
static MidiMessage | midiMachineControlCommand (MidiMachineControlCommand command) |
static MidiMessage | midiMachineControlGoto (int hours, int minutes, int seconds, int frames) |
static MidiMessage | masterVolume (float volume) |
static MidiMessage | createSysExMessage (const void *sysexData, int dataSize) |
static int | readVariableLengthVal (const uint8 *data, int &numBytesUsed) noexcept |
static int | getMessageLengthFromFirstByte (const uint8 firstByte) noexcept |
static String | getMidiNoteName (int noteNumber, bool useSharps, bool includeOctaveNumber, int octaveNumForMiddleC) |
static double | getMidiNoteInHertz (int noteNumber, const double frequencyOfA=440.0) noexcept |
static bool | isMidiNoteBlack (int noteNumber) noexcept |
static const char * | getGMInstrumentName (int midiInstrumentNumber) |
static const char * | getGMInstrumentBankName (int midiBankNumber) |
static const char * | getRhythmInstrumentName (int midiNoteNumber) |
static const char * | getControllerName (int controllerNumber) |
Encapsulates a MIDI message.
SMPTE timecode types. Used by the getFullFrameParameters() and fullFrame() methods.
Enumerator | |
---|---|
fps24 | |
fps25 | |
fps30drop | |
fps30 |
|
noexcept |
Creates a 3-byte short midi message.
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 |
|
noexcept |
Creates a 2-byte short midi message.
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 |
|
noexcept |
Creates a 1-byte short midi message.
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 |
MidiMessage::MidiMessage | ( | const void * | data, |
int | numBytes, | ||
double | timeStamp = 0 |
||
) |
Creates a midi message from a block of data.
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.
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 |
|
noexcept |
Creates an active-sense message. Since the MidiMessage has to contain a valid message, this default constructor just initialises it with an empty sysex message.
MidiMessage::MidiMessage | ( | const MidiMessage & | other | ) |
Creates a copy of another midi message.
MidiMessage::MidiMessage | ( | const MidiMessage & | other, |
double | newTimeStamp | ||
) |
Creates a copy of another midi message, with a different timestamp.
MidiMessage::~MidiMessage | ( | ) |
Destructor.
|
inlinenoexcept |
Adds a value to the message's timestamp. The units for the timestamp will be application-specific.
|
staticnoexcept |
Creates an aftertouch message.
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 |
|
staticnoexcept |
Creates an all-controllers-off message.
channel | the midi channel, in the range 1 to 16 |
|
staticnoexcept |
Creates an all-notes-off message.
channel | the midi channel, in the range 1 to 16 |
|
staticnoexcept |
Creates an all-sound-off message.
channel | the midi channel, in the range 1 to 16 |
|
staticnoexcept |
Creates a channel-pressure change event.
channel | the midi channel: 1 to 16 |
pressure | the pressure, 0 to 127 |
|
staticnoexcept |
Creates a controller message.
channel | the midi channel, in the range 1 to 16 |
controllerType | the type of controller |
value | the controller value |
|
static |
Creates a system-exclusive message. The data passed in is wrapped with header and tail bytes of 0xf0 and 0xf7.
|
staticnoexcept |
Creates an end-of-track meta-event.
|
static |
Creates a full-frame MTC message.
|
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.
|
noexcept |
Returns the midi channel associated with the message.
|
noexcept |
Returns the pressure from a channel pressure change message.
|
static |
Returns the name of a controller type number, or nullptr if unknown for this controller number.
|
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.
|
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.
|
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.
|
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.
|
static |
Returns the name of a bank of GM instruments, or nullptr if unknown for this bank number.
midiBankNumber | the bank, 0 to 15 |
|
static |
Returns the standard name of a GM instrument, or nullptr if unknown for this index.
midiInstrumentNumber | the program number 0 to 127 |
|
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
|
staticnoexcept |
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.
|
noexcept |
Returns a pointer to the data in a meta-event.
|
noexcept |
Returns the length of the data for a meta-event.
|
noexcept |
Returns a meta-event's type number.
If the message isn't a meta-event, this will return -1.
|
noexcept |
Returns the channel number from a channel meta-event.
|
noexcept |
For an MMC message, this returns its type.
Make sure it's actually an MMC message with isMidiMachineControlMessage() before calling this method.
|
staticnoexcept |
Returns the frequency of a midi note number.
The frequencyOfA parameter is an optional frequency for 'A', normally 440-444Hz for concert pitch.
|
static |
Returns the name of a midi note number.
E.g "C", "D#", etc.
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 |
|
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.
|
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.
|
noexcept |
Returns the new program number of a program change message. If the message isn't a program change, the value returned is undefined.
|
noexcept |
Returns the sequence number of a quarter-frame midi timecode message. This will be a value between 0 and 7.
|
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
|
inlinenoexcept |
Returns a pointer to the raw midi data.
|
inlinenoexcept |
Returns the number of bytes of data in the message.
|
static |
Returns the standard name of a channel 10 percussion sound, or nullptr if unknown for this note number.
midiNoteNumber | the key number, 35 to 81 |
|
noexcept |
Returns the midi beat-number of a song-position-pointer message.
|
noexcept |
Returns a pointer to the sysex data inside the message. If this event isn't a sysex event, it'll return 0.
|
noexcept |
Returns the size of the sysex data. This value excludes the 0xf0 header byte and the 0xf7 at the end.
|
noexcept |
Returns the tick length from a tempo meta-event.
timeFormat | the 16-bit time format value from the midi file's header. |
|
noexcept |
Calculates the seconds-per-quarter-note from a tempo meta-event.
String MidiMessage::getTextFromTextMetaEvent | ( | ) | const |
Returns the text from a text meta-event.
|
noexcept |
Returns the time-signature values from a time-signature meta-event.
|
inlinenoexcept |
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.
|
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.
|
noexcept |
Returns true if this is an active-sense message.
|
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.
|
noexcept |
Checks whether this message is an all-notes-off message.
|
noexcept |
Checks whether this message is an all-sound-off message.
|
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.
|
noexcept |
Returns true if this is a midi controller message.
|
noexcept |
Returns true if this message is a controller message and if it has the specified controller type.
|
noexcept |
Returns true if this is an 'end-of-track' meta-event.
|
noexcept |
Returns true if the message applies to the given midi channel.
channelNumber | the channel number to look for, in the range 1 to 16 |
|
noexcept |
Returns true if this is a full-frame midi timecode message.
|
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.
|
noexcept |
Returns true if this is a 'key-signature' meta-event.
|
noexcept |
Returns true if this event is a meta-event.
Meta-events are things like tempo changes, track names, etc.
|
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.
|
noexcept |
Returns true if this is a midi clock event.
|
noexcept |
Returns true if this is a midi continue event.
|
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.
|
noexcept |
Checks whether this is an MMC message. If it is, you can use the getMidiMachineControlCommand() to find out its type.
|
staticnoexcept |
Returns true if the given midi note number is a black key.
|
noexcept |
Returns true if this is a midi start event.
|
noexcept |
Returns true if this is a midi stop event.
|
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.
|
noexcept |
Returns true if this message is a 'key-down' event.
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 |
|
noexcept |
|
noexcept |
Returns true if the message is a pitch-wheel move.
|
noexcept |
Returns true if the message is a program (patch) change message.
|
noexcept |
Returns true if this is a quarter-frame midi timecode message.
|
noexcept |
Returns true if this message is a 'soft pedal up' controller message.
|
noexcept |
Returns true if this message is a 'soft pedal down' controller message.
|
noexcept |
Returns true if this is a song-position-pointer message.
|
noexcept |
Returns true if this message is a 'sostenuto pedal up' controller message.
|
noexcept |
Returns true if this message is a 'sostenuto pedal down' controller message.
|
noexcept |
Returns true if this message is a 'sustain pedal up' controller message.
|
noexcept |
Returns true if this message is a 'sustain pedal down' controller message.
|
noexcept |
Returns true if this is a system-exclusive message.
|
noexcept |
Returns true if this is a 'tempo' meta-event.
|
noexcept |
Returns true if this is a 'text' meta-event.
|
noexcept |
Returns true if this is a 'time-signature' meta-event.
|
noexcept |
Returns true if this is a 'track' meta-event.
|
noexcept |
Returns true if this is an 'track name' meta-event. You can use the getTextFromTextMetaEvent() method to get the track's name.
|
static |
Creates a key-signature meta-event.
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 |
|
static |
Creates a master-volume change message.
volume | the volume, 0 to 1.0 |
|
staticnoexcept |
Creates a midi channel meta-event.
channel | the midi channel, in the range 1 to 16 |
|
staticnoexcept |
Creates a midi clock event.
|
staticnoexcept |
Creates a midi continue event.
|
static |
Creates an MMC message.
|
static |
Creates an MMC "goto" message. This messages tells the device to go to a specific frame.
|
staticnoexcept |
Creates a midi start event.
|
staticnoexcept |
Creates a midi stop event.
|
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.
scaleFactor | the value by which to multiply the velocity |
|
staticnoexcept |
Creates a key-up message.
channel | the midi channel, in the range 1 to 16 |
noteNumber | the key number, 0 to 127 |
velocity | in the range 0 to 127 |
|
staticnoexcept |
Creates a key-down message (using a floating-point velocity).
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 |
|
staticnoexcept |
Creates a key-down message (using an integer velocity).
channel | the midi channel, in the range 1 to 16 |
noteNumber | the key number, 0 to 127 |
velocity | in the range 0 to 127 |
MidiMessage & MidiMessage::operator= | ( | const MidiMessage & | other | ) |
Copies this message from another one.
|
staticnoexcept |
Creates a pitch-wheel move message.
channel | the midi channel, in the range 1 to 16 |
position | the wheel position, in the range 0 to 16383 |
|
staticnoexcept |
Creates a program-change message.
channel | the midi channel, in the range 1 to 16 |
programNumber | the midi program number, 0 to 127 |
|
staticnoexcept |
Creates a quarter-frame MTC message.
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 |
|
staticnoexcept |
Reads a midi variable-length integer.
data | the data to read the number from |
numBytesUsed | on return, this will be set to the number of bytes that were read |
|
noexcept |
Changes the message's midi channel. This won't do anything for non-channel messages like sysexes.
newChannelNumber | the channel number to change it to, in the range 1 to 16 |
|
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.
|
inlinenoexcept |
Changes the message's associated timestamp. The units for the timestamp will be application-specific - see the notes for getTimeStamp().
|
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.
newVelocity | the new velocity, in the range 0 to 1.0 |
|
staticnoexcept |
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.
|
staticnoexcept |
Creates a tempo meta-event.
|
static |
Creates a text meta-event.
|
static |
Creates a time-signature meta-event.
uint8 juce::MidiMessage::asBytes[4] |
uint32 juce::MidiMessage::asInt32 |