libmidifile
would be cute, is any of the existing codebases flexible
enough so that it could be massaged into a nice lib?
vote++ to everything you said. dunno about any existing midi code though
flexible enough to be put into a lib.. After taking a glance at
rosegarden and muse's source it seems there's always app specifics
intertwined.
Wasn't a midi file pretty much a simple dump of midi events anyways?
SMF (Standard MIDI Files) are structured data files, derived from IFF
(Interchange Format Files), close but not fully compliant with the RIFF
format. There is also a RMID format developed by Microsoft which is a true
RIFF format and only prepends a 12 bytes header to the classic MIDs.
I agree with you on the topic of SMF import/export code in most open source
programs. My problem is that they usually mix policy and mechanism, making
hard to reuse only the mechanism (read and write MIDI files), because each
program has its own internal format (policy) to represent the music.
I like Tim Thomson's midifile library because it only provides a clean
mechanism that you can reuse together with your own policy. It's plain C code
and free:
http://thompsonresidence.com/tjt/software.html#midifile
Based on that code I wrote a SMF component for Kylix/Free Pascal, included in
this package:
http://perso.wanadoo.es/plcl/alsapas/midiobjects-0.2.tar.gz
Regards,
Pedro