TiMidity is a program that takes a MIDI file and converts it to waveform (normal sound data), optionally in real time (great for those systems that use FM synthesis).

It uses Gravis Ultrasound MIDI patch files.

TiMidity was originally developed by Tuukka Toivonen, and versions afterwards ("TiMidity++") were developed by Masanao Izumo. TiMidity++ includes a lot of weird and wonderful hacks, like karaoke lyrics display and Emacs support (which is just another proof why Emacs is so great =)