Introduction: DIY Synth + MIDI Controller
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!