31#ifndef _UGBASIC_LIBS_MIDI_H
32#define _UGBASIC_LIBS_MIDI_H
291#define MIDI_WHEEL_CENTRE 8192
293#define MIDI_CHANNEL_1 1
294#define MIDI_CHANNEL_2 2
295#define MIDI_CHANNEL_3 3
296#define MIDI_CHANNEL_4 4
297#define MIDI_CHANNEL_5 5
298#define MIDI_CHANNEL_6 6
299#define MIDI_CHANNEL_7 7
300#define MIDI_CHANNEL_8 8
301#define MIDI_CHANNEL_9 9
302#define MIDI_CHANNEL_10 10
303#define MIDI_CHANNEL_11 11
304#define MIDI_CHANNEL_12 12
305#define MIDI_CHANNEL_13 13
306#define MIDI_CHANNEL_14 14
307#define MIDI_CHANNEL_15 15
308#define MIDI_CHANNEL_16 16
310#define MIDI_CHANNEL_DRUMS 10
312#define MIDI_OCTAVE 12
314#define MIDI_NOTE_MIDDLE_C MIDI_NOTE_C5
317#define MIDI_NOTE_C_SHARP 1
318#define MIDI_NOTE_C_FLAT -11
320#define MIDI_NOTE_D_SHARP 3
321#define MIDI_NOTE_D_FLAT 1
323#define MIDI_NOTE_E_SHARP 5
324#define MIDI_NOTE_E_FLAT 3
326#define MIDI_NOTE_F_SHARP 6
327#define MIDI_NOTE_F_FLAT 5
329#define MIDI_NOTE_G_SHARP 8
330#define MIDI_NOTE_G_FLAT 6
332#define MIDI_NOTE_A_SHARP 10
333#define MIDI_NOTE_A_FLAT 8
334#define MIDI_NOTE_B 11
335#define MIDI_NOTE_B_SHARP 12
336#define MIDI_NOTE_B_FLAT 10
338#define MIDI_NOTE_C0 0
339#define MIDI_NOTE_C1 12
340#define MIDI_NOTE_C2 24
341#define MIDI_NOTE_C3 36
342#define MIDI_NOTE_C4 48
343#define MIDI_NOTE_C5 60
344#define MIDI_NOTE_C6 72
345#define MIDI_NOTE_C7 84
346#define MIDI_NOTE_C8 96
347#define MIDI_NOTE_C9 108
348#define MIDI_NOTE_C10 120
350#define MIDI_OCTAVE_0 MIDI_NOTE_C0
351#define MIDI_OCTAVE_1 MIDI_NOTE_C1
352#define MIDI_OCTAVE_2 MIDI_NOTE_C2
353#define MIDI_OCTAVE_3 MIDI_NOTE_C3
354#define MIDI_OCTAVE_4 MIDI_NOTE_C4
355#define MIDI_OCTAVE_5 MIDI_NOTE_C5
356#define MIDI_OCTAVE_6 MIDI_NOTE_C6
357#define MIDI_OCTAVE_7 MIDI_NOTE_C7
358#define MIDI_OCTAVE_8 MIDI_NOTE_C8
359#define MIDI_OCTAVE_9 MIDI_NOTE_C9
360#define MIDI_OCTAVE_10 MIDI_NOTE_C10
362#define MIDI_DURATION_BREVE 1536
363#define MIDI_DURATION_MINIM 768
364#define MIDI_DURATION_CROCHET 384
365#define MIDI_DURATION_QUAVER 192
366#define MIDI_DURATION_SEMIQUAVER 96
367#define MIDI_DURATION_SEMIDEMIQUAVER 48
369#define MIDI_DURATION_DOTTED_MINIM (768+384)
370#define MIDI_DURATION_DOTTED_CROCHET (384+192)
371#define MIDI_DURATION_DOTTED_QUAVER (192+96)
372#define MIDI_DURATION_DOTTED_SEMIQUAVER (96+48)
373#define MIDI_DURATION_DOTTED_SEMIDEMIQUAVER (48+24)
375#define MIDI_DURATION_TRIPLE_CROCHET 256
377#define MIDI_VOL_FULL 127
378#define MIDI_VOL_HALF 64
379#define MIDI_VOL_OFF 0
381#define MIDI_INSTRUMENT_ACOUSTIC_GRAND_PIANO 0
382#define MIDI_INSTRUMENT_BRIGHT_ACOUSTIC_PIANO 1
383#define MIDI_INSTRUMENT_ELECTRIC_GRAND_PIANO 2
384#define MIDI_INSTRUMENT_HONKY_TONK_PIANO 3
385#define MIDI_INSTRUMENT_ELECTRIC_PIANO_1 4
386#define MIDI_INSTRUMENT_ELECTRIC_PIANO_2 5
387#define MIDI_INSTRUMENT_HARPSICHORD 6
388#define MIDI_INSTRUMENT_CLAVI 7
389#define MIDI_INSTRUMENT_CELESTA 8
390#define MIDI_INSTRUMENT_GLOCKENSPIEL 9
391#define MIDI_INSTRUMENT_MUSIC_BOX 10
392#define MIDI_INSTRUMENT_VIBRAPHONE 11
393#define MIDI_INSTRUMENT_MARIMBA 12
394#define MIDI_INSTRUMENT_XYLOPHONE 13
395#define MIDI_INSTRUMENT_TUBULAR_BELLS 14
396#define MIDI_INSTRUMENT_DULCIMER 15
397#define MIDI_INSTRUMENT_DRAWBAR_ORGAN 16
398#define MIDI_INSTRUMENT_PERCUSSIVE_ORGAN 17
399#define MIDI_INSTRUMENT_ROCK_ORGAN 18
400#define MIDI_INSTRUMENT_CHURCH_ORGAN 19
401#define MIDI_INSTRUMENT_REED_ORGAN 20
402#define MIDI_INSTRUMENT_ACCORDION 21
403#define MIDI_INSTRUMENT_HARMONICA 22
404#define MIDI_INSTRUMENT_TANGO_ACCORDION 23
405#define MIDI_INSTRUMENT_ACOUSTIC_GUITAR_NYLON 24
406#define MIDI_INSTRUMENT_ACOUSTIC_GUITAR_STEEL 25
407#define MIDI_INSTRUMENT_ELECTRIC_GUITAR_JAZZ 26
408#define MIDI_INSTRUMENT_ELECTRIC_GUITAR_CLEAN 27
409#define MIDI_INSTRUMENT_ELECTRIC_GUITAR_MUTED 28
410#define MIDI_INSTRUMENT_OVERDRIVEN_GUITAR 29
411#define MIDI_INSTRUMENT_DISTORTION_GUITAR 30
412#define MIDI_INSTRUMENT_GUITAR_HARMONICS 31
413#define MIDI_INSTRUMENT_ACOUSTIC_BASS 32
414#define MIDI_INSTRUMENT_ELECTRIC_BASS_FINGER 33
415#define MIDI_INSTRUMENT_ELECTRIC_BASS_PICK 34
416#define MIDI_INSTRUMENT_FRETLESS_BASS 35
417#define MIDI_INSTRUMENT_SLAP_BASS_1 36
418#define MIDI_INSTRUMENT_SLAP_BASS_2 37
419#define MIDI_INSTRUMENT_SYNTH_BASS_1 38
420#define MIDI_INSTRUMENT_SYNTH_BASS_2 39
421#define MIDI_INSTRUMENT_VIOLIN 40
422#define MIDI_INSTRUMENT_VIOLA 41
423#define MIDI_INSTRUMENT_CELLO 42
424#define MIDI_INSTRUMENT_CONTRABASS 43
425#define MIDI_INSTRUMENT_TREMOLO_STRINGS 44
426#define MIDI_INSTRUMENT_PIZZICATO_STRINGS 45
427#define MIDI_INSTRUMENT_ORCHESTRAL_HARP 46
428#define MIDI_INSTRUMENT_TIMPANI 47
429#define MIDI_INSTRUMENT_STRING_ENSEMBLE_1 48
430#define MIDI_INSTRUMENT_STRING_ENSEMBLE_2 49
431#define MIDI_INSTRUMENT_SYNTHSTRINGS_1 50
432#define MIDI_INSTRUMENT_SYNTHSTRINGS_2 51
433#define MIDI_INSTRUMENT_CHOIR_AAHS 52
434#define MIDI_INSTRUMENT_VOICE_OOHS 53
435#define MIDI_INSTRUMENT_SYNTH_VOICE 54
436#define MIDI_INSTRUMENT_ORCHESTRA_HIT 55
437#define MIDI_INSTRUMENT_TRUMPET 56
438#define MIDI_INSTRUMENT_TROMBONE 57
439#define MIDI_INSTRUMENT_TUBA 58
440#define MIDI_INSTRUMENT_MUTED_TRUMPET 59
441#define MIDI_INSTRUMENT_FRENCH_HORN 60
442#define MIDI_INSTRUMENT_BRASS_SECTION 61
443#define MIDI_INSTRUMENT_SYNTHBRASS_1 62
444#define MIDI_INSTRUMENT_SYNTHBRASS_2 63
445#define MIDI_INSTRUMENT_SOPRANO_SAX 64
446#define MIDI_INSTRUMENT_ALTO_SAX 65
447#define MIDI_INSTRUMENT_TENOR_SAX 66
448#define MIDI_INSTRUMENT_BARITONE_SAX 67
449#define MIDI_INSTRUMENT_OBOE 68
450#define MIDI_INSTRUMENT_ENGLISH_HORN 69
451#define MIDI_INSTRUMENT_BASSOON 70
452#define MIDI_INSTRUMENT_CLARINET 71
453#define MIDI_INSTRUMENT_PICCOLO 72
454#define MIDI_INSTRUMENT_FLUTE 73
455#define MIDI_INSTRUMENT_RECORDER 74
456#define MIDI_INSTRUMENT_PAN_FLUTE 75
457#define MIDI_INSTRUMENT_BLOWN_BOTTLE 76
458#define MIDI_INSTRUMENT_SHAKUHACHI 77
459#define MIDI_INSTRUMENT_WHISTLE 78
460#define MIDI_INSTRUMENT_OCARINA 79
461#define MIDI_INSTRUMENT_LEAD_1_SQUARE 80
462#define MIDI_INSTRUMENT_LEAD_2_SAWTOOTH 81
463#define MIDI_INSTRUMENT_LEAD_3_CALLIOPE 82
464#define MIDI_INSTRUMENT_LEAD_4_CHIFF 83
465#define MIDI_INSTRUMENT_LEAD_5_CHARANG 84
466#define MIDI_INSTRUMENT_LEAD_6_VOICE 85
467#define MIDI_INSTRUMENT_LEAD_7_FIFTHS 86
468#define MIDI_INSTRUMENT_LEAD_8_BASS_AND_LEAD 87
469#define MIDI_INSTRUMENT_PAD_1_NEW_AGE 88
470#define MIDI_INSTRUMENT_PAD_2_WARM 89
471#define MIDI_INSTRUMENT_PAD_3_POLYSYNTH 90
472#define MIDI_INSTRUMENT_PAD_4_CHOIR 91
473#define MIDI_INSTRUMENT_PAD_5_BOWED 92
474#define MIDI_INSTRUMENT_PAD_6_METALLIC 93
475#define MIDI_INSTRUMENT_PAD_7_HALO 94
476#define MIDI_INSTRUMENT_PAD_8_SWEEP 95
477#define MIDI_INSTRUMENT_FX_1_RAIN 96
478#define MIDI_INSTRUMENT_FX_2_SOUNDTRACK 97
479#define MIDI_INSTRUMENT_FX_3_CRYSTAL 98
480#define MIDI_INSTRUMENT_FX_4_ATMOSPHERE 99
481#define MIDI_INSTRUMENT_FX_5_BRIGHTNESS 100
482#define MIDI_INSTRUMENT_FX_6_GOBLINS 101
483#define MIDI_INSTRUMENT_FX_7_ECHOES 102
484#define MIDI_INSTRUMENT_FX_8_SCIFI 103
485#define MIDI_INSTRUMENT_SITAR 104
486#define MIDI_INSTRUMENT_BANJO 105
487#define MIDI_INSTRUMENT_SHAMISEN 106
488#define MIDI_INSTRUMENT_KOTO 107
489#define MIDI_INSTRUMENT_KALIMBA 108
490#define MIDI_INSTRUMENT_BAG_PIPE 109
491#define MIDI_INSTRUMENT_FIDDLE 110
492#define MIDI_INSTRUMENT_SHANAI 111
493#define MIDI_INSTRUMENT_TINKLE_BELL 112
494#define MIDI_INSTRUMENT_AGOGO 113
495#define MIDI_INSTRUMENT_STEEL_DRUMS 114
496#define MIDI_INSTRUMENT_WOODBLOCK 115
497#define MIDI_INSTRUMENT_TAIKO_DRUM 116
498#define MIDI_INSTRUMENT_MELODIC_TOM 117
499#define MIDI_INSTRUMENT_SYNTH_DRUM 118
500#define MIDI_INSTRUMENT_REVERSE_CYMBAL 119
501#define MIDI_INSTRUMENT_GUITAR_FRET NOISE 120
502#define MIDI_INSTRUMENT_BREATH_NOISE 121
503#define MIDI_INSTRUMENT_SEASHORE 122
504#define MIDI_INSTRUMENT_BIRD_TWEET 123
505#define MIDI_INSTRUMENT_TELEPHONE_RING 124
506#define MIDI_INSTRUMENT_HELICOPTER 125
507#define MIDI_INSTRUMENT_APPLAUSE 126
508#define MIDI_INSTRUMENT_GUNSHOT 127
510#define MIDI_INSTRUMENT_DRUM_ACOUSTIC_BASS_DRUM 35
511#define MIDI_INSTRUMENT_DRUM_BASS_DRUM 36
512#define MIDI_INSTRUMENT_DRUM_SIDE_STICK 37
513#define MIDI_INSTRUMENT_DRUM_ACOUSTIC_SNARE 38
514#define MIDI_INSTRUMENT_DRUM_HAND_CLAP 39
515#define MIDI_INSTRUMENT_DRUM_ELECTRIC_SNARE 40
516#define MIDI_INSTRUMENT_DRUM_LOW_FLOOR_TOM 41
517#define MIDI_INSTRUMENT_DRUM_CLOSED_HI_HAT 42
518#define MIDI_INSTRUMENT_DRUM_HIGH_FLOOR_TOM 43
519#define MIDI_INSTRUMENT_DRUM_PEDAL_HI_HAT 44
520#define MIDI_INSTRUMENT_DRUM_LOW_TOM 45
521#define MIDI_INSTRUMENT_DRUM_OPEN_HI_HAT 46
522#define MIDI_INSTRUMENT_DRUM_LOW_MID_TOM 47
523#define MIDI_INSTRUMENT_DRUM_HI_MID_TOM 48
524#define MIDI_INSTRUMENT_DRUM_CRASH_CYMBAL_1 49
525#define MIDI_INSTRUMENT_DRUM_HIGH_TOM 50
526#define MIDI_INSTRUMENT_DRUM_RIDE_CYMBAL_1 51
527#define MIDI_INSTRUMENT_DRUM_CHINESE_CYMBAL 52
528#define MIDI_INSTRUMENT_DRUM_RIDE_BELL 53
529#define MIDI_INSTRUMENT_DRUM_TAMBOURINE 54
530#define MIDI_INSTRUMENT_DRUM_SPLASH_CYMBAL 55
531#define MIDI_INSTRUMENT_DRUM_COWBELL 56
532#define MIDI_INSTRUMENT_DRUM_CRASH_CYMBAL_2 57
533#define MIDI_INSTRUMENT_DRUM_VIBRA_SLAP 58
534#define MIDI_INSTRUMENT_DRUM_RIDE_CYMBAL_2 59
535#define MIDI_INSTRUMENT_DRUM_HI_BONGO 60
536#define MIDI_INSTRUMENT_DRUM_LOW_BONGO 61
537#define MIDI_INSTRUMENT_DRUM_MUTE_HI_CONGA 62
538#define MIDI_INSTRUMENT_DRUM_OPEN_HI_CONGA 63
539#define MIDI_INSTRUMENT_DRUM_LOW_CONGA 64
540#define MIDI_INSTRUMENT_DRUM_HIGH_TIMBALE 65
541#define MIDI_INSTRUMENT_DRUM_LOW_TIMBALE 66
542#define MIDI_INSTRUMENT_DRUM_HIGH_AGOGO 67
543#define MIDI_INSTRUMENT_DRUM_LOW_AGOGO 68
544#define MIDI_INSTRUMENT_DRUM_CABASA 69
545#define MIDI_INSTRUMENT_DRUM_MARACAS 70
546#define MIDI_INSTRUMENT_DRUM_SHORT_WHISTLE 71
547#define MIDI_INSTRUMENT_DRUM_LONG_WHISTLE 72
548#define MIDI_INSTRUMENT_DRUM_SHORT_GUIRO 73
549#define MIDI_INSTRUMENT_DRUM_LONG_GUIRO 74
550#define MIDI_INSTRUMENT_DRUM_CLAVES 75
551#define MIDI_INSTRUMENT_DRUM_HI_WOOD_BLOCK 76
552#define MIDI_INSTRUMENT_DRUM_LOW_WOOD_BLOCK 77
553#define MIDI_INSTRUMENT_DRUM_MUTE_CUICA 78
554#define MIDI_INSTRUMENT_DRUM_OPEN_CUICA 79
555#define MIDI_INSTRUMENT_DRUM_MUTE_TRIANGLE 80
556#define MIDI_INSTRUMENT_DRUM_OPEN_TRIANGLE 81
558#define CHORD_ROOT_MASK 0x000000ff
559#define CHORD_TYPE_MASK 0x0000ff00
560#define CHORD_BASS_MASK 0x00ff0000
561#define CHORD_ADDITION_MASK 0xff000000
563#define CHORD_TYPE_MAJOR 0x00000100
564#define CHORD_TYPE_MINOR 0x00000200
565#define CHORD_TYPE_AUG 0x00000300
566#define CHORD_TYPE_DIM 0x00000400
568#define CHORD_ADD_7TH 0x01000000
569#define CHORD_ADD_9TH 0x02000000
570#define CHORD_ADD_MAJ7TH 0x04000000
583int muGuessChord(
const int *pNoteStatus,
const int channel,
const int lowRange,
const int highRange);
596#define MIDI_PPQN_DEFAULT 384
597#define MIDI_VERSION_DEFAULT 1
599#define MAX_MIDI_TRACKS 256
600#define MAX_TRACK_POLYPHONY 64
716int midiTrackAddNote(
MidiFile *pMF,
int iTrack,
int iNote,
int iLength,
int iVol,
int bAutoInc,
int bOverrideLength);
enum _MidiMetaInfo MidiMetaInfo
float muGetFreqFromNote(int iNote)
int muGetMetaName(char *pName, MidiMetaInfo iEvent)
int midiReadGetNextMessage(const MidiFile *pMF, int iTrack, MidiMessagePayload *pMsg)
int midiTrackAddControlChange(MidiFile *pMF, int iTrack, MidiControlCommand iCCType, int iParam)
int muGetMIDIMsgName(char *pName, MidiMessage iMsg)
int midiSongAddKeySig(MidiFile *pMF, int iTrack, MidiNote iKey)
int midiTrackAddRest(MidiFile *pMF, int iTrack, int iLength, int bOverridePPQN)
int midiTrackSetKeyPressure(MidiFile *pMF, int iTrack, int iNote, int iAftertouch)
enum _MidiRealTime MidiRealTime
int midiTrackGetEndPos(MidiFile *pMF, int iTrack)
int midiTrackAddNote(MidiFile *pMF, int iTrack, int iNote, int iLength, int iVol, int bAutoInc, int bOverrideLength)
int muGetKeySigName(char *pName, MidiNote iKey)
int muGetNoteFromName(const char *pName)
int midiSongAddSimpleTimeSig(MidiFile *pMF, int iTrack, int iNom, int iDenom)
int muGuessChord(const int *pNoteStatus, const int channel, const int lowRange, const int highRange)
int midiFileGetVersion(const MidiFile *pMF)
@ systemCommandUndefinedF5
@ systemCommandTuneRequest
@ systemCommandSongPosition
@ systemCommandUndefinedF1
@ systemCommandSongSelect
@ systemCommandUndefinedF4
int midiSongAddMIDIPort(MidiFile *pMF, int iTrack, int iPort)
struct _MidiMessagePayload MidiMessagePayload
int midiFileFlushTrack(MidiFile *pMF, int iTrack, int bFlushToEnd, DWORD dwEndTimePos)
MidiFile * midiFileOpen(const char *pFilename)
int muGetNoteFromFreq(float fFreq)
enum _MidiMessage MidiMessage
int midiSongAddTempo(MidiFile *pMF, int iTrack, int iTempo)
int muGetControlName(char *pName, MidiControlCommand iCC)
char * muGetChordName(char *str, int chord)
int midiTrackAddRaw(MidiFile *pMF, int iTrack, int iDataSize, const BYTE *pData, int bMovePtr, int iDeltaTime)
void midiReadInitMessage(MidiMessagePayload *pMsg)
int midiFileSetTracksDefaultChannel(MidiFile *pMF, int iTrack, int iChannel)
int midiTrackAddText(MidiFile *pMF, int iTrack, MidiTextInfo iType, const char *pTxt)
int midiTrackSetPitchWheel(MidiFile *pMF, int iTrack, int iWheelPos)
int midiFileSetPPQN(MidiFile *pMF, int PPQN)
int midiFileGetPPQN(const MidiFile *pMF)
int midiFileClose(MidiFile *pMF)
int muGetInstrumentName(char *pName, int iInstr)
enum _ControlCommand MidiControlCommand
enum _MidiSystemCommand MidiSystemCommand
MidiFile * midiFileCreate(const char *pFilename, int bOverwriteIfExists)
int midiFileSyncTracks(MidiFile *pMF, int iTrack1, int iTrack2)
char * muGetNameFromNote(char *pStr, int iNote)
int midiSongAddSMPTEOffset(MidiFile *pMF, int iTrack, int iHours, int iMins, int iSecs, int iFrames, int iFFrames)
int midiFileGetTracksDefaultChannel(const MidiFile *pMF, int iTrack)
int muGetTextName(char *pName, MidiTextInfo iEvent)
int midiFileSetVersion(MidiFile *pMF, int iVersion)
int midiTrackAddMsg(MidiFile *pMF, int iTrack, MidiMessage iMsg, int iParam1, int iParam2)
int midiTrackAddProgramChange(MidiFile *pMF, int iTrack, int iInstrPatch)
int midiReadGetNumTracks(const MidiFile *pMF)
int midiTrackChangeKeyPressure(MidiFile *pMF, int iTrack, int iDeltaPressure)
enum _MidiSystemExclusive MidiSystemExclusive
enum _MidiTextInfo MidiTextInfo
int midiSongAddEndSequence(MidiFile *pMF, int iTrack)
void midiReadFreeMessage(MidiMessagePayload *pMsg)
int midiSongAddTimeSig(MidiFile *pMF, int iTrack, int iNom, int iDenom, int iClockInMetroTick, int iNotated32nds)
@ metaInfoSequencerSpecific
@ controlCommandFootControlLSB
@ controlCommandExpression
@ controlCommandUndefined117
@ controlCommandUndefined14
@ controlCommandSoundController5
@ controlCommandLegatoFootSwitch
@ controlCommandUndefined26
@ controlCommandLocalControl
@ controlCommandUndefined85
@ controlCommandUndefined27
@ controlCommandUndefined47
@ controlCommandAllSoundOff
@ controlCommandPedalSoft
@ controlCommandUndefined114
@ controlCommandUndefined25
@ controlCommandUndefined119
@ controlCommandBrightness
@ controlCommandUndefined112
@ controlCommandModulationLSB
@ controlCommandDetuneDepth
@ controlCommandSoundController7
@ controlCommandUndefined22
@ controlCommandBreathControlLSB
@ controlCommandEffect3Depth
@ controlCommandUndefined61
@ controlCommandUndefined113
@ controlCommandGeneralPurpose3
@ controlCommandUndefined88
@ controlCommandNonRegParamLSB
@ controlCommandEffect2Depth
@ controlCommandBankSelect
@ controlCommandUndefined103
@ controlCommandUndefined108
@ controlCommandPedalSustenuto
@ controlCommandPortamentoTimeLSB
@ controlCommandSoundController3
@ controlCommandModulation
@ controlCommandBalanceLSB
@ controlCommandDateEntry
@ controlCommandUndefined59
@ controlCommandUndefined111
@ controlCommandEffect5Depth
@ controlCommandUndefined110
@ controlCommandUndefined9
@ controlCommandUndefined3
@ controlCommandSpecialFX
@ controlCommandUndefined35
@ controlCommandDateEntryLSB
@ controlCommandUndefined46
@ controlCommandGeneralPurpose8
@ controlCommandUndefined23
@ controlCommandAttackTime
@ controlCommandUndefined60
@ controlCommandTremeloDepth
@ controlCommandBreathControl
@ controlCommandCelestaDepth
@ controlCommandSoundController1
@ controlCommandUndefined115
@ controlCommandSoundController9
@ controlCommandUndefined105
@ controlCommandPhaserDepth
@ controlCommandEffectControl1LSB
@ controlCommandGeneralPurpose3LSB
@ controlCommandBankSelectLSB
@ controlCommandUndefined41
@ controlCommandUndefined118
@ controlCommandUndefined56
@ controlCommandUndefined109
@ controlCommandEffectControl1
@ controlCommandUndefined63
@ controlCommandGeneralPurpose1LSB
@ controlCommandResetAllControllers
@ controlCommandUndefined29
@ controlCommandUndefined28
@ controlCommandVolumeLSB
@ controlCommandUndefined53
@ controlCommandUndefined89
@ controlCommandGeneralPurpose2LSB
@ controlCommandEffectControl2LSB
@ controlCommandSoundController2
@ controlCommandSoundController8
@ controlCommandUndefined21
@ controlCommandGeneralPurpose7
@ controlCommandUndefined55
@ controlCommandSoundController10
@ controlCommandGeneralPurpose4LSB
@ controlCommandUndefined116
@ controlCommandMonoModeOn
@ controlCommandUndefined57
@ controlCommandUndefined30
@ controlCommandUndefined102
@ controlCommandUndefined20
@ controlCommandUndefined107
@ controlCommandPolyModeOn
@ controlCommandUndefined58
@ controlCommandPortamento
@ controlCommandUndefined31
@ controlCommandRegParamMSB
@ controlCommandUndefined24
@ controlCommandFootControl
@ controlCommandNonRefParamMSB
@ controlCommandUndefined106
@ controlCommandGeneralPurpose6
@ controlCommandGeneralPurpose1
@ controlCommandEffect4Depth
@ controlCommandOmniModeOff
@ controlCommandSoundController4
@ controlCommandPortamentoControl
@ controlCommandEffect1Depth
@ controlCommandSoundVariation
@ controlCommandGeneralPurpose5
@ controlCommandUndefined15
@ controlCommandRegParamLSB
@ controlCommandUndefined90
@ controlCommandPitchTranspose
@ controlCommandUndefined87
@ controlCommandUndefined54
@ controlCommandUndefined86
@ controlCommandAllNotesOff
@ controlCommandUndefined52
@ controlCommandSustainPedal
@ controlCommandEffectControl2
@ controlCommandUndefined104
@ controlCommandGeneralPurpose4
@ controlCommandPortamentoTime
@ controlCommandGeneralPurpose2
@ controlCommandSoundController6
@ controlCommandReleaseTime
@ controlCommandOmniModeOn
@ controlCommandUndefined62
@ controlCommandExpressionLSB
@ controlCommandHarmContent
@ controlCommandChorusDepth
int midiTrackIncTime(MidiFile *pMF, int iTrack, int iDeltaTime, int bOverridePPQN)
int muGetDrumName(char *pName, int iInstr)
MidiControlCommand iControl
union _MidiMessagePayload::_MsgData MsgData
struct _MidiMessagePayload::_MsgData::_NoteOff NoteOff
struct _MidiMessagePayload::_MsgData::_SysEx SysEx
struct _MidiMessagePayload::_MsgData::_NoteParameter NoteParameter
struct _MidiMessagePayload::_MsgData::_MetaEvent MetaEvent
struct _MidiMessagePayload::_MsgData::_NoteKeyPressure NoteKeyPressure
struct _MidiMessagePayload::_MsgData::_PitchWheel PitchWheel
struct _MidiMessagePayload::_MsgData::_ChangeProgram ChangeProgram
struct _MidiMessagePayload::_MsgData::_ChangePressure ChangePressure
struct _MidiMessagePayload::_MsgData::_NoteOn NoteOn