import pyaudio
import random
import wave
import sys,os.path
import audioop
num_range = {}
data_arr = []
chunk = 1024
directory =sys.argv[0]
path = os.path.dirname(directory)
wf = wave.open(path+'adam_green.wav', 'rb')
wf2 = wave.open(path+'john_adams.wav','rb')
p = pyaudio.PyAudio()
# open stream
stream = p.open(format =
p.get_format_from_width(wf2.getsampwidth()),
channels = wf2.getnchannels(),
rate = wf2.getframerate(),
output = True)
# read data
data = wf.readframes(chunk)
x=0
while data != '':
num_range[audioop.rms(data, 1)] = x
data_arr.append(data)
data = wf.readframes(chunk)
x+=1
past_pin = ''
data2 = wf2.readframes(chunk)
record = []
while data2 != '':
cur = audioop.rms(data2,1)
try:
pin = num_range[cur]
past_pin = pin
except:
pin = past_pin
try:
stream.write(data_arr[pin])
record.append(data_arr[pin])
except:
pass
data2 = wf2.readframes(chunk)
dataZ = ''.join(record)
wz = wave.open(path+'/covers/01PeopleMover.wav', 'wb')
wz.setnchannels(1)
wz.setsampwidth(p.get_sample_size(pyaudio.paInt16))
wz.setframerate(88200)
wz.writeframes(dataZ)
wz.close()
stream.close()
p.terminate()