[Openal] EFX Clarifications

Christopher Fitzgerald solaryn at hotmail.com
Thu Sep 11 19:45:21 PDT 2008


Greetings,

I'm interested in knowing a bit more about certain EFX properties that the documentation (and even the mailing list) seem not to cover well enough for my understanding.

My first questions relate to the low-pass filter, and in particular how the GainHF property relates to the construction of the filter.

>From my understanding a low-pass filter basically passes low frequencies and cuts off high frequencies.  At the transition point is usually a curve or slope defined by the filter topology.

The OpenAL EFX specification does not seem to indicate how the GainHF value relates to the result of the filter.  After looking through the mailing list I can only infer that OpenAL uses a filter model similar to that specified in the I3DL2 guidelines.  Unfortunately, I'm not an audio specialist, so if possible please answer the following questions:

1.  Is the cut-off frequency variable?
2.  Given a variable cut-off frequency, is the calculation of the cut-off dependent on the type of filter used?
3.  Assuming a simple filter (or no filter type-dependence), what would the formula for calculating the cut-off given the GainHF value and a reference frequency (5 KHz) look like?

My second questions relate to the calculations involved in air absorption.

1.  Does the air absorption result apply to the source's filter via the GainHF property?
2.  If so, is it applied as a multiplier (GainHF *= AirAbsorption)?
3.  Is the following calculation correct for obtaining AirAbsorption?

  AirAbsorption = (AirAbsorptionFactor * AIR_ABSORPTION_GAINHF) ^ (distance * METERS_PER_UNIT)

  Where AIR_ABSORPTION_GAINHF is 0.994 and METERS_PER_UNIT the multiplier that converts between distance units and meters.

4.  If so, why can AirAbsorptionFactor be greater than 1, when such values produce anomalous results?
5.  If not, what is the correct application of AirAbsorptionFactor to 0.994?

Finally, I'd like to report some possible problems I'm seeing in EFX10Show with the Generic Hardware device on Windows.

1.  Stereo sources won't send anything to a reverb effect.  Is this expected behaviour?
2.  Stereo sources aren't effected by dry gain.  Is this expected behaviour?
3.  If a stereo source is created prior to loading the reverb effect into the effect slot, even mono sources won't send anything to it.  This seems like a bug, can anyone else reproduce this?
4.  Air absorption is supposed to effect the dry path of the source.  However changing the air absorption factor and distance between source and listener does not produce any change in filtering.  Does this work for anyone?

Thank you for your time and patience. :)

Regards,
- Christopher Fitzgerald

_________________________________________________________________




More information about the Openal mailing list