I've identified a scenario that can lead to file corruption.
It concerns wavpacked .dsf files
My process is as follows:
I extract .dsf files from my SACD ISO backup. I then tag these files in foobar2000. The correct tag type is id3v2. I specifically tag with Musicbrainz tags. I do this in case I ever want to extract the .dsf from .wv so all tags are still present.
Next, I reencode these files in BatchEncoder with Wavpack. During the conversion process the existing tags are imported to apev2 format which is the correct tag type for .wv. Since Musicbrainz uses a different set of tags for apev2 and id3, I have to tag with Musicbrainz again.
Now, in foobar2000 there are two ways these files can be read into the library: With the wavpack decoder above the SACD plugin or the SACD plugin above the wavpack decoder. Depending on which configuration is chosen, the files are shown in the library either as WAVPACK or as DSD64.
If WAVPACK is on top, the apev2 tags are read and the files are shown with their PCM properties which WAVPACK uses as fallback.
If the SACD plugin is on the top, the id3v2 tags are read.
In both cases, all sets of Musicbrainz tags are shown.
Now, if the SACD plugin is on top and the id3 tags are manipulated, its possible to corrupt the files in certain scenarios.
Therefore I would propose that the SACD plugin ignores id3 tags in .wv files and treats them the same way the WAVPACK decoder would.
Not sure if it's technically possible but it would be ideal to have the SACD plugin on top so that the DSD stream could be used vs. the PCM stream, but to ignore id3 tags and only read apev2 tags.
Anonymous