Looking for a app similar to the Dog Whistle for the iPhone
Adam Jimerson
vendion at gmail.com
Mon Apr 27 21:54:12 CEST 2009
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 <
s.pullinger at elec.gla.ac.uk> 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
> community at lists.openmoko.org
> http://lists.openmoko.org/mailman/listinfo/community
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openmoko.org/pipermail/community/attachments/20090427/14f2bbd8/attachment.htm
More information about the community
mailing list