Skip to content
A headless Raspberry Pi soft synth with web-controlled patches
Branch: master
Clone or download
MarquisdeGeek Initial release
Latest commit 185b0c5 Aug 18, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Initial release Aug 18, 2018
server Initial release Aug 18, 2018
synth Initial release Aug 18, 2018
LICENSE Initial commit Aug 18, 2018 Initial release Aug 18, 2018


A headless Raspberry Pi synth with web-controlled patches


I have several Raspberry Pi's that are not earning their keep, so I decided to buy some SD cards and turn them into permanently-configured embedded devices. The first one is this - a synth!

It uses SF2 soundfont files to generate the noises, and is controlled by a USB MIDI controller.

It uses a web server in bash (really!) to control the sounds remote, so it can be run headless.


There are several moving parts here:

The guide with which I started was at

I use this as a base, with all the code in /home/synth but run by the root user on boot-up. This isn't recommended (especially since it runs the web server as root) but it gets the job done, on a local network.

Copy all the SF2 soundfont files you have into /home/synth/sf2, as this where the webserver will scan.

There maybe some other steps which I've forgotten.


On boot-up the device:

  • Loads the FluidSynth software
  • Opens a session on port 9987 into which you can telnet, to control FluidSynth
  • Opens a web server on port 9988 to change SF2 files
  • Connects a MIDI keyboard input device (ID 128), to the FluidSynth output device (ID 20)
  • Plays some notes to let you know it's ready


Inspiration: FluidSynthh: Service scripts: (not used) bashhttpd:

You can’t perform that action at this time.