Versin of plucking where sinusoid generator is a coroutine.

An advantage of this approach is that all state related to the unit
generator is encapsulated within a single function definition.  The
coroutine is implemented via a task + comm channel, which seems to
lead to buffer underruns.