We'll need to reverse the decoding process to encode arbitrary PCM data as MP3 or WAV. This isn't a feature I am personally concerned about but it should be on the roadmap somewhere.
dls files and sf2 files are probably the first targets for loading in instruments, to then determine how we can fit those instruments into our wave function syntax.
There should be either klangsynthese.Load/SaveFile or audio.Load/SaveFile that take in file names and switch to the appropriate sub-package depending on the extension of the file name.
Right now we support 16-bit audio. It is trivial but a good amount of work to extend what we have to support other bit depths. Some research into what bit depths would be meaningful would help, and if there's some conflict between, say, float64 and int64 encoding styles that we need more information for.
Along the way we should look into if there's a better way to resolve filters on audio of different bit depths than just using a switch.
I don't have a way to test on Darwin in the first place right now, so this will be on hold until that changes or someone who can test it can take this over.
The mentioned interface, which is a little harsh because it requires that you be able to convert your buffer to the three buffer types that go-audio has canonized.
Filters right now act on a single audio, and while that audio could be a Multi it would be good to have a pattern that explicitly took in n audio streams and combined them like a module in a synthesizer.