FloatControl
public static class FloatControl.Type extends Control.Type
FloatControl.Type
inner class identifies one kind of float control. Static instances are provided for the common types.Modifier and Type | Field | Description |
---|---|---|
static final FloatControl.Type |
AUX_RETURN |
Represents a control for the auxiliary return gain on a line. |
static final FloatControl.Type |
AUX_SEND |
Represents a control for the auxiliary send gain on a line. |
static final FloatControl.Type |
BALANCE |
Represents a control for the relative balance of a stereo signal between two stereo speakers. |
static final FloatControl.Type |
MASTER_GAIN |
Represents a control for the overall gain on a line. |
static final FloatControl.Type |
PAN |
Represents a control for the relative pan (left-right positioning) of the signal. |
static final FloatControl.Type |
REVERB_RETURN |
Represents a control for the post-reverb gain on a line. |
static final FloatControl.Type |
REVERB_SEND |
Represents a control for the pre-reverb gain on a line. |
static final FloatControl.Type |
SAMPLE_RATE |
Represents a control that changes the sample rate of audio playback. |
static final FloatControl.Type |
VOLUME |
Represents a control for the volume on a line. |
Modifier | Constructor | Description |
---|---|---|
protected |
Constructs a new float control type. |
equals, hashCode, toString
public static final FloatControl.Type MASTER_GAIN
Gain is a quantity in decibels (dB) that is added to the intrinsic decibel level of the audio signal--that is, the level of the signal before it is altered by the gain control. A positive gain amplifies (boosts) the signal's volume, and a negative gain attenuates(cuts)it. The gain setting defaults to a value of 0.0 dB, meaning the signal's loudness is unaffected. Note that gain measures dB, not amplitude. The relationship between a gain in decibels and the corresponding linear amplitude multiplier is:
linearScalar = pow(10.0, gainDB/20.0)
The FloatControl
class has methods to impose a maximum and minimum allowable value for gain. However, because an audio signal might already be at a high amplitude, the maximum setting does not guarantee that the signal will be undistorted when the gain is applied to it (unless the maximum is zero or negative). To avoid numeric overflow from excessively large gain settings, a gain control can implement clipping, meaning that the signal's amplitude will be limited to the maximum value representable by its audio format, instead of wrapping around.
These comments apply to gain controls in general, not just master gain controls. A line can have more than one gain control. For example, a mixer (which is itself a line) might have a master gain control, an auxiliary return control, a reverb return control, and, on each of its source lines, an individual aux send and reverb send.
public static final FloatControl.Type AUX_SEND
public static final FloatControl.Type AUX_RETURN
public static final FloatControl.Type REVERB_SEND
public static final FloatControl.Type REVERB_RETURN
public static final FloatControl.Type VOLUME
public static final FloatControl.Type PAN
public static final FloatControl.Type BALANCE
public static final FloatControl.Type SAMPLE_RATE
AudioFormat
object. For example, if the natural rate of the media is 11025 samples per second and the sample rate is set to 22050 samples per second, the media will play back at twice the normal speed. Changing the sample rate with this control does not affect the data line's audio format. Also note that whenever you change a sound's sample rate, a change in the sound's pitch results. For example, doubling the sample rate has the effect of doubling the frequencies in the sound's spectrum, which raises the pitch by an octave.
protected Type(String name)
name
- the name of the new float control type
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/sound/sampled/FloatControl.Type.html