summaryrefslogtreecommitdiff
path: root/gnuradio-examples/python/audio
diff options
context:
space:
mode:
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2007-09-04 02:43:56 +0000
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2007-09-04 02:43:56 +0000
commit54d6b9281dc233e0b2acf26884073d973b7663de (patch)
tree15cd1fa40207e68c5035a50fd7d54536831c4599 /gnuradio-examples/python/audio
parent2c37e57fe4626ac30eb8c042e4d7daf64a0d45f5 (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.am7
-rwxr-xr-xgnuradio-examples/python/audio/dial_squelch.py89
-rwxr-xr-xgnuradio-examples/python/audio/dialtone_v.py71
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