Playback and record are occur in a background thread so the GUI is still responsive during these.