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