Space and Distance

AL does not define the units of measurement for distances. The application is free to use meters, inches, or parsecs. AL provides means for simulating the natural attenuation of sound according to distance, and to exagerate 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. AL calculations are scale invariant.

The specification assumes Euclidean calculation of distances, and mandates that if two Sources are sorted with respect to the Euclidean metric, the distance calculation used by the implementation has to preserve that order.

NoteAnnotation (No DistanceFactor)
 

AL does not provide a global, per Context DISTANCE_FACTOR, as all calculations are scale invariant.

NoteAnnotation (Distance Calculations)
 

The specification does not enforce that distances are calculated using the euclidean norm, to permit using computationally cheaper approximations. Implementations that opt to use approximations might cause audible artifacts. The specification does not enforce any upper limits on distance calculation errors yet.

NoteRFC: Limiting Errors
 

Do we limit permissible errors on distance or gain calculations? How much quality and accuracy do we expect from conformant implementations?

NoteAnnotation (DS3D DistanceFactor)
 

The DS3D documentation explicitely states that the default unit is 1 meter. AL does not specify any units. AL calculations are scale invariant. The main purpose of the DS3D DistanceFactor (modifying Doppler Shift by scaling velocity but not reference velocity) is accomplished using DOPPLER_VELOCITY in AL. AL does not have an equivalent to A3D's SetUnitsPerMeter either.