struct MidiEvent
{
uchar command;
uchar chn;
uchar note;
uchar vel;
uchar patch;
uchar ctl;
uchar d1;
uchar d2;
uchar d3;
uchar d4;
uchar d5;
uchar d6;
ulong length;
uchar *data;
// note that if a command doesn't use a variable it will contain garbage
};