## com.sun.j3d.audioengines
Class AudioEngine3DL2

    java.lang.Object
      com.sun.j3d.audioengines.AudioEngine
          com.sun.j3d.audioengines.AudioEngine3D
              com.sun.j3d.audioengines.AudioEngine3DL2

All Implemented Interfaces:
  AudioDevice, AudioDevice3D, AudioDevice3DL2

Direct Known Subclasses:
  JavaSoundMixer

    public abstract class AudioEngine3DL2

extends AudioEngine3D
implements AudioDevice3DL2

The AudioEngine3DL2 Class defines an audio output device that generates sound 'image' from high-level sound parameters passed to it during scene graph.

The methods in this class are meant to be optionally overridden by an extended class. This extended class would provice device specific code.

Error checking on all parameters passed to these methods is already explicitly being done by the Java 3D core code that calls these methods.

These methods should NOT be called by any application if the audio engine is associated with a Physical Environment used by Java3D Core.

Since:
  Java 3D 1.3

Field Summary

Fields inherited from class com.sun.j3d.audioengines.AudioEngine3D
`attribs, currentView, samples`

Fields inherited from interface javax.media.j3d.AudioDevice3D
`BACKGROUND_SOUND, BUFFERED_AUDIO_DATA, CONE_SOUND, POINT_SOUND, STREAMING_AUDIO_DATA`

Fields inherited from interface javax.media.j3d.AudioDevice
`HEADPHONES, MONO_SPEAKER, STEREO_SPEAKERS`

Constructor Summary
`AudioEngine3DL2(PhysicalEnvironment physicalEnvironment)` Construct a new AudioEngine3DL2 with the specified PhysicalEnvironment.

Method Summary
`abstract void` `pause()` Pauses audio device engine without closing the device and associated threads.
`abstract void` `resume()` Resumes audio device engine (if previously paused) without reinitializing the device.
`void` `setDecayFilter(float frequencyCutoff)` Set reverb decay filter.
`void` `setDecayTime(float time)` Set reverb decay time.
`void` `setDensity(float density)` Set reverb density.
`void` `setDiffusion(float diffusion)` Set reverb diffusion.
`abstract void` `setGain(float scaleFactor)` Set overall gain control of all sounds playing on the audio device.
`void` `setObstructionFilter(int index, float frequencyCutoff)` Set the obstruction filter control.
`void` `setObstructionGain(int index, float scaleFactor)` Set the obstruction gain control.
`void` `setOcclusionFilter(int index, float frequencyCutoff)` Set the occlusion filter control.
`void` `setOcclusionGain(int index, float scaleFactor)` Set the occlusion gain control.
`void` `setRateScaleFactor(int index, float scaleFactor)` Set scale factor applied to sample playback rate for a particular sound associated with the audio device.
`void` `setReflectionDelay(float reflectionDelay)` Sets the early reflection delay time.
`void` `setReverbCoefficient(float coefficient)` Set late reflection (referred to as 'reverb') attenuation.

Methods inherited from class com.sun.j3d.audioengines.AudioEngine3D

`clearSound, getAuralParameters, getNumberOfChannelsUsed, getNumberOfChannelsUsed, getSample, getSampleDuration, getSampleList, getSampleListSize, getStartTime, getView, muteSample, pauseSample, prepareSound, setAngularAttenuation, setDirection, setDistanceFilter, setDistanceGain, setFrequencyScaleFactor, setLoop, setPosition, setReflectionCoefficient, setReverbDelay, setReverbOrder, setRolloff, setSampleGain, setVelocityScaleFactor, setView, setVworldXfrm, startSample, stopSample, unmuteSample, unpauseSample, updateSample`

Methods inherited from class com.sun.j3d.audioengines.AudioEngine
`close, getAngleOffsetToSpeaker, getAudioPlaybackType, getCenterEarToSpeaker, getChannelsAvailable, getChannelsUsedForSound, getTotalChannels, initialize, setAngleOffsetToSpeaker, setAudioPlaybackType, setCenterEarToSpeaker`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.media.j3d.AudioDevice3D

`clearSound, getNumberOfChannelsUsed, getNumberOfChannelsUsed, getSampleDuration, getStartTime, muteSample, pauseSample, prepareSound, setAngularAttenuation, setDirection, setDistanceFilter, setDistanceGain, setFrequencyScaleFactor, setLoop, setPosition, setReflectionCoefficient, setReverbDelay, setReverbOrder, setRolloff, setSampleGain, setVelocityScaleFactor, setView, setVworldXfrm, startSample, stopSample, unmuteSample, unpauseSample, updateSample`

Methods inherited from interface javax.media.j3d.AudioDevice
`close, getAngleOffsetToSpeaker, getAudioPlaybackType, getCenterEarToSpeaker, getChannelsAvailable, getChannelsUsedForSound, getTotalChannels, initialize, setAngleOffsetToSpeaker, setAudioPlaybackType, setCenterEarToSpeaker`

Constructor Detail

### AudioEngine3DL2

    public AudioEngine3DL2(PhysicalEnvironment physicalEnvironment)

  Construct a new AudioEngine3DL2 with the specified PhysicalEnvironment.

  Parameters:
    `physicalEnvironment` - the physical environment object where we want access to this device.

Method Detail

### pause

    public abstract void pause()

  Pauses audio device engine without closing the device and associated threads. Causes all cached sounds to be paused and all streaming sounds to be stopped.

  Specified by:
    `pause` in interface `AudioDevice3DL2`

### resume

    public abstract void resume()

  Resumes audio device engine (if previously paused) without reinitializing the device. Causes all paused cached sounds to be resumed and all streaming sounds restarted.

  Specified by:
    `resume` in interface `AudioDevice3DL2`

### setGain

    public abstract void setGain(float scaleFactor)

  Set overall gain control of all sounds playing on the audio device.

  Specified by:
    `setGain` in interface `AudioDevice3DL2`
  Parameters:
    `scaleFactor` - scale factor applied to calculated amplitudes for all sounds playing on this device

### setRateScaleFactor

    public void setRateScaleFactor(int index,
                                   float scaleFactor)

  Set scale factor applied to sample playback rate for a particular sound associated with the audio device. Changing the device sample rate affects both the pitch and speed. This scale factor is applied to ALL sound types. Changes (scales) the playback rate of a sound independent of Doppler rate changes.

  Specified by:
    `setRateScaleFactor` in interface `AudioDevice3DL2`
  Parameters:
    `index` - device specific reference to device driver sample
    `scaleFactor` - non-negative factor applied to calculated amplitudes for all sounds playing on this device
  See Also:
    `Sound.setRateScaleFactor(float)`

### setReverbCoefficient

    public void setReverbCoefficient(float coefficient)

  Set late reflection (referred to as 'reverb') attenuation. This scale factor is applied to iterative, indistinguishable late reflections that constitute the tail of reverberated sound in the aural environment. This parameter, along with the early reflection coefficient, defines the reflective/absorptive characteristic of the surfaces in the current listening region.

  Specified by:
    `setReverbCoefficient` in interface `AudioDevice3DL2`
  Parameters:
    `coefficient` - late reflection attenuation factor
  See Also:
    `AuralAttributes.setReverbCoefficient(float)`

### setReflectionDelay

    public void setReflectionDelay(float reflectionDelay)

  Sets the early reflection delay time. In this form, the parameter specifies the delay time between each order of reflection (while reverberation is being rendered) explicitly given in milliseconds.

  Specified by:
    `setReflectionDelay` in interface `AudioDevice3DL2`
  Parameters:
    `reflectionDelay` - time between each order of early reflection
  See Also:
    `AuralAttributes.setReflectionDelay(float)`

### setDecayTime

    public void setDecayTime(float time)

  Set reverb decay time. Defines the reverberation decay curve.

  Specified by:
    `setDecayTime` in interface `AudioDevice3DL2`
  Parameters:
    `time` - decay time in milliseconds
  See Also:
    `AuralAttributes.setDecayTime(float)`

### setDecayFilter

    public void setDecayFilter(float frequencyCutoff)

  Set reverb decay filter. This provides for frequencies above the given cutoff frequency to be attenuated during reverb decay at a different rate than frequencies below this value. Thus, defining a different reverb decay curve for frequencies above the cutoff value.

  Specified by:
    `setDecayFilter` in interface `AudioDevice3DL2`
  Parameters:
    `frequencyCutoff` - value of frequencies in Hertz above which a low-pass filter is applied.
  See Also:
    `AuralAttributes.setDecayFilter(float)`

### setDiffusion

    public void setDiffusion(float diffusion)

  Set reverb diffusion. This defines the echo dispersement (also referred to as 'echo density'). The value of this reverb parameter is expressed as a percent of the audio device's minimum-to-maximum values.

  Specified by:
    `setDiffusion` in interface `AudioDevice3DL2`
  Parameters:
    `diffusion` - percentage expressed within the range of 0.0 and 1.0
  See Also:
    `AuralAttributes.setDiffusion(float)`

### setDensity

    public void setDensity(float density)

  Set reverb density. This defines the modal density (also referred to as 'spectral coloration'). The value of this parameter is expressed as a percent of the audio device's minimum-to-maximum values for this reverb parameter.

  Specified by:
    `setDensity` in interface `AudioDevice3DL2`
  Parameters:
    `density` - reverb density expressed as a percentage, within the range of 0.0 and 1.0
  See Also:
    `AuralAttributes.setDensity(float)`

### setObstructionGain

    public void setObstructionGain(int index,
                                   float scaleFactor)

  Set the obstruction gain control. This method allows for attenuating sound waves traveling between the sound source and the listener obstructed by objects. Direct sound signals/waves for obstructed sound source are attenuated but not indirect (reflected) waves. There is no corresponding Core AuralAttributes method at this time.

  Specified by:
    `setObstructionGain` in interface `AudioDevice3DL2`
  Parameters:
    `index` - device specific reference to device driver sample
    `scaleFactor` - non-negative factor applied to direct sound gain

### setObstructionFilter

    public void setObstructionFilter(int index,
                                     float frequencyCutoff)

  Set the obstruction filter control. This provides for frequencies above the given cutoff frequency to be attenuated, during while the gain of an obstruction signal is being calculated, at a different rate than frequencies below this value. There is no corresponding Core AuralAttributes method at this time.

  Specified by:
    `setObstructionFilter` in interface `AudioDevice3DL2`
  Parameters:
    `index` - device specific reference to device driver sample
    `frequencyCutoff` - value of frequencies in Hertz above which a low-pass filter is applied.

### setOcclusionGain

    public void setOcclusionGain(int index,
                                 float scaleFactor)

  Set the occlusion gain control. This method allows for attenuating sound waves traveling between the sound source and the listener occluded by objects. Both direct and indirect sound signals/waves for occluded sound sources are attenuated. There is no corresponding Core AuralAttributes method at this time.

  Specified by:
    `setOcclusionGain` in interface `AudioDevice3DL2`
  Parameters:
    `index` - device specific reference to device driver sample
    `scaleFactor` - non-negative factor applied to direct sound gain

### setOcclusionFilter

    public void setOcclusionFilter(int index,
                                   float frequencyCutoff)

  Set the occlusion filter control. This provides for frequencies above the given cutoff frequency to be attenuated, during while the gain of an occluded signal is being calculated, at a different rate than frequencies below this value. There is no corresponding Core AuralAttributes method at this time.

  Specified by:
    `setOcclusionFilter` in interface `AudioDevice3DL2`
  Parameters:
    `index` - device specific reference to device driver sample
    `frequencyCutoff` - value of frequencies in Hertz above which a low-pass filter is applied.

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