Kevin:

Thank you for the quick and complete reply, I appreciate the help!

-Ed

On Wed, Jun 29, 2016 at 11:04 AM, Kevin Reid <kpr...@switchb.org> wrote:

> On Jun 29, 2016, at 07:50, Ed Coleman <ed.coleman...@gmail.com> wrote:
> > if __name__ == '__main__':
> >     simpleTone().run()
> >
> > The code above works fine, however if I make the following substitution:
> >
> > if __name__ == '__main__':
> >     simpleTone().start()
> >     simpleTone().wait()
> >     #time.sleep(3)
> >     simpleTone().stop()
> >
> > The result is that the file runs, and ends after 3 seconds but no audio
> is produced.
>
> Your problem is that you're constructing three unrelated top blocks: you
> have three separate occurrences of "simpleTone()". Instead you need to
> create one and continue to use it, like so:
>
>     tb = simpleTone()
>     tb.start()
>     ...
>     tb.stop()
>
> You have another problem, too, which you will find after fixing the first
> one. .wait() means to wait for the flowgraph to finish all processing, and
> your flowgraph has no elements within it to finish such as a Head block, so
> the .stop() will never be reached.
>
> Instead, you need to proceed like this:
>
>     tb = simpleTone()
>     tb.start()
>     # the flowgraph is now running independently
>     time.sleep(3)
>     tb.stop()
>     tb.wait()
>
> The final .wait() is not actually necessary in this case -- what it does
> is wait for the flowgraph to finish, which will happen shortly after
> .stop() is called, but if you later wish to start the same top block again,
> you must have called .wait() before you call .start(), so always having a
> matched set of [start, stop, wait] or [start, wait, stop] is good practice.
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to