Damus

Recent Notes

:ihavenomouth:  profile picture
I think my ability to bring it closer to reference decoders ends here. The difference with libmad (apparently the best decoder out there, and the one audacity uses) is so small that the difference track is inaudible until i crank up the volume to +27dB

:ihavenomouth:  profile picture
I compared output from different decoding stages to minimp3 and found that minimp3 ignores higher spectral lines even if they contain non zero values. I have no idea why it does that, this behavior is not in the specification.
:ihavenomouth:  profile picture
Also, since blocks of those types never follow one another, and each granule is overlapped with the previous one, the resulting MDCT turns out half-correct, and then it's transformed and overlapped with transform from the previous two granules to construct the waveform, so the error is spread over six blocks, and that's why the waveform turns out almost correct anyway. When I had broken type 2 blocks, there were multiple broken granules in a row, and the error accumulated
:ihavenomouth:  profile picture
for whatever reason block types 1 and 3 are decoded incorrectly, and i have no idea why. they should be exactly the same as 0 except for windowing, but i'm getting wrong values even before IMDCT