re-re-fixing the puredata bindings. this time i hope i get it right. using task abstractions: each instance is a task. this way i can do interesting sequencing in pd. also, i switched to a pure message passing coroutine approach. no re-entrance. all this is nice practice for tasks in purrr.