This project creates visual effects from guitar effect pedals using photoresistors to detect when the pedal is turned on.
produced by: Benjamin Sammon
My goal for this project was to develop a system that would allow me to trigger visual effects that would work with the sound of the effect coming out of several different guitar pedals.
Concept and background research
The concept behind my work was simple, to create visual effects using guitar effect pedals. I haven’t seen this done before but it is always something I have been interested in exploring. I have always been influenced by the glitchy visual aesthetics of artists like Weirdcore, Pure Honey and HelloCatFood, I wanted to create something that would be inspired by this but slightly less manic. Visually, starting off with a minimal aesthetic to allow the effects to build on each other to make more of an impact.
For this idea, I decided to use an Arduino Nano as I thought that its small size form and ability to convert analogue signals to digital would be perfect. I started out by trying to get my Arduino to communicate with OpenFrameworks using firmata, the premade Arduino sketch built to make the communication between the Arduino and third-party software easier. I trialled many different types of inputs but I couldn’t get it to work. After a bit of research, I discovered that my Arduino wasn’t compatible with firmata in OpenFrameworks so I went back to the drawing board. After thinking about how I could best make this project work I decided to try make the Arduino communicate with Max/MSP as it seemed like others have had success with this. This worked perfectly well so I then decided to work out how to send the data from Max/MSP to OpenFrameworks. I thought OSC would be a good option as it seemed really effective in sending simple data between devices so was an obvious choice. After a lot of trial and error and research, I had managed to make the Arduino communicate with OpenFrameworks.
Initially, I began to experiment with Velostat which is a conductive material used as a pressure sensor. I thought this would be the best option as I wanted to create a setup that would hide the sensors for a ‘smoke and mirrors' effect. After a lot of experimenting and using the Velostat in various ways, I realised that it wasn’t the best component for the job. The values it sent out were too unreliable for what I needed. I then decided to try and use photoresistors instead, attaching them to the LED lights on each pedal. This worked perfectly and as an extra bonus, I decided to use a delay pedal which has an LED that blinks with the tempo, so I could have tempo synced visual effects!
To begin with, I planned on using shaders but after a lot of research I came to the realisation that it would take more time than I had so I decided to get creative with my code instead. I used a lot of randomisation values to create glitchy effects similar to the influences I previously mentioned. I also used the ofxPostGlitch plugin with some pre-made shaders as I thought they worked well with the visuals.
Towards the end of the project, I decided to include a small LCD screen on my pedal board. I thought this was a nice addition as it would mean I would be able to see the visual effects happen as I press each pedal, this would be essential in a live performance situation as I wouldn't be able to see the visuals projected behind me.
While making this project I came up with a series of other ideas for creating visuals using guitar pedals. I had an idea to use a gyroscope sensor on an expression pedal which would allow me to vary the visual effect as the audio effect varies. I also had an idea for incorporating momentary foot switches to change effects and maybe incorporating synthesis or drums into that.
As mentioned in the technical I came across a lot of issues in this project, trying to use Velostat, debugging the Arduino's connectivity and delving into the world of shaders, but on the whole I was pleased with how it came out. I feel like the photoresistors work well with the LEDs. Originally my plan was to make the interaction between the pedals and visuals completely hidden but I think I’ve still managed to keep the mystery with only a little compromise. I also experienced some lag issues when running the visuals full screen along with screen recording, this could be sorted by a faster system and wasn't as bad when the screen recorder wasn't running. Finally, I think some of the visual effects I created may better suit different sounding pedals, if I was to further develop this idea I would definitely explore opening it up to a wider variety of effects pedals.
My original idea was to make a system where guitar pedals would trigger visual effects and I successfully achieved that goal. I found this project very rewarding, It has raised my confidence in my own abilities and enhanced my problem solving skills.
- 'Introduction to Open Sound Control' by Zeal - https://www.youtube.com/watch?v=bupVHvMEAz0
- 'MAX MSP 7: Sending data from Arduino into Max' by Programming for People - https://www.youtube.com/watch?v=6bT3G4Mep7E
- ofxPostGlitch by Maxilla - https://github.com/maxillacult/ofxPostGlitch
- Arduino 'AnalogReadSerial' - http://www.arduino.cc/en/Tutorial/AnalogReadSerial
- Processing 'Recursion' https://processing.org/examples/recursion.html
- 'pulsating magnetic grid' from the algorithmic thinking homework
- 'scan lines' example from class
- inspiration images below by HelloCatFood, Pure Honey and Weirdcore