Tuesday 7 March 2023

A Scalable Multiplexer for Eurorack

I've been playing with the electronic synthesis and manipulation of sound - mainly in the context of Eurorack Modular Synths - over the past few months.

Whilst it is relatively easy to set up systems which make slowly evolving 'sound environments' (let's not tempt fate by using the grand label 'generative music'), it is harder to make wholesale change within these experiments. But change is fundamentally important in music.

In fact, musical styles are marked or defined by changes between different 'phases':

Songs can have verses, choruses, bridges, 'pre-choruses', etc.. Sonatas have an exposition a development and a recapitulation. Rondos have ABACA or ABACABA...

You get the idea.

I dreamed of a system which would allow me to switch between a number of discrete 'phases' within a composition (/"patch") on a synthesiser. The system would need to make a parallel switch of a number of audio signals, control voltages, trigger and timing signals. 

The result of this dream was a scalable 4:1 multiplexer system, the design of which I've just published.

The system comprises: 

  • a 'master' module, which provides two channels of 4:1 multiplexing and a controller, and 
  • a 'slave' module, which adds another two channels of 4:1 multiplexing under the control of the master. 

The master can control several slaves, each of which connect to the master on a 'daisy-chain' ribbon connector.

The four inputs to one of the multiplexer channels in each module (master or slave) are "normalled" to four potentiometers [that is synthesiser-speak for "if you don't plug anything into these sockets, the voltage from the potentiometers will be applied to these inputs"].  This allows the system to generate sequences of control voltages, set up locally on the potentiometers. 

The system is the first pair of Eurorack modules in which I have used surface mount components, which was helpful in achieving the component density on the PCBs. These were already busy with the sockets and user interface components, particularly on the 'master' module. The rear of the (prototype) systems are seen below.

Readers will recognise from the image above that the control functions are implemented in an Arduino Nano, which was chosen for convenience. 

The prototype PCBs and panels were made by JLCPCB (usual disclaimer).

Details of the system, including schematics, PCB layouts (EAGLE), front panel designs (Kicad) and controller code, as well as more description of features of the controller and user interface, are available here.

The system attenuates the input signals before passing them through the (4052) multiplexer and then amplifies the output to restore signal level. It can handle bipolar signals to full Eurorack level. I avoided the requirement for 0.1% resistors by measuring and selecting from a hundred 1% resistors, itself an interesting exercise:

You can see the bins of this physical histogram and the rather predictable distribution of the sample of one hundred 1206 resistors.  

I hope somebody out there finds this system of interest. It works like a charm and is great fun to 'play' with.


No comments:

Post a Comment