I posted an entry about using Gentoo with a MIDI keyboard. In this post I used GUI apps to run jackd and fluidsynth… here is how to do it without these pesky GUI apps.
Follow the other post’s instructions for installing and setting up JACK and the snd_usb_audio kernel module. There is no need to install qjackctl or qsynth! I am using the init script on the Gentoo wiki to start JACK (here), as well as some other configurations to use JACK for all other sound (which I have posted here).
Now you have JACK started without qjackctl, it’s time to start Fluidsynth and connect everything together.
First start Fluidsynth with this command:
fluidsynth -a jack -g 1 -j ~/path/to/soundfont.sf2
“-a jack” makes fluidsynth use JACK.
“-g 1″ sets the gain to 1. This’ll boost the volume a bit. Play around, you may not need it. On my system it’s very quiet without this option set!
“-j” will automatically connect fluidsynth and JACK together.
Your soundfont will be loaded. Pay attention to any warnings about sample rates mismatching, this will cause tuning issues!
And finally we must connect your keyboard to fluidsynth. We will use ‘aconnect’, which comes with ALSA.
First get a list of all your input ports.
$ aconnect -i -l client 0: 'System' [type=kernel] 0 'Timer ' 1 'Announce ' Connecting To: 15:0 client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 20: 'Keystation Pro 88' [type=kernel] 0 'Keystation Pro 88 MIDI 1' 1 'Keystation Pro 88 MIDI 2' $
And a list of all your outputs.
$ aconnect -o -l client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 20: 'Keystation Pro 88' [type=kernel] 0 'Keystation Pro 88 MIDI 1' client 128: 'FLUID Synth (22449)' [type=user] 0 'Synth input port (22449:0)' $
We can see our keyboard input on port 20 and fluidsynth output on port 128, so we connect them together using the command
$ aconnect 20 128
And we’re done! Enjoy.