diff options
author | jcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5> | 2007-09-04 02:43:56 +0000 |
---|---|---|
committer | jcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5> | 2007-09-04 02:43:56 +0000 |
commit | 54d6b9281dc233e0b2acf26884073d973b7663de (patch) | |
tree | 15cd1fa40207e68c5035a50fd7d54536831c4599 /gnuradio-examples/python/audio | |
parent | 2c37e57fe4626ac30eb8c042e4d7daf64a0d45f5 (diff) |
Merged r6271:6278 from jcorgan/t182 into trunk. Implements ticket:182.
Created new top-level component, gr-utils, to hold commonly used utility
scripts (originally in gnuradio-examples). These now install into the
system path, allowing their use from wherever.
Reorganization of gnuradio-examples component:
* Commonly used utility scripts moved from python/usrp into gr-utils.
* Examples now install into $(prefix)/share/gnuradio/examples/...
* Channel coding examples moved into gr-trellis/src/examples, now install
from there, only if gr-atsc itself is going to built and installed.
* ATSC example scripts now install into example hierarchy
* Cruft has been moved into 'limbo' in repository, do not get installed
Trunk passes 'make distcheck'.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@6279 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gnuradio-examples/python/audio')
-rw-r--r-- | gnuradio-examples/python/audio/Makefile.am | 7 | ||||
-rwxr-xr-x | gnuradio-examples/python/audio/dial_squelch.py | 89 | ||||
-rwxr-xr-x | gnuradio-examples/python/audio/dialtone_v.py | 71 |
3 files changed, 5 insertions, 162 deletions
diff --git a/gnuradio-examples/python/audio/Makefile.am b/gnuradio-examples/python/audio/Makefile.am index e0fdb7e783..6c69588ca0 100644 --- a/gnuradio-examples/python/audio/Makefile.am +++ b/gnuradio-examples/python/audio/Makefile.am @@ -19,16 +19,19 @@ # Boston, MA 02110-1301, USA. # +include $(top_srcdir)/Makefile.common + EXTRA_DIST = \ audio_copy.py \ audio_fft.py \ audio_play.py \ audio_to_file.py \ - dial_squelch.py \ dial_tone.py \ - dialtone_v.py \ mono_tone.py \ multi_tone.py \ noise.py \ spectrum_inversion.py \ test_resampler.py + +ourdatadir = $(exampledir)/audio +ourdata_DATA = $(EXTRA_DIST) diff --git a/gnuradio-examples/python/audio/dial_squelch.py b/gnuradio-examples/python/audio/dial_squelch.py deleted file mode 100755 index 8a0c3f5626..0000000000 --- a/gnuradio-examples/python/audio/dial_squelch.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2006 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -from gnuradio import gr, audio, eng_option -from gnuradio.eng_option import eng_option -from math import pi, cos -from optparse import OptionParser - -""" -This script generates a standard dial tone and then applies a sinusoidal -envelope to vary it's loudness. The audio is then passed through the -power squelch block before it gets sent to the sound card. By varying -the command line parameters, one can see the effect of differing -amounts of power averaging, threshold, and attack/decay ramping. -""" - -class app_flow_graph(gr.flow_graph): - def __init__(self, options, args): - gr.flow_graph.__init__(self) - - # Create dial tone by adding two sine waves - SRC1 = gr.sig_source_f(options.rate, gr.GR_SIN_WAVE, 350, 0.5, 0.0) - SRC2 = gr.sig_source_f(options.rate, gr.GR_SIN_WAVE, 440, 0.5, 0.0) - ADD = gr.add_ff() - - # Convert to vector stream (and back) to apply raised cosine envelope - # You could also do this with a vector_source_f block that repeats. - S2V = gr.stream_to_vector(gr.sizeof_float, options.rate) - ENV = [0.5-cos(2*pi*x/options.rate)/2 for x in range(options.rate)] - MLT = gr.multiply_const_vff(ENV) - V2S = gr.vector_to_stream(gr.sizeof_float, options.rate) - - # Run through power squelch with user supplied or default options - # Zero output when squelch is invoked - SQL = gr.pwr_squelch_ff(options.threshold, options.alpha, options.ramp, False) - DST = audio.sink(options.rate) - - # Solder it all together - self.connect(SRC1, (ADD, 0)) - self.connect(SRC2, (ADD, 1)) - self.connect(ADD, S2V, MLT, V2S, SQL, DST) - -def main(): - parser = OptionParser(option_class=eng_option) - parser.add_option("-r", "--rate", type="int", default=8000, help="set audio output sample rate to RATE", metavar="RATE") - parser.add_option("-t", "--threshold", type="eng_float", default=-10.0, help="set power squelch to DB", metavar="DB") - parser.add_option("-a", "--alpha", type="eng_float", default=None, help="set alpha to ALPHA", metavar="ALPHA") - parser.add_option("-m", "--ramp", type="int", default=None, help="set attack/decay ramp to SAMPLES", metavar="SAMPLES") - (options, args) = parser.parse_args() - - if options.alpha == None: - options.alpha = 50.0/options.rate - - if options.ramp == None: - options.ramp = options.rate/50 # ~ 20 ms - - print "Using audio rate of", options.rate - print "Using threshold of", options.threshold, "db" - print "Using alpha of", options.alpha - print "Using ramp of", options.ramp, "samples" - - fg = app_flow_graph(options, args) - - try: - fg.run() - except KeyboardInterrupt: - pass - -if __name__ == "__main__": - main() diff --git a/gnuradio-examples/python/audio/dialtone_v.py b/gnuradio-examples/python/audio/dialtone_v.py deleted file mode 100755 index ab1ca2a641..0000000000 --- a/gnuradio-examples/python/audio/dialtone_v.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2006 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -from gnuradio import gr, audio -from math import pi, sin - -""" -This test script demonstrates the use of element-wise vector processing -vs. stream processing. The example is artificial in that the stream -version in dial_tone.py is the normal way to do it; in addition, the -envelope processing here is just for demo purposes and isn't needed. -""" - -# For testing different buffer sizes -rate = 48000 - -fg = gr.flow_graph() - -# Two streams of floats -a = gr.sig_source_f(rate, gr.GR_SIN_WAVE, 350, 0.5, 0.0); -b = gr.sig_source_f(rate, gr.GR_SIN_WAVE, 440, 0.5, 0.0); - -# Turn them into vectors of length 'size' -av = gr.stream_to_vector(gr.sizeof_float, rate) -bv = gr.stream_to_vector(gr.sizeof_float, rate) - -# Make a vector adder for float vectors -adder = gr.add_vff(rate) - -# Make a 1 Hz sine envelope -envelope = [sin(2*pi*x/rate)*0.5 for x in range(rate)] -multiplier = gr.multiply_const_vff(envelope) - -# Make an offset adder -offset = gr.add_const_vff((0.5,)*rate) - -# Turn the vector back into a stream of floats -result = gr.vector_to_stream(gr.sizeof_float, rate) - -# Play it -sink = audio.sink(rate) - -fg.connect(a, av) -fg.connect(b, bv) -fg.connect(av, (adder, 0)) -fg.connect(bv, (adder, 1)) -fg.connect(adder, multiplier, offset, result, sink) - -try: - fg.run() -except KeyboardInterrupt: - pass |