Introduction: DIY Synth + MIDI Controller

About: Technology Will Save Us is a haberdashery for making technology in everyday life. We design, manufacture and sell DIY technology Kits and run workshops to help people become makers and creators of technology, …

Want to be able to control your DIY Synth with MIDI ?

Play it with a keyboard or sequence it in your favourite Audio editing software?

Step 1: What You Need

Hardware

  • 1x DIY Synth Kit
  • 1x Arduino Uno
  • 1x Usb Cable
  • 1x 10k Resistor
  • 1x 0.1uF Capacitor (polyester, ceramic, tantalum etc)
  • 5x Jumper Wires

Software

  • Hairless Midi program (for windows or osx)
  • Digital Audio Workstation (Ableton/ Logic/ Cubase/ etc)
  • USB Midi Keyboard (optional)

Step 2: Download Software

Download Hairless midi from their website. This is how our Digital Audio Workstation will be able to communicate with our Arduino. This is because this software cleverly converts Midi messages (what the DAW uses) into Serial communication (what the Arduino uses).

Now, got to preferences and make sure the setting are the same as pictured, making sure the baud rate is set to 115200 .

the Serial -> Midi Bridge should be not selected at this point.

Step 3: Set Up Midi Bridge

Now we need to set up our Midi bridge between Hairless Midi and your Digital Audio Workstation

On OS X

You may need to enable the “IAC” virtual MIDI port. This makes a “channel” that can join the two together:

Open the OS X built-in “Audio MIDI Setup” application (under Applications->Utilities.)

Choose “Show MIDI Window” from the Window menu.

Double-click the “IAC Driver” in the MIDI window.

Check the “Device is online” box in the dialog that appears.

Go back to Hairless MIDI<->Serial and there should be a new “IAC Bus” option in the dropdown.

The other MIDI program should also see the IAC bus option.…

On Windows

You need to create a loopMIDI virtual port (there’s a link under System Requirements) to create a “channel” that joins the two together.

After installing loopMIDI, launch it and click the ”+” button to create a new virtual MIDI port with the specified name.

Both Hairless Bridge and your Audio program should then connect to this port.

Step 4: Upload Arduino Program

Download the Arduino program from here and upload it to your Arduino.

Make sure that Hairless Midi Serial bridge is not connected or the Arduino IDE will not be able to comminicate to your Arduino Uno.

The code uses the TimerOne library. Downloaded from here . This needs to be placed in the Arduino Library folder in Documents > Arduino > Libraries as pictured

Step 5: Hardware

The hardware is pretty simple. It uses a 1st Order low pass filter to smooth the PWM signal out to become an analog voltage. (See picture 1 & 2 for before RC Filter and After RC Filter).

This added to your synth (Dub Siren, Stutter or Atari) will make it controllable by your DAW.

The RC Filter (Resistor + Capacitor Filter) is connected to pin 9 of the Arduino, and pin 11 of the 556 timer (synth).

Pin 5 of the Arduino is connected to pin 3 of the 556 timer (synth)

5v Pin of Arduino is connected to Red Power Rail and Ground to The Blue rail. This means we do not need a 9v to power our synth, as the Arduino will power it!

Step 6: Get Playing!

Turn Hairless midi Serial -> Midi bridge On.

Open your Digital Audio Workstation (Ableton, Logic, Cubase, etc)

Create an external Midi track

Select your Midi bridge as Midi Output

Make sure the Midi Bridge is selected as Midi in on Hairless Midi

Input Notes and you should see the Pin 13 Led on the Arduino blink and your Synth bleep

Step 7: Further

You may notice that the notes aren't tuned to a midi keyboards notes.

Timer1.pwm(PWMDAC1pin,(abs)((int)noteByte*8-1023));

By changing the values in this line will change the output. Have a play!

Also, connecting the RC filter to different pins of the 556 timer will control different things!