X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmidi.h;fp=src%2Fmidi.h;h=96fefa8dd267a76eb3d59500e8e2422af0d933ea;hb=2359103e0277dd92b7e93c4afeb1e22537e21d48;hp=4ad08a48cf635b4271d5720d4954988b9df7975a;hpb=613c5581edee6684543d853d8e88045fb15410f5;p=midifile diff --git a/src/midi.h b/src/midi.h index 4ad08a4..96fefa8 100644 --- a/src/midi.h +++ b/src/midi.h @@ -3,9 +3,27 @@ #include -struct midi; -struct midi_track; -struct midi_event; +struct midi { + int bpm; + + int num_tracks; + struct midi_track *tracks; +}; + +struct midi_track { + char *name; + struct midi_event *head, *tail; + int num_ev; +}; + +struct midi_event { + long dt; + int type; + int channel; + int arg[2]; + + struct midi_event *next; +}; #define MIDI_NOTE_OFF 8 #define MIDI_NOTE_ON 9 @@ -15,6 +33,9 @@ struct midi_event; #define MIDI_CHAN_AFTERTOUCH 13 #define MIDI_PITCH_BEND 14 +#define MIDI_NOTE_NUM(ev) ((ev)->arg[0]) +#define MIDI_NOTE_VEL(ev) ((ev)->arg[1]) + #ifdef __cplusplus extern "C" { #endif