Create, build, write, import, play MIDI by script. See full example with these scripts: More...
Public Member Functions | |
MidiFileWriter2 (int deltaTicksPerQuarterNote=240, int midiFileType=1, int bpm=120) | |
MPTKEvent | MPTK_AddBPMChange (int track, long tick, int bpm) |
MPTKEvent | MPTK_AddChangePreset (int track, long tick, int channel, int preset) |
MPTKEvent | MPTK_AddChangePresetMilli (int track, float timeToPlay, int channel, int preset) |
MPTKEvent | MPTK_AddChannelAfterTouch (int track, long tick, int channel, int afterTouchPressure) |
MPTKEvent | MPTK_AddChannelAfterTouchMilli (int track, float timeToPlay, int channel, int afterTouchPressure) |
void | MPTK_AddChordFromLib (int track, long tick, int channel, MPTKChordName chordName, MPTKChordBuilder chord) |
void | MPTK_AddChordFromScale (int track, long tick, int channel, MPTKScaleLib scale, MPTKChordBuilder chord) |
MPTKEvent | MPTK_AddControlChange (int track, long tick, int channel, MPTKController controller, int controllerValue) |
MPTKEvent | MPTK_AddControlChangeMilli (int track, float timeToPlay, int channel, MPTKController controller, int controllerValue) |
MPTKEvent | MPTK_AddNote (int track, long tick, int channel, int note, int velocity, int length) |
MPTKEvent | MPTK_AddNoteMilli (int track, float timeToPlay, int channel, int note, int velocity, float duration) |
MPTKEvent | MPTK_AddOff (int track, long tick, int channel, int note) |
MPTKEvent | MPTK_AddOffMilli (int track, float timeToPlay, int channel, int note) |
MPTKEvent | MPTK_AddPitchWheelChange (int track, long tick, int channel, float pitchWheel) |
MPTKEvent | MPTK_AddPitchWheelChangeMilli (int track, float timeToPlay, int channel, float pitchWheel) |
MPTKEvent | MPTK_AddRawEvent (MPTKEvent mptkEvent) |
MPTKEvent | MPTK_AddSilence (int track, long tick, int channel, int length) |
MPTKEvent | MPTK_AddSilenceMilli (int track, float timeToPlay, int channel, float duration) |
MPTKEvent | MPTK_AddTempoChange (int track, long tick, int microsecondsPerQuarterNote) |
MPTKEvent | MPTK_AddText (int track, long tick, MPTKMeta typeMeta, string text) |
MPTKEvent | MPTK_AddTextMilli (int track, float timeToPlay, MPTKMeta typeMeta, string text) |
MPTKEvent | MPTK_AddTimeSignature (int track, long tick, int numerator=4, int denominator=2, int ticksInMetronomeClick=24, int no32ndNotesInQuarterNote=32) |
MidiFile | MPTK_BuildNAudioMidi () |
void | MPTK_CalculateTiming (bool logPerf=false, bool logDebug=false) |
void | MPTK_Clear () |
long | MPTK_ConvertMilliToTick (float time, int indexTempo=-1) |
float | MPTK_ConvertTickToMilli (long tick, int indexTempo=-1) |
void | MPTK_CreateTrack (int count) |
Dictionary< long, MPTKStat > | MPTK_CreateTracksStat () |
Build the tracks information (MPTK_TrackStat) from the MIDI event found in MPTK_Events. MPTK_TrackStat is a dictionary with the track number as a key and the item holds some informatio about the track. More... | |
bool | MPTK_Debug () |
bool | MPTK_DebugRaw () |
void | MPTK_DeleteChannel (int channel) |
void | MPTK_DeleteTrack (int track) |
long | MPTK_DurationMilliToTick (float time) |
long | MPTK_DurationTickToMilli (long tick) |
void | MPTK_EndTrack (int trackNumber) |
bool | MPTK_ImportFromEventsList (List< MPTKEvent > midiEventsToInsert, int deltaTicksPerQuarterNote, long position=-1, string name=null, bool logPerf=false, bool logDebug=false) |
bool | MPTK_LoadFromFile (string filename) |
bool | MPTK_LoadFromMidiDB (int indexMidiDb) |
bool | MPTK_LoadFromMPTK () |
void | MPTK_LogSignMap () |
void | MPTK_LogTempoMap () |
void | MPTK_LogTrackStat () |
void | MPTK_StableSortEvents (bool logPerf=false) |
bool | MPTK_WriteToFile (string filename) |
bool | MPTK_WriteToMidiDB (string filename) |
Static Public Member Functions | |
static int | MPTK_BPM2MPQN (double bpm) |
static int | MPTK_GetMicrosecondsPerQuaterNote (int bpm) |
static double | MPTK_MPQN2BPM (int microsecondsPerQuaterNote) |
Public Attributes | |
int | MPTK_DeltaTicksPerQuarterNote |
List< MPTKEvent > | MPTK_MidiEvents |
int | MPTK_MidiFileType |
string | MPTK_MidiName |
List< MPTKSignature > | MPTK_SignMap |
List< MPTKTempo > | MPTK_TempoMap |
long | MPTK_TickLast |
Properties | |
double | Bpm [get] |
int | MPTK_CountEvent [get] |
MPTKEvent | MPTK_LastEvent [get] |
int | MPTK_MicrosecondsPerQuaterNote [get] |
int | MPTK_NumberBeatsMeasure [get, set] |
float | MPTK_PulseLenght [get] |
double | MPTK_Tempo [get] |
int | MPTK_TrackCount [get] |
Create, build, write, import, play MIDI by script. See full example with these scripts:
MidiPlayerTK.MidiFileWriter2.MidiFileWriter2 | ( | int | deltaTicksPerQuarterNote = 240 , |
int | midiFileType = 1 , |
||
int | bpm = 120 |
||
) |
Create an empty MidiFileWriter2 with default or specific header midi value (for advanced use)
Default:
deltaTicksPerQuarterNote | Delta Ticks Per Beat Note, default is 240. See MPTK_DeltaTicksPerQuarterNote. |
midiFileType | type of Midi format. Must be 0 or 1, default 1 |
bpm | Initial Beats Per Minute, default 120 |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddBPMChange | ( | int | track, |
long | tick, | ||
int | bpm | ||
) |
Add a tempo change to the midi stream. There is no channel in parameter because tempo change is applied to all tracks and channels.
Next note-on with milliseconds defined after the tempo change will take into account the new value of the BPM.
track | Track for this event (it's a good practive to use track 0 for this event) |
tick | Tick time for this event |
bpm | quarter per minute |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddChangePreset | ( | int | track, |
long | tick, | ||
int | channel, | ||
int | preset | ||
) |
Add a change preset
track | Track for this event (do not add to track 0) |
tick | Tick time for this event |
channel | Channel must be in the range 0-15 |
preset | Preset (program/patch) must be in the range 0-127 |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddChangePresetMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
int | preset | ||
) |
Add a change preset
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
preset | Preset (program/patch) must be in the range 0-127 |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddChannelAfterTouch | ( | int | track, |
long | tick, | ||
int | channel, | ||
int | afterTouchPressure | ||
) |
Add a Channel After-Touch Event
track | Track for this event (do not add to track 0) |
tick | Tick time for this event |
channel | Channel must be in the range 0-15 |
afterTouchPressure | After-touch pressure from 0 to 127 |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddChannelAfterTouchMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
int | afterTouchPressure | ||
) |
Add a Channel After-Touch Event
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
afterTouchPressure | After-touch pressure from 0 to 127 |
void MidiPlayerTK.MidiFileWriter2.MPTK_AddChordFromLib | ( | int | track, |
long | tick, | ||
int | channel, | ||
MPTKChordName | chordName, | ||
MPTKChordBuilder | chord | ||
) |
Add a chord from a library of chord
track | Track for this event (do not add to track 0) |
tick | |
channel | |
chordName | Name of the chord See MPTKChordName |
chord | See MPTKChordBuilder |
void MidiPlayerTK.MidiFileWriter2.MPTK_AddChordFromScale | ( | int | track, |
long | tick, | ||
int | channel, | ||
MPTKScaleLib | scale, | ||
MPTKChordBuilder | chord | ||
) |
Add a chord from a range
track | Track for this event (do not add to track 0) |
tick | |
channel | |
scale | See MPTKScaleLib |
chord | See MPTKChordBuilder |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddControlChange | ( | int | track, |
long | tick, | ||
int | channel, | ||
MPTKController | controller, | ||
int | controllerValue | ||
) |
Creates a general control change event (CC)
track | Track for this event (do not add to track 0) |
tick | Tick time for this event |
channel | Channel must be in the range 0-15 |
controller | The MIDI Controller. See MPTKController |
controllerValue | Controller value |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddControlChangeMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
MPTKController | controller, | ||
int | controllerValue | ||
) |
Creates a control change event
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
controller | The MIDI Controller. See MPTKController |
controllerValue | Controller value |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddNote | ( | int | track, |
long | tick, | ||
int | channel, | ||
int | note, | ||
int | velocity, | ||
int | length | ||
) |
Add a note on event at an absolute time (tick count). The corresponding Noteoff is automatically created if length > 0
If an infinite note-on is added (length < 0), don't forget to add a note-off, it will never created automatically.
track | Track for this event (do not add to track 0) |
tick | Tick time for this event |
channel | Channel must be in the range 0-15 |
note | Note must be in the range 0-127 |
velocity | Velocity must be in the range 0-127. |
length | Duration in tick. No automatic noteoff is added if duration is < 0, need to be added with MPTK_AddOff |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddNoteMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
int | note, | ||
int | velocity, | ||
float | duration | ||
) |
Add a note on event at a specific time in millisecond. The corresponding Noteoff is automatically created if duration > 0
If an infinite note-on is added (duration < 0), don't forget to add a note-off, it will never created automatically.
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
note | Note must be in the range 0-127 |
velocity | Velocity must be in the range 0-127. |
duration | Duration in millisecond. No noteoff is added if duration is < 0, need to be added with MPTK_AddOffMilli |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddOff | ( | int | track, |
long | tick, | ||
int | channel, | ||
int | note | ||
) |
Add a note off event.
Must always succeed the corresponding NoteOn, obviously on the same channel!
track | Track for this event (do not add to track 0) |
tick | Tick time for this event |
channel | Channel must be in the range 0-15 |
note | Note must be in the range 0-127 |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddOffMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
int | note | ||
) |
Add a note off event at a specific time in millisecond.
Must always succeed the corresponding NoteOn, obviously on the same channel!
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
note | Note must be in the range 0-127 |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddPitchWheelChange | ( | int | track, |
long | tick, | ||
int | channel, | ||
float | pitchWheel | ||
) |
Creates a control change event (CC) for the pitch (Pitch Wheel)
pitchWheel=
track | Track for this event (do not add to track 0) |
tick | Tick time for this event |
channel | Channel must be in the range 0-15 |
pitchWheel | Normalized Pitch Wheel Value. Range 0 to 1. V2.88.2 range normalized from 0 to 1. |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddPitchWheelChangeMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
float | pitchWheel | ||
) |
Creates a control change event (CC) for the pitch (Pitch Wheel)
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
pitchWheel | Pitch Wheel Value. 1:normal value, 0:pitch mini, 2:pitch max |
Add a MPTK Midi event from a MptkEvent instance. Useful to add a raw MIDI event.
These attributs must be defined in the MptkEvent instance:
.
mptkEvent |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddSilence | ( | int | track, |
long | tick, | ||
int | channel, | ||
int | length | ||
) |
Add a silence.
track | Track for this event (do not add to track 0) |
tick | Tick time for this event. |
channel | Channel must be in the range 0-15 |
length | Duration in tick. |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddSilenceMilli | ( | int | track, |
float | timeToPlay, | ||
int | channel, | ||
float | duration | ||
) |
Add a silence.
track | Track for this event (do not add to track 0) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
channel | Channel must be in the range 0-15 |
duration | Duration in millisecond. |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddTempoChange | ( | int | track, |
long | tick, | ||
int | microsecondsPerQuarterNote | ||
) |
Add a tempo change to the midi stream in microseconds per quarter note.
There is no channel in parameter because tempo change is applied to all tracks and channels.
Next note-on with milliseconds defined after the tempo change will take into account the new value of the BPM.
track | Track for this event (it's a good practive to use track 0 for this event) |
tick | Tick time for this event |
microsecondsPerQuarterNote | Microseconds per quarter note |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddText | ( | int | track, |
long | tick, | ||
MPTKMeta | typeMeta, | ||
string | text | ||
) |
Create a MIDI Text Event.
track | Track for this event (it's a good practice to use track 0 for this event) |
tick | Absolute time of this event |
typeMeta | MetaEvent type |
text | The text associated to this MIDI event |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddTextMilli | ( | int | track, |
float | timeToPlay, | ||
MPTKMeta | typeMeta, | ||
string | text | ||
) |
Create a MIDI Text Event.
track | Track for this event (it's a good practice to use track 0 for this event) |
timeToPlay | Time in millisecond from the start of the MIDI when playing this event. |
typeMeta | MetaEvent type |
text | The text associated to this MIDI event |
MPTKEvent MidiPlayerTK.MidiFileWriter2.MPTK_AddTimeSignature | ( | int | track, |
long | tick, | ||
int | numerator = 4 , |
||
int | denominator = 2 , |
||
int | ticksInMetronomeClick = 24 , |
||
int | no32ndNotesInQuarterNote = 32 |
||
) |
Create a new TimeSignatureEvent. This event is optionnal. Internal Midi sequencer assumes the default value is 4,2,24,32. No track nor channel as teampo change applied to the whole midi. More info here https://paxstellar.fr/2020/09/11/midi-timing/
track | Track for this event (it's a good practive to use track 0 for this event) |
tick | Time at which to create this event |
numerator | Numerator, beats per measure. Will be MPTKSignature.NumberBeatsMeasure in MPTK_SignMap |
denominator | Denominator, beat unit: 1 means 2, 2 means 4 (crochet), 3 means 8 (quaver), 4 means 16, ... |
ticksInMetronomeClick | Ticks in Metronome Click. Set to 24 for a standard value. |
no32ndNotesInQuarterNote | No of 32nd Notes in Beat Click. Set to 32 for a standard value. |
|
static |
MidiFile MidiPlayerTK.MidiFileWriter2.MPTK_BuildNAudioMidi | ( | ) |
Build a NAudio midi object from the midi events. MPTK_WriteToMidiDB and MPTK_WriteToFile call these methods just before writing the MIDI file.
void MidiPlayerTK.MidiFileWriter2.MPTK_CalculateTiming | ( | bool | logPerf = false , |
bool | logDebug = false |
||
) |
Calculate real time, measure and quarter position
logPerf | |
logDebug |
void MidiPlayerTK.MidiFileWriter2.MPTK_Clear | ( | ) |
Remove all MIDI events and restore default attributs:
long MidiPlayerTK.MidiFileWriter2.MPTK_ConvertMilliToTick | ( | float | time, |
int | indexTempo = -1 |
||
) |
Convert a time position in millisecond to an absolute tick position.
time | Time position in milliseconds |
indexTempo | Index in MPTK_TempoMap for this position. Optional, if not defined or -1, MPTK_TempoMap will be recalculated and the segment for this position will be searched |
float MidiPlayerTK.MidiFileWriter2.MPTK_ConvertTickToMilli | ( | long | tick, |
int | indexTempo = -1 |
||
) |
Convert an absolute tick position to a time in millisecond.
tick | Absolute tick position |
indexTempo | Index in MPTK_TempoMap for this position. Optional, if not defined or -1, MPTK_TempoMap will be recalculated and the segment for this position will be searched |
void MidiPlayerTK.MidiFileWriter2.MPTK_CreateTrack | ( | int | count | ) |
count | number of tracks to create |
Dictionary< long, MPTKStat > MidiPlayerTK.MidiFileWriter2.MPTK_CreateTracksStat | ( | ) |
Build the tracks information (MPTK_TrackStat) from the MIDI event found in MPTK_Events. MPTK_TrackStat is a dictionary with the track number as a key and the item holds some informatio about the track.
MaestroException |
bool MidiPlayerTK.MidiFileWriter2.MPTK_Debug | ( | ) |
Log information about the MIDI
bool MidiPlayerTK.MidiFileWriter2.MPTK_DebugRaw | ( | ) |
Log information about the MIDI
void MidiPlayerTK.MidiFileWriter2.MPTK_DeleteChannel | ( | int | channel | ) |
Delete all MIDI events on this channel
channel |
void MidiPlayerTK.MidiFileWriter2.MPTK_DeleteTrack | ( | int | track | ) |
Delete all MIDI events on this track
track |
long MidiPlayerTK.MidiFileWriter2.MPTK_DurationMilliToTick | ( | float | time | ) |
Convert the tick duration to a real time duration in millisecond regarding the current tempo.
tick | duration in ticks |
long MidiPlayerTK.MidiFileWriter2.MPTK_DurationTickToMilli | ( | long | tick | ) |
Convert the tick duration to a time duration in millisecond regarding the current tempo.
tick | duration in ticks |
void MidiPlayerTK.MidiFileWriter2.MPTK_EndTrack | ( | int | trackNumber | ) |
trackNumber | Track number to close |
|
static |
bool MidiPlayerTK.MidiFileWriter2.MPTK_ImportFromEventsList | ( | List< MPTKEvent > | midiEventsToInsert, |
int | deltaTicksPerQuarterNote, | ||
long | position = -1 , |
||
string | name = null , |
||
bool | logPerf = false , |
||
bool | logDebug = false |
||
) |
New with version V2.9.0 Import a list of MptkEvent.
Multiple imports can be done for joining MIDI events from different sources 😁.
midiEventsToInsert | List of MptkEvent to insert |
deltaTicksPerQuarterNote | It's the DTPQN of the MIDI events to insert.
|
position | tick position to insert, -1 to append, 0 at beguinning |
name | Name of the MIDI created (set MPTK_MidiName). |
logDebug | Debug log. |
bool MidiPlayerTK.MidiFileWriter2.MPTK_LoadFromFile | ( | string | filename | ) |
Load a Midi file from OS system file (could be dependant of the OS)
filename |
bool MidiPlayerTK.MidiFileWriter2.MPTK_LoadFromMidiDB | ( | int | indexMidiDb | ) |
Create a MidiFileWriter2 from a Midi found in MPTK MidiDB. All existing MIDI events before the load will be lost. If you add some MIDI events after loading, don't forget to sort the MIDI events after. See example.
indexMidiDb |
bool MidiPlayerTK.MidiFileWriter2.MPTK_LoadFromMPTK | ( | ) |
void MidiPlayerTK.MidiFileWriter2.MPTK_LogSignMap | ( | ) |
Log information about the signature map
void MidiPlayerTK.MidiFileWriter2.MPTK_LogTempoMap | ( | ) |
Log information about the tempo map
void MidiPlayerTK.MidiFileWriter2.MPTK_LogTrackStat | ( | ) |
Log information about the stat map
|
static |
void MidiPlayerTK.MidiFileWriter2.MPTK_StableSortEvents | ( | bool | logPerf = false | ) |
Sort in place events in MPTK_MidiEvents by ascending tick position. First priority is applied for 'preset change' and 'meta' event for a group of events with the same position (but 'end track' are set at end of the group.
logPerf |
bool MidiPlayerTK.MidiFileWriter2.MPTK_WriteToFile | ( | string | filename | ) |
Write Midi file to an OS folder
filename | filename of the midi file |
bool MidiPlayerTK.MidiFileWriter2.MPTK_WriteToMidiDB | ( | string | filename | ) |
Write Midi file to MidiDB.
To be used only in edit mode not in a standalone application.
A call to AssetDatabase.Refresh() must be required after the file has been added to the resource.
filename | filename of the midi file without any folder and any extension |
int MidiPlayerTK.MidiFileWriter2.MPTK_DeltaTicksPerQuarterNote |
Delta Ticks Per Beat Note (or DTPQN) represent the duration time in "ticks" which make up a quarter-note.
For example, with 96 a duration of an eighth-note in the file would be 48.
From a MIDI file, this value is found in the MIDI Header and remains constant for all the MIDI file.
More info here https://paxstellar.fr/2020/09/11/midi-timing/
List<MPTKEvent> MidiPlayerTK.MidiFileWriter2.MPTK_MidiEvents |
Get all the MIDI events created.
int MidiPlayerTK.MidiFileWriter2.MPTK_MidiFileType |
Get the MIDI file type of the loaded MIDI (0,1,2)
string MidiPlayerTK.MidiFileWriter2.MPTK_MidiName |
Name of this MIDI stream.
List<MPTKSignature> MidiPlayerTK.MidiFileWriter2.MPTK_SignMap |
List of signature changes found in MPTK_MidiEvents. Must be updated with MPTKSignature.MPTK_CalculateMap.
See example:
List<MPTKTempo> MidiPlayerTK.MidiFileWriter2.MPTK_TempoMap |
List of tempo changes found in MPTK_MidiEvents. Must be updated with MPTKTempo.MPTK_CalculateMap.
See example:
long MidiPlayerTK.MidiFileWriter2.MPTK_TickLast |
Tick position of the last MIDI event found including the duration of this event.
|
get |
|
get |
Count of MIDI events in the MPTK_Events
|
get |
Last MIDI events created.
|
get |
Get current Microseconds Per Quater Note: 60 * 1000 * 1000 https://en.wikipedia.org/wiki/Tempo
The tempo in a MIDI file is given in micro seconds per quarter beat. To convert this to BPM use method MPTK_MPQN2BPM.
This value can change during the generation when MPTK_AddTempoChange is called.
See here for more information https://paxstellar.fr/2020/09/11/midi-timing/
|
getset |
|
get |
Current lenght in millisecond of a MIDI tick (related to the current tempo).
Obviously depends on the current tempo (MPTK_Tempo) and the MPTK_DeltaTicksPerQuarterNote.
PulseLenght = 60000 / MPTK_Tempo / MPTK_DeltaTicksPerQuarterNote
|
get |
V2.9.0 - Get the current tempo. Set with MPTK_AddTempoChange.
https://en.wikipedia.org/wiki/Tempo
|
get |
Get the count of track. The value is available only when MPTK_CreateTracksStat() has been called. There no more limit of count of track with V2.9.0