ref: f2d78c632d9384ef45c7da914321f9e30f79ff67
dir: /midifile.h/
typedef struct Msg Msg; typedef struct Trk Trk; enum{ Rate = 44100, Ninst = 128 + 81-35+1, Nchan = 16, Percch = 9, }; struct Msg{ int type; int chan; int arg1; int arg2; }; // FIXME: naming // FIXME: hicucps playing when there are sysex etc events (-s) struct Trk{ u8int *s; u8int *prev; u8int *p; u8int *e; double Δ; double t; int ev; int ended; }; extern Trk *tr; enum{ Cnoteoff, Cnoteon, Cbankmsb, Cchanvol, Cpan, Cprogram, Cpitchbend, Ceot, Ctempo, Ckeyafter, Cchanafter, Csysex, Cunknown, }; extern int mfmt, ntrk, div, tempo; extern int trace, stream; void* emalloc(ulong); int readmid(char*); void dprint(char*, ...); void samp(uvlong); u32int peekvar(Trk*); u8int peekbyte(Trk*); int nextevent(Trk*); void translate(Trk*, int, Msg*); int getvar(Trk*); #pragma varargck argpos dprint 1