I purchased a USB MIDI keyboard (the Alesis Q25) for use with my musical Tesla coil, but also wanted to use it to learn to play the keyboard/piano when traveling with my laptop.
The MIDI keyboard has no synthesizer of it’s own, so you need a computer that will take the MIDI data stream and play (synthesize) the actual sounds of a piano or other instrument so that you can “hear” what you are playing.
There are many pieces of complicated software on Linux that will allow you to compose music with a MIDI keyboard, but all I wanted was the ability to hit a key on my keyboard and have it make music.
The easiest set of software I found to do this was vmpk (virtual midi piano keyboard) combined with Qsynth (a GUI interface to fluidsynth). I started up qsynth and vmpk at the same time. Then I used the “edit->connections” menu on vmpk to set my MIDI keyboard as the incomming connection, and the “FLUID Synth (Qsynth1)” as the output connection.
To set up qsynth I hit the “setup” button and then in the MIDI tab selected the “alsa_seq” as the MIDI Driver and “qsynth” as the MIDI Client Name ID (ALSA/CoreMidi).
I also enabled the soundfront from the /user/share/sounds/sf2 folder.
I don’t know why I had to use vmpk to make this linkup between the keyboard and Qsynth, but so far I haven’t found an easy way to tell Qsynth to just listen to midi events from the keyboard directly. On the plus side, you can use the virtual keyboard that vmpk displays on the screen to play notes if you don’t actually have a physical USB MIDI keyboard.