I recently purchased a M-Audio Keystation Pro-88 MIDI keyboard, so I could continue playing the piano while I am at uni. I got the keyboard working well under Windows using Reason and Reason Pianos – but being a Linux geek I couldn’t be booting into Windows every day just to play. Wine isn’t an option, sound work is intensive and I didn’t want to rely on Windows emulation. There must be a way to do this without Windows emulation and still get decent results.
After only an hour or so Googling and setting things up, my keyboard was up and running in Linux, and here’s how I did it.
Install and setup JACK
You’re going to need a decent sound server for audio work. When it comes to Linux, JACK is the only option. I used these instructions to get a JACK server up and running in no time at all. http://en.gentoo-wiki.com/wiki/JACK
Install snd_usb_audio kernel module
You will need the snd_usb_audio kernel module. This can be found:
Device Drivers --->
[*] USB sound devices --->
Install qjackctl and qsynth
qjackctl is the tool you will be using to start/stop JACK and setup the correct connections.
qsynth is a soundfont reader which will turn your MIDI input into a piano.
You can use JACK via command line and avoid using qjackctl. This is preferred but is more complicated and beyond the scope of this article. Maybe another time.
emerge -a qjackctl qsynth
Get the Acoustic Grand Piano soundfont
This can be found here: http://zenvoid.org/audio.html
Start qjackctl and qsynth
Do this however you want.
Start JACK sound server
ALSA will need to be free for this, so close Firefox and killall mpd. (mpd can use JACK, so can mplayer. Firefox can’t!)
Load the soundfont into qsynth, and using the qjackctl connections dialog connect the MIDI keyboard to qsynth, under the “ALSA” tab.
Let me know if you find any more decent free Piano soundfonts.