< prev index next >

src/java.desktop/share/classes/javax/sound/sampled/FloatControl.java

Print this page




 369          * might already be at a high amplitude, the maximum setting does not
 370          * guarantee that the signal will be undistorted when the gain is
 371          * applied to it (unless the maximum is zero or negative). To avoid
 372          * numeric overflow from excessively large gain settings, a gain control
 373          * can implement clipping, meaning that the signal's amplitude will be
 374          * limited to the maximum value representable by its audio format,
 375          * instead of wrapping around.
 376          * <p>
 377          * These comments apply to gain controls in general, not just master
 378          * gain controls. A line can have more than one gain control. For
 379          * example, a mixer (which is itself a line) might have a master gain
 380          * control, an auxiliary return control, a reverb return control, and,
 381          * on each of its source lines, an individual aux send and reverb send.
 382          *
 383          * @see #AUX_SEND
 384          * @see #AUX_RETURN
 385          * @see #REVERB_SEND
 386          * @see #REVERB_RETURN
 387          * @see #VOLUME
 388          */
 389         public static final Type MASTER_GAIN            = new Type("Master Gain");
 390 
 391         /**
 392          * Represents a control for the auxiliary send gain on a line.
 393          *
 394          * @see #MASTER_GAIN
 395          * @see #AUX_RETURN
 396          */
 397         public static final Type AUX_SEND                       = new Type("AUX Send");
 398 
 399         /**
 400          * Represents a control for the auxiliary return gain on a line.
 401          *
 402          * @see #MASTER_GAIN
 403          * @see #AUX_SEND
 404          */
 405         public static final Type AUX_RETURN                     = new Type("AUX Return");
 406 
 407         /**
 408          * Represents a control for the pre-reverb gain on a line. This control
 409          * may be used to affect how much of a line's signal is directed to a
 410          * mixer's internal reverberation unit.
 411          *
 412          * @see #MASTER_GAIN
 413          * @see #REVERB_RETURN
 414          * @see EnumControl.Type#REVERB
 415          */
 416         public static final Type REVERB_SEND            = new Type("Reverb Send");
 417 
 418         /**
 419          * Represents a control for the post-reverb gain on a line. This control
 420          * may be used to control the relative amplitude of the signal returned
 421          * from an internal reverberation unit.
 422          *
 423          * @see #MASTER_GAIN
 424          * @see #REVERB_SEND
 425          */
 426         public static final Type REVERB_RETURN          = new Type("Reverb Return");
 427 
 428         /**
 429          * Represents a control for the volume on a line.
 430          */
 431         /*
 432          * $$kk: 08.30.99: ISSUE: what units?  linear or dB?
 433          */
 434         public static final Type VOLUME                         = new Type("Volume");
 435 
 436         /**
 437          * Represents a control for the relative pan (left-right positioning) of
 438          * the signal. The signal may be mono; the pan setting affects how it is
 439          * distributed by the mixer in a stereo mix. The valid range of values
 440          * is -1.0 (left channel only) to 1.0 (right channel only). The default
 441          * is 0.0 (centered).
 442          *
 443          * @see #BALANCE
 444          */
 445         public static final Type PAN                            = new Type("Pan");
 446 
 447         /**
 448          * Represents a control for the relative balance of a stereo signal
 449          * between two stereo speakers. The valid range of values is -1.0 (left
 450          * channel only) to 1.0 (right channel only). The default is 0.0
 451          * (centered).
 452          *
 453          * @see #PAN
 454          */
 455         public static final Type BALANCE                        = new Type("Balance");
 456 
 457         /**
 458          * Represents a control that changes the sample rate of audio playback.
 459          * The net effect of changing the sample rate depends on the
 460          * relationship between the media's natural rate and the rate that is
 461          * set via this control. The natural rate is the sample rate that is
 462          * specified in the data line's {@code AudioFormat} object. For example,
 463          * if the natural rate of the media is 11025 samples per second and the
 464          * sample rate is set to 22050 samples per second, the media will play
 465          * back at twice the normal speed.
 466          * <p>
 467          * Changing the sample rate with this control does not affect the data
 468          * line's audio format. Also note that whenever you change a sound's
 469          * sample rate, a change in the sound's pitch results. For example,
 470          * doubling the sample rate has the effect of doubling the frequencies
 471          * in the sound's spectrum, which raises the pitch by an octave.
 472          */
 473         public static final Type SAMPLE_RATE            = new Type("Sample Rate");
 474 
 475         /**
 476          * Constructs a new float control type.
 477          *
 478          * @param name the name of the new float control type
 479          */
 480         protected Type(final String name) {
 481             super(name);
 482         }
 483     }
 484 }


 369          * might already be at a high amplitude, the maximum setting does not
 370          * guarantee that the signal will be undistorted when the gain is
 371          * applied to it (unless the maximum is zero or negative). To avoid
 372          * numeric overflow from excessively large gain settings, a gain control
 373          * can implement clipping, meaning that the signal's amplitude will be
 374          * limited to the maximum value representable by its audio format,
 375          * instead of wrapping around.
 376          * <p>
 377          * These comments apply to gain controls in general, not just master
 378          * gain controls. A line can have more than one gain control. For
 379          * example, a mixer (which is itself a line) might have a master gain
 380          * control, an auxiliary return control, a reverb return control, and,
 381          * on each of its source lines, an individual aux send and reverb send.
 382          *
 383          * @see #AUX_SEND
 384          * @see #AUX_RETURN
 385          * @see #REVERB_SEND
 386          * @see #REVERB_RETURN
 387          * @see #VOLUME
 388          */
 389         public static final Type MASTER_GAIN = new Type("Master Gain");
 390 
 391         /**
 392          * Represents a control for the auxiliary send gain on a line.
 393          *
 394          * @see #MASTER_GAIN
 395          * @see #AUX_RETURN
 396          */
 397         public static final Type AUX_SEND = new Type("AUX Send");
 398 
 399         /**
 400          * Represents a control for the auxiliary return gain on a line.
 401          *
 402          * @see #MASTER_GAIN
 403          * @see #AUX_SEND
 404          */
 405         public static final Type AUX_RETURN = new Type("AUX Return");
 406 
 407         /**
 408          * Represents a control for the pre-reverb gain on a line. This control
 409          * may be used to affect how much of a line's signal is directed to a
 410          * mixer's internal reverberation unit.
 411          *
 412          * @see #MASTER_GAIN
 413          * @see #REVERB_RETURN
 414          * @see EnumControl.Type#REVERB
 415          */
 416         public static final Type REVERB_SEND = new Type("Reverb Send");
 417 
 418         /**
 419          * Represents a control for the post-reverb gain on a line. This control
 420          * may be used to control the relative amplitude of the signal returned
 421          * from an internal reverberation unit.
 422          *
 423          * @see #MASTER_GAIN
 424          * @see #REVERB_SEND
 425          */
 426         public static final Type REVERB_RETURN = new Type("Reverb Return");
 427 
 428         /**
 429          * Represents a control for the volume on a line.
 430          */
 431         /*
 432          * $$kk: 08.30.99: ISSUE: what units?  linear or dB?
 433          */
 434         public static final Type VOLUME = new Type("Volume");
 435 
 436         /**
 437          * Represents a control for the relative pan (left-right positioning) of
 438          * the signal. The signal may be mono; the pan setting affects how it is
 439          * distributed by the mixer in a stereo mix. The valid range of values
 440          * is -1.0 (left channel only) to 1.0 (right channel only). The default
 441          * is 0.0 (centered).
 442          *
 443          * @see #BALANCE
 444          */
 445         public static final Type PAN = new Type("Pan");
 446 
 447         /**
 448          * Represents a control for the relative balance of a stereo signal
 449          * between two stereo speakers. The valid range of values is -1.0 (left
 450          * channel only) to 1.0 (right channel only). The default is 0.0
 451          * (centered).
 452          *
 453          * @see #PAN
 454          */
 455         public static final Type BALANCE = new Type("Balance");
 456 
 457         /**
 458          * Represents a control that changes the sample rate of audio playback.
 459          * The net effect of changing the sample rate depends on the
 460          * relationship between the media's natural rate and the rate that is
 461          * set via this control. The natural rate is the sample rate that is
 462          * specified in the data line's {@code AudioFormat} object. For example,
 463          * if the natural rate of the media is 11025 samples per second and the
 464          * sample rate is set to 22050 samples per second, the media will play
 465          * back at twice the normal speed.
 466          * <p>
 467          * Changing the sample rate with this control does not affect the data
 468          * line's audio format. Also note that whenever you change a sound's
 469          * sample rate, a change in the sound's pitch results. For example,
 470          * doubling the sample rate has the effect of doubling the frequencies
 471          * in the sound's spectrum, which raises the pitch by an octave.
 472          */
 473         public static final Type SAMPLE_RATE = new Type("Sample Rate");
 474 
 475         /**
 476          * Constructs a new float control type.
 477          *
 478          * @param name the name of the new float control type
 479          */
 480         protected Type(final String name) {
 481             super(name);
 482         }
 483     }
 484 }
< prev index next >