Lesson 1 - Terrible!

Sorry for such a negative first post :wink:

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. :frowning:

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.

Yeah, out-of-date tutorials are never cool. That might be something nice to put on the to-do list, as well as making JOAL run when only OpenAL 1.0 drivers are found.

Unfortunately, the go-to guy for JOAL (and JOGL) maintenance has been assigned to work on the ambitious Java 6 update 10 release, and so fixes for even trivial things like the tutorials won’t get fixed any time soon.