Autotune pedal feedback loop

Hi there,

After listening to Lucier’s I am sitting in a room, I wanted to do the same thing using this auto-tune pedal I have. I wanted to recursively playback and record a song through this pedal a few times to hear the auto-tune degradation. So I wrote a quick little python script to control my audio interface, and play and record a few times. It uses PortAudio (SoudDevice), SciPy, and NumPy. The song I chose was “Sam and Dave – Hold on, I’m coming” at around 45 seconds.

Here is a link to the youtube video:

https://www.youtube.com/watch?v=AREppyQf5uw

The auto-tune pedal I used was a TC Helicon VoiceTone Synth. They call it “Hard Tune” and not auto-tune (I think Antares has the copyright over the word auto-tune). The “Uni” setting is the classic auto-tune, turned to 10. All of the other filters aren’t active.

Here is a picture of the pedal:

Voicetone Synth

The Python script then controls my audio interface, which plays the audio back, and records it. The interface I am using is a Fire Studio project, but Port Audio works with any I/O device.

Here is a picture of the signal flow: (PS, don’t mind the dust, I haven’t been around all summer)

Voice Tone signal flow

So the audio file I uploaded is the first 7 iterations going through the pedal, then the last clip is after 50 iterations. Also, I used a -1 dB limiter, but I’m not sure how SoundCloud normalizes the audio.

Here is the audio file:

https://soundcloud.com/user-333984151/feedback

So, as you can hear, the signal degrades really quickly. It gets crunchy and distorted much quicker than I thought it was going to. I was expecting more of an auto-tune sound that slowly degrades to sine waves. I think it is because I used a full polyphonic mix, and not just a vocal track. However, I think it will eventually go to all sine waves if it iterates enough times.

Here is a picture of what the audio looked like in Pro Tools:

Pro Tools screen shot

You can see it gets exponentially louder with every iteration until it’s being limited.

Also, if anyone wants the source code. Here it is:


import sounddevice as sd

import numpy as np

from scipy.io.wavfile import write

fs = 44100
sd.default.samplerate = fs
sd.default.channels = 2
sd.default.device = 2 #Firestudio

duration = 15 #Seconds
myarray = sd.rec(duration * fs) #first recording

sd.wait()
myrecording = sd.playrec(myarray)
sd.wait()
for i in range(7):
myrecording = sd.playrec(my recording) #Play and record at the same time

sd.wait() #Block until done
write(‘write’ + str(i) + ‘.wav’, 44100, my recording) #Write an audio file for ever iteration

 

 

write(‘output.wav’, 44100, myrecording)


 

 

Thanks for reading!

 

-Steven Krenn