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:
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)
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:
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