ModularDataBox

    Digital and Analog

    The modular data box was originally conceived as a hybrid digital and analog computer. Being able to handle complex digital tasks, such as running low power AI models (because I could not find an economical way to fit an RTX4900 in a handluggage sized case), livecoding and visuals. The analog parts was there to keep the organic instrument feel when playing and performing, and because combining both can be a very powerfull tool that fits my way of making music. It can serve as an installation that runs interactively or autonomously (like it did for the fake news lab), and as a musical instrument (for live coding gigs)

    a solid case

    I started from an industry standard carry-on case, a pelicase 1510. The thermoplastic used in the case allowed for melting thread inserts, normally used for 3D printing application to be connected in the case itself. The mounting was not possible everywhere without damaging the case, it's very hard to get it perfectly right without using a steel mould (that would not melt away). so some room for improvement, but in general it worked ok, and if you're not afraid to damage the case here and there I can only recommend this mounting system.

    power digital and analog

    The digital part can be seen as power hungry... 6 SBCs consuming 27W at their peak, however in reality it's never more than 15W/device. Still, the power platform required for the digital part already was a challenge. RPi5s, the main SBCs used on board the case, use PD (power Delivery) over usb C as their way to get power. I considered using the GPIO +5V pins to power therm, as I woul be able to get away with a single (beefy) 5V power supply, but it is against all recommendations. Istead, I had to look to fit 6 power plugs for standard RPi5 adapters inside the case. The standard power supplies switch to 9, 12 and even 20V so I believe its a little bit more efficient, and the heat production can be kept to a minimum. Nonetheless I left some ventilation holes to the lower part of the case so the heat can get out (passively) from below the modular synth. Also in the bottom part is the -12V/+12V/+5V eurorack pwer supply. The only thing I'm missing now is the ability to only turn on/off the modular or digital part.

    digital part, the lid

    In the lid I was able to fit 6 SBCs. - 1 x RPi4, modded for analog image output - 1 x RPi4 with a PiSound for DIN midi, connected to a "large" 7 inch screen - 3 x RPi5 8Gb each time with a 3.5 inch touch screen - 1 x Orange Pi 5 Plus 16Gb with SSD, as the core of the system All but the Rpi4 systems where equipped with extra silent fans.

    eurorack part, the bottom

    Originally this was an analog computer, designed to introduce some randam analog partameters into the digital part, thus it was focussed on analog modules, lkike Joranalogue generate 3 and Morph 4 or Make Noise Maths, and some Doepfer modules. But of course, a modular system is organic, and when it's more in a live coding configuration, more digital modules take some of the precious HP. I'm a buig fan of the Ornament and Crime, and I have two of those in the system (one with the Squares and Circles Firmware and one with the Benisphere firmware), Big Genes, a ksoloti based eurorack module is incoming... (assembly planned)

    sidenote, flatphone

    One digital module, the "flatphone", falls a bitt outside of the eurorack format. It's based on a OG axoloti and serves as a looper at the moment. I need to addd some extra buttons to the device toi make it a bit more interesting as alive instrument, but as it is connected via USB-midi to the core of the box, it can also be controlled via tidalcycles. It can take a midiclock and pass that on to the modular system. The microphone can be used for voice ionput, but the feedback is horrible and basically makes the system not useable. I need to figure out another way of doing this better. The number dial system is high on my list of crazy projects. It's a spring loaded generator, that gives electric pulses when the spring is unwinding, but I'm not sure how to safely convert these to a digital signal.

    connections

    To connect all the digital systems, I added a wired switch to the bottom part, it is connected to the 12V Eurorack powersupply. The Orange Pi has 2 network ports and when the switch is not connected to an upstream DHCP server with internet, the Orange Pi can serve the local network, all I have to do is switch the cable to the other port.

    software

    The base system is Raspbian, running a series of scripts from the ModularDataBox project. The Orange Pi system runs ubuntu for rockchip and lots of tweaks. One problem I had was the VNC server. On Raspbian, VNC will happily run without a screen connected. On ubuntu, not so much. I could not find what to do to fix that, so in the end I connected a "dummy plug Headless ghost screen" connector and now VNC runs fine. The core system is a server, and distributes commands to the connected systems depending on what happens in the box. There are display agents, image generation agents, TTS agents, LLM agents, visualisation agents, ... What happens is decided on the core server, but if one box does not return an answer, it will wait for another box to complete the task (in some cases) - Visuals are run on P5live / hydra - Displays can display debugging info, like what tasks are run where, or VU meters for the supercollider channels, I'm using my own ASCII lib stardraw for this - LLM agents run text generations that are saved back into the central database (ollama on all CPUs) - ImageGen agents, well they run imagegens. (using FastSD CPU on the rockchip) - midiagents can handle incoming midi messages, mostly using python, communicating back via OSC or websockets to the server - TTS agents use coqui-TTS on RPi5 - STT agents use whisper on RPi5 - ...

    livecoding

    For me a very important use case is the live coding part of the box. The core system runs a supercollider/superdirt server that is controlled via tidalcycles. It is connected (for studio use) to a tascam 12 PRO mixer. Not sure yet how I'm patching all this for live environments. I need a travel light option as wel. I do have a 1010 bluebox as a super compact mixer, but in this larger setup, I can take loops in supercollider from the modular synth, connected to the model12 mixer.

    This brings me to a very important aspect of the setup, that took quiter some iterations to get it right. The looper and VU meters for input/output. I'm using one of the displays for that, and using supercollider senRMS to send the RMS data over OSC to one of the display agents

    The display shows the input levels for each channel of the looper, the output levels for the supercollider instance and the modular, mapped to the same fader layout as my mixer. It allows me to see before I hear what's going (wr)on(g)

    The small display on top is used for the tidal debug output. I'm using emacs as my tidalcycles client and by running the 'emacs --daemon' variant, I can connect over ssh form any other device and attach a client there to display any of the buffers.

    Same for the actual live coding window. Although small, it's big anough to get some actual live coding happening. all withou me having to pull out my laptop, as long as I bring my wireless keyboard.

    I tried other scenarios of running a remote supercolider instance and connecting straight to the superdiret from a local emacs, or using screen to connect to a remote session, but this seemed to work better.

    axoloti

    I've was an alpha tester back in the pumpkinorchestra days of axoloti and I've built it into various other projects (Trans Universal Noise Pipe, Pumpkinmaster 3000, quadaxorig, ...). Axo is my swiss army knife but I can even use it as a machete if needed. It's so powerful it deserves a nice spot in my setup. I needed to be able to directly connect to it from tidalcycles and create a ptach for it from that setup, so I had to crosscompile the pathcer. Even though Axoloti is putting on some years, it's still very good, but ruinning the old patcher is not that easy. When ksoloti came along, a much needed refresher of the software is came with it. Some parts dating from way before even considering cross compiling patches on a SBC where an option, I tried compiling the patcher for the Orange Pi 5 plus. With some help, I eventually managed, and now it is running happily!

kaotec bv
Londenstraat 40
9000 Gent
Belgium
VAT BE0784540750