Universal Synthesizer Panel – Introduction

I have a number of “off the shelf” synthesizer programs and sketches kicking around that I wanted a way to actually be able to do some proper “musical” playing with them.  Having them put together on breadboard and stripboard is all very well, but sometimes I want to be able just to load up the code and see what it does.

So the idea of some kind of “universal hardware synthesizer” with general IO connections typical of synthesizers seems like a useful thing to do.

And I’ve always wanted a modular synth – something with lots of panels you can plug things into – but I’ve never really spent any significant time building modules.  So I thought I’d combine both ideas and start a kind of “semi-modular” digital synthesizer.  The idea is to have several panels, all linked using MIDI, just to be able to easily swap them in and out to see what they can do, and all housed in my recycled IKEA CD rack.

This is the first part in a series of posts describing how I’ve approached building a “universal synthesizer panel” to house a range of microcontroller synthesis projects.

  • In this part, I’ll detail the general idea and overall design of the panel.
  • In part 2 I will build the IO panel.
  • In part 3 I will build the panel IO board.
  • In part 4 I will build a microcontroller board for an Arduino Nano.
  • In part 5 I will walk through the final assembly and test code for the whole thing.
  • In part 6 I will port the Arduino Multi-pot Mozzi FM Synthesis to the panel and show it in action.

Finally, here are some versions of other projects now also using the Universal Synth Panel:

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

Principles

I want something that fulfills the following criteria:

  • Will fit on one of my “CD Rack” format panels.
  • Has a TRS MIDI IN and a stereo 3.5mm audio out.
  • Has a range of useful synth IO – I’ve chosen six pots and six switches.
  • USB powered.
  • Ability to use it with different microcontrollers.

The following are optional and may be included or may not.

  • An option for a small 128×64 OLED I2C screen.
  • An option to use the MIDI TRS connection as a MIDI OUT instead.
  • Independent power switch and LED.
  • MIDI activity LED.

Ideally, I’d also be able to program the microcontroller “in situ”.

The Physical Design

In order to support all the above, I have a “three part” design:

  • A “CD Rack Format” front panel – I’m fitting it all in an 81x250mm panel.
  • An IO board for all the panel components, including power, that I can plug different microcontrollers into.
  • A microcontroller board that routes the IO from the microcontroller’s pins to the IO board’s layout.

This is crudely illustrated below, shown from the back.

Universal Synth Panel - Concept

Parts List

  • Microcontroller – I’ve started with an Arduino Nano.
  • One 81x250mm CD Rack Format front panel with associated IO – see Part 2.
  • One IO board – see Part 3.
  • One microcontroller board – see Part 4.
  • IO Panel:
    • 4x 2kΩ resistors.
    • 7x 10kΩ potentiometers.
    • 2x LEDs (I used 1x red, 1x green).
    • 2x Resistors for the LEDs (I used 2kΩ to limit their brightness).
    • 6x spst panel-mounting toggle switches.
    • 1x 3.5mm stereo jack socket (for audio out).
    • 1x 3.5mm stereo jack socket (for MIDI in/out).
    • 1x latching power switch.
    • 1x 4-way female header (optional for I2C display).
    • 1x 0.9″ I2C 128×64 OLED SSD1306 display (optional).
  • IO Board:
    • 1x H11L1 opto-isolator.
    • 1x 1N914 diode.
    • 1x 10Ω resistor.
    • 1x 33Ω resistor.
    • 2x 150Ω resistors.
    • 3x 220Ω resistors.
    • 1x 270Ω resistor.
    • 1x 1kΩ resistor.
    • 1x 10uF non-polar capacitor.
    • 1x 68nF capacitor.
    • 1x 100nF capacitor.
    • 1x USB B socket breakout module (or alternative USB power connection).
    • 3x jumpers
  • Protoboard or stripboard of various sizes.
  • Range of male and female headers.
  • Range of hook-up wires and Dupont style connectors and wires.

For the final unit, I’ll also need:

  • Case – this is designed for my recycled IKEA CD rack.
  • USB power supply.
  • Amplification and speakers.
  • Source of MIDI information.

The Circuit

Universal Synth Panel Schematic_schem

The complete circuit is shown above.  There are the following sections:

  • Six potentiometers connected to six analog inputs.
  • Six single pole toggle switches connected to six INPUT_PULLUP digital inputs.
  • An I2C mini OLED display connected to the hardware I2C pins.
  • A low-pass filter and panning circuit connected to the PWM output for audio.
  • A MIDI IN circuit connected to RX.
  • A MIDI indicator LED connected to a digital output.

There will also be a fixed power supply via a latching power switch and indicator LED.

The pinouts for the final panel for the Arduino are shown below.

Universal Synth Panel - Arduino Pinout

Closing Thoughts

I’ll leave this here for the time being.  The follow-up posts will talk about the specifics and build of each of the sections individually and the final posts will walk through the testing and code for an Arduino Nano based module.

Kevin

Leave a comment