Use list() instead of tuple() in Duplexer
Support writing audio out to disk
Note about refactoring icystream()