Every so often, someone asks if VLC could support MIDI, the de-facto industry standard for digital music instruments.
As a matter of facts, VLC already supports MIDI - to some extent.
The Standard MIDI Files (*.MID) parser plugin
was published in October 2007.
In April 2008, RIFF files (*.RMI) support was added.
That plugin was in VLC releases since version 0.9.0.
To this date (July 2009), VLC does however not support hardware MIDI inputs
neither networked MIDI over RTP.
Also, support for other file formats is missing including:
*.KAR) and*.XMI), found in many old games.I am actually looking for legal and good documentation on the XMI format (not XMF!) so that it could be added as well.
But then, VLC still needs to synthesize sound out of the MIDI events. Unfortunately, it would be rather tricky to use audio adapters synthesis, as the VLC audio mixing and output core subsystem was designed for PCM samples (with special support for SPDIF). On top of that, most modern (cheap) audio adapters lack a synthesizer anyway, e.g. AC'97 audio controllers or Intel HDA cards.
So VLC resorts to software synthesis with a sound font file
(*.SF2)
with the Fluidsynth
open-source library.
Timidity is more commonly used, but it is not available
as a C programming library out of the box.
That raises two potential problems:
If not included in your version, you may need to complain to your packager, and build VLC from source yourself. You can easily find free sound fonts websites from Google; then tell VLC where to find it from the preferences dialog (Codecs / Fluidsynth).
Now you can play MIDI files!