I need to have an overriden BListItem that contains another list of events nBListItem [ BList * events // midi events in this track int # events char *name; Draw Function ] Loading/Saving should be done by modules - everyhting should be modular, ala gimp. Midi Specialist should have a very abstract idea about how to load/save a file, and use addons to do the loading saving.... Save(BList *, entry_ref *); Blist *Load(entry_ref *); where BList is a BList of BLists, where each subBList is a list of MIDI events... need to have better error codes from midi_parse... 1) It's not a midi file 2) it is, but it's truncated 3) internal errors in file format (?) HOW DO I DO PITCH BENDS????