In this installment of the MIDI for the Arduino Series, we will add Push Buttons to the Midi Controller we started building in the last chapter.
Before You Start
This tutorial will ONLY work with the Arduino
UNO. (Please don't ask if it will work on other Arduino models.) I am
using some direct port manipulation in the code that is currently
specific to the UNO. I'll let you know if this changes in the future.
The Software
To make things simple, I have created a plug and
play program that will allow you to customize your controller. All you
need to do is tell the software the number of controls you will be using
and how these controls should behave and the software will take care of
the details. The video explains how to configure the software for your
project.
In this installment of the MIDI for the Arduino series, we will apply the knowledge we have gained from previous chapters and begin the construction of a MIDI controller. This lesson deals specifically with potentiometers. But have no fear, we will cover buttons in the next installment.
Before You Start
This tutorial will ONLY work with the Arduino UNO. (Please don't ask if it will work on other Arduino models.) I am using some direct port manipulation in the code that is currently specific to the UNO. I'll let you know if this changes in the future.
The potentiometers I am using in the video are ALPS RK09L12D0A1W. Other types will work but they may not fit in your breadboard as nicely. You can simply solder some wires to them to make them work. Slide pots (faders) will also work if that's what you're into.
If you are planning to make a permanent version of this circuit, think about how you will mount the potentiometers and the size of knobs you will use before you buy your pots.
Buying An Arduino
As you may have heard, Arduino LLC (the company that created the brand) had a falling out with the manufacturing company that produced the original boards. There are now two entities, Arduino.cc and Arduino.org. Both make their own version of the UNO. The version produced by Adafruit for Arduino.cc is considered to be the official version. The Arduino.org board should also work (although the Arduino IDE may complain a bit when you plug it in).
The Software
To make things simple, I have created a plug and play program that will allow you to customize your controller. All you need to do is tell the software the number of controls you will be using and how these controls should behave and the software will take care of the details. The video explains how to configure the software for your project.
In this installment of the MIDI for the Arduino series, we will look at using MIDI CC messages to control our Arduino board.
Before You Start
If you are new to this series you will first need to build the MIDI Input circuit described HERE.
You will also need to install the Arduino MIDI library as described HERE.
What is MIDI CC?
The 'CC" in MIDI CC stands for Continuous Controller or Control Change. Like everything on the internet, there is much debate over the correct term. I like to think of the physical knob as a Continuous Controller and the data it produces as Control Change messages. Everybody wins!!
See The Light
To demonstrate this topic, we will build up a little LED light show that can be controlled by incoming CC data. Don't be fooled by the simplicity of this project. With the right interface circuit, you could run full size stage lighting using this concept.
Build It
Download the software HERE and upload it to your Arduino. ** NOTE - Make sure you disconnect the wires from your Arduino's RX and TX pins before you send the program. If you don't, you will get an error message and the upload will fail. **
Have you ever looked at the back pages of a synthesizer manual? It's filled with charts and tables that resemble the markings found on debris from a UFO crash site. But do not despair!
The following video will provide a crash course in Computer Science to help you take control of your Midi device. As a bonus, you can astound your band mates with your new found knowledge of Hexadecimal to Binary number conversions. Enjoy!
Ever since I posted the original Auduino Granular Synth tutorial, I have been receiving requests to modify the circuit for MIDI control.
So, after several long nights of work I am proud to present the MIDI Update for the Auduino. This update allows the Auduino to respond to MIDI Note and Pitch Bend messages from a MIDI controller. As a fun bonus, I programmed the middle potentiometer to play a Major Pentatonic scale in the key of the note currently being held on the keyboard.
Build It
Watch this Video for construction and programming details.
The Arduino MIDI Library
This update uses the Arduino MIDI Library as a foundation. You can download the MIDI Library HERE. Make sure it is installed before you attempt to compile the software.
The Software
You can download the software HERE. Open up the program in the Arduino IDE and upload it to your Auduino circuit (Video provides details). Also included is the Drill Template for installing the MIDI Jack.
DIP Switch Option
The challenge with this project was trying to make it all fit in the existing enclosure. I didn't want to over-complicate things by adding new controls. That being said, I still thought it would be important to have the ability to change the MIDI channel.
By adding a simple 4-Position DIP Switch, you can easily change the MIDI channel that the synth responds to. Once the switch is installed, the Auduino will be set to the channel as outlined in the following chart.
If you have been following this series from the beginning, hopefully you have built your own Auduino Granular Synth and enjoyed many fun filled hours making noise.
The Auduino circuit was designed to be a quick and easy project that you could slap together with a bare minimum of parts. Because of this, there are some areas of the design that have room for refinement.
The audio output of the synth comes directly from a Digital Pin on the ATMega chip and as you may know, these pins output a 5 Volt signal. Most audio amplifiers are expecting a peak-to-peak signal at a level closer to 1 Volt. This is referred to as Line Level.
The official Auduino website addresses this issue by stating "Strictly speaking, it outputs at 5V rather than the 1V line level, but most amplifiers don't seem to mind". So basically, if you are happy with the way the circuit is working, read no further and enjoy it. As for myself, being the compulsive tinkerer that I am, I wanted to see if I could make the output of the synth a little more well-behaved.
After a bit on searching, I found a filter circuit on the Munich Maker Lab page that looked promising. It is a simple circuit consisting of two capacitors and a resistor.
I built up the circuit and connected it to the output of my Auduino and was pleased when my oscilloscope showed a signal level much closer to line level. There was only one problem, the "personality" seemed to have been removed from the synth.
The original Auduino circuit has some really aggressive high end that produces some wonderfully obscene sounds when you sweep the pots in the upper registers. With the filter circuit in place, the synth was far more polite and bland.
I started modifying the circuit and found that by lowering the value of the 100nF capcitor, the high frequency magic would re-appear. After much tweaking, a 33nF cap seemed to be the sweet spot for the circuit.
In this installment of the MIDI for the Arduino series, we
are going to assemble a Midi Output Circuit and connect it to your
Arduino UNO. This circuit is as easy as it gets.
Next we'll create a simple test program that will verify that everything is working. Download the file HERE.
If you're new to this series, check out the first article where we look at how a MIDI circuit works. This will help you understand what you are building here.
I am assembling the circuit on a small
solder-less breadboard. The video will walk you through the steps of
putting it together. Take your time and double check your work. Good luck!