1#! /usr/bin/env python 2 3from Tkinter import * 4from tkSnack import * 5 6root = Tkinter.Tk() 7 8initializeSnack(root) 9 10s = Sound() 11 12filt = Filter('echo', 0.6, 0.6, 30, 0.4, 50, 0.3) 13 14def load(): 15 filename = root.tk.call('eval', 'snack::getOpenFile') 16 s.config(file=filename) 17 18def play(): 19 s.play(filter=filt) 20 21def stop(): 22 s.stop() 23 24def config(arg): 25 filt.configure(s1.get(), s2.get(), s3.get(), s4.get(), s5.get(), s6.get()) 26 27f = Frame(root) 28f.pack() 29 30s1 = Scale(f, from_=1.0, to=0, resolution=0.01, label="inGain", command=config) 31s1.pack(side='left') 32 33s2 = Scale(f, from_=1.0, to=0, resolution=0.01, label="outGain", command=config) 34s2.pack(side='left') 35 36s3 = Scale(f, from_=250, to=10, label="Delay1", command=config) 37s3.pack(side='left') 38 39s4 = Scale(f, from_=1.0, to=0, resolution=0.01, label="Decay1", command=config) 40s4.pack(side='left') 41 42s5 = Scale(f, from_=250, to=10, label="Delay2", command=config) 43s5.pack(side='left') 44 45s6 = Scale(f, from_=1.0, to=0, resolution=0.01, label="Decay2", command=config) 46s6.pack(side='left') 47 48s1.set(0.6) 49s2.set(0.6) 50s3.set(30) 51s4.set(0.4) 52s5.set(50) 53s6.set(0.3) 54 55fb = Frame(root) 56fb.pack(side='bottom') 57Button(fb, image='snackOpen', command=load).pack(side='left') 58Button(fb, bitmap='snackPlay', command=play).pack(side='left') 59Button(fb, bitmap='snackStop', command=stop).pack(side='left') 60 61root.mainloop() 62