The aim of what I'd like to achieve is actually rather simple: build a digital controller module for an analogue modular synthesizer (which I am also going to build).

This post will link to articles explaining most of the things I am dealing with, I won't keep re-linking these in future posts.

In the past, this would have been achieved by using perhaps a MIDI-CV converter to convert a stream of MIDI controller data into CV voltages which plug into the synth. There's nothing inherently wrong with this approach, and it's possible now to build ultra-miniaturised and ultra-fast modules using something like an SMT PIC device. The trouble is that I quite dislike MIDI (for various reasons), and I reckon that I could actually implement something which offers much more freedom in terms of configuration and integration with other systems.

The tools which I have available to help me achieve this primarily consists of a Raspberry Pi (henceforth RPi). There are a few other pieces I'm going to bolt on or use with it:

  • Linux Operating System
  • OSC (instead of MIDI)
  • WiFi instead of cables
  • An RGB back-lit LCD screen with up/down/left/right/select buttons (specifically, this one*)
  • A multi-channel 12-bit DAC (exact spec TBC)
  • Some home-built software

(* I actually have the version designed to plug into an Arduino board, due to an online-ordering f***up but the hardware is exactly the same; besides I don't actually need or want to mount it directly on top of the RPi).

What does all this add up to then? At one end of the chain, we'll have the synth, plugged into the DAC, coupled to the RPi. The DAC output is controlled by software running on the RPi which accepts incoming OSC messages over WiFi. Those OSC messages may originate from a DAW via a VST (or similar) plugin, or from a mobile/tablet controller for live performance. The RPi in the middle will be configurable (to some degree) using it's built-in screen, but I would also like to include some other remote-control facilities on the PC/tablet side.

I've already got quite a lot of the platform and hardware hooked up on the RPi side, and there's plenty I can already write about that. None of the DAC/synth or PC/plugin sides exists yet.

Finally... why? Well, why not. I think this project covers a huge range of subjects from pure analogue electronics, digital electronics, OS/platform configuration and use, embedded systems, software, networking protocols, software design and debugging of all the above. Overall, I simply hope to build up and maintain my skills in each of those areas.