VGMStream: Lossy vs. Lossless by Katsur at 9:26 PM EDT on September 7, 2024
VGMStream doesn't support filter that decides which codec is lossy or lossless, so it instead displays "lossy/lossless". This makes me wonder if most of video game-purpose codecs are lossy, so I made this list. Developers have no plans on this filter support at the time being. Notice: neither list is complete, because of time constraints and difficulties to decide which one specific obscure codec is lossy or lossless
ADPCM is inherently lossy, and CRI ADX, DVI, PSX, for example, are no exception. UPDATE: I've just realized that DPCM (PCM with a "D" at start of the acronym) is actually lossy, just like ADPCM.
Often in game audio, FLAC/PCM may be "lossy" compared to the source audio too, which is why I made vgmstream print "lossy/lossless" regardless of codec.
For example one game could use 22050hz PCM .wav in one platform and 48000hz Vorbis .ogg in other. The later would actually sound better even though PCM is "lossless" and Vorbis "lossy".
Or game may use 48000hz PCM .wav, but was actually converted from 22050 low bitrate .mp3 (b/c for example the game engine couldn't decode MP3 fast enough), so it's going to sound as bad as the original file despite being "lossless".
In other words the distinction isn't meaningful and you should check if the codec/sample rate/bitrate/source/etc combo used actually "sounds good". I felt printing "lossless" for PCM/FLAC would make people think any PCM is better by default.
Good points. And, fundamentally, "lossless" is a property of a conversion, not a particular format. As you say any given data is only lossless or lossy in comparison to some source. A lossless codec at least has the possibility of being part of a lossless production chain.
I can imagine the option that checks if the supported codec is either lossy or lossless rather than "lossy/lossless". It can be useful if VGMStream component's priority is set to #1 in Foobar2000.
The recent update of VGMStream indicates that TXTH finally support subsong stream names, and it sounds quality-of-life. Maybe my suggestion would be close to such.