+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;
+};