LibSMF is a BSD-licensed C library for handling SMF ("*.mid") files.
It transparently handles conversions between time and pulses, tempo
map handling etc. The only dependencies are C compiler and glib.
Full API documentation and examples are included.