Re: A simpler PortMidi-integrated MIDI file library (or: rocking the boat for fun and profit)
Roger Dannenberg <rbd@...
2011-04-16 22:34:01 GMT
Thanks for your note. I would certainly agree PortSMF is far from
simple and minimal. PortSMF underlies Audacity Note Tracks, so it has a
lot of code for editing at the track level, e.g. select, cut, copy,
paste, insert, serialize, unserialize; plus there are functions for
working in terms of both beats and seconds. Writing something that will,
say, cut from A to B, preserving the tempo track information, is
non-trivial. PortSMF also supports events as attribute/value property
lists, so it is not restricted to MIDI data. (I wouldn't want to do all
that work just for MIDI.)
In the end, however, I think you are right that the abstraction is
complicated and confusing, especially if you don't really need the
functionality or you really want the functionality and data model to be
I would not object to another MIDI representation in PortMedia. In
fact, PortSMF has a sub-layer which is a simple SMF parser based on one
by Tim Thompson. Outside of Audacity and me, I'm not sure if PortSMF has
users, and I'm not getting bug reports or fixes as contributions.
Is anyone on the list interested in Gregor's simpler midi file code
or in PortSMF?