commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r8181 - in gnuradio/trunk/gr-audio-portaudio/src: . py


From: n4hy
Subject: [Commit-gnuradio] r8181 - in gnuradio/trunk/gr-audio-portaudio/src: . python
Date: Thu, 10 Apr 2008 15:54:04 -0600 (MDT)

Author: n4hy
Date: 2008-04-10 15:54:03 -0600 (Thu, 10 Apr 2008)
New Revision: 8181

Added:
   gnuradio/trunk/gr-audio-portaudio/src/python/
   gnuradio/trunk/gr-audio-portaudio/src/python/Makefile.am
   gnuradio/trunk/gr-audio-portaudio/src/python/audio_c_pa.py.py
   gnuradio/trunk/gr-audio-portaudio/src/python/audio_copy_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/audio_fft_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/audio_play_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/audio_to_file_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/dial_tone_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/mono_tone_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/multi_tone_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/noise_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/qa_nothing_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/spectrum_inversion_pa.py
   gnuradio/trunk/gr-audio-portaudio/src/python/test_resampler_pa.py
Log:
adding example sources to portaudio

Added: gnuradio/trunk/gr-audio-portaudio/src/python/Makefile.am
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/Makefile.am                    
        (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/Makefile.am    2008-04-10 
21:54:03 UTC (rev 8181)
@@ -0,0 +1,38 @@
+#
+# Copyright 2004 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.
+# 
+
+include $(top_srcdir)/Makefile.common
+
+EXTRA_DIST =                           \
+       audio_copy_pa.py                \
+       audio_fft_pa.py                 \
+       audio_play_pa.py                \
+       audio_to_file_pa.py             \
+       dial_tone_pa.py                 \
+       mono_tone_pa.py                 \
+       multi_tone_pa.py                \
+       noise_pa.py                     \
+       spectrum_inversion_pa.py        \
+       test_resampler_pa.py    
+
+ourdatadir = $(exampledir)/audio
+ourdata_DATA = $(EXTRA_DIST)
+


Property changes on: gnuradio/trunk/gr-audio-portaudio/src/python/Makefile.am
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/audio_c_pa.py.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/audio_c_pa.py.py               
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/audio_c_pa.py.py       
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,64 @@
+#!/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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+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="",
+                          help="pcm input device name.  E.g., hw:0,0 or 
/dev/dsp")
+        parser.add_option("-O", "--audio-output", type="string", 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)
+        src = audio_portaudio.source (sample_rate, options.audio_input)
+        dst = audio_portaudio.sink (sample_rate, options.audio_output)
+
+        # Determine the maximum number of outputs on the source and
+        # maximum number of inputs on the sink, then connect together
+        # the most channels we can without overlap
+        nchan = min (src.output_signature().max_streams(),
+                     dst.input_signature().max_streams())
+
+        for i in range (nchan):
+            self.connect ((src, i), (dst, i))
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass
+    


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/audio_c_pa.py.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/audio_copy_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/audio_copy_pa.py               
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/audio_copy_pa.py       
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,64 @@
+#!/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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+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="",
+                          help="pcm input device name.  E.g., hw:0,0 or 
/dev/dsp")
+        parser.add_option("-O", "--audio-output", type="string", 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)
+        src = audio_portaudio.source (sample_rate, options.audio_input)
+        dst = audio_portaudio.sink (sample_rate, options.audio_output)
+
+        # Determine the maximum number of outputs on the source and
+        # maximum number of inputs on the sink, then connect together
+        # the most channels we can without overlap
+        nchan = min (src.output_signature().max_streams(),
+                     dst.input_signature().max_streams())
+
+        for i in range (nchan):
+            self.connect ((src, i), (dst, i))
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass
+    


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/audio_copy_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/audio_fft_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/audio_fft_pa.py                
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/audio_fft_pa.py        
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,138 @@
+#!/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_portaudio
+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_portaudio.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['address@hidden'] = form.static_float_field(
+            parent=panel, sizer=hbox, label="address@hidden")
+
+        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 ()


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/audio_fft_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/audio_play_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/audio_play_pa.py               
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/audio_play_pa.py       
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,57 @@
+#!/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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+
+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="",
+                          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 = gr.file_source (gr.sizeof_float, options.filename, 
options.repeat)
+        dst = audio_portaudio.sink (sample_rate, options.audio_output)
+        self.connect(src, dst)
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/audio_play_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/audio_to_file_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/audio_to_file_pa.py            
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/audio_to_file_pa.py    
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+#
+# Copyright 2004,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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+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="",
+                          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,
+                          help="number of samples to collect [default=+inf]")
+     
+        (options, args) = parser.parse_args ()
+        if len(args) != 1:
+            parser.print_help()
+            raise SystemExit, 1
+        filename = args[0]
+
+        sample_rate = int(options.sample_rate)
+        src = audio_portaudio.source (sample_rate, options.audio_input)
+        dst = gr.file_sink (gr.sizeof_float, filename)
+
+        if options.nsamples is None:
+            self.connect((src, 0), dst)
+        else:
+            head = gr.head(gr.sizeof_float, int(options.nsamples))
+            self.connect((src, 0), head, dst)
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/audio_to_file_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/dial_tone_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/dial_tone_pa.py                
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/dial_tone_pa.py        
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,57 @@
+#!/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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+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="",
+                          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)
+        ampl = 0.1
+
+        src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, ampl)
+        src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, ampl)
+        dst = audio_portaudio.sink (sample_rate, options.audio_output)
+        self.connect (src0, (dst, 0))
+        self.connect (src1, (dst, 1))
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/dial_tone_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/mono_tone_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/mono_tone_pa.py                
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/mono_tone_pa.py        
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,66 @@
+#!/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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+#import os
+#print os.getpid()
+#raw_input('Attach gdb and press Enter: ')
+
+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="",
+                          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,
+                          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
+
+        src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 650, ampl)
+
+        dst = audio_portaudio.sink (sample_rate,
+                          options.audio_output,
+                          options.ok_to_block)
+            
+        self.connect (src0, (dst, 0))
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/mono_tone_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/multi_tone_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/multi_tone_pa.py               
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/multi_tone_pa.py       
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+#
+# Copyright 2004,2006,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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+#import os
+#print os.getpid()
+#raw_input('Attach gdb and press Enter: ')
+
+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="",
+                          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",
+                           help="set maximum channels to use")
+        parser.add_option("-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)
+        limit_channels = options.max_channels
+
+        ampl = 0.1
+
+        # With a tip of the hat to Harry Partch, may he R.I.P.
+        # See "Genesis of a Music".  He was into some very wild tunings...
+        base = 392
+        ratios = { 1 : 1.0,
+                   3 : 3.0/2,
+                   5 : 5.0/4,
+                   7 : 7.0/4,
+                   9 : 9.0/8,
+                   11 : 11.0/8 }
+
+        # progression = (1, 5, 3, 7)
+        # progression = (1, 9, 3, 7)
+        # progression = (3, 7, 9, 11)
+        # progression = (7, 11, 1, 5)
+        progression = (7, 11, 1, 5, 9)
+
+        dst = audio_portaudio.sink (sample_rate,
+                          options.audio_output,
+                          options.ok_to_block)
+    
+        max_chan = dst.input_signature().max_streams()
+        if (max_chan == -1) or (max_chan > limit_channels):
+            max_chan = limit_channels
+
+        for i in range (max_chan):
+            quo, rem = divmod (i, len (progression))
+            freq = base * ratios[progression[rem]] * (quo + 1)
+            src = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, freq, ampl)
+            self.connect (src, (dst, i))
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/multi_tone_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/noise_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/noise_pa.py                    
        (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/noise_pa.py    2008-04-10 
21:54:03 UTC (rev 8181)
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+#
+# Copyright 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
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+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="",
+                          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)
+        ampl = 0.1
+
+        src = gr.glfsr_source_b(32)     # Pseudorandom noise source
+        b2f = gr.chunks_to_symbols_bf([ampl, -ampl], 1)
+        dst = audio_portaudio.sink(sample_rate, options.audio_output)
+        self.connect(src, b2f, dst)
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: gnuradio/trunk/gr-audio-portaudio/src/python/noise_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/qa_nothing_pa.py
===================================================================


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/qa_nothing_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/spectrum_inversion_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/spectrum_inversion_pa.py       
                        (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/spectrum_inversion_pa.py       
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,68 @@
+#!/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.
+
+#
+# Gang - Here's a simple script that demonstrates spectrum inversion
+# using the multiply by [1,-1] method (mixing with Nyquist frequency).
+# Requires nothing but a sound card, and sounds just like listening
+# to a SSB signal on the wrong sideband.
+#
+
+from gnuradio import gr
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+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="",
+                          help="pcm input device name.  E.g., hw:0,0 or 
/dev/dsp")
+        parser.add_option("-O", "--audio-output", type="string", 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_portaudio.source (sample_rate, options.audio_input)
+        dst = audio_portaudio.sink (sample_rate, options.audio_output)
+
+       vec1 = [1, -1]
+       vsource = gr.vector_source_f(vec1, True)
+       multiply = gr.multiply_ff()
+
+       self.connect(src, (multiply, 0))
+       self.connect(vsource, (multiply, 1))
+       self.connect(multiply, dst)
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/spectrum_inversion_pa.py
___________________________________________________________________
Name: svn:executable
   + *

Added: gnuradio/trunk/gr-audio-portaudio/src/python/test_resampler_pa.py
===================================================================
--- gnuradio/trunk/gr-audio-portaudio/src/python/test_resampler_pa.py           
                (rev 0)
+++ gnuradio/trunk/gr-audio-portaudio/src/python/test_resampler_pa.py   
2008-04-10 21:54:03 UTC (rev 8181)
@@ -0,0 +1,66 @@
+#!/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, blks2
+from gnuradio import audio_portaudio
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+
+
+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="",
+                          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)
+
+        interp = gru.lcm(input_rate, output_rate) / input_rate
+        decim = gru.lcm(input_rate, output_rate) / output_rate
+
+        print "interp =", interp
+        print "decim  =", decim
+
+        ampl = 0.1
+        src0 = gr.sig_source_f (input_rate, gr.GR_SIN_WAVE, 650, ampl)
+        rr = blks2.rational_resampler_fff(interp, decim)
+        dst = audio_portaudio.sink (output_rate, options.audio_output)
+        self.connect (src0, rr, (dst, 0))
+
+
+if __name__ == '__main__':
+    try:
+        my_top_block().run()
+    except KeyboardInterrupt:
+        pass


Property changes on: 
gnuradio/trunk/gr-audio-portaudio/src/python/test_resampler_pa.py
___________________________________________________________________
Name: svn:executable
   + *





reply via email to

[Prev in Thread] Current Thread [Next in Thread]