The SquishBox is a MIDI sound module built around the Raspberry Pi that adds a high-quality sound card, some simple controls to change settings, a little screen to tell you what it's doing, and fits in a cool stompbox-sized case. It runs the versatile, open-source, and free FluidSynth, which lets you choose from the tons of soundfonts available on the internet, so you have access to instruments such as pianos, organs, and guitars that you can play right out of the box, but you can also create your own synths and effects that you can model and tweak. I wrote FluidPatcher, a customizable synthesizer interface, and created a series of lesson videos that teach you how to create complex performance patches that split and/or layer sounds in endless ways on your instrument's keys or controls, activate and control built-in effects, arpeggiate notes, trigger sequences, play MIDI files, send and route MIDI messages, and more. It also leverages the Pi's wifi to provide a browser-based file manager so the user can easily edit patches and upload soundfonts.
This project owes a great deal to the people who have and who continue to contribute to FluidSynth. For a specification developed in the 90s for computer game music, soundfonts are surprisingly versatile. You can use soundfont modulators to control the synthesis parameters, and FluidSynth's built-in ability to activate LADSPA effects and route audio per MIDI channel to create effects chains makes it a surprisingly capable all-around synth. What it lacks is a way to quickly change these settings during a performance, which is what the SquishBox's patch interface provides. Instead of needing multiple devices (e.g. laptop, audio interface, MIDI/USB interface) for live MIDI performance, the SquishBox combines everything into one portable, super-customizable device. The bank file format is easy to understand (lesson videos are provided), and the software also has versions for desktop systems (Windows, Mac OS, Linux) so the user can create, edit, and test new patches live.