So kann man FluidSynth gleich beim Systemstart mitstarten lassen – klappt nur wenn man Pulseaudio als Systemdienst, d.h. als system-wide-Daemon, am Laufen hat. Oder nur ALSA und gar kein Pulseaudio:
- FluidSynth installieren:
apt-get install fluidsynth
- User für FluidSynth anlegen. Der User muss in der Gruppe „audio“ sein, damit FluidSynth auf den ALSA-MIDI-Sequencer zugreifen darf:
adduser --home=/var/lib/fluidsynth --shell=/usr/sbin/nologin --ingroup audio --disabled-login --system fluidsynth
- Wenn Pulseaudio als Systemdienst läuft den User „fluidsynth“ zur Gruppe „pulse-access“ hinzufügen:
addgroup fluidsynth pulse-access
- systemd-service anlegen. Dazu folgende Datei „/etc/systemd/system/fluidsynth.service“ erstellen:
[Unit] Description=FluidSynth Daemon After=sound.target [Service] ExecStart=/usr/bin/fluidsynth -is -a $AUDIO_DRIVER $OTHER_OPTS ${SOUND_FONT} EnvironmentFile=/etc/default/fluidsynth User=fluidsynth [Install] WantedBy=multi-user.target
- In „/etc/default/fluidsynth“ Soundfont, Audiogerät und andere Optionen setzen.
- Entweder für Pulseaudio:
SOUND_FONT="/usr/share/sounds/sf2/FluidR3_GM.sf2" AUDIO_DRIVER=pulseaudio OTHER_OPTS='-m alsa_seq -r 48000 -o synth.cpu-cores=2'
- Oder für ALSA:
SOUND_FONT="/usr/share/sounds/sf2/FluidR3_GM.sf2" AUDIO_DRIVER=alsa OTHER_OPTS='-m alsa_seq -r 48000 -o synth.cpu-cores=2'
- Entweder für Pulseaudio:
- Den Fluidsynth-Service jetzt und dauerhaft einschalten:
systemctl daemon-reload systemctl enable --now fluidsynth.service
Mit aconnect -l
kann man sich die MIDI-Client- und Portnummer anzeigen lassen, über den man Fluidsynth erreicht. Hier z.B. ist FluidSynth Client Nummer 128, Port 0:
client 0: 'System' [type=Kernel] 0 'Timer ' 1 'Announce ' client 14: 'Midi Through' [type=Kernel] 0 'Midi Through Port-0' client 128: 'FLUID Synth (24787)' [type=User,pid=24787] 0 'Synth input port (24787:0)'
MIDI-Dateien kann man dann so über den FluidSynth-Service abspielen:pmidi -p 128:0 Beispielmididatei.mid
Für DOSBox werden Client und Port in „dosbox.conf“ in der Sektion „[MIDI]“ unter „midiconfig“ eingetragen, hier z.B. „midiconfig=128:0“.
Update:
Wenn man Pulseaudio ganz normal und nicht als systemweiten Dienst verwendet, dann kann man Fluidsynth als Systemd-User-Service laufen lassen. Das dazu nötige Service-File liefert Debian bereits mit.
systemctl --user enable fluidsynth