Hello all, I have just subscribed to this list, but I did search in the archives for emails regarding OpenAL and the doppler effect in particular. Hopefully I didn't miss any important emails. I have some experience with OpenAL, definitely a lot more than I do with FlightGear and SimGear, so when someone in #flightgear mentioned a lack of doppler possibly dating to changing from the OpenAL SI (0.0.8) to OpenAL Soft (many versions, the one I used as reference here is 1.4.711) I decided to investigate why. So here are a few comments on OpenAL & SimGear:
First, the use of alcSuspendContext and alcProcessContext. These two functions are not clearly defined in the OpenAL specification, and the OpenAL SI, OpenAL Soft and Creative differ in the implementation. Here is an email from a Creative Labs person in the OpenAL-devel list: http://opensource.creative.com/pipermail/openal-devel/2008- February/005077.html It is probably best not to use these calls, and interpreting them as "pause" is not a good idea, in particular considering that in OpenAL Soft they are both noops (and I believe, though I'm not certain, that it is also the case for Creative's implementation). A proper way to pause sound would be to call alSourcePause or alSourcePausev for all sources. On the use of AL_VERSION_1_2 to detect a functioning doppler effect... well, there is no OpenAL 1.2 specification. Also, this is a compile time option, the proper thing would be to call alGetString with AL_VERSION as a parameter, the specification says: version string in format “<spec major number>.<spec minor number> <optional vendor version information>” From the 0.0.8 release of the OpenAL SI, one can see that it returns "1.1", which is not quite right... OpenAL Soft 1.4.711 return "1.1 ALSOFT". Both return "OpenAL Community" for AL_VENDOR, and for AL_RENDERER they return "Software" and "OpenAL Soft". So checking AL_VERSION="1.1", AL_VENDOR="OpenAL Community" and AL_RENDERER="Software" should give you confidence that you're using the broken OpenAL SI and you should use the same path as for 1.0. Many distributions are not using 0.0.8 since that was a very old release, but rather are using CVS versions. Even so, the OpenAL SI has long since been deprecated (and it takes a couple of minutes to actually find it these days). While speaking of OpenAL Soft, you might be interested to know that the release version currently used in a few major distros (I know gentoo and debian are using OpenAL Soft, I don't know what other distros use) supports the EFX extension and the reverb effect. The git version also supports the echo effect. I hope this information comes in useful and results in improvements to FlightGear, keep up the good work :-) Matias D'Ambrosio ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel