VC-1: Volume control for guitar using Arduino

As explained here, here and here, the VC-1 is a volume control for guitar (or bass) that can use a potentiometer, a variable analog signal or a Midi command to change the output volume.

VC-1-closeup

In this picture, the blue wires on the left/bottom are for the guitar input and circuit output to the amplifier. The two black round parts are the opto-isolators (LSR) and their control circuit is just above. On the right, the IC is a 6138 optocoupler wired in a standard Midi IN circuit. The picture below shows the whole arrangement.

I just assembled the first VC-1 using a Spikenzielabs Arduino shield and I mounted the components to reduce hum. I added a Midi IN circuit to the shield.

Basically, one PWM pin on the Arduino is controlling the volume. That Arduino pin supplies 0 to 5 Volts (max volume) to the control circuit. The circuit takes care of impedance matching.

Since the control circuit input needs to vary from 0 to 5 Volts, it could be connected directly to +5 volts through a potentiometer and would work the same. That could be used without an Arduino. Leaving the Arduino out will reduce parasitic noise. That little micro-controller can act as a formidable “hum” generator, and even a radio antenna! Component placement is the key here.

The advantage of using the Arduino is that it can process an incoming signal and translate it to the 0-5 V. For example, an analog pin could be used to read a sensor (flex sensor, temperature or whatever) or a potentiometer. This can be translated and calibrated for the output pin.

Another use of the Arduino is Midi. In my test setup, the Arduino receives a Midi signal (Control Change) from a slider on my keyboard and translates the Midi value to a voltage on the output pin.

VC-1-with-connections

Here’s the test code:

</p>
<p>#include</p>
<p>/*<br />
VC-1: Volume control 1<br />
Copyright Robert Turenne/PracticalUsage.com</p>
<p>This sketch will receive a midi CC to control<br />
the volume of the VC-1 by sending 0-5 Volts to pin 5,<br />
which in turn controls the volume circuit</p>
<p>This sketch is expecting an Arduino Mega 2560 board.</p>
<p>*/<br />
MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI);</p>
<p>const int volPin = 5; //the pin that will receive the control signal<br />
const int midiCC = 23; //Which MIDI Control Change to react to</p>
<p>void handleCC(byte inChannel, byte CCNumber, byte CCValue)<br />
{<br />
if (CCNumber = midiCC)<br />
{<br />
analogWrite(volPin, CCValue*2);<br />
}<br />
}</p>
<p>void setup() {</p>
<p>pinMode(volPin, OUTPUT); //use the PWM functionality of this pin<br />
analogWrite(volPin, 255); //default to maximum volume<br />
MIDI.setHandleControlChange(handleCC);<br />
MIDI.begin();<br />
}</p>
<p>void loop() {</p>
<p>MIDI.read();</p>
<p>}</p>
<p>

I tested the volume control and it is doesn’t seem to affect tone. It’s built to respect impedance. The volume circuit would prefer a low impedance input load but it worked fine with my guitar. I also tested it with a little line buffer and it was fine.

I would recommend using just the necessary wire lengths when placing the circuit in a box to prevent interference.

This entry was posted in Arduino, Electronics, Music equipment, VC-1. Bookmark the permalink.

One Response to VC-1: Volume control for guitar using Arduino

  1. Tyler says:

    Are you selling these, if so how much? Can there be a midi in and out?

Leave a Reply

Your email address will not be published. Required fields are marked *