One of the coolest MIDI software synthesizers is TiMidity++. On Windows, I use it for converting MIDI files to MP3s. On Linux, I use it for general software synthesis. One fun thing to try on Linux is to install VKeyBd, a program that will allow you to use your regular computer keyboard as a MIDI keyboard, and run it along with TiMidity.
First, install TiMidity++ and ensure that it’s working by testing a MIDI file with it. You also might want to install a different soundfont like Airfont 340, which is my favorite (the configuration file for it can be found somewhere on the TiMidity site). For an *buntu user, the installation of TiMidity could be as easy as sudo apt-get install timidity. Then, make sure to properly load required modules for sound server support (edit /etc/modules/ to continually do so after each reboot and modprobe them in for the current instance). The Ubuntu Documentation explains this.
VKeyBd should be installed next. For *buntu users, sudo apt-get install vkeybd should do.
Finally, download this small package that I have put together. Extract it into your home directory. This will extract two configuration files, .vkeybdrc and .vkeybdmap. .vkeybdmap is a configuration map that I like to use because it gives a 3 octave keyboard beginning with A. I started with this note because I find it to be better for minor pieces, but it shouldn’t take too long to start on another note. .vkeybdrc specifies some of the options that I like to have presented to me, including pitch controls, instrument selection, octave selection, etc. Finally, run ./midikeyboard. This script sets up the TiMidity server and connects VKeyBd to it.
If I’m bored, I like to run it and play around for a little while. I can more or less play the toccata from Bach’s Toccata and Fugue in D minor, but I can’t play it quite as quickly as I can on an actual keyboard because of the nature of a computer keyboard. Also, computer keyboards are designed to only accept a certain amount of keystrokes at once, so it’s not easy to perform all of the chords. I’ll upload a recording once I figure out how to record ALSA output (if I record with TiMidity, I can’t hear what I’m playing).


