Sound {
exposedField SFVec3f direction 0 0 1 # (-
,
)
exposedField SFFloat intensity 1 # [0,1]
exposedField SFVec3f location 0 0 0 # (-
,
)
exposedField SFFloat maxBack 10 # [0,
)
exposedField SFFloat maxFront 10 # [0,
)
exposedField SFFloat minBack 1 # [0,
)
exposedField SFFloat minFront 1 # [0,
)
exposedField SFFloat priority 0 # [0,1]
exposedField SFNode source NULL
field SFBool spatialize TRUE
}
The Sound node specifies the spatial presentation of a sound in a
VRML scene. The sound is located at a point in the local coordinate
system and emits sound in an elliptical pattern (defined by two ellipsoids).
The ellipsoids are oriented in a direction specified by the direction
field. The shape of the ellipsoids may be modified to provide more or
less directional focus from the location of the sound.
The source field specifies the sound source for the Sound node.
If the source field is not specified, the Sound node will not
emit audio. The source field shall specify either an AudioClip
node or a MovieTexture node. If a MovieTexture node is specified as
the sound source, the MovieTexture shall refer to a movie format that
supports sound (e.g., MPEG1-Systems, see [MPEG]).
The intensity field adjusts the loudness (decibels) of the
sound emitted by the Sound node (note: this is different from the
traditional definition of intensity with respect to sound; see [SNDA]). The intensity field has a value that
ranges from 0.0 to 1.0 and specifies a factor which shall be used to
scale the normalized sample data of the sound source during playback.
A Sound node with an intensity of 1.0 shall emit audio at its maximum
loudness (before attenuation), and a Sound node with an intensity of
0.0 shall emit no audio. Between these values, the loudness should increase
linearly from a -20 dB change approaching an intensity of 0.0
to a 0 dB change at an intensity of 1.0.
The priority field provides a hint for the browser to choose
which sounds to play when there are more active Sound nodes than can
be played at once due to either limited system resources or system load.
Section "5.3.4 Sound priority, attenuation,
and spatialization" describes a recommended algorithm for determining
which sounds to play under such circumstances. The priority field
ranges from 0.0 to 1.0, with 1.0 being the highest priority and 0.0
the lowest priority.
The location field determines the location of the sound emitter
in the local coordinate system. A Sound node's output is audible only
if it is part of the traversed scene. Sound nodes that are descended
from LOD, Switch, or any grouping or prototype node that disables traversal
(i. e., drawing) of its children are not audible unless
they are traversed. If a Sound node is disabled by a Switch or LOD node,
and later it becomes part of the traversal again, the sound shall resume
where it would have been had it been playing continuously.
The Sound node has an inner ellipsoid that defines a volume of space
in which the maximum level of the sound is audible. Within this ellipsoid,
the normalized sample data is scaled by the intensity field and
there is no attenuation. The inner ellipsoid is defined by extending
the direction vector through the location. The minBack
and minFront fields specify distances behind and in front of
the location along the direction vector respectively.
The inner ellipsoid has one of its foci at location (the second
focus is implicit) and intersects the direction vector at minBack
and minFront.
The Sound node has an outer ellipsoid that defines a volume of space
that bounds the audibility of the sound. No sound can be heard outside
of this outer ellipsoid. The outer ellipsoid is defined by extending
the direction vector through the location. The maxBack
and maxFront fields specify distances behind and in front of
the location along the direction vector respectively.
The outer ellipsoid has one of its foci at location (the second
focus is implicit) and intersects the direction vector at maxBack
and maxFront.
The minFront, maxFront, minBack, and maxBack
fields are defined in local coordinates, and shall be >= 0.0.
The minBack field shall be <= maxBack, and minFront
shall be <= maxFront. The ellipsoid parameters are specified
in the local coordinate system but the ellipsoids' geometry is affected
by ancestors' transformations.
Between the two ellipsoids, there shall be a linear attenuation ramp
in loudness, from 0 dB at the minimum ellipsoid to -20 dB at the maximum
ellipsoid:
attenuation = -20 × (d' / d")
where d'is the distance along the location-to-viewer vector, measured
from the transformed minimum ellipsoid boundary to the viewer, and d"
is the distance along the location-to-viewer vector from the transformed
minimum ellipsoid boundary to the transformed maximum ellipsoid boundary
(see Figure 3-47).

Figure 3-47: Sound Node
The spatialize field specifies if the sound is perceived as
being directionally located relative to the viewer. If the spatialize
field is TRUE and the viewer is located between the transformed
inner and outer ellipsoids, the viewer's direction and the relative
location of the Sound node should be taken into account during playback.
Details outlining the minimum required spatialization functionality
can be found in "5.3.4 Sound priority, attenuation,
and spatialization." If the spatialize field is FALSE, then
directional effects are ignored, but the ellipsoid dimensions and
intensity will still affect the loudness of the sound. If the sound
source is multi-channel (e.g., stereo), then the source should
retain its channel separation during playback.