While playing around with TestSoundGraph (OpenAL version) I discovered something rather odd.
Using the old sound library (before all these new changes were put in), my game played OGGs fine using the SampleLoader trick described here. By adding this piece of code, sound files correctly played on OS X (both 10.3 and 10.4):
if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN)
{
ShortBuffer tmp2 = data.duplicate().order(ByteOrder.LITTLE_ENDIAN).asShortBuffer();
while(tmp2.hasRemaining())
data.putShort(tmp2.get());
data.rewind();
System.out.println("Fixed!");
}
However, with the new changes Arman made, for some odd reason, OGG will play correctly only without that code. In other words, by adding that piece of code that was used to compensate, you are now over compensating for something that doesn't need to be compensated for, and therefore one hears only static.
I am not sure if this is because of the changes that Arman made, or something with Java 1.5 and OS 10.4 Tiger. However, because the old library worked with the above added to compensate (just like 10.3), I think it has something to do with the new changes that Arman made.
Also worthy of note is that WAVs still require the buffer-flip fix. I do not understand why WAVs need it, while OGGs now don't. However, I'm still experiencing the bug where only a few milliseconds of a WAV will play (so in TestSoundGraph footsteps.wav sounds like a hammer hitting repeatedly).
What's going on?