Version 1.2 of libsmf can be downloaded from the projects site:
http://sourceforge.net/projects/libsmf/
LibSMF is a BSD-licensed C library for handling SMF ("*.mid") files.
It transparently handles time<->pulses conversions, tempo map handling
etc. The only dependencies are C compiler and glib. API documentation
and examples are included. It was tested under Linux, FreeBSD, MacOS X
and Solaris.
Please note that, by default, libsmf is built with lots of asserts,
which make it slower; for example, inside smf_save, there is some code
that loads the newly saved file and compares it with what it was
supposed to save. If some operation takes noticeable amount of time,
try to recompile libsmf with -DNDEBUG to disable asserts.
API documentation is here:
http://libsmf.sourceforge.net/api/
SVN repository is here:
http://libsmf.svn.sourceforge.net/
Thanks to Dominic Sacré for help with testing this release.
--
If you cut off my head, what would I say? Me and my head, or me and my body?