I've been starting to think more about the JamPi as something other people might actually use, rather than a box that exists primarily to amuse me. I've also had requests to build them for other people, in exchange for payment for my time. Truthfully, I already have been thinking about making this project more accessible to people, and even setting up a Tindie store to sell a few units, so I decided it was time to do just that. I've decided "jamPi" is too generic a name, so I'm rebranding it the SquishBox, since it's a stompbox that runs FluidSynth, or maybe just because it's a software stompbox.

If I build something like this for others, I want to be able to support it. That means cleaning up all my python code and menus, and tracking down all my little config tweaks and changes, and making things much simpler and easy to troubleshoot/upgrade. This is probably the point where SquishBox stops being purely an experiment and starts becoming a product. Not a particularly commercial product - I'm still mostly making it because I want the thing - but a piece of hardware/software that has to be understandable by someone who wasn't there for all the previous years of debugging.

A fresh Raspberry Pi for the SquishBox needs to install FluidSynth, the right Python libraries, the LCD software, the audio configuration, WiFi, the web interface, and a bunch of system configuration. To make this process simpler for users (or for me to set up if I'm going to sell complete units), I'm bundling all this into an SD-card image. I've been using PiShrink to make the distributed image smaller and automatically expand on first boot, while trying to make the configuration files and documentation organized enough that somebody can understand what's going on rather than treating the SD card as a mysterious appliance.

The web interface is getting more useful. I added a file manager to upload files and manage the banks. I also added some early support for MIDI System Exclusive messages, so a patch can send particular data to a MIDI port when it was loaded. This opens up the possibility of the SquishBox controlling external hardware as well as its own synthesizer.

The openness and customizability of the SquishBox is probably the philosophy I care about most with this project. The goal isn't really to make a magic box that happens to make music. It's to make a useful little computer that happens to be packaged like an instrument - and where all the interesting bits are still there for somebody who wants to poke around inside.