One little board is the brains of just about any synth, modular starting point, noisemaker, or instrument you can dream up. Meet the Datanoise PicoADK – Raspberry Pico plus high-quality I/O and the Vult DSP language.
The hardware
Part one: build your own synth – veteran Floyd Steinberg takes a look at the cute, capable new PicoADK:
Sylwester from datanoise has brewed this PicoADK, and even with other options out there, this is an instant top choice. What’s nice about this board is how much is included in a tiny space — and how easy development can be. On just this single handheld board you get:
- High-quality sound output
- 8 analog ins (plug in your CV, audio input, or pots for control, in any combination)
- RP2040-based processing (think Raspberry Pico)
- Plug in via USB-C
- Support for Vult DSP language – filters, oscillators, synths are all easy to code
See the full specs at the PicoADK site.
The code
Part 2 of Floyd’s video: Vult DSP, what it means as a coding language, and why it lets you target everything from a Eurorack module to a Web browser:
Vult is a simple language built for being useful for just this task – making DSP code (oscillators and filters and whatnot) on embedded platforms. If the name “Vult” is familiar, yeah, this also is the basis of some of our favorite software modules for the free and open source computer modular platform VCV Rack.
The compiler makes stuff you can run on any platform as C/C++ code. Want a Pd (Pure Data) external? Done. Want it on Intel? M1 Mac? Easy. Want a VCV Rack software module? Eurorack with the PicoADK as its brains? You get the idea.
You can even make code for Teensy devices or on the Web – see examples for WebAudio:
- WebAudio https://github.com/modlfo/vult-webaudio
- PureData https://github.com/vult-dsp/vult/tree/master/examples
- Teensy Audio https://github.com/modlfo/teensy-vult-example
The compiler itself runs from the command line, or node.js, or as a browser library.
Wait, but this sounds a lot like RNBO, that new Max thing that runs on embedded and browsers!
Well yeah – exactly. This is free, and the is paid, that’s obvious. Working in Vult is different from working in Max, too; that’s also obvious. Maybe the better way to think of it is that this kind of expectation for development – flexibly targeting multiple platforms, including the Web – is the new norm. So is getting to choose what toolchain you feel most comfortable in and target multiple platforms. You also have the ability to work with others prototyping in the environment they most enjoy.
And the Web, desktop, and embedded hardware become equal partners. That means you could make a software prototype that runs in a browser with a link for folks to buy a Eurorack version of the module if they like it, and other neat solutions.
Here’s a kick drum for Eurorack, for instance:
Some other takeaways from the video, if you prefer reading to watching:
- Vult is statically typed (real, integer, string, whatever has to be declared with the variable)
- Vult works with functions
- The main loop is the process function – Arduino users, think loop()
- There are defaults for note on, note off, etc.
- Visual Studio Code is a handy dev environment (I’m using this for Processing.js and SuperCollider/Tidal and other things now, too)
- There’s a prototyping tool on the Vult DSP site
Where to get started
PicoADK is now available from a couple of resellers:
PicoADK at Tindie (note: the bump from the video + this story apparently temporarily froze the store – it’s getting resolved!)
From there, check out the hardware info, template for creating your own sound inventions, and the Vult DSP site (with its own templates, examples, and reference);
https://github.com/DatanoiseTV/PicoADK-FreeRTOS-Template
https://github.com/DatanoiseTV/PicoADK-Hardware
https://github.com/vult-dsp/vult
There’s also a Discord server you can join if you’re interested in what folks are making or if you have any questions:
It’s an exciting time again, at last, for DIY gear – like advanced digital and analog gear finally becomes punk. Watch this space.