1#! /usr/bin/env python 2 3from Tkinter import * 4from tkSnack import * 5 6root = Tkinter.Tk() 7 8initializeSnack(root) 9"""AudioControllerSingleton().playLatency(100)""" 10 11s = Sound() 12 13filt = Filter('generator', 440.0) 14 15def play(): 16 s.stop() 17 s.play(filter=filt) 18 19def stop(): 20 s.stop() 21 22def config(arg): 23 type = var.get() 24 if var.get() == "sine" : 25 shape = 0.0 26 elif var.get() == "rectangle" : 27 shape = 0.5 28 elif var.get() == "triangle" : 29 shape = 0.5 30 elif var.get() == "sawtooth" : 31 type = "triangle" 32 shape = 0.0 33 else : 34 shape = 0.0 35 filt.configure(s1.get(), s2.get(), shape, type, -1) 36 37f = Frame(root) 38f.pack() 39 40s1 = Scale(f, from_=4000, to=50, label="Frequency", length=200, command=config) 41s1.pack(side='left') 42 43s2 = Scale(f, from_=32767, to=0, label="Amplitude", length=200, command=config) 44s2.pack(side='left') 45 46s1.set(440.0) 47s2.set(20000) 48 49var = StringVar() 50var.set("sine") 51 52menu = OptionMenu(root, var, "sine", "rectangle", "triangle", "sawtooth", "noise") 53menu.pack() 54root.bind_all("<Button1-ButtonRelease>", config) 55 56fb = Frame(root) 57fb.pack(side='bottom') 58Button(fb, bitmap='snackPlay', command=play).pack(side='left') 59Button(fb, bitmap='snackStop', command=stop).pack(side='left') 60 61root.mainloop() 62