Tidy up playback API and make it restore playback in case an effect is changed