javax.media.j3d

## Class AuralAttributes

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.NodeComponent
    - - javax.media.j3d.AuralAttributes

-     public class AuralAttributes
      extends NodeComponent

  The AuralAttributes object is a component object of a Soundscape node that defines environmental audio parameters that affect sound rendering. These attributes include gain scale factor, atmospheric rolloff, and parameters controlling reverberation, distance frequency filtering, and velocity-based Doppler effect.

  Attribute Gain

  Scale factor applied to all sound's amplitude active within this region. This factor attenuates both direct and reflected/reverbered amplitudes. Valid values are >= 0.0

  Attribute Gain Rolloff

  Rolloff scale factor is used to model atmospheric changes from normal speed of sound. The base value, 0.344 meters/millisecond is used to approximate the speed of sound through air at room temperature, is multipled by this scale factor whenever the speed of sound is applied during spatialization calculations. Valid values are >= 0.0. Values > 1.0 increase the speed of sound, while values < 1.0 decrease its speed. A value of zero makes sound silent (but it continues to play).

  Auralization

  Auralization is the environmental modeling of sound iteratively reflecting off the surfaces of the bounded region the listener is in. Auralization components include early, distinct, low-order reflections and later, dense, higher-order reflections referred to as reverberation. These reflections are attenuated relative to the direct, unreflected sound. The difference in gain between direct and reflected sound gives the listener a sense of the surface material and the relative distance of the sound. The delay between the start of the direct sound and start of reverberation (as detected by the listener), as well as the length of time reverberation is audible as it exponentially decays, give the listener a sense of the size of the listening space.

  In Java3D's model for auralization there are several parameters that approximate sound reflection and reverberation for a particular listening space:

  Reflection Coefficient
  Gain attenuation of the initial reflections across all frequencies.
  (Early) Reflection Delay
  The time it takes for the first low-order reflected sound to reach the listener.
  Reverb Coefficient
  Gain attenuation of the late reflections (referred to as 'reverb') across all frequencies.
  Reverb Delay
  The time it takes for reverbered sound to reach the listener.
  Decay Time
  Describes the reverb decay curve by defining the length of time reverb takes to decay to effective zero.
  Decay Filter
  High-frequencies of the late reverberation can be attenuated at a different rate.
  Density
  Modal density (spectral coloration) of reverberation.
  Diffusion
  Echo dispersement of reverberation.
  Reverb Bounds
  Approximates the volume of the listening space. If specified, it defines the reverberation delay.
  Reverb Order
  Optionally limits the amount of times during reverb calculation that a sound is recursively reflected off the bounding region.

  Reflection Coefficient

  The reflection coefficient is an amplitude scale factor used to approximate the average reflective or absorptive characteristics for early reflections of the composite surfaces in the region the listener is in. This scale factor is applied to the sound's amplitude regardless of the sound's position. The range of valid values is 0.0 to 1.0. A value of 1.0 denotes that reflections are unattenuated - the amplitude of reflected sound waves are not decreased. A value of 0.0 represents full absorption of reflections by the surfaces in the listening space (no reflections occur thus reverberation is disabled).

  Reflection Delay

  The early reflection delay time (in milliseconds) can be explicitly set. Well-defined values are floats > 0.0. A value of 0.0 results in reverberation being added as soon as possible after the sound begins.

  Reverberation Coefficient

  The reverb coefficient is an amplitude scale factor used to approximate the average reflective or absorptive characteristics of late reflections. A value of 0.0 represents full absorption of reflections by the surfaces in the listening space (no reflections occur thus reverberation is disabled).

  Reverberation Delay

  The reverb delay time (in milliseconds) is set either explicitly, or implicitly by supplying a reverb bounds volume (from which the delay time can be calculated). Well-defined values are floats > 0.0. A value of 0.0 results in reverberation being added as soon as possible after the sound begins. Reverb delay, as calculated from non- null reverb bounds, takes precedence over explicitly set delay time.

  Reverberation Bounds

  The reverb bounding region defines the overall size of space that reverberation is calculated for. This optional bounds does not have to be the same as the application region of the Soundscape node referencing this AuralAttributes object. If this bounding region is specified then reverb decay and delay are internally calculated from this bounds.

  Reverberation Order

  The reverb order is a hint that can be used during reverberation to limit the number of late reflections required in calculation of reverb decay. All positive values can be interpreted during reverb rendering as the maximum order of reflections to be calculated. A non-positive value signifies that no limit is placed on the order of reflections calculated during reverberation rendering. In the case where reverb order is not limited, reverb decay is defined strictly by the Reverberation Decay Time parameter.

  Decay Time

  The reverberation decay time explicitly defines the length of time in milliseconds it takes for the amplitude of late reflections to exponentally decrease to effective zero. In the case where reverb delay is set non-positive the renderer will perform the shortest reverberation decay possible. If ReverbOrder is set, this parameter is clamped by the reverb time calculated as time = reverb Delay * reverb Order. If ReverbOrder is 0, the decay time parameter is not clamped.

  Decay Filter

  The reverberation decay filter defines how frequencies above a given value are attenuated by the listening space. This allows for modelling materials on surfaces that absorb high frequencies at a faster rate than low frequencies.

  Reverberation Diffusion

  The reverberation diffusion explicitly defines echo dispersement (sometimes refered to as echo density). The value for diffusion is proportional to the number of echos per second heard in late reverberation, especially noticable at the tail of the reverberation decay. The greater the diffusion the more 'natural' the reverberation decay sounds. Reducing diffusion makes the decay sound hollow as produced in a small highly reflecive space (such as a bathroom).

  Reverberation Density

  The reverberation density explicitly defines modal reverb density The value for this modal density is proportional to the number of resonances heard in late reverberation perceived as spectral coloration. The greater the density, the smoother, less grainy the later reverberation decay.

  Distance Filter

  This parameter specifies a (distance, filter) attenuation pairs array. If this is not set, no distance filtering is performed (equivalent to using a distance filter of Sound.NO_FILTER for all distances). Currently, this filter is a low-pass cutoff frequency. This array of pairs defines a piece-wise linear slope for range of values. This attenuation array is similar to the PointSound node's distanceAttenuation pair array, except paired with distances in this list are frequency values. Using these pairs, distance-based low-pass frequency filtering can be applied during sound rendering. Distances, specified in the local coordinate system in meters, must be > 0. Frequencies (in Hz) must be > 0.

  If the distance from the listener to the sound source is less than the first distance in the array, the first filter is applied to the sound source. This creates a spherical region around the listener within which a sound is uniformly attenuated by the first filter in the array. If the distance from the listener to the sound source is greater than the last distance in the array, the last filter is applied to the sound source.

  Distance elements in these array of pairs is a monotonically-increasing set of floating point numbers measured from the location of the sound source. FrequencyCutoff elements in this list of pairs can be any positive float. While for most applications this list of values will usually be monotonically-decreasing, they do not have to be.

  The getDistanceFilterLength method returns the length of the distance filter arrays. Arrays passed into getDistanceFilter methods should all be at least this size.

Doppler Effect Model

Doppler effect can be used to create a greater sense of movement of sound sources, and can help reduce front-back localization errors. The frequency of sound waves emanating from the source are raised or lowered based on the speed of the source in relation to the listener, and several AuralAttribute parameters.

The FrequencyScaleFactor can be used to increase or reduce the change of frequency associated with normal Doppler calculation, or to shift the pitch of the sound directly if Doppler effect is disabled. Values must be > zero for sounds to be heard. If the value is zero, sounds affected by this AuralAttribute object are paused.

To simulate Doppler effect, the relative velocity (change in distance in the local coordinate system between the sound source and the listener over time, in meters per second) is calculated. This calculated velocity is multipled by the given VelocityScaleFactor. Values must be >= zero. If is a scale factor value of zero is given, Doppler effect is not calculated or applied to sound.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_ATTRIBUTE_GAIN_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's attribute gain scale factor information.
    `static int` | `ALLOW_ATTRIBUTE_GAIN_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's attribute gain scale factor information.
    `static int` | `ALLOW_DECAY_FILTER_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverb decay filter information.
    `static int` | `ALLOW_DECAY_FILTER_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverb decay filter information.
    `static int` | `ALLOW_DECAY_TIME_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverb decay time information.
    `static int` | `ALLOW_DECAY_TIME_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverb decay time information.
    `static int` | `ALLOW_DENSITY_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverb density information.
    `static int` | `ALLOW_DENSITY_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverb density information.
    `static int` | `ALLOW_DIFFUSION_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverb diffusion information.
    `static int` | `ALLOW_DIFFUSION_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverb diffusion information.
    `static int` | `ALLOW_DISTANCE_FILTER_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's frequency cutoff information.
    `static int` | `ALLOW_DISTANCE_FILTER_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's frequency cutoff information.
    `static int` | `ALLOW_FREQUENCY_SCALE_FACTOR_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's frequency scale factor information.
    `static int` | `ALLOW_FREQUENCY_SCALE_FACTOR_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's frequency scale factor information.
    `static int` | `ALLOW_REFLECTION_COEFFICIENT_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reflection coefficient.
    `static int` | `ALLOW_REFLECTION_COEFFICIENT_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reflection coefficient.
    `static int` | `ALLOW_REFLECTION_DELAY_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reflection delay information.
    `static int` | `ALLOW_REFLECTION_DELAY_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reflection delay information.
    `static int` | `ALLOW_REVERB_COEFFICIENT_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverb coefficient.
    `static int` | `ALLOW_REVERB_COEFFICIENT_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverb coefficient.
    `static int` | `ALLOW_REVERB_DELAY_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverberation delay information.
    `static int` | `ALLOW_REVERB_DELAY_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverberation delay information.
    `static int` | `ALLOW_REVERB_ORDER_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's reverb order (feedback loop) information.
    `static int` | `ALLOW_REVERB_ORDER_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's reverb order (feedback loop) information.
    `static int` | `ALLOW_ROLLOFF_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's atmospheric rolloff.
    `static int` | `ALLOW_ROLLOFF_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's atmospheric rolloff.
    `static int` | `ALLOW_VELOCITY_SCALE_FACTOR_READ` For AuralAttributes component objects, specifies that this object allows the reading of it's velocity scale factor information.
    `static int` | `ALLOW_VELOCITY_SCALE_FACTOR_WRITE` For AuralAttributes component objects, specifies that this object allows the writing of it's velocity scale factor information.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AuralAttributes()` Constructs and initializes a new AuralAttributes object using default parameters.
    `AuralAttributes(float gain, float rolloff, float reflectionCoefficient, float reflectionDelay, float reverbCoefficient, float reverbDelay, float decayTime, float decayFilter, float diffusion, float density, float[] distance, float[] frequencyCutoff, float frequencyScaleFactor, float velocityScaleFactor)` Constructs and initializes a new AuralAttributes object using specified parameters with separate float arrays for components of distanceFilter and full reverb parameters.
    `AuralAttributes(float gain, float rolloff, float reflectionCoefficient, float reverbDelay, int reverbOrder, float[] distance, float[] frequencyCutoff, float frequencyScaleFactor, float velocityScaleFactor)` Constructs and initializes a new AuralAttributes object using specified parameters with separate float arrays for components of distanceFilter.
    `AuralAttributes(float gain, float rolloff, float reflectionCoefficient, float reverbDelay, int reverbOrder, Point2f[] distanceFilter, float frequencyScaleFactor, float velocityScaleFactor)` Constructs and initializes a new AuralAttributes object using specified parameters including an array of Point2f for the distanceFilter.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `NodeComponent` | `cloneNodeComponent()` Deprecated. As of Java 3D version 1.2, replaced by `cloneNodeComponent(boolean forceDuplicate)`
    `float` | `getAttributeGain()` Retrieve Attribute Gain (amplitude).
    `float` | `getDecayFilter()` Retrieve Decay Filter.
    `float` | `getDecayTime()` Retrieve Decay Time.
    `float` | `getDensity()` Retrieve Density.
    `float` | `getDiffusion()` Retrieve Diffusion.
    `void` | `getDistanceFilter(float[] distance, float[] frequencyCutoff)` Retrieve Distance Filter in separate distance and frequency cutoff arrays.
    `void` | `getDistanceFilter(Point2f[] attenuation)` Retrieve Distance Filter as a single array containing distances and frequency cutoff.
    `int` | `getDistanceFilterLength()` Retrieve Distance Filter array length.
    `float` | `getFrequencyScaleFactor()` Retrieve Frequency Scale Factor.
    `float` | `getReflectionCoefficient()` Retrieve Reflective Coefficient.
    `float` | `getReflectionDelay()` Retrieve Reflection Delay Time.
    `Bounds` | `getReverbBounds()` Retrieve Reverberation Delay Bounds volume.
    `float` | `getReverbCoefficient()` Retrieve Reverb Coefficient.
    `float` | `getReverbDelay()` Retrieve Reverberation Delay Time.
    `int` | `getReverbOrder()` Retrieve Reverberation Order
    `float` | `getRolloff()` Retrieve Attribute Gain Rolloff.
    `float` | `getVelocityScaleFactor()` Retrieve Velocity Scale Factor used to calculate Doppler Effect.
    `void` | `setAttributeGain(float gain)` Set Attribute Gain (amplitude) scale factor.
    `void` | `setDecayFilter(float frequencyCutoff)` Set Decay Filter In this form, reverberation decay filtering is defined as a low-pass filter, starting at the given reference frequency.
    `void` | `setDecayTime(float decayTime)` Set Decay Time Length of time from the start of late reflections reverberation volume takes to decay to effective zero (-60 dB of initial signal amplitude).
    `void` | `setDensity(float ratio)` Set Density.
    `void` | `setDiffusion(float ratio)` Set Diffusion.
    `void` | `setDistanceFilter(float[] distance, float[] frequencyCutoff)` Set Distance Filter using separate arrays for distances and frequency cutoff.
    `void` | `setDistanceFilter(Point2f[] attenuation)` Set Distance Filter using a single array containing distances and frequency cutoff as pairs of values as a single array of Point2f.
    `void` | `setFrequencyScaleFactor(float frequencyScaleFactor)` This parameter specifies a scale factor applied to the frequency of sound during rendering playback.
    `void` | `setReflectionCoefficient(float coefficient)` Set Reflective Coefficient.
    `void` | `setReflectionDelay(float reflectionDelay)` Set early Refection Delay Time.
    `void` | `setReverbBounds(Bounds reverbVolume)` Set Reverberation Bounds volume.
    `void` | `setReverbCoefficient(float coefficient)` Set Reverb Coefficient.
    `void` | `setReverbDelay(Bounds reverbVolume)` Deprecated. As of Java 3D version 1.2, replaced by `setReverbBounds(Bounds)`
    `void` | `setReverbDelay(float reverbDelay)` Set Reverberation Delay Time.
    `void` | `setReverbOrder(int reverbOrder)` Set Reverberation Order This parameter limits the number of times reflections are added to the reverberation being rendered.
    `void` | `setRolloff(float rolloff)` Set Attribute Gain Rolloff.
    `void` | `setVelocityScaleFactor(float velocityScaleFactor)` Set Velocity scale factor applied during Doppler Effect calculation.

    - ### Methods inherited from class javax.media.j3d.NodeComponent

      `cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

    - ### Methods inherited from class javax.media.j3d.SceneGraphObject

      `clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ALLOW_ATTRIBUTE_GAIN_READ

          public static final int ALLOW_ATTRIBUTE_GAIN_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's attribute gain scale factor information.
      See Also:
        Constant Field Values

    - #### ALLOW_ATTRIBUTE_GAIN_WRITE

          public static final int ALLOW_ATTRIBUTE_GAIN_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's attribute gain scale factor information.
      See Also:
        Constant Field Values

    - #### ALLOW_ROLLOFF_READ

          public static final int ALLOW_ROLLOFF_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's atmospheric rolloff.
      See Also:
        Constant Field Values

    - #### ALLOW_ROLLOFF_WRITE

          public static final int ALLOW_ROLLOFF_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's atmospheric rolloff.
      See Also:
        Constant Field Values

    - #### ALLOW_REFLECTION_COEFFICIENT_READ

          public static final int ALLOW_REFLECTION_COEFFICIENT_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reflection coefficient.
      See Also:
        Constant Field Values

    - #### ALLOW_REFLECTION_COEFFICIENT_WRITE

          public static final int ALLOW_REFLECTION_COEFFICIENT_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reflection coefficient.
      See Also:
        Constant Field Values

    - #### ALLOW_REFLECTION_DELAY_READ

          public static final int ALLOW_REFLECTION_DELAY_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reflection delay information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_REFLECTION_DELAY_WRITE

          public static final int ALLOW_REFLECTION_DELAY_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reflection delay information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_REVERB_COEFFICIENT_READ

          public static final int ALLOW_REVERB_COEFFICIENT_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverb coefficient.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_REVERB_COEFFICIENT_WRITE

          public static final int ALLOW_REVERB_COEFFICIENT_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverb coefficient.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_REVERB_DELAY_READ

          public static final int ALLOW_REVERB_DELAY_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverberation delay information.
      See Also:
        Constant Field Values

    - #### ALLOW_REVERB_DELAY_WRITE

          public static final int ALLOW_REVERB_DELAY_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverberation delay information.
      See Also:
        Constant Field Values

    - #### ALLOW_REVERB_ORDER_READ

          public static final int ALLOW_REVERB_ORDER_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverb order (feedback loop) information.
      See Also:
        Constant Field Values

    - #### ALLOW_REVERB_ORDER_WRITE

          public static final int ALLOW_REVERB_ORDER_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverb order (feedback loop) information.
      See Also:
        Constant Field Values

    - #### ALLOW_DECAY_TIME_READ

          public static final int ALLOW_DECAY_TIME_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverb decay time information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DECAY_TIME_WRITE

          public static final int ALLOW_DECAY_TIME_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverb decay time information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DECAY_FILTER_READ

          public static final int ALLOW_DECAY_FILTER_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverb decay filter information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DECAY_FILTER_WRITE

          public static final int ALLOW_DECAY_FILTER_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverb decay filter information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DIFFUSION_READ

          public static final int ALLOW_DIFFUSION_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverb diffusion information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DIFFUSION_WRITE

          public static final int ALLOW_DIFFUSION_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverb diffusion information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DENSITY_READ

          public static final int ALLOW_DENSITY_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's reverb density information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DENSITY_WRITE

          public static final int ALLOW_DENSITY_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's reverb density information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_DISTANCE_FILTER_READ

          public static final int ALLOW_DISTANCE_FILTER_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's frequency cutoff information.
      See Also:
        Constant Field Values

    - #### ALLOW_DISTANCE_FILTER_WRITE

          public static final int ALLOW_DISTANCE_FILTER_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's frequency cutoff information.
      See Also:
        Constant Field Values

    - #### ALLOW_FREQUENCY_SCALE_FACTOR_READ

          public static final int ALLOW_FREQUENCY_SCALE_FACTOR_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's frequency scale factor information.
      See Also:
        Constant Field Values

    - #### ALLOW_FREQUENCY_SCALE_FACTOR_WRITE

          public static final int ALLOW_FREQUENCY_SCALE_FACTOR_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's frequency scale factor information.
      See Also:
        Constant Field Values

    - #### ALLOW_VELOCITY_SCALE_FACTOR_READ

          public static final int ALLOW_VELOCITY_SCALE_FACTOR_READ

      For AuralAttributes component objects, specifies that this object allows the reading of it's velocity scale factor information.
      See Also:
        Constant Field Values

    - #### ALLOW_VELOCITY_SCALE_FACTOR_WRITE

          public static final int ALLOW_VELOCITY_SCALE_FACTOR_WRITE

      For AuralAttributes component objects, specifies that this object allows the writing of it's velocity scale factor information.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AuralAttributes

          public AuralAttributes()

      Constructs and initializes a new AuralAttributes object using default parameters. The following default values are used:
      attribute gain: 1.0
      rolloff: 1.0
      reflection coeff: 0.0
      reflection delay: 20.0
      reverb coeff: 1.0
      reverb delay: 40.0
      decay time: 1000.0
      decay filter: 5000.0<> diffusion: 1.0
      density: 1.0
      reverb bounds: null
      reverb order: 0
      distance filtering: null (no filtering performed)
      frequency scale factor: 1.0
      velocity scale factor: 0.0

    - #### AuralAttributes

          public AuralAttributes(float gain,
                         float rolloff,
                         float reflectionCoefficient,
                         float reverbDelay,
                         int reverbOrder,
                         Point2f[] distanceFilter,
                         float frequencyScaleFactor,
                         float velocityScaleFactor)

      Constructs and initializes a new AuralAttributes object using specified parameters including an array of Point2f for the distanceFilter.
      Parameters:
        `gain` - amplitude scale factor
        `rolloff` - atmospheric (changing speed of sound) scale factor
        `reflectionCoefficient` - reflective/absorptive factor applied to reflections
        `reverbDelay` - delay time before start of reverberation
        `reverbOrder` - limit to number of reflections added to reverb signal
        `distanceFilter` - frequency cutoff
        `frequencyScaleFactor` - applied to change of pitch
        `velocityScaleFactor` - applied to velocity of sound in relation to listener

    - #### AuralAttributes

          public AuralAttributes(float gain,
                         float rolloff,
                         float reflectionCoefficient,
                         float reverbDelay,
                         int reverbOrder,
                         float[] distance,
                         float[] frequencyCutoff,
                         float frequencyScaleFactor,
                         float velocityScaleFactor)

      Constructs and initializes a new AuralAttributes object using specified parameters with separate float arrays for components of distanceFilter.
      Parameters:
        `gain` - amplitude scale factor
        `rolloff` - atmospheric (changing speed of sound) scale factor
        `reflectionCoefficient` - reflection/absorption factor applied to reflections
        `reverbDelay` - delay time before start of reverberation
        `reverbOrder` - limit to number of reflections added to reverb signal
        `distance` - filter frequency cutoff distances
        `frequencyCutoff` - distance filter frequency cutoff
        `frequencyScaleFactor` - applied to velocity/wave-length
        `velocityScaleFactor` - applied to velocity of sound in relation to listener

    - #### AuralAttributes

          public AuralAttributes(float gain,
                         float rolloff,
                         float reflectionCoefficient,
                         float reflectionDelay,
                         float reverbCoefficient,
                         float reverbDelay,
                         float decayTime,
                         float decayFilter,
                         float diffusion,
                         float density,
                         float[] distance,
                         float[] frequencyCutoff,
                         float frequencyScaleFactor,
                         float velocityScaleFactor)

      Constructs and initializes a new AuralAttributes object using specified parameters with separate float arrays for components of distanceFilter and full reverb parameters.
      Parameters:
        `gain` - amplitude scale factor
        `rolloff` - atmospheric (changing speed of sound) scale factor
        `reflectionCoefficient` - factor applied to early reflections
        `reflectionDelay` - delay time before start of early reflections
        `reverbCoefficient` - factor applied to late reflections
        `reverbDelay` - delay time before start of late reverberation
        `decayTime` - time (in milliseconds) reverb takes to decay to -60bD
        `decayFilter` - reverb decay filter frequency cutoff
        `diffusion` - percentage of echo dispersement between min and max
        `density` - percentage of modal density between min and max
        `distance` - filter frequency cutoff distances
        `frequencyCutoff` - distance filter frequency cutoff
        `frequencyScaleFactor` - applied to velocity/wave-length
        `velocityScaleFactor` - applied to velocity of sound in relation to listener
      Since:
        Java 3D 1.3

  - ### Method Detail

    - #### setAttributeGain

          public void setAttributeGain(float gain)

      Set Attribute Gain (amplitude) scale factor.
      Parameters:
        `gain` - scale factor applied to amplitude of direct and reflected sound
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getAttributeGain

          public float getAttributeGain()

      Retrieve Attribute Gain (amplitude).
      Returns:
        gain amplitude scale factor
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setRolloff

          public void setRolloff(float rolloff)

      Set Attribute Gain Rolloff.
      Parameters:
        `rolloff` - atmospheric gain scale factor (changing speed of sound)
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getRolloff

          public float getRolloff()

      Retrieve Attribute Gain Rolloff.
      Returns:
        rolloff atmospheric gain scale factor (changing speed of sound)
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setReflectionCoefficient

          public void setReflectionCoefficient(float coefficient)

      Set Reflective Coefficient. Scales the amplitude of the early reflections of reverberated sounds
      Parameters:
        `coefficient` - reflection/absorption factor applied to reflections
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getReflectionCoefficient

          public float getReflectionCoefficient()

      Retrieve Reflective Coefficient.
      Returns:
        reflection coeff reflection/absorption factor
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setReflectionDelay

          public void setReflectionDelay(float reflectionDelay)

      Set early Refection Delay Time. In this form, the parameter specifies the time between the start of the direct, unreflected sound and the start of first order early reflections. In this method, this time is explicitly given in milliseconds.
      Parameters:
        `reflectionDelay` - delay time before start of reverberation
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getReflectionDelay

          public float getReflectionDelay()

      Retrieve Reflection Delay Time.
      Returns:
        reflection delay time
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setReverbCoefficient

          public void setReverbCoefficient(float coefficient)

      Set Reverb Coefficient. Scale the amplitude of the late reflections including the decaying tail of reverberated sound.
      Parameters:
        `coefficient` - reflective/absorptive factor applied to late reflections
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getReverbCoefficient

          public float getReverbCoefficient()

      Retrieve Reverb Coefficient.
      Returns:
        late reflection coeff. reflection/absorption factor
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setReverbDelay

          public void setReverbDelay(float reverbDelay)

      Set Reverberation Delay Time. In this form, the parameter specifies the time between the start of the direct, unreflected sound and the start of reverberation. In this method, this time is explicitly given in milliseconds.
      Parameters:
        `reverbDelay` - delay time before start of reverberation
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getReverbDelay

          public float getReverbDelay()

      Retrieve Reverberation Delay Time.
      Returns:
        reverb delay time
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setDecayTime

          public void setDecayTime(float decayTime)

      Set Decay Time Length of time from the start of late reflections reverberation volume takes to decay to effective zero (-60 dB of initial signal amplitude).
      Parameters:
        `decayTime` - of late reflections (reverb) in milliseconds
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getDecayTime

          public float getDecayTime()

      Retrieve Decay Time.
      Returns:
        reverb decay time
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setDecayFilter

          public void setDecayFilter(float frequencyCutoff)

      Set Decay Filter In this form, reverberation decay filtering is defined as a low-pass filter, starting at the given reference frequency. This allows for higher frequencies to be attenuated at a different (typically faster) rate than lower frequencies.
      Parameters:
        `frequencyCutoff` - of reverberation decay low-pass filter
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getDecayFilter

          public float getDecayFilter()

      Retrieve Decay Filter.
      Returns:
        reverb decay filter cutoff frequency
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setDiffusion

          public void setDiffusion(float ratio)

      Set Diffusion. Sets the echo dispersement of reverberation to an amount between the minimum (0.0) to the maximum (1.0) available. Changing this increases/decreases the 'smoothness' of reverb decay.
      Parameters:
        `ratio` - reverberation echo dispersement factor
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getDiffusion

          public float getDiffusion()

      Retrieve Diffusion.
      Returns:
        reverb diffusion ratio
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setDensity

          public void setDensity(float ratio)

      Set Density. Sets the density of reverberation to an amount between the minimum (0.0) to the maximum (1.0) available. Changing this effects the spectral coloration (timbre) of late reflections.
      Parameters:
        `ratio` - reverberation modal density factor
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### getDensity

          public float getDensity()

      Retrieve Density.
      Returns:
        reverb density
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.3

    - #### setReverbDelay

          public void setReverbDelay(Bounds reverbVolume)

      Deprecated. As of Java 3D version 1.2, replaced by `setReverbBounds(Bounds)`

    - #### setReverbBounds

          public void setReverbBounds(Bounds reverbVolume)

      Set Reverberation Bounds volume. In this form, the reverberation bounds volume parameter is used to calculate the reverberation Delay and Decay times. Specification of a non-null bounding volume causes the explicit values given for Reverb Delay and Decay to be overridden by the implicit values calculated from these bounds. ALLOW_REVERB_DELAY_WRITE flag used setting capability of this method.
      Parameters:
        `reverbVolume` - the bounding region
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.2

    - #### getReverbBounds

          public Bounds getReverbBounds()

      Retrieve Reverberation Delay Bounds volume.
      Returns:
        reverb bounds volume that defines the Reverberation space and indirectly the delay/decay ALLOW_REVERB_DELAY_READ flag used setting capability of this method.
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.2

    - #### setReverbOrder

          public void setReverbOrder(int reverbOrder)

      Set Reverberation Order This parameter limits the number of times reflections are added to the reverberation being rendered. A non-positive value specifies an unbounded number of reflections.
      Parameters:
        `reverbOrder` - limit to the number of times reflections added to reverb signal
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getReverbOrder

          public int getReverbOrder()

      Retrieve Reverberation Order
      Returns:
        reverb order
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setDistanceFilter

          public void setDistanceFilter(Point2f[] attenuation)

      Set Distance Filter using a single array containing distances and frequency cutoff as pairs of values as a single array of Point2f.
      Parameters:
        `attenuation` - array of pairs of distance and frequency cutoff
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setDistanceFilter

          public void setDistanceFilter(float[] distance,
                               float[] frequencyCutoff)

      Set Distance Filter using separate arrays for distances and frequency cutoff. The distance and frequencyCutoff arrays should be of the same length. If the frequencyCutoff array length is greater than the distance array length, the frequencyCutoff array elements beyond the length of the distance array are ignored. If the frequencyCutoff array is shorter than the distance array, the last frequencyCutoff array value is repeated to fill an array of length equal to distance array.
      Parameters:
        `distance` - array of float distance with corresponding cutoff values
        `frequencyCutoff` - array of frequency cutoff values in Hertz
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getDistanceFilterLength

          public int getDistanceFilterLength()

      Retrieve Distance Filter array length.
      Returns:
        attenuation array length
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getDistanceFilter

          public void getDistanceFilter(Point2f[] attenuation)

      Retrieve Distance Filter as a single array containing distances and frequency cutoff. The distance filter is copied into the specified array. The array must be large enough to hold all of the points. The individual array elements must be allocated by the caller.
      Parameters:
        `attenuation` - array of pairs of distance and frequency cutoff values
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getDistanceFilter

          public void getDistanceFilter(float[] distance,
                               float[] frequencyCutoff)

      Retrieve Distance Filter in separate distance and frequency cutoff arrays. The arrays must be large enough to hold all of the distance and frequency cutoff values.
      Parameters:
        `distance` - array
        `frequencyCutoff` - cutoff array
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setFrequencyScaleFactor

          public void setFrequencyScaleFactor(float frequencyScaleFactor)

      This parameter specifies a scale factor applied to the frequency of sound during rendering playback. If the Doppler effect is disabled, this scale factor can be used to increase or decrease the original pitch of the sound. During rendering, this scale factor expands or contracts the usual frequency shift applied to the sound source due to Doppler calculations. Valid values are >= 0.0. A value of zero causes playing sounds to pause.
      Parameters:
        `frequencyScaleFactor` - factor applied to change of frequency
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getFrequencyScaleFactor

          public float getFrequencyScaleFactor()

      Retrieve Frequency Scale Factor.
      Returns:
        scaleFactor factor applied to change of frequency
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setVelocityScaleFactor

          public void setVelocityScaleFactor(float velocityScaleFactor)

      Set Velocity scale factor applied during Doppler Effect calculation. This parameter specifies a scale factor applied to the velocity of the sound relative to the listener's position and movement in relation to the sound's position and movement. This scale factor is multipled by the calculated velocity portion of the Doppler effect equation used during sound rendering. A value of zero disables Doppler calculations.
      Parameters:
        `velocityScaleFactor` - applied to velocity of sound in relation to listener
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getVelocityScaleFactor

          public float getVelocityScaleFactor()

      Retrieve Velocity Scale Factor used to calculate Doppler Effect.
      Returns:
        scale factor applied to Doppler velocity of sound
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### cloneNodeComponent

          public NodeComponent cloneNodeComponent()

      Deprecated. As of Java 3D version 1.2, replaced by `cloneNodeComponent(boolean forceDuplicate)`
      Overrides:
        `cloneNodeComponent` in class `NodeComponent`

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.