SquishBox

Software Update/InstallDownloadsDetails

I sell on Tindie

The SquishBox is a super-customizable software synthesizer in a box. It has 4 USB ports for you to plug in MIDI keyboards/controllers or upload new sounds, stereo 1/4″ outputs to your mixer/amp/headphones, an LCD display, a rotary encoder for switching between patches and changing settings, a programmable stompbutton, and wifi for you to upload sounds and edit patches. It comes with a large selection of sounds and patches, and it allows you to create your own performances that split and/or layer sounds in unique ways on your instrument’s keys or controls, activate and control built-in effects, arpeggiate notes, trigger sequences, play MIDI files, and more.

The SquishBox is designed to be inexpensive, easy to understand and modify, but still sound great. The brain of the SquishBox is a Raspberry Pi computer with an add-on sound card for high-quality audio. The sound engine is FluidSynth, an open-source software synthesizer that uses soundfonts, a versatile and widely-available sample-based sound format that can produce instruments from growly synths to perfect pianos. The interface is FluidPatcher – code written by Geek Funk Labs that allows you to create your own patches/banks, and even change the interface. You can buy one as a kit or fully assembled on Tindie.

Software Install/Update

The software for the SquishBox is installed on Raspberry Pi OS by running a script from the command line. This downloads the code that runs the synth and a few other software dependencies, and sets up the interface to run on startup. These changes aren’t drastic – you don’t have to sacrifice your Raspberry Pi computer or buy a new one to use exclusively with the SquishBox! You can install the software on a working OS without wiping anything, and you can easily pop the Pi out of the enclosure and use it for something else as you need.

If you’re using a brand new Raspberry Pi or just want to start fresh you can get OS images and instructions on installing at raspberrypi.org/software, and information on how to set up your Pi at raspberrypi.org/documentation.

To install the software, first enable the SquishBox’s sound card by logging in and entering the command

sudo sed -i "$ a\dtoverlay=hifiberry-dac" /boot/config.txt

Reboot, and then while connected to the internet, enter the command

curl -L git.io/squishbox | bash

Just give the default answers (enclosed in square brackets) to install everything. The SquishBox can be updated using the “Update Device” option in the System Menu, or by logging in and running the install script again (this won’t overwrite your config files, banks, or soundfonts).

If you want to use the Pi for something else, you can enter

sudo systemctl disable squishbox 

at the command line to stop the synth from running on startup. To get it back again later, use

sudo systemctl enable squishbox

Downloads

Details

Schematics and a list of parts can be found in the Assembly Instructions above. The design files for the PCB can be downloaded from OSHPark. A 3D-printable enclosure can be found on Thingiverse. My project on Hackaday will show you how to build the SquishBox without the PCB, on single-sided perfboard. The source code for the SquishBox is publicly-available on GitHub, and includes a wiki explaining the API so you can modify or create your own interface.

The soundfont file format has been made publicly available, and as a result lots of software can use them and they’re widely available, both for purchase and free of charge/licensing. The quality of soundfonts available varies widely, and one person’s specific needs may differ from another’s, so I recommend searching out and trying as many as you can. The SquishBox comes with a healthy selection of free soundfonts, which you can also download in the soundfonts collection above. You can also easily modify soundfonts – not just the raw audio samples, but how they are played and even how they can be modulated by your controller – using various editors. I highly recommend Polyphone for this purpose. You can even create your own soundfonts from scratch!

The series of lesson videos below teach you how to write your own bank files and patches to get the sounds and functionality you need out of your SquishBox: