Dial_Tone Block
from gnuradio import gr
from gnuradio import audio
from gnuradio.eng_option import eng_option
from optparse import OptionParser
# Same as include in C++ , Used to include libraries
# gr is the basic library (GNURadio)
# audio library is included because we are using soundcard
# ignore other two
try:
from gnuradio import analog
except ImportError:
sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
# This block is exception handling Ignore it too
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
# Ignore the above code. The only important thing is default which will set sample_rate
sample_rate = int(options.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)
# Two Sinusoidal audio sources are created with frequency 350 and 440 and amplitude of 0.1 sampled at 48000
dst = audio.sink(sample_rate, options.audio_output)
self.connect(src0, (dst, 0))
self.connect(src1, (dst, 1))
# An audio sink is created with same sample rate (48000) and source0 the sine wave of freq 350 is connected to destination0 of sink. Similarly source1 of freq 440 is connected to destination1 of Sink
if __name__ == '__main__':
try:
my_top_block().run()
except KeyboardInterrupt:
pass
# Ignore this block
Subscribe to:
Posts (Atom)
No comments:
Post a Comment