fluidsynth
Plays MIDI files using SoundFont synthesizers
TLDR
Play a MIDI file
Specify the audio driver
Display help
SYNOPSIS
fluidsynth [-options] [[sf2file]] [[midifile]]
PARAMETERS
-h, --help
Show summary of options
-V, --version
Show version information
-a drv, --audio-driver=dry
Audio driver (alsa, pulseaudio, jack, oss, coreaudio, dsound, wasapi, file)
-m drv, --midi-driver=dry
MIDI driver (alsa_seq, winmidi)
-o name=value
Set any parameter (e.g., synth.sample-rate=48000, synth.reverb.enable=yes)
-j, --jack
Connect to JACK MIDI and audio (implies -m jack -a jack)
-l, --load-config
Load ~/.fluidsynthrc config file
-r n, --sample-rate=n
Set sample rate (default 48000)
-g f, --gain=f
Set global gain (0.0-10.0, default 0.2)
-c n, --chorus-channels=n
Chorus channels (1-99, default 3)
-R, --no-shell
Disable interactive shell
-F file, --record=file
Record audio to WAV file
-T, --text-mode
MIDI player text output
--server
Run as standalone server
-i, --no-midi-alsa
Don't open ALSA sequencer client
-n, --no-audio
No audio driver (shell only)
-p port, --port=port
Listen on TCP port for connections
DESCRIPTION
FluidSynth is a real-time software synthesizer based on the SoundFont 2 (SF2/SF3) specifications and Audio Synthesis API. It renders MIDI input data to audio output using SoundFont-compatible sample-based instruments, supporting multi-timbral playback with up to 256 channels.
Primarily a command-line tool, it reads MIDI events from files, ALSA sequencer ports, or stdin, and outputs audio via drivers like ALSA, PulseAudio, JACK, or OSS. It features an interactive shell for runtime control (e.g., loading patches, adjusting volume, routing MIDI), LADSPA effects support, and server mode for networked MIDI synthesis.
Ideal for embedded systems, headless servers, or scripting, FluidSynth offers low-latency synthesis without hardware synths. It processes polyphony efficiently on modern CPUs but may require tuning for high channel counts. Configuration via ~/.fluidsynthrc or command-line options enables customization of sample rates, reverb/chorus, and drivers. Widely used in Linux audio workflows for playback, live performance, and as a backend for apps like Qsynth or Rosegarden.
CAVEATS
High CPU usage with dense polyphony; requires SoundFont files (e.g., FluidR3_GM.sf2); no built-in GUIāuse Qsynth; ALSA latency tunable via ~./asoundrc; server mode insecure without firewall.
INTERACTIVE SHELL
Enter shell with fluidsynth; commands: help, load path/to/sf2, inst 0 12 (program change), vol 0 127, quit.
EXAMPLE USAGE
fluidsynth -a alsa -m alsa_seq ~/soundfonts/FluidR3_GM.sf2 song.mid
fluidsynth --server -a jack -m jack (server mode).
HISTORY
Developed by Josh Green in 1999 as a ZynAddSubFX component, FluidSynth became standalone in 2000. Version 1.0 released 2004; 2.0 (2015) added 24-bit/64-bit support, threaded synthesis. Maintained by Werner Schweer et al., now at v2.3+ with AVB, plugin support. Key in open-source audio since LinuxSampler era.


