Sorry for such a negative first post
There’s nothing that gets me more upset than tutorial code that doesn’t compile. Besides the fact that lesson 1 hasn’t been kept up to date with the latest version of joal, it also has spelling errors, case errors, and things that are just plain wrong… like…
-
Returning an int from the main method who’s return type is void
-
alSourceStop and alSourcePause are methods of the AL class - not of the test class
alSourceStop(source[0]);
alSourcePause(source[0]); -
Referencing methods that don’t exist (perhaps it was removed in the latest version…)
ALut.alutUnloadWAV(format[0],data[0],size[0],freq[0]);
It’s obvious this code was never compiled because there are errors regardless of whether they were using a different version of joal. Is this tutorial code ever going to be updated? I’m not exactly a programming novice anymore, so I didn’t have any problems fixing the errors, but I remember 10 years ago when I was in high school trying to learn various aspects of programming and giving up when the examples I tried learning from were riddled with errors.
Besides the issues with the tutorial, I also had issues running the code.
D:\dev\OpenALTest\dist>java -jar OpenALTest.jar
Exception in thread “main” java.lang.RuntimeException: Can not get proc address for method “alcCaptureCloseDevice”: Couldn’t set value of field “_addressof_alcCaptureCloseDevice” in class net.java.games.joal.impl.ALCProcAddressTable
at com.sun.gluegen.runtime.ProcAddressHelper.resetProcAddressTable(ProcAddressHelper.java:68)
at net.java.games.joal.impl.ALProcAddressLookup.resetALCProcAddressTable(ALProcAddressLookup.java:109)
at net.java.games.joal.impl.ALCImpl.alcOpenDevice(ALCImpl.java:341)
at net.java.games.joal.util.ALut.alutInit(ALut.java:69)
at blah.SingleStaticSource.main(SingleStaticSource.java:83)
Caused by: java.lang.RuntimeException: Unable to find and load OpenAL library
at net.java.games.joal.impl.ALProcAddressLookup$DynamicLookup.dynamicLookupFunction(ALProcAddressLookup.java:66)
at com.sun.gluegen.runtime.ProcAddressHelper.resetProcAddressTable(ProcAddressHelper.java:64)
… 4 more
I’m guessing my laptop’s onboard sound doesn’t have hardware support for OpenAL. I thought it was pretty much a standard. It’s not exactly an old laptop - it’s a Dell from 2006.
Edit… fixed that issue by installing the openal 1.1 driver. The example still didn’t run because the wav file I was attempting to use was unsupported… (guess it does not support a wav with 6 channels). I used another wav file and it worked fine.