# Class Sample

java.lang.Object
com.sun.j3d.audioengines.Sample

public class Sample extends Object
The Sample class defines the data and methods associated with a sound sample played through the AudioDevice. This contains all the data fields for non-spatialized and spatialized (positional and directional) sound samples.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected double[]`
`angularDistance`
Directional Sound's gain can be attenuated based on the listener's location off-angle from the source source direction.
`protected float[]`
`angularFilterCutoff`
`protected int`
`angularFilterType`
`protected float[]`
`angularGain`
`protected double[]`
`attenuationDistance`
`protected float[]`
`attenuationGain`
`protected double[]`
`backAttenuationDistance`
Pairs of distances and gain scale factors that define piecewise linear gain BACK attenuation between each pair.
`protected float[]`
`backAttenuationGain`
`protected static final boolean`
`debugFlag`
`protected javax.vecmath.Vector3f`
`direction`
The Cone Sound's direction vector.
`protected int`
`dirtyFlags`
dirty flags denoting what has changed since last rendering
`protected long`
`duration`
`static final int`
`DURATION_UNKNOWN`
`protected float`
`gain`
Overall Scale Factor applied to sound gain.
`protected static final boolean`
`internalErrors`
`protected int`
`loopCount`
Number of times sound is looped/repeated during play
`static final int`
`LOW_PASS`
`protected boolean`
`mute`
`static final int`
`NO_FILTERING`
Distance Filter Each sound source is attenuated by a filter based on it's distance from the listener.
`static final int`
`NULL_SAMPLE`
Null Sound identifier denotes sound is not created or initialized
`protected int`
`numberOfChannels`
`protected float`
`obstructionFilterCutoff`
`protected int`
`obstructionFilterType`
`protected float`
`obstructionGain`
`protected float`
`occlusionFilterCutoff`
`protected int`
`occlusionFilterType`
`protected float`
`occlusionGain`
`protected javax.vecmath.Point3f`
`position`
`protected float`
`rateScaleFactor`
Overall Scale Factor applied to sound.
`protected MediaContainer`
`soundData`
sound data associated with sound source
`protected int`
`soundType`
sound data associated with sound source
`protected Transform3D`
`vworldXfrm`
`protected boolean`
`vwXfrmFlag`

## Constructor Summary

Constructors
Constructor
Description
`Sample()`

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Clears/re-initialize fields associated with sample data for this sound, and frees any device specific data associated with this sample.
`protected void`
`debugPrint(String message)`
`protected void`
`debugPrintln(String message)`
`int`
`getDirtyFlags()`
`long`
`getDuration()`
`float`
`getGain()`
`int`
`getLoopCount()`
`boolean`
`getMuteFlag()`
`int`
`getNumberOfChannelsUsed()`
`float`
`getObstructionGain()`
`float`
`getOcclusionGain()`
`float`
`getRateScaleFactor()`
`MediaContainer`
`getSoundData()`
`int`
`getSoundType()`
`long`
`getStartTime()`
`boolean`
`getVWrldXfrmFlag()`
`void`
`render(int dirtyFlags, View view, AuralParameters attribs)`
`void`
`setAngularAttenuation(int filterType, double[] angle, float[] attenuationScaleFactor, float[] filterCutoff)`
`void`
`setDirection(javax.vecmath.Vector3d direction)`
`void`
`setDirtyFlags(int flags)`
`void`
`setDistanceGain(double[] frontDistance, float[] frontAttenuationScaleFactor, double[] backDistance, float[] backAttenuationScaleFactor)`
`void`
`setGain(float scaleFactor)`
`void`
`setLoopCount(int count)`
`void`
`setMuteFlag(boolean flag)`
`void`
`setObstructionFilter(float cutoffFrequency)`
`void`
`setObstructionGain(float scaleFactor)`
`void`
`setOcclusionFilter(float cutoffFrequency)`
`void`
`setOcclusionGain(float scaleFactor)`
`void`
`setPosition(javax.vecmath.Point3d position)`
`void`
`setRateScaleFactor(float scaleFactor)`
`void`
`setSoundData(MediaContainer ref)`
`void`
`setSoundType(int type)`
`void`
`setVWrldXfrmFlag(boolean flag)`

### Methods inherited from class Object

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

## Field Details

### debugFlag

protected static final boolean debugFlag

See Also:
  - Constant Field Values

### internalErrors

protected static final boolean internalErrors

See Also:
  - Constant Field Values

### NULL_SAMPLE

public static final int NULL_SAMPLE
Null Sound identifier denotes sound is not created or initialized

See Also:
  - Constant Field Values

### soundData

protected MediaContainer soundData
sound data associated with sound source

### soundType

protected int soundType
sound data associated with sound source

### gain

protected float gain
Overall Scale Factor applied to sound gain.

### rateScaleFactor

protected float rateScaleFactor
Overall Scale Factor applied to sound.

Since:
  Java 3D 1.3

### loopCount

protected int loopCount
Number of times sound is looped/repeated during play

### DURATION_UNKNOWN

public static final int DURATION_UNKNOWN

See Also:
  - Constant Field Values

### duration

protected long duration

### numberOfChannels

protected int numberOfChannels

### mute

protected boolean mute

### vworldXfrm

protected Transform3D vworldXfrm

### vwXfrmFlag

protected boolean vwXfrmFlag

### position

protected javax.vecmath.Point3f position

### attenuationDistance

protected double[] attenuationDistance

### attenuationGain

protected float[] attenuationGain

### dirtyFlags

protected int dirtyFlags
dirty flags denoting what has changed since last rendering

### direction

protected javax.vecmath.Vector3f direction
The Cone Sound's direction vector. This is the cone axis.

### backAttenuationDistance

protected double[] backAttenuationDistance
Pairs of distances and gain scale factors that define piecewise linear gain BACK attenuation between each pair. These are used for defining elliptical attenuation regions.

### backAttenuationGain

protected float[] backAttenuationGain

### angularDistance

protected double[] angularDistance
Directional Sound's gain can be attenuated based on the listener's location off-angle from the source source direction. This can be set by three parameters: angular distance in radians gain scale factor filtering (currently the only filtering supported is lowpass)

### angularGain

protected float[] angularGain

### NO_FILTERING

public static final int NO_FILTERING
Distance Filter Each sound source is attenuated by a filter based on it's distance from the listener. For now the only supported filterType will be LOW_PASS frequency cutoff. At some time full FIR filtering will be supported.

See Also:
  - Constant Field Values

### LOW_PASS

public static final int LOW_PASS

See Also:
  - Constant Field Values

### angularFilterType

protected int angularFilterType

### angularFilterCutoff

protected float[] angularFilterCutoff

### obstructionGain

protected float obstructionGain

### obstructionFilterType

protected int obstructionFilterType

### obstructionFilterCutoff

protected float obstructionFilterCutoff

### occlusionGain

protected float occlusionGain

### occlusionFilterType

protected int occlusionFilterType

### occlusionFilterCutoff

protected float occlusionFilterCutoff

## Constructor Details

### Sample

public Sample()

## Method Details

### debugPrint

protected void debugPrint(String message)

### debugPrintln

protected void debugPrintln(String message)

### getDuration

public long getDuration()

### getStartTime

public long getStartTime()

### getNumberOfChannelsUsed

public int getNumberOfChannelsUsed()

### setDirtyFlags

public void setDirtyFlags(int flags)

### getDirtyFlags

public int getDirtyFlags()

### setSoundType

public void setSoundType(int type)

### getSoundType

public int getSoundType()

### setSoundData

public void setSoundData(MediaContainer ref)

### getSoundData

public MediaContainer getSoundData()

### setMuteFlag

public void setMuteFlag(boolean flag)

### getMuteFlag

public boolean getMuteFlag()

### setVWrldXfrmFlag

public void setVWrldXfrmFlag(boolean flag)

### getVWrldXfrmFlag

public boolean getVWrldXfrmFlag()

### setGain

public void setGain(float scaleFactor)

### getGain

public float getGain()

### setLoopCount

public void setLoopCount(int count)

### getLoopCount

public int getLoopCount()

### setPosition

public void setPosition(javax.vecmath.Point3d position)

### setDistanceGain

public void setDistanceGain(double[] frontDistance, float[] frontAttenuationScaleFactor, double[] backDistance, float[] backAttenuationScaleFactor)

### setDirection

public void setDirection(javax.vecmath.Vector3d direction)

### setAngularAttenuation

public void setAngularAttenuation(int filterType, double[] angle, float[] attenuationScaleFactor, float[] filterCutoff)

### setRateScaleFactor

public void setRateScaleFactor(float scaleFactor)

### getRateScaleFactor

public float getRateScaleFactor()

### setObstructionGain

public void setObstructionGain(float scaleFactor)

### getObstructionGain

public float getObstructionGain()

### setObstructionFilter

public void setObstructionFilter(float cutoffFrequency)

### setOcclusionGain

public void setOcclusionGain(float scaleFactor)

### getOcclusionGain

public float getOcclusionGain()

### setOcclusionFilter

public void setOcclusionFilter(float cutoffFrequency)

### clear

public void clear()
Clears/re-initialize fields associated with sample data for this sound, and frees any device specific data associated with this sample.

### render

public void render(int dirtyFlags, View view, AuralParameters attribs)