TiMidity++ is a software synthesizer. It can play MIDI files by converting them into PCM waveform data; give it a MIDI data along with digital instrument data files, then it synthesizes them in real-time, and plays. It can not only play sounds, but also can save the generated waveforms into hard disks as various audio file formats. You can easily convert midi files to formats such as wave or flac. It can also display Karaoke midi lyrics. It can show which keys are playing via graphical piano keyboard display. Provides support for midi playback through software for computer systems that may not have midi hardware support. Also plays MOD files.
If you're using the Karaoke midi features to display lyrics, the xaw3d version has the best support for lyrics timing. If you're building from scratch or your distribution has built Timidity++ for you, make sure you are working with the latest patches from cvs if you want proper lyrics display (and many other fixes). The tarball at the Sourceforge site hasn't been updated since 2004. However, cvs is being actively updated. There is an updated cvs version pre-built for Windows at Sourceforge.
If you need FLOSS licensed instrument sounds for use with Timidity, check out the FreePats project and their soundfonts at http://freepats.zenvoid.org/. Most Linux and BSD distributions offer a FreePats package with some of their sounds (soundsfonts and gus patches).
If you need help setting up the soundfonts configuration files, see http://ocmnet.com/saxguru/Timidity.htm. This is basically a site for Windows users, but many of the techniques are useable cross-platform. The soundfont configurator at that site can be used for POSIX compliant systems as well. Just change the directory paths to suite your operating system.
Operating system: Windows, Linux, BSD, Mac OSX, (an older version works on DOS or FreeDOS)
Screen Libraries (one or more of the following): ncurses or pdcurses, Xaw3D, GTK+, VT100, Tcl/Tk, S-Lang