diff options
Diffstat (limited to 'gr-vocoder')
-rw-r--r-- | gr-vocoder/CMakeLists.txt | 3 | ||||
-rwxr-xr-x | gr-vocoder/examples/alaw_audio_loopback.py | 9 | ||||
-rwxr-xr-x | gr-vocoder/examples/codec2_audio_loopback.py | 9 | ||||
-rwxr-xr-x | gr-vocoder/examples/cvsd_audio_loopback.py | 16 | ||||
-rwxr-xr-x | gr-vocoder/examples/g721_audio_loopback.py | 9 | ||||
-rwxr-xr-x | gr-vocoder/examples/g723_24_audio_loopback.py | 9 | ||||
-rwxr-xr-x | gr-vocoder/examples/g723_40_audio_loopback.py | 9 | ||||
-rwxr-xr-x | gr-vocoder/examples/gsm_audio_loopback.py | 9 | ||||
-rwxr-xr-x | gr-vocoder/examples/ulaw_audio_loopback.py | 9 | ||||
-rw-r--r-- | gr-vocoder/python/CMakeLists.txt | 6 | ||||
-rw-r--r-- | gr-vocoder/python/cvsd.py | 26 | ||||
-rwxr-xr-x | gr-vocoder/python/qa_cvsd_vocoder.py | 18 |
12 files changed, 82 insertions, 50 deletions
diff --git a/gr-vocoder/CMakeLists.txt b/gr-vocoder/CMakeLists.txt index 235054db62..95c7ae3c19 100644 --- a/gr-vocoder/CMakeLists.txt +++ b/gr-vocoder/CMakeLists.txt @@ -29,6 +29,9 @@ include(GrComponent) GR_REGISTER_COMPONENT("gr-vocoder" ENABLE_GR_VOCODER Boost_FOUND ENABLE_GR_CORE + ENABLE_GR_FFT + ENABLE_GR_BLOCKS + ENABLE_GR_FILTER ) GR_SET_GLOBAL(GR_VOCODER_INCLUDE_DIRS diff --git a/gr-vocoder/examples/alaw_audio_loopback.py b/gr-vocoder/examples/alaw_audio_loopback.py index ad686244b3..5b800b5bfb 100755 --- a/gr-vocoder/examples/alaw_audio_loopback.py +++ b/gr-vocoder/examples/alaw_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.alaw_encode_sb() dec = vocoder.alaw_decode_bs() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/examples/codec2_audio_loopback.py b/gr-vocoder/examples/codec2_audio_loopback.py index f5da9c217b..bf95f39ce9 100755 --- a/gr-vocoder/examples/codec2_audio_loopback.py +++ b/gr-vocoder/examples/codec2_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.codec2_encode_sp() dec = vocoder.codec2_decode_ps() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/examples/cvsd_audio_loopback.py b/gr-vocoder/examples/cvsd_audio_loopback.py index f101fecb4e..ef4c6ded21 100755 --- a/gr-vocoder/examples/cvsd_audio_loopback.py +++ b/gr-vocoder/examples/cvsd_audio_loopback.py @@ -20,8 +20,10 @@ # Boston, MA 02110-1301, USA. # -from gnuradio import gr, blks2 +from gnuradio import gr from gnuradio import audio +from gnuradio import blocks +from gnuradio import filter from gnuradio import vocoder def build_graph(): @@ -30,18 +32,18 @@ def build_graph(): tb = gr.top_block() src = audio.source(sample_rate, "plughw:0,0") - src_scale = gr.multiply_const_ff(scale_factor) + src_scale = blocks.multiply_const_ff(scale_factor) - interp = blks2.rational_resampler_fff(8, 1) - f2s = gr.float_to_short () + interp = filter.rational_resampler_fff(8, 1) + f2s = blocks.float_to_short() enc = vocoder.cvsd_encode_sb() dec = vocoder.cvsd_decode_bs() - s2f = gr.short_to_float () - decim = blks2.rational_resampler_fff(1, 8) + s2f = blocks.short_to_float() + decim = filter.rational_resampler_fff(1, 8) - sink_scale = gr.multiply_const_ff(1.0/scale_factor) + sink_scale = blocks.multiply_const_ff(1.0/scale_factor) sink = audio.sink(sample_rate, "plughw:0,0") tb.connect(src, src_scale, interp, f2s, enc) diff --git a/gr-vocoder/examples/g721_audio_loopback.py b/gr-vocoder/examples/g721_audio_loopback.py index 339ea79ad1..42abbabf64 100755 --- a/gr-vocoder/examples/g721_audio_loopback.py +++ b/gr-vocoder/examples/g721_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.g721_encode_sb() dec = vocoder.g721_decode_bs() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/examples/g723_24_audio_loopback.py b/gr-vocoder/examples/g723_24_audio_loopback.py index 34d9ddd5dd..cade33f295 100755 --- a/gr-vocoder/examples/g723_24_audio_loopback.py +++ b/gr-vocoder/examples/g723_24_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.g723_24_encode_sb() dec = vocoder.g723_24_decode_bs() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/examples/g723_40_audio_loopback.py b/gr-vocoder/examples/g723_40_audio_loopback.py index c636d82d1e..77e40884cf 100755 --- a/gr-vocoder/examples/g723_40_audio_loopback.py +++ b/gr-vocoder/examples/g723_40_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.g723_40_encode_sb() dec = vocoder.g723_40_decode_bs() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/examples/gsm_audio_loopback.py b/gr-vocoder/examples/gsm_audio_loopback.py index ba0fcb847b..5d5bf9dd72 100755 --- a/gr-vocoder/examples/gsm_audio_loopback.py +++ b/gr-vocoder/examples/gsm_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.gsm_fr_encode_sp() dec = vocoder.gsm_fr_decode_ps() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/examples/ulaw_audio_loopback.py b/gr-vocoder/examples/ulaw_audio_loopback.py index e7a96d3673..9f0617622e 100755 --- a/gr-vocoder/examples/ulaw_audio_loopback.py +++ b/gr-vocoder/examples/ulaw_audio_loopback.py @@ -22,17 +22,18 @@ from gnuradio import gr from gnuradio import audio +from gnuradio import blocks from gnuradio import vocoder def build_graph(): tb = gr.top_block() src = audio.source(8000) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short () + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() enc = vocoder.ulaw_encode_sb() dec = vocoder.ulaw_decode_bs() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) sink = audio.sink(8000) tb.connect(src, src_scale, f2s, enc, dec, s2f, sink_scale, sink) return tb diff --git a/gr-vocoder/python/CMakeLists.txt b/gr-vocoder/python/CMakeLists.txt index 9152ee133d..9fdc625280 100644 --- a/gr-vocoder/python/CMakeLists.txt +++ b/gr-vocoder/python/CMakeLists.txt @@ -36,6 +36,12 @@ GR_PYTHON_INSTALL( if(ENABLE_TESTING) list(APPEND GR_TEST_PYTHON_DIRS + ${CMAKE_BINARY_DIR}/gr-blocks/python + ${CMAKE_BINARY_DIR}/gr-blocks/swig + ${CMAKE_BINARY_DIR}/gr-filter/python + ${CMAKE_BINARY_DIR}/gr-filter/swig + ${CMAKE_BINARY_DIR}/gr-analog/python + ${CMAKE_BINARY_DIR}/gr-analog/swig ${CMAKE_BINARY_DIR}/gr-vocoder/python ${CMAKE_BINARY_DIR}/gr-vocoder/swig ) diff --git a/gr-vocoder/python/cvsd.py b/gr-vocoder/python/cvsd.py index e9b3ee3054..1c58c33076 100644 --- a/gr-vocoder/python/cvsd.py +++ b/gr-vocoder/python/cvsd.py @@ -23,6 +23,16 @@ from gnuradio import gr import vocoder_swig +try: + from gnuradio import filter +except ImportError: + import filter_swig as filter + +try: + from gnuradio import blocks +except ImportError: + import blocks_swig as blocks + class cvsd_encode_fb(gr.hier_block2): ''' This is a wrapper for the CVSD encoder that performs interpolation and filtering @@ -46,10 +56,10 @@ class cvsd_encode_fb(gr.hier_block2): scale_factor = 32000.0 self.interp = resample - src_scale = gr.multiply_const_ff(scale_factor) - taps = gr.firdes.low_pass(self.interp, self.interp, bw, 2*bw) - interp = gr.interp_fir_filter_fff(self.interp, taps) - f2s = gr.float_to_short() + src_scale = blocks.multiply_const_ff(scale_factor) + taps = filter.firdes.low_pass(self.interp, self.interp, bw, 2*bw) + interp = filter.interp_fir_filter_fff(self.interp, taps) + f2s = blocks.float_to_short() enc = vocoder_swig.cvsd_encode_sb() self.connect(self, src_scale, interp, f2s, enc, self) @@ -78,9 +88,9 @@ class cvsd_decode_bf(gr.hier_block2): self.decim = resample dec = vocoder_swig.cvsd_decode_bs() - s2f = gr.short_to_float() - taps = gr.firdes.low_pass(1, 1, bw, 2*bw) - decim = gr.fir_filter_fff(self.decim, taps) - sink_scale = gr.multiply_const_ff(1.0/scale_factor) + s2f = blocks.short_to_float() + taps = filter.firdes.low_pass(1, 1, bw, 2*bw) + decim = filter.fir_filter_fff(self.decim, taps) + sink_scale = blocks.multiply_const_ff(1.0/scale_factor) self.connect(self, dec, s2f, decim, sink_scale, self) diff --git a/gr-vocoder/python/qa_cvsd_vocoder.py b/gr-vocoder/python/qa_cvsd_vocoder.py index 573e6a1302..579b019cc9 100755 --- a/gr-vocoder/python/qa_cvsd_vocoder.py +++ b/gr-vocoder/python/qa_cvsd_vocoder.py @@ -23,6 +23,8 @@ from gnuradio import gr, gr_unittest from vocoder_swig import * from cvsd import * +import blocks_swig as blocks +import filter_swig as filter class test_cvsd_vocoder (gr_unittest.TestCase): @@ -95,20 +97,22 @@ class test_cvsd_vocoder (gr_unittest.TestCase): -0.16035343706607819, 0.014823081903159618, 0.16282452642917633, 0.33802291750907898) - src = gr.sig_source_f(sample_rate, gr.GR_SIN_WAVE, 200, 1, 0) + # WARNING: not importing analog in this QA code. + # If we enable this, we can probably just create a sin with numpy. + src = analog.sig_source_f(sample_rate, analog.GR_SIN_WAVE, 200, 1, 0) head = gr.head(gr.sizeof_float, 100) - src_scale = gr.multiply_const_ff(scale_factor) + src_scale = blocks.multiply_const_ff(scale_factor) - interp = blks2.rational_resampler_fff(8, 1) - f2s = gr.float_to_short () + interp = filter.rational_resampler_fff(8, 1) + f2s = blocks.float_to_short() enc = cvsd_vocoder.encode_sb() dec = cvsd_vocoder.decode_bs() - s2f = gr.short_to_float () - decim = blks2.rational_resampler_fff(1, 8) + s2f = blocks.short_to_float() + decim = filter.rational_resampler_fff(1, 8) - sink_scale = gr.multiply_const_ff(1.0/scale_factor) + sink_scale = blocks.multiply_const_ff(1.0/scale_factor) sink = gr.vector_sink_f() self.tb.connect(src, src_scale, interp, f2s, enc) |