Ever since I got the Seaboard Block a while back I wanted a companion “synth block” for it. Since one didn’t exist, I decided to make my own with an Axoloti board. I wanted it to serve both as a host for the Roli blocks and as an MPE synth. The video below should give a general idea of the result and what it can do.
How to make one
I’m no 3D modeller, but I found Autodesk Fusion 360 reasonably simple to work with. So I modelled the case in that, and 3D printed the top and bottom. The panel for the connections are laser cut. One could probably print the panel as well, but I liked the semi-transparent plexi since I could see the LEDs behind them.
The soldering required is pretty straight forward, so I doubt any prior soldering experience is required. The 9V power connector on the Axoloti is in the way and has to be desoldered. The rest is just connecting wires to patch points, really. Design files, a part list and other relevant information can be found in my github repository. As I’m writing this, I haven’t written detailed build instructions yet. I’ll try to get around to it, but I’m pretty sure anyone with a basic understanding of electronics will be able to figure out what goes where on their own.
How it works
The ROLI blocks communicate between themselves via “DNA connectors” spread out along the sides of the blocks. I didn’t even want to try reverse engineering how those worked. However, the blocks use bluetooth or an USB cable to talk to a host. So, one option is connecting a USB cable from one of the blocks to the USB Host post on the Axoloti. I like the wireless approach, though, so I normally use a CME Widi Bud bluetooth dongle instead.
The Widi Bud chokes on large amounts of midi data. So two-handed chords with full expression from the Seaboard will cause hanging notes. But for simpler playing it works well, with negligible latency (I measured it to be around 1/3 of the bluetooth midi latency I get from the Seaboard to my ipad). It quickly became apparent that the Widi Bud was unsuited for large amounts of Sysex data, though. So to get the blocks and Axoloti to work well together I made some simple objects for the Axoloti patching software that sends and receives midi CC values and then companion Littlefoot scripts for the blocks doing the same.
The Littlefoot scripts
The Roli blocks can be programmed using a simple scripting language. They even recently released “Blocks Code”, a dedicated editor for writing your own Littlefoot scripts. Whatever you make can then be written to flash on the units, so that it starts running when you power your block up. My scripts listen to specific midi CC values from Axoloti, typically for various settings like what midi channels to use, to toggle MPE on or off, etc. The Lightpad block scripts also displays a two digit number when it receives a specific CC.
The Littlefoot scripts also send a midi CC value to Axoloti whenever a block connects to the Axoloti host. This lets Axoloti know a new block is there so that it can respond by returning what settings are appropriate for the currently running patch.
I’ve been a fan of Axoloti since it was released, but until this project I hadn’t paid much notice to what was going on in the community. I’m amazed at all the stuff clever people have created and made available for everyone else via the community library. The amount and quality of the content means it is usually fast to go from idea to a working new patch. As for the blocks, I’ve only had my Lightpad for a couple of weeks. But it is already apparent that it is an excellent partner for the Axoloti. Since it can be used both as a display and as a multi-purpose controller, I feel this combo allows me to easily create just about anything!