WildMIDI

WildMIDI is a free open-source software synthesizer which converts MIDI note data into an audio signal using GUS sound patches without need for a GUS patch-compatible soundcard. WildMIDI, whose aim is to be as small as possible and easily portable, started in December 2001, can act as a virtual MIDI device, capable of receiving MIDI data from any program and transforming it into audio on-the-fly. It is the standard MIDI renderer for the GStreamer framework.

Features
WildMIDI consists of two parts, the library which other applications can link against and a command-line (CLI) player used to show off the features of the library itself.

Library features

 * RIFF MIDI file support (.RIF)
 * Playback of MIDI format 0, 1 and 2 support (.MID)
 * Playback of MIDI-likes: HMI, HMP, MUS and XMI
 * Cross Platform: Linux, Windows, OSX, *BSD, *DOS, etc.
 * Thread safe
 * PCM stream output
 * WAV file output
 * Linear and Gaussian re-sampling
 * Final output reverb engine
 * Timidity.cfg compatibility

Player features

 * OSS output on Linux/UNIX
 * ALSA output on Linux
 * WinMM output on Windows
 * OpenAL output on all supported platforms
 * Sound Blaster output under DOS
 * WAV output to filesystem

History
WildMIDI was originally conceived in December 2001 as an experiment to see if MIDI files could be played using the same samples as existing software but with less overhead. The first release of the CLI player was in 2002 and thanks to the support of the Quakeforge developers, it was later split into a library and player. In 2003, Quakeforge started using the library in their project. The first official release of WildMIDI was in 2004. After many updates, Chris Ison stopped development in February 2012 with version 0.2.3.5 and has been missing since then. WildMIDI was forked in 2013 by Bret Curtis who now maintains the project. A re-factored WildMIDI was released as version 0.3.0 in 2014. The next release, 0.4.0 was released in July 2016 which added additional functionality such as support for MIDI-like file formats, their conversions to MIDI and additional APIs.

Used in projects

 * QuakeForge
 * GStreamer
 * Qmmp
 * Music Player Daemon
 * Rosa Media Player
 * ThirdEye
 * XLEngine: DaggerXL
 * OpenTESArena