#!/usr/bin/env python2 ################################################## # GNU Radio Python Flow Graph # Title: Wav Generator # Generated: Tue Jun 9 16:21:49 2015 ################################################## from gnuradio import analog from gnuradio import audio from gnuradio import blocks from gnuradio import eng_notation from gnuradio import gr from gnuradio.eng_option import eng_option from gnuradio.filter import firdes from optparse import OptionParser class wav_generator(gr.top_block): def __init__(self): gr.top_block.__init__(self, "Wav Generator") ################################################## # Variables ################################################## self.samp_rate = samp_rate = 44100 self.f440 = f440 = 440 self.f350 = f350 = 350 self.duration = duration = 2.5 ################################################## # Blocks ################################################## self.blocks_wavfile_sink_0 = blocks.wavfile_sink("/tmp/wavfile.wav", 1, samp_rate, 8) self.blocks_head_0 = blocks.head(gr.sizeof_float*1, int(duration * samp_rate)) self.blocks_add_xx_0 = blocks.add_vff(1) self.audio_sink_0 = audio.sink(samp_rate, "", True) self.analog_sig_source_x_1 = analog.sig_source_f(samp_rate, analog.GR_COS_WAVE, f440, 0.4, 0) self.analog_sig_source_x_0 = analog.sig_source_f(samp_rate, analog.GR_COS_WAVE, f350, 0.4, 0) ################################################## # Connections ################################################## self.connect((self.analog_sig_source_x_0, 0), (self.blocks_add_xx_0, 0)) self.connect((self.analog_sig_source_x_1, 0), (self.blocks_add_xx_0, 1)) self.connect((self.blocks_add_xx_0, 0), (self.blocks_head_0, 0)) self.connect((self.blocks_head_0, 0), (self.audio_sink_0, 0)) self.connect((self.blocks_head_0, 0), (self.blocks_wavfile_sink_0, 0)) def get_samp_rate(self): return self.samp_rate def set_samp_rate(self, samp_rate): self.samp_rate = samp_rate self.analog_sig_source_x_0.set_sampling_freq(self.samp_rate) self.analog_sig_source_x_1.set_sampling_freq(self.samp_rate) self.blocks_head_0.set_length(int(self.duration * self.samp_rate)) def get_f440(self): return self.f440 def set_f440(self, f440): self.f440 = f440 self.analog_sig_source_x_1.set_frequency(self.f440) def get_f350(self): return self.f350 def set_f350(self, f350): self.f350 = f350 self.analog_sig_source_x_0.set_frequency(self.f350) def get_duration(self): return self.duration def set_duration(self, duration): self.duration = duration self.blocks_head_0.set_length(int(self.duration * self.samp_rate)) if __name__ == '__main__': parser = OptionParser(option_class=eng_option, usage="%prog: [options]") (options, args) = parser.parse_args() tb = wav_generator() tb.start() tb.wait()