I’m exploring how OpenAL manages sound attenuation and stereo imaging, particularly how it computes volumes for left and right channels in stereo headphones. I’ve read related question How to adjust the Head-related transfer function (HRTF) in OpenAL or Core Audio?, but it does not address the one specific aspect which is bothering me.
The OpenAL specification states that it is scale invariant, meaning the effects do not depend on the distance unit used to express source and listener coordinates:
OpenAL provides means for simulating the natural attenuation of sound according to distance, and to exaggerate or reduce this effect. However, the resulting effects do not depend on the distance unit used by the application to express source and listener coordinates. OpenAL calculations are scale invariant.
Given this, I am puzzled about the handling of physical dimensions like the distance between ears. For instance, placing a sound source at (1,0,0)
should theoretically yield different auditory experiences depending on whether the 1
represents a meter or a millimeter, due to the significant difference in distance relative to an average head. The only condition when it is truly scale invariant is zero head size, i.e. when both ears are placed at (0,0,0)
.
Does the OpenAL specification imply that implementations should ignore the interaural distance? Are there extensions or practices within OpenAL implementations that account for these physical dimensions, or is the interaural distance considered too insignificant to affect sound computation in practical applications?