commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] gnuradio-examples/python/audio dialtone_v.py


From: Robert McGwier
Subject: [Commit-gnuradio] gnuradio-examples/python/audio dialtone_v.py
Date: Fri, 16 Jun 2006 05:11:21 +0000

CVSROOT:        /sources/gnuradio
Module name:    gnuradio-examples
Changes by:     Robert McGwier <rwmcgwier>      06/06/16 05:11:21

Modified files:
        python/audio   : dialtone_v.py 

Log message:
        Modifications of vector dial tone add example to include copyright

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnuradio-examples/python/audio/dialtone_v.py?cvsroot=gnuradio&r1=1.2&r2=1.3

Patches:
Index: dialtone_v.py
===================================================================
RCS file: /sources/gnuradio/gnuradio-examples/python/audio/dialtone_v.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- dialtone_v.py       13 Jun 2006 16:32:53 -0000      1.2
+++ dialtone_v.py       16 Jun 2006 05:11:21 -0000      1.3
@@ -1,9 +1,36 @@
 #!/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 2, 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., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, 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
-size = 1024
 rate = 48000
 
 fg = gr.flow_graph()
@@ -13,21 +40,21 @@
 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, size)
-bv = gr.stream_to_vector(gr.sizeof_float, 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(size)
+adder = gr.add_vff(rate)
 
 # Make a 1 Hz sine envelope
-envelope = gr.sig_source_f(rate, gr.GR_SIN_WAVE, 1, 0.5, 0.5);
-envelopev = gr.stream_to_vector(gr.sizeof_float, size)
+envelope = [sin(2*pi*x/rate)*0.5 for x in range(rate)]
+multiplier = gr.multiply_const_vff(envelope)
 
-# Make a mixer to apply the envelope
-mixer = gr.multiply_vff(size)
+# 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, size)
+result = gr.vector_to_stream(gr.sizeof_float, rate)
 
 # Play it
 sink = audio.sink(rate)
@@ -36,11 +63,7 @@
 fg.connect(b, bv)
 fg.connect(av, (adder, 0))
 fg.connect(bv, (adder, 1))
-fg.connect(adder, (mixer, 0))
-fg.connect(envelope, envelopev)
-fg.connect(envelopev, (mixer, 1))
-fg.connect(mixer, result)
-fg.connect(result, sink)
+fg.connect(adder, multiplier, offset, result, sink)
 
 try:
     fg.run()




reply via email to

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