
Had an idea after catching this post on Hack a Day, why not use the frequency level values to trip a 120 volt relay? So I ordered some parts and did it. The audio analyzing chip, the MSGEQ7, is easily accessed using DFRobot’s DFR0126, which, being in Canada, I got from RobotShop. Connecting the breakout board to an Arduino Nano was a 5 minute job, sample code and a library is linked from the DFRobot product page. I initially used a potentiometer to input the threshold levels for the relay, but then realized I could use a momentary switch to sample the desired threshold and then use that to compare the real-time input to.
The circuit is simple, when a button (momentary stomp) is depressed, and we all get depressed sometimes, the code saves the input values from the audio analyzer. There are seven frequency bands it records, but I found only three or four of them are applicable to guitar, so ignore the lowest and perhaps the highest two. After a threshold has been recorded simply check the input against the recorded levels and trip the relay (or not).
I gave the thresholds a grace of 5 (on a theoretical input range of 0-1023), I may add a pot for this adjustment as it may vary based on guitar signal types. The result is quite versatile, you could have the relay turn off a mellow light and turn on a spastic light when the signal goes loud. If you pay close enough attention to EQ bands and levels you could trigger various lights based on a variety of guitar effects. This setup would also allow, albeit in a roundabout way, you to engage a guitar effect based on the frequency band levels, as long as the effect will pass-through without power then connecting it to the relay would engage the effect — or you could redesign this circuit to route some audio signals based on the input levels.

The pedal I stomp in the video is the MP-1 fuzz from Inductor Guitars, the EQTrigger pedal is connected to the extra output on a Boss TU-2 tuner and is reacting auto-magically to the change in guitar signal when I play louder or engage the fuzz.
Parts List
- Arduino Nano (or other Arduino)
- DFRobot DFR0126
- Momentary Stomp Switch (for triggering sample record)
- Single Pull, Single Throw Latching Switch (for power on/off)
- Single Pull, Double Throw 5 volt relay
- 1/4″ mono audio jack (for audio input)
- A short extension cord to slice and connect to the relay
- LED for power indicator
- 220 ohm resistor for LED
- 10K ohm resistor for momentary switch pulldown
- 9 volt battery connector, or power adapter barrel jack
- Enclosure

Okay, so I didn’t spend a lot of time working out a clean circuit diagram — at least I didn’t use as much electrical tape in the diagram.
Arduino Code
#include <AudioAnalyzer.h>
Analyzer Audio = Analyzer(4,5,0);
int FreqVal[7];
int FreqThreshVal[7];
int switchPin = 3;
int switchValue = 0;
int relayPin = 2;
void setup()
{
pinMode(relayPin, OUTPUT);
pinMode(switchPin, INPUT);
for(int i=0;i<7;i++)
FreqThreshVal[i] = 512;
//Serial.begin(57600);
Audio.Init();
}
void loop()
{
Audio.ReadFreq(FreqVal);//return 7 value of 7 bands pass filiter
//Frequency(Hz):63 160 400 1K 2.5K 6.25K 16K
//FreqVal[]: 0 1 2 3 4 5 6
switchValue = digitalRead(switchPin);
if(switchValue == HIGH)
{
for(int i=1;i<5;i++)
{
FreqThreshVal[i] = FreqVal[i];
/*
Serial.print(max((FreqVal[i]-100),0));
if(i<6)
Serial.print(",");
else
Serial.println(" SET ");
*/
}
}
else
{
boolean thresholdMet = true;
for(int i=1;i<5;i++)
{
//Serial.print(max((FreqVal[i]-100),0));
if(FreqVal[i] < FreqThreshVal[i]-5)
thresholdMet = false;
/*
if(i<6)
Serial.print(",");
else
Serial.println(" READ ");
*/
}
if(thresholdMet == true)
{
//Serial.println(" MET ");
digitalWrite(relayPin, HIGH);
}
else
{
digitalWrite(relayPin, LOW);
}
}
}






