diff options
Diffstat (limited to 'gr-audio/examples/python')
-rw-r--r-- | gr-audio/examples/python/CMakeLists.txt | 2 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_copy.py | 25 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_fft.py | 138 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_play.py | 30 | ||||
-rwxr-xr-x | gr-audio/examples/python/audio_to_file.py | 33 | ||||
-rwxr-xr-x | gr-audio/examples/python/dial_tone.py | 23 | ||||
-rwxr-xr-x | gr-audio/examples/python/dial_tone_daemon.py | 22 | ||||
-rwxr-xr-x | gr-audio/examples/python/dial_tone_wav.py | 30 | ||||
-rwxr-xr-x | gr-audio/examples/python/mono_tone.py | 28 | ||||
-rwxr-xr-x | gr-audio/examples/python/multi_tone.py | 30 | ||||
-rwxr-xr-x | gr-audio/examples/python/noise.py | 20 | ||||
-rwxr-xr-x | gr-audio/examples/python/spectrum_inversion.py | 26 | ||||
-rwxr-xr-x | gr-audio/examples/python/test_resampler.py | 28 |
13 files changed, 128 insertions, 307 deletions
diff --git a/gr-audio/examples/python/CMakeLists.txt b/gr-audio/examples/python/CMakeLists.txt index 24e29e2348..6e90b0ef5a 100644 --- a/gr-audio/examples/python/CMakeLists.txt +++ b/gr-audio/examples/python/CMakeLists.txt @@ -21,7 +21,6 @@ include(GrPython) GR_PYTHON_INSTALL(PROGRAMS audio_copy.py - audio_fft.py audio_play.py audio_to_file.py dial_tone.py @@ -33,5 +32,4 @@ GR_PYTHON_INSTALL(PROGRAMS spectrum_inversion.py test_resampler.py DESTINATION ${GR_PKG_AUDIO_EXAMPLES_DIR} - COMPONENT "audio_python" ) diff --git a/gr-audio/examples/python/audio_copy.py b/gr-audio/examples/python/audio_copy.py index 946aae1c2a..b68e949497 100755 --- a/gr-audio/examples/python/audio_copy.py +++ b/gr-audio/examples/python/audio_copy.py @@ -22,29 +22,26 @@ from gnuradio import gr from gnuradio import audio -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-I", "--audio-input", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-I", "--audio-input", default="", help="pcm input device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-O", "--audio-output", type="string", default="", + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - (options, args) = parser.parse_args () - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate, default=%(default)s") + args = parser.parse_args () - sample_rate = int(options.sample_rate) - src = audio.source (sample_rate, options.audio_input) - dst = audio.sink (sample_rate, options.audio_output) + sample_rate = int(args.sample_rate) + src = audio.source (sample_rate, args.audio_input) + dst = audio.sink (sample_rate, args.audio_output) # Determine the maximum number of outputs on the source and # maximum number of inputs on the sink, then connect together diff --git a/gr-audio/examples/python/audio_fft.py b/gr-audio/examples/python/audio_fft.py deleted file mode 100755 index 519963da54..0000000000 --- a/gr-audio/examples/python/audio_fft.py +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2004,2005,2007 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, gru, audio -from gnuradio import eng_notation -from gnuradio.eng_option import eng_option -from gnuradio.wxgui import stdgui2, fftsink2, waterfallsink2, scopesink2, form, slider -from optparse import OptionParser -import wx -import sys - -class app_top_block(stdgui2.std_top_block): - def __init__(self, frame, panel, vbox, argv): - stdgui2.std_top_block.__init__(self, frame, panel, vbox, argv) - - self.frame = frame - self.panel = panel - - parser = OptionParser(option_class=eng_option) - parser.add_option("-W", "--waterfall", action="store_true", default=False, - help="Enable waterfall display") - parser.add_option("-S", "--oscilloscope", action="store_true", default=False, - help="Enable oscilloscope display") - parser.add_option("-I", "--audio-input", type="string", default="", - help="pcm input device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - - (options, args) = parser.parse_args() - sample_rate = int(options.sample_rate) - - if len(args) != 0: - parser.print_help() - sys.exit(1) - - self.show_debug_info = True - - # build the graph - if options.waterfall: - self.scope = \ - waterfallsink2.waterfall_sink_f (panel, fft_size=1024, sample_rate=sample_rate) - elif options.oscilloscope: - self.scope = scopesink2.scope_sink_f(panel, sample_rate=sample_rate) - else: - self.scope = fftsink2.fft_sink_f (panel, fft_size=1024, sample_rate=sample_rate, fft_rate=30, - ref_scale=1.0, ref_level=0, y_divs=12) - - self.src = audio.source (sample_rate, options.audio_input) - - self.connect(self.src, self.scope) - - self._build_gui(vbox) - - # set initial values - - def _set_status_msg(self, msg): - self.frame.GetStatusBar().SetStatusText(msg, 0) - - def _build_gui(self, vbox): - - def _form_set_freq(kv): - return self.set_freq(kv['freq']) - - vbox.Add(self.scope.win, 10, wx.EXPAND) - - #self._build_subpanel(vbox) - - def _build_subpanel(self, vbox_arg): - # build a secondary information panel (sometimes hidden) - - # FIXME figure out how to have this be a subpanel that is always - # created, but has its visibility controlled by foo.Show(True/False) - - def _form_set_decim(kv): - return self.set_decim(kv['decim']) - - if not(self.show_debug_info): - return - - panel = self.panel - vbox = vbox_arg - myform = self.myform - - #panel = wx.Panel(self.panel, -1) - #vbox = wx.BoxSizer(wx.VERTICAL) - - hbox = wx.BoxSizer(wx.HORIZONTAL) - hbox.Add((5,0), 0) - - myform['decim'] = form.int_field( - parent=panel, sizer=hbox, label="Decim", - callback=myform.check_input_and_call(_form_set_decim, self._set_status_msg)) - - hbox.Add((5,0), 1) - myform['fs@usb'] = form.static_float_field( - parent=panel, sizer=hbox, label="Fs@USB") - - hbox.Add((5,0), 1) - myform['dbname'] = form.static_text_field( - parent=panel, sizer=hbox) - - hbox.Add((5,0), 1) - myform['baseband'] = form.static_float_field( - parent=panel, sizer=hbox, label="Analog BB") - - hbox.Add((5,0), 1) - myform['ddc'] = form.static_float_field( - parent=panel, sizer=hbox, label="DDC") - - hbox.Add((5,0), 0) - vbox.Add(hbox, 0, wx.EXPAND) - - -def main (): - app = stdgui2.stdapp(app_top_block, "Audio FFT", nstatus=1) - app.MainLoop() - -if __name__ == '__main__': - main () diff --git a/gr-audio/examples/python/audio_play.py b/gr-audio/examples/python/audio_play.py index 94ea72498d..367d7bd201 100755 --- a/gr-audio/examples/python/audio_play.py +++ b/gr-audio/examples/python/audio_play.py @@ -23,8 +23,8 @@ from gnuradio import gr from gnuradio import audio from gnuradio import blocks -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser class my_top_block(gr.top_block): @@ -32,22 +32,18 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-F", "--filename", type="string", default="audio.dat", - help="read input from FILE") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - parser.add_option("-R", "--repeat", action="store_true", default=False) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-F", "--filename", default="audio.dat", + help="read input from FILENAME default=%(default)r") + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate (default=%(default)r)") + parser.add_argument("-R", "--repeat", action="store_true") + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - (options, args) = parser.parse_args() - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) - src = blocks.file_source (gr.sizeof_float, options.filename, options.repeat) - dst = audio.sink (sample_rate, options.audio_output) + args = parser.parse_args() + sample_rate = int(args.sample_rate) + src = blocks.file_source(gr.sizeof_float, args.filename, args.repeat) + dst = audio.sink(sample_rate, args.audio_output) self.connect(src, dst) diff --git a/gr-audio/examples/python/audio_to_file.py b/gr-audio/examples/python/audio_to_file.py index 6a2cbcb12e..b385abf925 100755 --- a/gr-audio/examples/python/audio_to_file.py +++ b/gr-audio/examples/python/audio_to_file.py @@ -23,37 +23,34 @@ from gnuradio import gr from gnuradio import audio from gnuradio import blocks -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - usage="%prog: [options] output_filename" - parser = OptionParser(option_class=eng_option, usage=usage) - parser.add_option("-I", "--audio-input", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-I", "--audio-input", default="", help="pcm input device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - parser.add_option("-N", "--nsamples", type="eng_float", default=None, + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate to RATE (%(default)r)") + parser.add_argument("-N", "--nsamples", type=eng_float, help="number of samples to collect [default=+inf]") + parser.add_argument('file_name', metavar='FILE-NAME', + help="Output file path") - (options, args) = parser.parse_args () - if len(args) != 1: - parser.print_help() - raise SystemExit, 1 - filename = args[0] + args = parser.parse_args() - sample_rate = int(options.sample_rate) - src = audio.source (sample_rate, options.audio_input) - dst = blocks.file_sink (gr.sizeof_float, filename) + sample_rate = int(args.sample_rate) + src = audio.source(sample_rate, args.audio_input) + dst = blocks.file_sink(gr.sizeof_float, args.file_name) - if options.nsamples is None: + if args.nsamples is None: self.connect((src, 0), dst) else: - head = blocks.head(gr.sizeof_float, int(options.nsamples)) + head = blocks.head(gr.sizeof_float, int(args.nsamples)) self.connect((src, 0), head, dst) diff --git a/gr-audio/examples/python/dial_tone.py b/gr-audio/examples/python/dial_tone.py index c55d0d38dd..ebef8c01cb 100755 --- a/gr-audio/examples/python/dial_tone.py +++ b/gr-audio/examples/python/dial_tone.py @@ -22,8 +22,8 @@ from gnuradio import gr from gnuradio import audio -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser try: from gnuradio import analog @@ -36,22 +36,19 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - (options, args) = parser.parse_args() - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate, default=%(default)s") + args = parser.parse_args() + + sample_rate = int(args.sample_rate) ampl = 0.1 src0 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 350, ampl) src1 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 440, ampl) - dst = audio.sink(sample_rate, options.audio_output) + dst = audio.sink(sample_rate, args.audio_output) self.connect(src0, (dst, 0)) self.connect(src1, (dst, 1)) diff --git a/gr-audio/examples/python/dial_tone_daemon.py b/gr-audio/examples/python/dial_tone_daemon.py index e4dbd95321..9919e367a6 100755 --- a/gr-audio/examples/python/dial_tone_daemon.py +++ b/gr-audio/examples/python/dial_tone_daemon.py @@ -22,8 +22,8 @@ from gnuradio import gr, gru from gnuradio import audio -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser import os try: @@ -37,22 +37,18 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - (options, args) = parser.parse_args() - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate to RATE (%(default)r)") + args = parser.parse_args() + sample_rate = int(args.sample_rate) ampl = 0.1 src0 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 350, ampl) src1 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 440, ampl) - dst = audio.sink(sample_rate, options.audio_output) + dst = audio.sink(sample_rate, args.audio_output) self.connect(src0, (dst, 0)) self.connect(src1, (dst, 1)) diff --git a/gr-audio/examples/python/dial_tone_wav.py b/gr-audio/examples/python/dial_tone_wav.py index 82f8cf331d..351ca94e78 100755 --- a/gr-audio/examples/python/dial_tone_wav.py +++ b/gr-audio/examples/python/dial_tone_wav.py @@ -24,8 +24,8 @@ from gnuradio import gr from gnuradio import blocks -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser try: from gnuradio import analog @@ -38,25 +38,23 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - usage = "%prog: [options] filename" - parser = OptionParser(option_class=eng_option, usage=usage) - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - parser.add_option("-N", "--samples", type="eng_float", default=None, - help="number of samples to record") - (options, args) = parser.parse_args () - if len(args) != 1 or options.samples is None: - parser.print_help() - raise SystemExit, 1 + parser = ArgumentParser() + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate to RATE (%(default)r)") + parser.add_argument("-N", "--samples", type=eng_float, required=True, + help="number of samples to record") + parser.add_argument('file_name', metavar='WAV-FILE', + help='Output WAV file name', nargs=1) + args = parser.parse_args() - sample_rate = int(options.sample_rate) + sample_rate = int(args.sample_rate) ampl = 0.1 src0 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 350, ampl) src1 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 440, ampl) - head0 = blocks.head(gr.sizeof_float, int(options.samples)) - head1 = blocks.head(gr.sizeof_float, int(options.samples)) - dst = blocks.wavfile_sink(args[0], 2, int(options.sample_rate), 16) + head0 = blocks.head(gr.sizeof_float, int(args.samples)) + head1 = blocks.head(gr.sizeof_float, int(args.samples)) + dst = blocks.wavfile_sink(args.file_name[0], 2, int(args.sample_rate), 16) self.connect(src0, head0, (dst, 0)) self.connect(src1, head1, (dst, 1)) diff --git a/gr-audio/examples/python/mono_tone.py b/gr-audio/examples/python/mono_tone.py index ad73d62327..653fd575fc 100755 --- a/gr-audio/examples/python/mono_tone.py +++ b/gr-audio/examples/python/mono_tone.py @@ -22,8 +22,8 @@ from gnuradio import gr from gnuradio import audio -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser try: from gnuradio import analog @@ -40,27 +40,23 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - parser.add_option("-D", "--dont-block", action="store_false", default=True, + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate to RATE %(default)r)") + parser.add_argument("-D", "--dont-block", action="store_false", default=True, dest="ok_to_block") - (options, args) = parser.parse_args () - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) - ampl = 0.1 + args = parser.parse_args() + sample_rate = int(args.sample_rate) + ampl = 0.5 src0 = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 650, ampl) dst = audio.sink(sample_rate, - options.audio_output, - options.ok_to_block) + args.audio_output, + args.ok_to_block) self.connect (src0, (dst, 0)) diff --git a/gr-audio/examples/python/multi_tone.py b/gr-audio/examples/python/multi_tone.py index 6232cbef52..00c052794a 100755 --- a/gr-audio/examples/python/multi_tone.py +++ b/gr-audio/examples/python/multi_tone.py @@ -22,8 +22,8 @@ from gnuradio import gr from gnuradio import audio -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float, intx +from argparse import ArgumentParser try: from gnuradio import analog @@ -40,22 +40,18 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, - help="set sample rate to RATE (48000)") - parser.add_option ("-m", "--max-channels", type="int", default="16", + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, + help="set sample rate to RATE (%(default)r)") + parser.add_argument ("-m", "--max-channels", type=int, default=16, help="set maximum channels to use") - parser.add_option("-D", "--dont-block", action="store_false", default=True, + parser.add_argument("-D", "--dont-block", action="store_false", dest="ok_to_block") - (options, args) = parser.parse_args() - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) - limit_channels = options.max_channels + args = parser.parse_args() + sample_rate = int(args.sample_rate) + limit_channels = args.max_channels ampl = 0.1 @@ -76,8 +72,8 @@ class my_top_block(gr.top_block): progression = (7, 11, 1, 5, 9) dst = audio.sink(sample_rate, - options.audio_output, - options.ok_to_block) + args.audio_output, + args.ok_to_block) max_chan = dst.input_signature().max_streams() if (max_chan == -1) or (max_chan > limit_channels): diff --git a/gr-audio/examples/python/noise.py b/gr-audio/examples/python/noise.py index b15065cd4e..31fdb16fe5 100755 --- a/gr-audio/examples/python/noise.py +++ b/gr-audio/examples/python/noise.py @@ -23,30 +23,26 @@ from gnuradio import gr from gnuradio import audio from gnuradio import digital -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float +from argparse import ArgumentParser class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, + parser.add_argument("-r", "--sample-rate", type=eng_float, default=48000, help="set sample rate to RATE (48000)") - (options, args) = parser.parse_args () - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) + args = parser.parse_args() + sample_rate = int(args.sample_rate) ampl = 0.1 src = digital.glfsr_source_b(32) # Pseudorandom noise source b2f = digital.chunks_to_symbols_bf([ampl, -ampl], 1) - dst = audio.sink(sample_rate, options.audio_output) + dst = audio.sink(sample_rate, args.audio_output) self.connect(src, b2f, dst) if __name__ == '__main__': diff --git a/gr-audio/examples/python/spectrum_inversion.py b/gr-audio/examples/python/spectrum_inversion.py index a02d6c5821..163668e450 100755 --- a/gr-audio/examples/python/spectrum_inversion.py +++ b/gr-audio/examples/python/spectrum_inversion.py @@ -29,29 +29,25 @@ from gnuradio import gr from gnuradio import audio from gnuradio import blocks -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float, intx +from argparse import ArgumentParser class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-I", "--audio-input", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-I", "--audio-input", default="", help="pcm input device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-O", "--audio-output", type="string", default="", + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-r", "--sample-rate", type="eng_float", default=8000, - help="set sample rate to RATE (8000)") - (options, args) = parser.parse_args () - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - sample_rate = int(options.sample_rate) - src = audio.source (sample_rate, options.audio_input) - dst = audio.sink (sample_rate, options.audio_output) + parser.add_argument("-r", "--sample-rate", type=eng_float, default=8000, + help="set sample rate to RATE (%(default)r)") + args = parser.parse_args() + sample_rate = int(args.sample_rate) + src = audio.source (sample_rate, args.audio_input) + dst = audio.sink (sample_rate, args.audio_output) vec1 = [1, -1] vsource = blocks.vector_source_f(vec1, True) diff --git a/gr-audio/examples/python/test_resampler.py b/gr-audio/examples/python/test_resampler.py index 94d95fecf3..4d8a9233e7 100755 --- a/gr-audio/examples/python/test_resampler.py +++ b/gr-audio/examples/python/test_resampler.py @@ -23,8 +23,8 @@ from gnuradio import gr, gru from gnuradio import audio from gnuradio import filter -from gnuradio.eng_option import eng_option -from optparse import OptionParser +from gnuradio.eng_arg import eng_float, intx +from argparse import ArgumentParser try: from gnuradio import analog @@ -43,20 +43,16 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - parser = OptionParser(option_class=eng_option) - parser.add_option("-O", "--audio-output", type="string", default="", + parser = ArgumentParser() + parser.add_argument("-O", "--audio-output", default="", help="pcm output device name. E.g., hw:0,0 or /dev/dsp") - parser.add_option("-i", "--input-rate", type="eng_float", default=8000, - help="set input sample rate to RATE (%default)") - parser.add_option("-o", "--output-rate", type="eng_float", default=48000, - help="set output sample rate to RATE (%default)") - (options, args) = parser.parse_args() - if len(args) != 0: - parser.print_help() - raise SystemExit, 1 - - input_rate = int(options.input_rate) - output_rate = int(options.output_rate) + parser.add_argument("-i", "--input-rate", type=eng_float, default=8000, + help="set input sample rate to RATE %(default)r") + parser.add_argument("-o", "--output-rate", type=eng_float, default=48000, + help="set output sample rate to RATE %(default)r") + args = parser.parse_args() + input_rate = int(args.input_rate) + output_rate = int(args.output_rate) interp = gru.lcm(input_rate, output_rate) / input_rate decim = gru.lcm(input_rate, output_rate) / output_rate @@ -67,7 +63,7 @@ class my_top_block(gr.top_block): ampl = 0.1 src0 = analog.sig_source_f(input_rate, analog.GR_SIN_WAVE, 650, ampl) rr = filter.rational_resampler_fff(interp, decim) - dst = audio.sink(output_rate, options.audio_output) + dst = audio.sink(output_rate, args.audio_output) self.connect(src0, rr, (dst, 0)) if __name__ == '__main__': |