Am I insane? I've been porting the MusicBrainz audio fingerprinting code to Java and it's mostly done, but i got to the point where I'm actually comparing them, and it turns out that the java MP3 decoder I'm using (javaLayer 0.2.0 from JavaZoom) is producing drastically different results than libMAD (which is what musicbrainz uses by default). Is this possible? Can two decoders play the "same music" (I know the java one works because I can play audio with it) yet produce very different sets of decoded data? It's very possible that I'm just misunderstanding one of the API's and what they're giving me, but I can't for the life of me tell what I'm doing wrong (there are always several layers of type conversion to get from C=>Java, so it's very possible I've done something wacky in the middle somewhere). The other possibility is that what I am perceiving as "drastically different" is pretty different at the lowest level but is not as different as I think when you step back to the frame level. I really don't want to port libMAD to Java ... that would ruin my week.