Author Topic: Doing the SoundOnSound Effect using an Arduino Teensy  (Read 2423 times)


Doing the SoundOnSound Effect using an Arduino Teensy
« on: July 18, 2018, 09:54:04 PM »
I've added some classes to my open source BAGuitar Library for performing effect parameter automation. They are called ParameterAutomation and ParameterAutomationSequence. They are used by a new effect class called AudioEffectSOS, and is showed off in my SoundOnSound Demo.

These classes allow you to automate a paramter from a start value to an end value over a specified period of time by simply 'triggering' it. You can also build up a sequence of automations for more complex behaviour.

I've added a new example to the BAGuitar library called SoundOnSOundDemo in order to show off how this can work. Sound-On-Sound is a technique where you play a chord into a long delay line (about 1.5 seconds) with about 90% feedback causing the chord to ring out for very long periods of time. You can then solo over the held chord which sounds like a synthesizer pad.

Here's how it works. The magic to making this effect is having two channels, one is your normal guitar channel, we'll call this the SOLO channel. The other parallel channel has the delayline with feedback, we'll call this the SOS channel. The output is a mix of these two channels.

1) Play and hold a chord.
2) After strumming but still holding the chord, you need to smoothly ramp the gain on the signal going INTO the delayline from 0 to 100%. This is called opening the gate.
3) Continue to hold for at least as long as the delay line (at least 1.5 seconds in this case)
4) Smoothly ramp the gain going to the delayline from 100% to 0. This is called closing the gate.

At this point you have a chord that will ring out for a very long time (much longer than 1.5 seconds) which you can solo over!

Normally, those poor bastards without a Teensy have to have a digital delay pedal, and a volume pedal in front of it to perform these steps as well as two channels on their amp. In order to keep the looping sound smooth, it's important to not open the gate until after you finish strumming, and if you open or close the gate too fast, you'll get rapid sound fluctuations in the loop that ruin the effect. It takes skill to do it consistently!

Or it takes a Teensy! The classes mentioned above let you program this sequence to control the delayline input volume, and trigger it with MIDI! The AudioEffectSOS class has pre-programmed sequences for opening the gate, as well as "cleaning it out". Sometimes you want the looping sound to stop, so you can trigger that as well.

Here's a short video of how it works. I'm using my MIDI Foot Controller to trigger the gate. The button S2 on the right opens the gate, the button S1 on the left cleans out (silences) the loop. I've also used my Teensy to add some slapback delay, reverb and a cabinet filter on my SOLO channel to make it sounds a little nicer. The audio is recorded straight out of the Teensy, no other equipment used.

You can find the new demo example here:

And a short demo video here:


P.S. I'm using the TGA Pro Teensy Audio Shield with my Teensy 3.6. You can find more info about this board here, you can't see it in the video (it's on my desk). I'm sold out of the boards right now because there are some delays in getting the next batch made due to the global shortage of capacitors but am in the process getting another batch made.
Blackaddr Audio
Digital Modelling Enthusiast


Re: Doing the SoundOnSound Effect using an Arduino Teensy
« Reply #1 on: July 19, 2018, 11:45:47 PM »
Seems similar to what the plus pedal does?
Tubes are overrated!!


Re: Doing the SoundOnSound Effect using an Arduino Teensy
« Reply #2 on: July 20, 2018, 09:36:35 AM »
Very cool, sounds really seamless!

Started messing around with a Teensy a couple weeks ago. Might try this.
{DIY blog}


Re: Doing the SoundOnSound Effect using an Arduino Teensy
« Reply #3 on: July 21, 2018, 12:15:03 AM »
Just a note, you need a Teensy with external SRAM in order to get enough delay. I'm using one of the two 1 MBit SRAMs on the  TGA Pro. My BAGuitar library is configured for the SPI pins on the TGA Pro board. You don't need that board, you either need to use the same SPI pins as that board, or you need to modify the code to use whatever you've got.

You don't need anything special to use the ParameterAutomation classes in your own effects.
Blackaddr Audio
Digital Modelling Enthusiast