Try to fix playback
don't let block return until it has something
Switch to a Read-based approach, with ugly locking to get sync.

craps up after a while