Create a MIDI Controller from an Old RC Transmitter with Arduino
Old RC Transmitter Becomes New MIDI Controller Using Arduino
Are you a musician looking for a new and innovative way to control your sound? A creative engineer has figured out how to use an old radio-controlled car transmitter from a toy car as a MIDI controller with Arduino. With just a few simple steps and components, your old transmitter can be transformed into a new MIDI controller for music making.
Why Use An Old Transmitter As A MIDI Controller?
Using an old transmitter from a toy car as a MIDI controller provides a unique alternative to traditional MIDI controllers. While most traditional MIDI controllers are quite expensive, the parts required for this project are relatively inexpensive. And since the transmitter is already designed to be used as a handheld controller, it’s easy to use and integrate into any music-making setup.
What Parts Do You Need To Build Your Transmitter-Based MIDI Controller?
The components that you’ll need to build your own transmitter-based MIDI controller are an Arduino microcontroller, a soldering iron, a radio-controlled car transmitter, some jumper wires, and a few other basic components such as resistors and capacitors. All of these components can be easily purchased online or in stores.
How Does It Work?
Once you have all the parts, the assembly process is fairly straightforward. The Arduino microcontroller will act as the bridge between your old transmitter and your computer. The transmitter will be connected to the Arduino, and the Arduino will be connected to the computer so that it can communicate with any digital audio workstation. Once everything is connected, you can then begin programming your transmitter-based MIDI controller using the Arduino software.
Here's an example source code for converting an old RC transmitter into a new MIDI controller using Arduino. This code uses the Arduino MIDI library to send MIDI messages and the Arduino's digital input pins to read data from the RC transmitter's switches and knobs.
#include <MIDI.h>
#define CHANNEL 1
#define SWITCH1_PIN 2
#define SWITCH2_PIN 3
#define KNOB1_PIN A0
#define KNOB2_PIN A1
MIDI_CREATE_DEFAULT_INSTANCE();
void setup() {
pinMode(SWITCH1_PIN, INPUT_PULLUP);
pinMode(SWITCH2_PIN, INPUT_PULLUP);
pinMode(KNOB1_PIN, INPUT);
pinMode(KNOB2_PIN, INPUT);
MIDI.begin(CHANNEL);
}
void loop() {
int switch1Value = digitalRead(SWITCH1_PIN);
int switch2Value = digitalRead(SWITCH2_PIN);
int knob1Value = analogRead(KNOB1_PIN) / 8;
int knob2Value = analogRead(KNOB2_PIN) / 8;
MIDI.sendControlChange(1, knob1Value, CHANNEL);
MIDI.sendControlChange(2, knob2Value, CHANNEL);
if (switch1Value == LOW) {
MIDI.sendNoteOn(60, 127, CHANNEL);
} else {
MIDI.sendNoteOff(60, 0, CHANNEL);
}
if (switch2Value == LOW) {
MIDI.sendNoteOn(64, 127, CHANNEL);
} else {
MIDI.sendNoteOff(64, 0, CHANNEL);
}
delay(10);
}
In this code, the MIDI library is used to send MIDI messages over the serial port. The switches and knobs on the RC transmitter are connected to digital input pins 2 and 3 and analog input pins A0 and A1, respectively. The knob values are divided by 8 to map the 10-bit analog input range to the 7-bit MIDI control change range. The MIDI.sendControlChange() function is used to send the knob values as MIDI control change messages on channels 1 and 2.
The switch values are read using digitalRead() and are used to send MIDI note on and note off messages on channels 1 and 2 using the MIDI.sendNoteOn() and MIDI.sendNoteOff() functions, respectively.
Note that the MIDI messages sent in this example code are specific to controlling the volume and mute functions in a MIDI software program. You may need to adjust the MIDI messages sent by the code to match the specific functions you want to control in your software program.
Conclusion
Seeing what can be achieved with a little bit of engineering know-how and creativity is always inspiring. Turning an old radio controlled car transmitter into a MIDI controller is a great example of how technology can be repurposed to create something new and exciting. So if you're feeling adventurous, why not give this project a try and see what sounds you can create!