Playmidi
Play midi files via external midi devices or soft synth.
...All recent development has moved to https://github.com/nlaredo/playmidi
It supports software rendering of midi files via SDL audio and can also output midi events to external midi devices (in time with SDL audio soft synth) via both alsa sequencer api (linux) and coremidi api (osx).
Math-based synthesis (when no sf2 is loaded and no external midi output is set) is planned to evolve over time to support most of the features found in a minimoog voyager, and wavetable based sf2 support is expected to evolve to properly emulate all the features of a roland sc88 (but not there yet).
Not all sf2 files are yet fully supported, but currently most development in the git tree has happened with one you can find via google search called Scc1t2.sf2. ...