Does that mean there was bitrot ready in the original file? Something else? How is the checksum even generated successfully if it’s corrupted or undreadable in the first place.
Any way to fix?
It is important that you check to see if the file really is pristine after you take the first checksum. That you can read and use the file. Otherwise you may take a checksum of a file that is already corrupt. That is not very useful.
Most likely it is not actually spontaneous bitrot. It is much more likely that somebody made the file corrupt. Usually it is some form of user error.
Its an audio file. I can play it but cant tell easily without playing through it to see if it is corrupted at certain parts.
Then you have to assume that the file already is at least a little corrupt. What you need to determine is if the level of corruption is so bad that it is a problem. If it crash an audioplayer or the file sounds bad. Ideally you have a backup copy that is better or you can download or create a new file that works OK. Possibly you can re-encode the file to fix problems. It will degrade audio quality if the encoding is lossy. But perhaps not enough to be noticeable.
Some audio file formats have embedded checksums. FLAC or WavPack. Perhaps more? You should be able to find utilites that can compare the embedded checksum with the current stored data.
In the future use a checksummed format or store separate checksums. Or zip the files. The zip format has embedded checksums. (Same with all(?) other compressed formats.)
Are you saying it fails to make a checksum at all? What program? Try this one: https://github.com/gurnec/HashCheck/releases/tag/v2.4.0
I am on using hashcheck lol. It works. But when checking, it comes out as unreadable.