For my little synth module project I created the following systemd unit file /etc/systemd/system/zynaddsubfx.service that starts up a ZynAddSubFX proces at boot time:
[Unit] Description=ZynAddSubFX [Service] Type=forking User=zynaddsubfx Group=zynaddsubfx ExecStart=/usr/local/bin/zynaddsubfx-mpk ExecStop=/usr/bin/killall zynaddsubfx [Install] WantedBy=local-fs.target
/usr/local/bin/zynaddsubfx-mpk is a simple script that starts ZynAddSubFX and connects my Akai MPK:
#!/bin/bash zynaddsubfx -r 48000 -b 64 -I alsa -O alsa -P 7777 -L /usr/share/zynaddsubfx/banks/SynthPiano/0040-BinaryPiano2.xiz & while ! aconnect 'MPK mini' 'ZynAddSubFX' do sleep 0.1 done /usr/local/bin/zynpi.py
/usr/local/bin/zynpi.py in its turn is a small Python script that shows a message and a red LED on a 16×2 LCD display so that I know the synth module is ready to use:
#!/usr/bin/python
# Example using a character LCD plate.
import math
import time
import Adafruit_CharLCD as LCD
# Initialize the LCD using the pins
lcd = LCD.Adafruit_CharLCDPlate()
# Show some basic colors.
lcd.set_color(1.0, 0.0, 0.0)
lcd.clear()
lcd.message('Raspberry Pi 2\nZynAddSubFX')
The LCD is not an Adafruit one though but a cheaper version I found on Dealextreme. It works fine though with the Adafruit LCD Python library. Next step is to figure out if I can use the buttons on the LCD board to change banks and presets.

