The SEDRIS Data Representation Model
APPENDIX A - Classes Sound Instance |
---|
An instance of this DRM class is a single case of the existence of a <Sound> within a given transmittal, including variations or specialization unique to that case. A <Sound Instance> can represent environmental audio, region-based audio, or spatialized audio.
Environmental audio is audio that is non-localized and non-attenuated. It is constant over the entire transmittal. Environmental audio can be thought of as "background" sound. It has no <Location 3D>, <Perimeter Data>, or <Sound Volume>. An example would be the constant sound of rainfall over an entire transmittal.
Region-based audio is similar to environment audio, except that it is constant over either an areal region (if it has a <Perimeter Data>) or a three dimensional volume (if it has a <Sound Volume>). Region-based audio is non-localized, but it may be attenuated to support fade out at the boundary of the region. (See examples for <Perimeter Data>, <Sound Volume>).
Spatialized audio may be either two dimensional or three dimensional. The method of rendering spatialized audio is left to the consuming application. In this case, a <Location 3D> is associated with the <Sound Instance> if spatialized audio is desired.
Given a <Geometry Model Instance> of an M1, a <Sound Instance> for the <Geometry Model Instance> uses the <Location 3D> of the M1 for the location of the audio.
Given a <Geometry Model Instance> of an F16, a <Sound Instance> for the <Geometry Model Instance> specifies a unique <Location 3D> for the audio in order to simulate propagation of sound delay (one would hear the audio in a slightly different location than one would see the F16).
Create a 2-stage sound effect for an engine. The stages are "engine crank" and "engine running".
The first <Sound> is instanced by a <Sound Instance> with a <Time Interval> from 0.0 to 1.5 seconds.
The second <Sound> is a looped sound, and is instanced by a <Sound Instance> with a start delay (via the <Time Interval> of 1.5 seconds, and no end time. The application would set the <Sound Instance Control Link> instances of both <Sound Instance> instances to "on" to start the sound, at which point the crank sound would play for 1.5 seconds, followed by the (looped) engine running sound. The engine running sound would continue to play until the application set the <Sound Instance Control Link> for the engine running sound to "off".
Yes. The <Time Interval> component of <Sound Instance> can be used to daisy-chain multiple sound effects. In Example 3 (below) of an engine cranking, each of the sounds (i.e. engine crank and engine running) can be its own <Sound Instance>.
The components take precedence in the following manner.
If the <Sound Instance> has no <Location 3D>, <Perimeter Data>, or <Sound Volume>, then it represents environmental audio, and is non-localized and non-attenuated. Consequently, for this case, no <Fade Range> shall be present.
If the <Sound Instance> has a <Location 3D>, then the <Location 3D> takes precedence over any <Perimeter Data> or <Sound Volume> components that may be present.
If the <Sound Instance> has no <Location 3D>, but does have a <Sound Volume>, then the <Sound Volume> takes precedence over any <Perimeter Data> that may be present.
SE_Boolean | active_sound_value; | (notes) |
---|
This is the <Sound> being instanced.
This is used to define the starting distance at which a fade to off should begin and an ending distance at which the fade to off should be complete. The distance in the <Fade Range> is the range to a <Location 3D>, which in turn is 1) the centre of the <Sound Volume> of the <Sound Instance>, if present. 2) the centre of the <Perimeter Data> of the <Sound Instance>, if present, or If no <Fade Range> is present, no attenuation is to be performed, which implies instantaneous on/off transitions at the borders of the <Perimeter Data> and <Sound Volume>.
This is used for spatialized audio.
This defines an area within which the <Sound> is to be active.
This defines a volume within which the <Sound> is to be active.
The active_sound_value specifies the default / active state of the given <Sound> instance, where SE_TRUE indicates on and SE_FALSE indicates off.
|