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+'/tina/06.wav', 'rb')
wf2 = wave.open(path+'/patina/04WorldMap.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/04WorldMap_6.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()