Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def modulate():
- SHRT_MIN=-32767 - 1
- SHRT_MAX=32767
- fl1=0
- fl2=0
- fl3=0
- if wave1.checkvar2.get()==1:
- fl1=1
- if wave2.checkvar2.get()==1:
- fl2=1
- if wave3.checkvar2.get()==1:
- fl3=1
- if (fl1==1 & fl2==1) or (fl2==1 & fl3==1) or (fl1==1 & fl3==1):
- if (fl1==1 & fl2==1):
- wave1.onread()
- cur=os.getcwd()
- cur+=str("/output_file.wav")
- data=readfile(cur)
- fi = wave.open(cur,"rb")
- wave2.onread()
- cur=os.getcwd()
- cur+=str("/output_file.wav")
- data2=readfile(cur)
- fi2 = wave.open(cur,"rb")
- print "hi"
- elif (fl1==1 & fl3==1):
- wave1.onread()
- cur=os.getcwd()
- cur+=str("/output_file.wav")
- data=readfile(cur)
- fi = wave.open(cur,"rb")
- wave3.onread()
- cur=os.getcwd()
- cur+=str("/output_file.wav")
- data2=readfile(cur)
- fi2 = wave.open(cur,"rb")
- elif (fl2==1 & fl3==1):
- wave2.onread()
- cur=os.getcwd()
- cur+=str("/output_file.wav")
- data=readfile(cur)
- fi = wave.open(cur,"rb")
- wave3.onread()
- cur=os.getcwd()
- cur+=str("/output_file.wav")
- data2=readfile(cur)
- fi2 = wave.open(cur,"rb")
- fo=wave.open("output.wav","w")
- fo.setparams(fi.getparams())
- width=fi.getsampwidth()
- width2=fi2.getsampwidth()
- if width>width2:
- width=width2
- fmts=(None, "=B", "=h", None, "=l")
- fmt=fmts[width]
- dcs=(None, 128, 0, None, 0)
- dc=dcs[width]
- if fi.getnframes()<fi2.getnframes():
- maxi=fi.getnframes()
- flag=1
- else:
- maxi=fi2.getnframes()
- flag=2
- amp=[]
- print flag
- for i in range(maxi):
- if flag==1 and i>=fi2.getnframes():
- if data[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data[i]
- elif flag==2 and i>=fi.getnframes():
- if data2[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data2[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data2[i]
- else:
- if data2[i]*data[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data2[i]*data[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data2[i]*data[i]
- iframe-=dc
- oframe=iframe/2;
- oframe+=dc
- oframe=struct.pack(fmt, oframe)
- fo.writeframes(oframe)
- fi.close()
- fo.close()
- pl()
- elif (fl1==1 & fl2==1 & fl3==1):
- wave1.onread()
- cur=os.getcwd()
- cur+="output_file.wav"
- data=readfile(cur)
- fi = wave.open(cur,"rb")
- wave2.onread()
- cur=os.getcwd()
- cur+="output_file.wav"
- data2=readfile(cur)
- fi2 = wave.open(cur,"rb")
- wave3.onread()
- cur=os.getcwd()
- cur+="output_file.wav"
- data3=readfile(cur)
- fi3 = wave.open(cur,"rb")
- fo = wave.open("output.wav","w")
- fo.setparams(fi.getparams())
- width=fi.getsampwidth()
- width2=fi2.getsampwidth()
- width3=fi3.getsampwidth()
- if width>width2:
- width=width2
- if width>width3:
- width=width3
- fmts=(None, "=B", "=h", None, "=l")
- fmt=fmts[width]
- dcs=(None, 128, 0, None, 0)
- dc=dcs[width]
- if fi.getnframes()<fi2.getnframes():
- maxi=fi.getnframes()
- flag=1
- else:
- maxi=fi2.getnframes()
- flag=2
- if fi3.getnframes()<maxi:
- maxi=fi3.getnframes()
- flag=3
- amp=[]
- for i in range(maxi):
- if flag==1 and i>=fi2.getnframes():
- if data[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data[i]
- elif flag==2 and i>=fi.getnframes():
- if data2[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data2[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data2[i]
- elif flag==3 and i>=fi3.getnframes():
- if data3[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data3[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data3[i]
- else:
- if data2[i]*data[i]*data3[i]<SHRT_MIN:
- iframe=SHRT_MIN
- elif data2[i]*data[i]*data3[i]>SHRT_MAX:
- iframe=SHRT_MAX
- else:
- iframe=data2[i]*data[i]*data3[i]
- # print int(iframe)
- iframe-=dc
- oframe=iframe/2;
- oframe+=dc
- oframe=struct.pack(fmt, oframe)
- fo.writeframes(oframe)
- fi.close()
- fo.close()
- pl()
Advertisement
Add Comment
Please, Sign In to add comment