Open standards amigo, that was half the point. If it is simple zip, then I can use any zip editor to view, extract, or create these files.Markleford wrote: 1) I don't think any particular existing archive format is necessary, is it? Roll your own and make a utility to pack and unpack them (as well as convert from SF2, etc)
Agreed, which is why I suggest tar format. It's *really* simple.2) Compression should be left to an external app, sort of the way sfpack and sfark do things.
To stay cross platform you want to LIMIT choices, not offer them. MP3 has a host of issues. Ogg is great, but I think the right answer is wav.3) Are we keeping an eye towards platform-interop for the binary portions? Should samples be allowed in aiff, as well? mp3, ogg?
We'd also need to somehow set convention for mono vs. stereo, encoding, sample rate and bit depth.
Something like "All the samples in an archive must have the same sample rate, channel count, and bit depth, or the behavior is undefined." and "Any wav encoding may be used, though non-PCM encodings may limit cross platform use of an archive. PCM encoding is reccomended."
See above. Sample length is intrinsic to a wav file, and loop points are embedded within the wav file.4) As pointed out, where are sample lengths and loop points? Of course, these could be embedded in an internal .wav or .aif file, but how will the other formats cope?
Possibly true - that CAN be done well at the plugin level. I'd vote to nix it.5) Muting group? Hey, this ain't no stinkin' drum machine!
If the specification is simple enough and clear enough, we don't NEED an SDK or anything beyond the DTD for the metadata. By all means write all the C++ code you want, but when it comes time to implement this format reader, it should take a few hours AT MOST.6) More important than the file-format is perhaps the API for use in the synth's development! I'd naturally gravitate to providing a solid C++ class first of all, which could be ported later to other popular audio dev
That's the hallmark of simplicity, to me