Setup I2C:
sudo raspi-config
- Go to Interfacing Options
- Select P5 1SC "Enable/Disable automatic loading of I2C kernel module"
- Select "Yes" when prompted "Would you like the ARM I2C interface to be enabled?"
- Reboot
Install App:
curl -L https://tinyurl.com/kfluidpather | bash
A Python interface for the FluidSynth software synthesizer that lets you create performance patches you can easily switch between while playing. Patches are described in human-readable and -editable bank files, and can be used to create complex combinations of instruments, effects, rules for routing messages from the controls on your MIDI device, play MIDI files, and create sequencers and arpeggiators. Fluidsynth is an open source software synthesizer that uses soundfonts - a freely-available and well-documented sound format.
FluidPatcher should work on any platform where FluidSynth and Python can be installed. The patcher/ directory contains all the code to interpret bank files and control FluidSynth, and can be used to create your own interfaces/implementations so your bank files can be portable and useful in different contexts (e.g. performing, editing, recording). Several implementations are included:
- squishbox.py - runs the SquishBox, a Raspberry Pi synth with a 16x2 character LCD and couple of buttons and/or a rotary encoder in a guitar pedal, designed by Geek Funk Labs
- headlesspi.py - runs on a Pi with no screen, keyboard, or extras and allows you to change patches and banks using pads/knobs on your MIDI keyboard/controller
- fluidpatcher.pyw - a cross-platform wxpython-based GUI that allows live editing of bank files in addition to playing patches and browsing/playing soundfont presets
Check the wiki for more information about using the scripts, bank/config file formats, the API, etc.
Requires Python 3. Installation of FluidSynth and needed Python modules varies a bit by system.
The squishbox-install.bash script will install the required software and some optional extras. It can also be used to update the software without altering your banks/settings. You can download and run the script from a command line by entering
curl -L https://tinyurl.com/kfluidpather | bash
Run the setup program in the latest release of FluidPatcher.
sudo apt install fluidsynth fluid-soundfont-gm ladspa-sdk python3-pip python3-wxgtk4.0
sudo pip3 install oyaml
wget -O - https://github.com/albedozero/fluidpatcher/tarball/master | tar -xzm --strip-components=1
ln -s /usr/share/sounds/sf2/FluidR3_GM.sf2 SquishBox/sf2/
gcc -shared assets/patchcord.c -o patchcord.so && sudo mv -f patchcord.so /usr/lib/ladspa/
brew install fluidsynth fluid-soundfont-gm ladspa-sdk python3-pip
sudo pip3 install oyaml wxpython
wget -O - https://github.com/albedozero/fluidpatcher/tarball/master | tar -xzm --strip-components=1
ln -s /usr/share/sounds/sf2/FluidR3_GM.sf2 SquishBox/sf2/
gcc -shared assets/patchcord.c -o patchcord.so && sudo mv -f patchcord.so /usr/lib/ladspa/
* The package repositories on these systems may not provide the latest version of FluidSynth. If you want newer features, it can be compiled from source.
Bank files are stored in the SquishBox/banks directory. The example bank file includes comments to help explain the format and highlight some of the capabilities of patches. Soundfonts are stored in SquishBox/sf2. A few sample fonts are provided, and many more can be found on the internet or created/edited/tweaked with software such as Polyphone. Details on setting up/using the included scripts can be found in programs.md.