|
TracktionEngine
|
#include <tracktion_MidiList.h>
Public Types | |
| enum class | NoteAutomationType { none , expression } |
| enum class | TimeBase { seconds , beats , beatsRaw } |
| Determines MIDI event timing. More... | |
Public Member Functions | |
| MidiList () | |
| MidiList (const juce::ValueTree &, juce::UndoManager *) | |
| ~MidiList () | |
| void | copyFrom (const MidiList &, juce::UndoManager *) |
| Clears the current list and copies the others contents and properties. | |
| void | addFrom (const MidiList &, juce::UndoManager *) |
| Adds copies of the events in another list to this one. | |
| const juce::Array< MidiNote * > & | getNotes () const |
| const juce::Array< MidiControllerEvent * > & | getControllerEvents () const |
| const juce::Array< MidiSysexEvent * > & | getSysexEvents () const |
| bool | isAttachedToClip () const noexcept |
| void | setCompList (bool shouldBeComp) noexcept |
| bool | isCompList () const noexcept |
| MidiChannel | getMidiChannel () const |
| Gets the list's midi channel number. | |
| void | setMidiChannel (MidiChannel chanNum) |
| Gives the list a channel number that it'll use when generating real midi messages. | |
| juce::String | getImportedMidiTrackName () const noexcept |
| If the data was pulled from a midi file then this may have a useful name describing its purpose. | |
| juce::String | getImportedFileName () const noexcept |
| Set the imported file name if you want it to appear on the clip. | |
| void | setImportedFileName (const juce::String &n) |
| bool | isEmpty () const noexcept |
| void | clear (juce::UndoManager *) |
| void | trimOutside (BeatPosition firstBeat, BeatPosition lastBeat, juce::UndoManager *) |
| void | moveAllBeatPositions (BeatDuration deltaBeats, juce::UndoManager *) |
| void | rescale (double factor, juce::UndoManager *) |
| int | getNumNotes () const |
| MidiNote * | getNote (int index) const |
| MidiNote * | getNoteFor (const juce::ValueTree &) |
| juce::Range< int > | getNoteNumberRange () const |
| BeatPosition | getFirstBeatNumber () const |
| Beat number of first event in the list. | |
| BeatPosition | getLastBeatNumber () const |
| Beat number of last event in the list. | |
| MidiNote * | addNote (const MidiNote &, juce::UndoManager *) |
| MidiNote * | addNote (int pitch, BeatPosition startBeat, BeatDuration lengthInBeats, int velocity, int colourIndex, juce::UndoManager *) |
| void | removeNote (MidiNote &, juce::UndoManager *) |
| void | removeAllNotes (juce::UndoManager *) |
| int | getNumControllerEvents () const |
| MidiControllerEvent * | getControllerEvent (int index) const |
| MidiControllerEvent * | getControllerEventAt (BeatPosition, int controllerType) const |
| MidiControllerEvent * | addControllerEvent (const MidiControllerEvent &, juce::UndoManager *) |
| MidiControllerEvent * | addControllerEvent (BeatPosition, int controllerType, int controllerValue, juce::UndoManager *) |
| MidiControllerEvent * | addControllerEvent (BeatPosition, int controllerType, int controllerValue, int metadata, juce::UndoManager *) |
| void | removeControllerEvent (MidiControllerEvent &, juce::UndoManager *) |
| void | removeAllControllers (juce::UndoManager *) |
| bool | containsController (int controllerType) const |
| True if there are any controller events of this type. | |
| void | setControllerValueAt (int controllerType, BeatPosition beatNumber, int newValue, juce::UndoManager *) |
| void | removeControllersBetween (int controllerType, BeatPosition beatNumberStart, BeatPosition beatNumberEnd, juce::UndoManager *) |
| void | insertRepeatedControllerValue (int type, int startVal, int endVal, BeatRange rangeBeats, BeatDuration intervalBeats, juce::UndoManager *) |
| Adds controller values over a specified time, at an even interval. | |
| int | getNumSysExEvents () const |
| MidiSysexEvent * | getSysexEvent (int index) const |
| MidiSysexEvent * | getSysexEventUnchecked (int index) const |
| MidiSysexEvent * | getSysexEventFor (const juce::ValueTree &) const |
| MidiSysexEvent & | addSysExEvent (const juce::MidiMessage &, BeatPosition, juce::UndoManager *) |
| void | removeSysExEvent (const MidiSysexEvent &, juce::UndoManager *) |
| void | removeAllSysexes (juce::UndoManager *) |
| void | importMidiSequence (const juce::MidiMessageSequence &, Edit *, TimePosition editTimeOfListTimeZero, juce::UndoManager *) |
| Adds the contents of a MidiMessageSequence to this list. | |
| void | importFromEditTimeSequenceWithNoteExpression (const juce::MidiMessageSequence &, Edit *, TimePosition editTimeOfListTimeZero, juce::UndoManager *) |
| Adds the contents of a MidiSequence to this list assigning MPE expression changes to EXP expression. | |
| juce::MidiMessageSequence | exportToPlaybackMidiSequence (MidiClip &, TimeBase, bool generateMPE) const |
| Creates a juce::MidiMessageSequence from the list in order to be played back The sequence will be in terms of edit time, either in seconds or beats. | |
Static Public Member Functions | |
| static juce::ValueTree | createMidiList () |
| static juce::MidiMessageSequence | createDefaultPlaybackMidiSequence (const MidiList &, MidiClip &, TimeBase, bool generateMPE) |
| Creates the default MIDI playback sequence. | |
| static bool | looksLikeMPEData (const juce::File &) |
| static bool | fileHasTempoChanges (const juce::File &) |
| static bool | readSeparateTracksFromFile (const juce::File &, juce::OwnedArray< MidiList > &lists, juce::Array< BeatPosition > &tempoChangeBeatNumbers, juce::Array< double > &bpms, juce::Array< int > &numerators, juce::Array< int > &denominators, BeatDuration &songLength, bool importAsNoteExpression) |
| template<typename Type > | |
| static void | sortMidiEventsByTime (juce::Array< Type > ¬es) |
| template<typename Type > | |
| static void | sortMidiEventsByNoteNumber (juce::Array< Type > ¬es) |
Public Attributes | |
| juce::ValueTree | state |
Static Public Attributes | |
| static constexpr const double | defaultInitialTimbreValue = 0.5 |
| static constexpr const double | defaultInitialPitchBendValue = 0 |
| static constexpr const double | defaultInitialPressureValue = 0 |
|
strong |
|
strong |
| tracktion::engine::MidiList::MidiList | ( | ) |
| tracktion::engine::MidiList::MidiList | ( | const juce::ValueTree & | , |
| juce::UndoManager * | |||
| ) |
| tracktion::engine::MidiList::~MidiList | ( | ) |
|
static |
| void tracktion::engine::MidiList::copyFrom | ( | const MidiList & | , |
| juce::UndoManager * | |||
| ) |
Clears the current list and copies the others contents and properties.
| void tracktion::engine::MidiList::addFrom | ( | const MidiList & | , |
| juce::UndoManager * | |||
| ) |
Adds copies of the events in another list to this one.
| const juce::Array< MidiNote * > & tracktion::engine::MidiList::getNotes | ( | ) | const |
Referenced by getNote(), and getNumNotes().
| const juce::Array< MidiControllerEvent * > & tracktion::engine::MidiList::getControllerEvents | ( | ) | const |
Referenced by getControllerEvent(), and getNumControllerEvents().
| const juce::Array< MidiSysexEvent * > & tracktion::engine::MidiList::getSysexEvents | ( | ) | const |
Referenced by getNumSysExEvents(), getSysexEvent(), and getSysexEventUnchecked().
|
noexcept |
References state.
|
noexcept |
|
noexcept |
| MidiChannel tracktion::engine::MidiList::getMidiChannel | ( | ) | const |
Gets the list's midi channel number.
Value is 1 to 16.
Referenced by tracktion::engine::MidiClip::getMidiChannel().
| void tracktion::engine::MidiList::setMidiChannel | ( | MidiChannel | chanNum | ) |
Gives the list a channel number that it'll use when generating real midi messages.
Value is 1 to 16.
Referenced by tracktion::engine::MidiClip::setMidiChannel().
|
noexcept |
If the data was pulled from a midi file then this may have a useful name describing its purpose.
|
noexcept |
Set the imported file name if you want it to appear on the clip.
| void tracktion::engine::MidiList::setImportedFileName | ( | const juce::String & | n | ) |
|
noexcept |
References state.
| void tracktion::engine::MidiList::clear | ( | juce::UndoManager * | ) |
| void tracktion::engine::MidiList::trimOutside | ( | BeatPosition | firstBeat, |
| BeatPosition | lastBeat, | ||
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::moveAllBeatPositions | ( | BeatDuration | deltaBeats, |
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::rescale | ( | double | factor, |
| juce::UndoManager * | |||
| ) |
| int tracktion::engine::MidiList::getNumNotes | ( | ) | const |
References getNotes().
| MidiNote * tracktion::engine::MidiList::getNote | ( | int | index | ) | const |
References getNotes().
| MidiNote * tracktion::engine::MidiList::getNoteFor | ( | const juce::ValueTree & | ) |
| juce::Range< int > tracktion::engine::MidiList::getNoteNumberRange | ( | ) | const |
| BeatPosition tracktion::engine::MidiList::getFirstBeatNumber | ( | ) | const |
Beat number of first event in the list.
| BeatPosition tracktion::engine::MidiList::getLastBeatNumber | ( | ) | const |
Beat number of last event in the list.
| MidiNote * tracktion::engine::MidiList::addNote | ( | int | pitch, |
| BeatPosition | startBeat, | ||
| BeatDuration | lengthInBeats, | ||
| int | velocity, | ||
| int | colourIndex, | ||
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeNote | ( | MidiNote & | , |
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeAllNotes | ( | juce::UndoManager * | ) |
| int tracktion::engine::MidiList::getNumControllerEvents | ( | ) | const |
References getControllerEvents().
| MidiControllerEvent * tracktion::engine::MidiList::getControllerEvent | ( | int | index | ) | const |
References getControllerEvents().
| MidiControllerEvent * tracktion::engine::MidiList::getControllerEventAt | ( | BeatPosition | , |
| int | controllerType | ||
| ) | const |
| MidiControllerEvent * tracktion::engine::MidiList::addControllerEvent | ( | const MidiControllerEvent & | , |
| juce::UndoManager * | |||
| ) |
| MidiControllerEvent * tracktion::engine::MidiList::addControllerEvent | ( | BeatPosition | , |
| int | controllerType, | ||
| int | controllerValue, | ||
| juce::UndoManager * | |||
| ) |
| MidiControllerEvent * tracktion::engine::MidiList::addControllerEvent | ( | BeatPosition | , |
| int | controllerType, | ||
| int | controllerValue, | ||
| int | metadata, | ||
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeControllerEvent | ( | MidiControllerEvent & | , |
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeAllControllers | ( | juce::UndoManager * | ) |
| bool tracktion::engine::MidiList::containsController | ( | int | controllerType | ) | const |
True if there are any controller events of this type.
| void tracktion::engine::MidiList::setControllerValueAt | ( | int | controllerType, |
| BeatPosition | beatNumber, | ||
| int | newValue, | ||
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeControllersBetween | ( | int | controllerType, |
| BeatPosition | beatNumberStart, | ||
| BeatPosition | beatNumberEnd, | ||
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::insertRepeatedControllerValue | ( | int | type, |
| int | startVal, | ||
| int | endVal, | ||
| BeatRange | rangeBeats, | ||
| BeatDuration | intervalBeats, | ||
| juce::UndoManager * | |||
| ) |
Adds controller values over a specified time, at an even interval.
| int tracktion::engine::MidiList::getNumSysExEvents | ( | ) | const |
References getSysexEvents().
| MidiSysexEvent * tracktion::engine::MidiList::getSysexEvent | ( | int | index | ) | const |
References getSysexEvents().
| MidiSysexEvent * tracktion::engine::MidiList::getSysexEventUnchecked | ( | int | index | ) | const |
References getSysexEvents().
| MidiSysexEvent * tracktion::engine::MidiList::getSysexEventFor | ( | const juce::ValueTree & | ) | const |
| MidiSysexEvent & tracktion::engine::MidiList::addSysExEvent | ( | const juce::MidiMessage & | , |
| BeatPosition | , | ||
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeSysExEvent | ( | const MidiSysexEvent & | , |
| juce::UndoManager * | |||
| ) |
| void tracktion::engine::MidiList::removeAllSysexes | ( | juce::UndoManager * | ) |
| void tracktion::engine::MidiList::importMidiSequence | ( | const juce::MidiMessageSequence & | , |
| Edit * | , | ||
| TimePosition | editTimeOfListTimeZero, | ||
| juce::UndoManager * | |||
| ) |
Adds the contents of a MidiMessageSequence to this list.
If an Edit is provided, it'll be used to convert the timestamps from possible seconds to beats
| void tracktion::engine::MidiList::importFromEditTimeSequenceWithNoteExpression | ( | const juce::MidiMessageSequence & | , |
| Edit * | , | ||
| TimePosition | editTimeOfListTimeZero, | ||
| juce::UndoManager * | |||
| ) |
Adds the contents of a MidiSequence to this list assigning MPE expression changes to EXP expression.
| juce::MidiMessageSequence tracktion::engine::MidiList::exportToPlaybackMidiSequence | ( | MidiClip & | , |
| TimeBase | , | ||
| bool | generateMPE | ||
| ) | const |
Creates a juce::MidiMessageSequence from the list in order to be played back The sequence will be in terms of edit time, either in seconds or beats.
| MidiClip | The clip boundries to use and the groove template if the clip contains one |
| TimeBase | The format the exported MIDI event times will be in |
| generateMPE | Whether the sequence should create MPE or standard MIDI |
|
static |
Creates the default MIDI playback sequence.
Referenced by tracktion::engine::EngineBehaviour::createPlaybackMidiSequence().
|
static |
|
static |
|
static |
|
static |
|
static |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
| juce::ValueTree tracktion::engine::MidiList::state |
Referenced by isAttachedToClip(), and isEmpty().