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 a C compiler and glib. Full API documentation and examples are included.