Hi Scott On 2014-11-19 21:51, Scott Furry <scott wl furry gmail com> wrote:
Stores may sell audio files in that format, but the library to manipulate those files may be licensed. This was the fiasco with not having mp3 codec in linux some time ago.
The codec in this sense is quite different from the tagging scheme. Sony has published a DSF specification, on which I based the DSF reading and writing code:
http://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdfEasyTAG does no processing nor decoding of DSD audio data, as with other audio formats.
As you observed...changing a tag in a dsf file causes it to be unreadable in another application. The explanation can be one of several things, just not necessarily with EasyTag. Please remember that EasyTag will call another library to do the writing of information to the file. Maybe that library is the issue.
The DSF code is a custom implementation, as I am not aware of a library which handles DSF files. The header is very simple, and (sensibly) uses an ID3v2 tag placed at the end of the file, rather than inventing a new format (like the alternative DSDIFF). The custom implementation is small and maintainable, as it is possible to reuse large parts of the existing ID3 tagging code.
In this case, EasyTAG is almost certainly the problem. I just fixed a bug where the file size stored in the DSF header was not updated when the tag size changed, which would lead to invalid headers being written. The DSF code is somewhat tolerant of header errors when reading, and I added a debug message which is emitted if the file size field in the header is incorrect.
Again...id3 is not a rule, just a suggestion. And there are lots of digitally moving parts involved here.
ID3 (particularly the 2.3 and 2.4 versions) is as good a specification as many others, whether open or closed. Compliance with specifications will always be a problem, but the solution is to fix the bugs when they are found, and attempt to gracefully handle deviations from the specification. Unfortunately, most ID3 tagging libraries, such as id3lib and libid3tag, are not fully compliant with the specification and have not had a release in many years, which makes fixing implementation bugs more difficult.
-- http://amigadave.com/
Attachment:
signature.asc
Description: Digital signature