i've got an error while updating jme (Problem writing resource '/jme/lib/lwjgl.jar'. Resource is out of sync with the file system: '/jme/lib/lwjgl.jar'.
Resource is out of sync with the file system: '/jme/lib/lwjgl.jar'.), so i decided to check out jme.
As i did so, i've ran the TestJmexAudio again, and the problem still.
I am running jme under Ubuntu 7.10 ( and at the last post, i was with Ubuntu 7.04 ), and all the updates done.
Trying to dive further into it, I find that the test-programs from LWJGL works (with no noise). So it seems like the problem is one of the following (please tell me if you can think of anything else it could be):
The reading/streaming of data in JME is buggy, hence the sound that we pump into AL is foobar
Some setting somewhere in JME messes up AL, such that it cannot play the data correctly
OpenAL says it is thread safe, but for some reason using multiple threads on OpenAL makes it sound weird.
Please, if there are any Linux&JME users out there, could you try the sound-tests in JME and post your results along with Linux dist and version, such that we at least can track down where the problem is.
I have the exact same problem. Running on Ubuntu 7.10, the sound plays but contains lots of regular discontinuities (sounds noisy). All the tests work well on Windows (Vista/XP) so it seems like something is wrong with OpenAL on Ubuntu, or maybe LWJGL on Linux in general.
My best guess is that it either plays too little of some block, or too much. As the sounds is "correct" within 1/4 of a second, then has a discontinuity, then its "correct" again for 1/4 second or so.
fixes the sound-issues. But doing so re-enables the "let the implementation figure defaults out"-behavior that the LWJGL team has moved away from (AL.java):
155 /**
156 * Creates an OpenAL instance. The empty create will cause OpenAL to
157 * open the default device, and create a context using default values.
158 * This method used to use default values that the OpenAL implementation
159 * chose but this produces unexpected results on some systems; so now
160 * it defaults to 44100Hz mixing @ 60Hz refresh.
161 */
162 public static void create() throws LWJGLException {
163 create(null, 44100, 60, false);
164 }
Huh, that's an interesting finding. Is this a Linux only issue? Also, any idea if lwjgl is working on the issue (the thread did not indicate that they are.)
It is Linux-only. And maybe even some distros/sound-drivers only. I just realized that the proposed fix is not totally fixing the issue, see the LWJGL thread for more info on a less bad-sound-fix.