Package 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 invalid input: '<' 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
Description
`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.
`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.
`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.
`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.
`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.
`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.
`static final int`
`ALLOW_DENSITY_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's reverb density information.
`static final int`
`ALLOW_DENSITY_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's reverb density information.
`static final int`
`ALLOW_DIFFUSION_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's reverb diffusion information.
`static final int`
`ALLOW_DIFFUSION_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's reverb diffusion information.
`static final int`
`ALLOW_DISTANCE_FILTER_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's frequency cutoff information.
`static final int`
`ALLOW_DISTANCE_FILTER_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's frequency cutoff information.
`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.
`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.
`static final int`
`ALLOW_REFLECTION_COEFFICIENT_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's reflection coefficient.
`static final int`
`ALLOW_REFLECTION_COEFFICIENT_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's reflection coefficient.
`static final int`
`ALLOW_REFLECTION_DELAY_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's reflection delay information.
`static final int`
`ALLOW_REFLECTION_DELAY_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's reflection delay information.
`static final int`
`ALLOW_REVERB_COEFFICIENT_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's reverb coefficient.
`static final int`
`ALLOW_REVERB_COEFFICIENT_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's reverb coefficient.
`static final int`
`ALLOW_REVERB_DELAY_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's reverberation delay information.
`static final int`
`ALLOW_REVERB_DELAY_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's reverberation delay information.
`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.
`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.
`static final int`
`ALLOW_ROLLOFF_READ`
For AuralAttributes component objects, specifies that this object allows the reading of it's atmospheric rolloff.
`static final int`
`ALLOW_ROLLOFF_WRITE`
For AuralAttributes component objects, specifies that this object allows the writing of it's atmospheric rolloff.
`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.
`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.

## Constructor Summary

Constructors
Constructor
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, javax.vecmath.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

Modifier and Type
Method
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(javax.vecmath.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(javax.vecmath.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(float reverbDelay)`
Set Reverberation Delay Time.
`void`
`setReverbDelay(Bounds reverbVolume)`
Deprecated.
As of Java 3D version 1.2, replaced by `setReverbBounds(Bounds)`
`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 Details

### 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 Details

### 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.0invalid input: '<'> 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, javax.vecmath.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 Details

### 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(javax.vecmath.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(javax.vecmath.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`