reimplement SoundfileData, give Soundfile a mode as a template argument