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

Reply via email to