Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Tkinter
- import Tkconstants
- import tkFileDialog
- import tkMessageBox
- import Nsound as ns
- class ResampleGUI(Tkinter.Frame):
- def __init__(self, root):
- Tkinter.Frame.__init__(self, root)
- stepOne = Tkinter.LabelFrame(self, text=" WAV Resample: ")
- stepOne.grid(row=0, columnspan=7, sticky='W', padx=5, pady=5, ipadx=5, ipady=5)
- inFileLbl = Tkinter.Label(stepOne, text="Input File Path:")
- inFileLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2)
- self.inFileTxt = Tkinter.Entry(stepOne)
- self.inFileTxt.grid(row=0, column=1, columnspan=7, sticky="WE", pady=3)
- inFileBtn = Tkinter.Button(stepOne, text="Open Wav file ... ", command=self.askopenfilename)
- inFileBtn.grid(row=0, column=8, sticky='W', padx=5, pady=2)
- outFileLbl = Tkinter.Label(stepOne, text="Output File Path:")
- outFileLbl.grid(row=1, column=0, sticky='E', padx=5, pady=2)
- self.outFileTxt = Tkinter.Entry(stepOne)
- self.outFileTxt.grid(row=1, column=1, columnspan=7, sticky="WE", pady=2)
- outFileBtn = Tkinter.Button(stepOne, text=" Resample ", command=self.asksaveasfilename)
- outFileBtn.grid(row=1, column=8, sticky='W', padx=5, pady=2)
- inEncLbl = Tkinter.Label(stepOne, text="Input File Frequency:")
- inEncLbl.grid(row=2, column=0, sticky='E', padx=5, pady=2)
- self.inFTxt = Tkinter.Entry(stepOne)
- self.inFTxt.grid(row=2, column=1, sticky='E', pady=2)
- outEncLbl = Tkinter.Label(stepOne, text="Output File Frequency:")
- outEncLbl.grid(row=2, column=5, padx=5, pady=2)
- self.outFTxt = Tkinter.Entry(stepOne)
- self.outFTxt.grid(row=2, column=7, pady=2)
- # options for buttons
- button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}
- self.file_opt = options = {}
- options['defaultextension'] = '.wav'
- options['filetypes'] = [('WAV', '.wav')]
- options['initialdir'] = 'C:\\'
- options['initialfile'] = 'sound'
- options['parent'] = root
- options['title'] = 'Open Wav file'
- def askopenfilename(self):
- filename = tkFileDialog.askopenfilename(**self.file_opt)
- if filename:
- self.in_field = Tkinter.StringVar()
- self.in_field.set(filename)
- self.inFileTxt['textvariable'] = self.in_field
- fl = str(filename.decode("utf-8"))
- a1 = ns.AudioStream(fl)
- source = a1.getSampleRate()
- self.inF_filed = Tkinter.StringVar()
- self.inF_filed.set(str(float(source)))
- self.inFTxt['textvariable'] = self.inF_filed
- return True
- def asksaveasfilename(self):
- outF = self.outFTxt.get()
- save_filename = tkFileDialog.asksaveasfilename(**self.file_opt)
- #TODO if file exis
- target = float(outF)
- a1 = ns.AudioStream(str(self.inFileTxt.get()))
- source = a1.getSampleRate()
- print "source: %d" %(source)
- print "target: %d" %(target)
- ratio = target / source
- print "ratio: %f" %(ratio)
- a2 = a1.getResample(ratio)
- a2.setSampleRate(int(target))
- a2 >> str(save_filename)
- tkMessageBox.showinfo("Success! ", "completed!")
- return True
- if __name__ == '__main__':
- root = Tkinter.Tk()
- root.wm_title(u"WAV Resampler (C) MKobilev")
- ResampleGUI(root).pack()
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement