Thanks again, I don't know anything about Python programming but where would I label the inputs for the frequency and the volume at? I can easily make the changes to the frequency, a dog whistle is anywhere from 16000 to 22000 Hz and for the volume anything over 0.1 is to loud the speakers on the FreeRunner struggle with it, what I mean by that is 22000 Hz sounds lower than 17000 Hz.
On Fri, Apr 24, 2009 at 11:20 AM, Stuart Pullinger < [email protected]> wrote: > Adam Jimerson wrote: > > Thanks that is what I was looking for, > No probs. > > > to bad there isn't a UI or anything for it. > > > Tadaaa! Hope pasting it into an email doesn't ruin the formatting. This > is my first pygtk/pygst program and it has been cobbled together from > various code examples on the web. I hope you like it. > > Stuart > > #!/usr/bin/env python > > ## > # testtone.py > # Hacked together by Stuart Pullinger (s dot pullinger at elec dot gla > dot ac dot uk) from the following sources: > # http://www.pygtk.org/pygtk2tutorial/index.html > # http://pygstdocs.berlios.de/pygst-tutorial/index.html > # > > http://www.jonobacon.org/2006/08/28/getting-started-with-gstreamer-with-python/ > ## > > import pygtk > pygtk.require('2.0') > import gtk > import pygst > pygst.require("0.10") > import gst > > class TestTone: > > def startstop(self, widget, data=None): > if self.playing: > #we are playing so stop > self.pipeline.set_state(gst.STATE_NULL) > self.playing = False > else: > #we are stopped so start playing > self.pipeline.set_state(gst.STATE_PLAYING) > self.playing = True > > def change_freq(self, adj): > self.audiotestsrc.set_property('freq', adj.value) > > def change_vol(self, adj): > self.audiotestsrc.set_property('volume', adj.value) > > def delete_event(self, widget, event, data=None): > print "delete event occurred" > return False > > def destroy(self, widget, data=None): > print "destroy signal occurred" > gtk.main_quit() > > def __init__(self): > # create a new window > self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) > > self.window.connect("delete_event", self.delete_event) > self.window.connect("destroy", self.destroy) > > self.window.set_border_width(10) > > self.button = gtk.Button("Start / Stop") > self.button.connect("clicked", self.startstop, None) > > self.adjustfreq = gtk.Adjustment(440, 20, 20000, 10, 100, 0) > > self.freq_button = gtk.SpinButton(adjustment=self.adjustfreq, > climb_rate=0.5, digits=2) > self.adjustfreq.connect('value_changed', self.change_freq) > > self.adjustvol = gtk.Adjustment(0.4, 0, 1, 0.01, 0.1, 0) > self.vol_button = gtk.SpinButton(adjustment=self.adjustvol, > climb_rate=0.5, digits=2) > self.adjustvol.connect('value_changed', self.change_vol) > > self.pipeline = gst.Pipeline("mypipeline") > self.audiotestsrc = gst.element_factory_make("audiotestsrc", > "audio") > self.audiotestsrc.set_property('freq', 440) > self.audiotestsrc.set_property('volume', 0.4) > self.pipeline.add(self.audiotestsrc) > self.sink = gst.element_factory_make("alsasink", "sink") > self.pipeline.add(self.sink) > self.audiotestsrc.link(self.sink) > > self.playing = False > > self.vbox = gtk.VBox(False, 0) > self.vbox.pack_start(self.freq_button) > self.vbox.pack_start(self.vol_button) > self.vbox.pack_start(self.button) > self.window.add(self.vbox) > self.button.show() > self.freq_button.show() > self.vol_button.show() > self.vbox.show() > self.window.show() > > def main(self): > # All PyGTK applications must have a gtk.main(). Control ends here > # and waits for an event to occur (like a key press or mouse event). > gtk.main() > > # If the program is run directly or passed as an argument to the python > # interpreter then create a HelloWorld instance and show it > if __name__ == "__main__": > testtone = TestTone() > testtone.main() > > > > _______________________________________________ > Openmoko community mailing list > [email protected] > http://lists.openmoko.org/mailman/listinfo/community >
_______________________________________________ Openmoko community mailing list [email protected] http://lists.openmoko.org/mailman/listinfo/community

