| OpenAL Specification and Reference | ||
|---|---|---|
| <<< Previous | Next >>> | |
This section introduces basic attributes which can be set both for the Listener object and for Source objects.
The OpenAL Listener and Sources have attributes to describe their position, velocity and orientation in three dimensional space. OpenAL like OpenGL, uses a right-handed Cartesian coordinate system (RHS), where in a frontal default view X (thumb) points right, Y points up (index finger), and Z points towards the viewer/camera (middle finger). To switch from a left handed coordinate system (LHS) to a right handed coordinate systems, flip the sign on the Z coordinate.
Table 1. Listener/Source Position
| Name | Signature | Values | Default |
|---|---|---|---|
| POSITION | 3fv, 3f | any except NaN | { 0.0f, 0.0f, 0.0f } |
Table 2. Listener/Source Velocity
| Name | Signature | Values | Default |
|---|---|---|---|
| VELOCITY | 3fv, 3f | any except NaN | { 0.0f, 0.0f, 0.0f } |
VELOCITY is taken into account by the driver to synthesize the Doppler effect perceived by the Listener for each source, based on the velocity of both Source and Listener relative to the medium.
Table 3. Listener/Source Gain
| Name | Signature | Values | Default |
|---|---|---|---|
| GAIN | f | 0.0f, (0.0f, any | 1.0f |
GAIN larger than 1 (amplification) is permitted for Source and Listener. However, the implementation is free to clamp the total gain (effective gain per source times listener gain) to 1 to prevent overflow.
![]() | Annotation/ Effective Minimal Distance |
|---|---|
Presuming that the sample uses the entire dynamic range of the encoding format, an effective gain of 1 represents the maximum volume at which a source can reasonably be played. During processing, the implementation combines the Source GAIN (or MIN_GAIN, if set and larger) with distance based attenuation. The distance at which the effective gain is 1 is equivalent to the DirectSound3D MIN_DISTANCE parameter. Once the effective gain has reached the maximum possible value, it will not increase with decreasing distance anymore. |
![]() | Annotation/ No Per-Source Distance Model |
|---|---|
The purpose of the the per-Source Distance Model in DS3D and A3D is to allow different ranges for Sources. In OpenAL the application accomplishes a similar behavior by increasing GAIN into values larger than 1, amplifying the Source. By setting the MIN_GAIN and MAX_GAIN thresholds the application can select the desired dynamic range for a Source directly, while the effective range is determined by GAIN. |
![]() | Annotation/ Muting a Context |
|---|---|
To mute the current context, simply set Listener GAIN to zero. The implementation can optimize for this case by doing necessary (offset) updates but skipping the mixing and releasing hardware resources. |
![]() | Annotation/ Mutng a Source |
|---|---|
To mute a Source, set Source GAIN to zero. The OpenAL implementation is encouraged to omptimize for this case. |
| <<< Previous | Home | Next >>> |
| Pitch Scaling for Doppler Effect | Listener Object |