callback based playing. will prolly do it on record too. will want a thread.