FluidSynth is a real-time software synthesizer based on the SoundFont 2 specifications.
The first step is to install FluidSynth itself. It can be installed via pacman from the extra repository:
# pacman -S fluidsynth
However, fluidsynth will not produce any sound yet. This is because fluidsynth does not include any instrument samples. To produce sound, instrument patches and/or soundfonts need to be installed and fluidsynth configured so it knows where to find them. You can install Soundfont sample.
How to use fluidsynth
There are two ways to use fluidsynth. Either as MIDI player or as daemon adding MIDI support to ALSA.
You can simply use fluidsynth to play MIDI files:
$ fluidsynth -a alsa -m alsa_seq -l -i /usr/share/soundfonts/fluidr3/FluidR3GM.SF2 example.midi
Assuming than you installed fluidr3.
There are many other options to fluidsynth; see manpage or use -h to get help.
Alsa daemon mode
If you want fluidsynth to run as ALSA daemon, edit /etc/config.d/fluidsynth and modify FSYNTH_SOUNDFONT with de sound sample you want to use, for fluidr3:
After that, you can start fluidsynth with:
# /etc/rc.d/fluidsynth start
If you want to have permanent MIDI support, add timidity to your daemon list in /etc/rc.conf:
DAEMONS=(... fluidsynth ...)
This will give you an output software MIDI port (in addition of hardware MIDI ports on your system, if any):
$ aconnect -o client 128: 'FLUID Synth (5117)' [type=user] 0 'Synth input port (5117:0)'
An example of usage for this is aplaymidi:
aplaymidi -p128:0 example.midi
How to convert MIDI to OGG
# fluidsynth -nli -r 48000 -o synth.cpu-cores=2 -F /dev/shm/midi_temp.raw /usr/share/soundfonts/fluidr3/FluidR3GM.SF2 example.MID # oggenc -r -B 16 -C 2 -R 48000 /dev/shm/midi_temp.raw -o example.ogg