src/share/classes/javax/sound/sampled/ReverbType.java

Print this page

        

*** 23,81 **** * questions. */ package javax.sound.sampled; - /** ! * The <code>ReverbType</code> class provides methods for ! * accessing various reverberation settings to be applied to ! * an audio signal. * <p> ! * Reverberation simulates the reflection of sound off of ! * the walls, ceiling, and floor of a room. Depending on ! * the size of the room, and how absorbent or reflective the materials in the ! * room's surfaces are, the sound might bounce around for a ! * long time before dying away. * <p> ! * The reverberation parameters provided by <code>ReverbType</code> consist ! * of the delay time and intensity of early reflections, the delay time and ! * intensity of late reflections, and an overall decay time. ! * Early reflections are the initial individual low-order reflections of the ! * direct signal off the surfaces in the room. ! * The late Reflections are the dense, high-order reflections that characterize ! * the room's reverberation. ! * The delay times for the start of these two reflection types give the listener ! * a sense of the overall size and complexity of the room's shape and contents. ! * The larger the room, the longer the reflection delay times. ! * The early and late reflections' intensities define the gain (in decibels) of the reflected ! * signals as compared to the direct signal. These intensities give the ! * listener an impression of the absorptive nature of the surfaces and objects ! * in the room. * The decay time defines how long the reverberation takes to exponentially ! * decay until it is no longer perceptible ("effective zero"). ! * The larger and less absorbent the surfaces, the longer the decay time. * <p> ! * The set of parameters defined here may not include all aspects of reverberation ! * as specified by some systems. For example, the Midi Manufacturer's Association ! * (MMA) has an Interactive Audio Special Interest Group (IASIG), which has a ! * 3-D Working Group that has defined a Level 2 Spec (I3DL2). I3DL2 ! * supports filtering of reverberation and ! * control of reverb density. These properties are not included in the JavaSound 1.0 ! * definition of a reverb control. In such a case, the implementing system ! * should either extend the defined reverb control to include additional ! * parameters, or else interpret the system's additional capabilities in a way that fits ! * the model described here. * <p> * If implementing JavaSound on a I3DL2-compliant device: * <ul> * <li>Filtering is disabled (high-frequency attenuations are set to 0.0 dB) * <li>Density parameters are set to midway between minimum and maximum * </ul> * <p> ! * The following table shows what parameter values an implementation might use for a ! * representative set of reverberation settings. * <p> * * <b>Reverberation Types and Parameters</b> * * <table border=1 cellpadding=5 summary="reverb types and params: decay time, late intensity, late delay, early intensity, and early delay"> --- 23,76 ---- * questions. */ package javax.sound.sampled; /** ! * The {@code ReverbType} class provides methods for accessing various ! * reverberation settings to be applied to an audio signal. * <p> ! * Reverberation simulates the reflection of sound off of the walls, ceiling, ! * and floor of a room. Depending on the size of the room, and how absorbent or ! * reflective the materials in the room's surfaces are, the sound might bounce ! * around for a long time before dying away. * <p> ! * The reverberation parameters provided by {@code ReverbType} consist of the ! * delay time and intensity of early reflections, the delay time and intensity ! * of late reflections, and an overall decay time. Early reflections are the ! * initial individual low-order reflections of the direct signal off the ! * surfaces in the room. The late Reflections are the dense, high-order ! * reflections that characterize the room's reverberation. The delay times for ! * the start of these two reflection types give the listener a sense of the ! * overall size and complexity of the room's shape and contents. The larger the ! * room, the longer the reflection delay times. The early and late reflections' ! * intensities define the gain (in decibels) of the reflected signals as ! * compared to the direct signal. These intensities give the listener an ! * impression of the absorptive nature of the surfaces and objects in the room. * The decay time defines how long the reverberation takes to exponentially ! * decay until it is no longer perceptible ("effective zero"). The larger and ! * less absorbent the surfaces, the longer the decay time. * <p> ! * The set of parameters defined here may not include all aspects of ! * reverberation as specified by some systems. For example, the Midi ! * Manufacturer's Association (MMA) has an Interactive Audio Special Interest ! * Group (IASIG), which has a 3-D Working Group that has defined a Level 2 Spec ! * (I3DL2). I3DL2 supports filtering of reverberation and control of reverb ! * density. These properties are not included in the JavaSound 1.0 definition of ! * a reverb control. In such a case, the implementing system should either ! * extend the defined reverb control to include additional parameters, or else ! * interpret the system's additional capabilities in a way that fits the model ! * described here. * <p> * If implementing JavaSound on a I3DL2-compliant device: * <ul> * <li>Filtering is disabled (high-frequency attenuations are set to 0.0 dB) * <li>Density parameters are set to midway between minimum and maximum * </ul> * <p> ! * The following table shows what parameter values an implementation might use ! * for a representative set of reverberation settings. * <p> * * <b>Reverberation Types and Parameters</b> * * <table border=1 cellpadding=5 summary="reverb types and params: decay time, late intensity, late delay, early intensity, and early delay">
*** 140,150 **** * @since 1.3 */ public class ReverbType { /** ! * Descriptive name of the reverb type.. */ private String name; /** * Early reflection delay in microseconds. --- 135,145 ---- * @since 1.3 */ public class ReverbType { /** ! * Descriptive name of the reverb type. */ private String name; /** * Early reflection delay in microseconds.
*** 165,187 **** * Late reflection intensity. */ private float lateReflectionIntensity; /** ! * Total decay time */ private int decayTime; - /** * Constructs a new reverb type that has the specified reverberation * parameter values. ! * @param name the name of the new reverb type, or a zero-length <code>String</code> ! * @param earlyReflectionDelay the new type's early reflection delay time in microseconds ! * @param earlyReflectionIntensity the new type's early reflection intensity in dB ! * @param lateReflectionDelay the new type's late reflection delay time in microseconds ! * @param lateReflectionIntensity the new type's late reflection intensity in dB * @param decayTime the new type's decay time in microseconds */ protected ReverbType(String name, int earlyReflectionDelay, float earlyReflectionIntensity, int lateReflectionDelay, float lateReflectionIntensity, int decayTime) { this.name = name; --- 160,187 ---- * Late reflection intensity. */ private float lateReflectionIntensity; /** ! * Total decay time. */ private int decayTime; /** * Constructs a new reverb type that has the specified reverberation * parameter values. ! * ! * @param name the name of the new reverb type, or a zero-length ! * {@code String} ! * @param earlyReflectionDelay the new type's early reflection delay time ! * in microseconds ! * @param earlyReflectionIntensity the new type's early reflection ! * intensity in dB ! * @param lateReflectionDelay the new type's late reflection delay time in ! * microseconds ! * @param lateReflectionIntensity the new type's late reflection intensity ! * in dB * @param decayTime the new type's decay time in microseconds */ protected ReverbType(String name, int earlyReflectionDelay, float earlyReflectionIntensity, int lateReflectionDelay, float lateReflectionIntensity, int decayTime) { this.name = name;
*** 190,299 **** this.lateReflectionDelay = lateReflectionDelay; this.lateReflectionIntensity = lateReflectionIntensity; this.decayTime = decayTime; } - /** * Obtains the name of this reverb type. * @return the name of this reverb type * @since 1.5 */ public String getName() { return name; } - /** ! * Returns the early reflection delay time in microseconds. ! * This is the amount of time between when the direct signal is ! * heard and when the first early reflections are heard. * @return early reflection delay time for this reverb type, in microseconds */ public final int getEarlyReflectionDelay() { return earlyReflectionDelay; } - /** ! * Returns the early reflection intensity in decibels. ! * This is the amplitude attenuation of the first early reflections ! * relative to the direct signal. * @return early reflection intensity for this reverb type, in dB */ public final float getEarlyReflectionIntensity() { return earlyReflectionIntensity; } - /** ! * Returns the late reflection delay time in microseconds. ! * This is the amount of time between when the first early reflections ! * are heard and when the first late reflections are heard. * @return late reflection delay time for this reverb type, in microseconds */ public final int getLateReflectionDelay() { return lateReflectionDelay; } - /** ! * Returns the late reflection intensity in decibels. ! * This is the amplitude attenuation of the first late reflections ! * relative to the direct signal. * @return late reflection intensity for this reverb type, in dB */ public final float getLateReflectionIntensity() { return lateReflectionIntensity; } - /** ! * Obtains the decay time, which is the amount of time over which the ! * late reflections attenuate to effective zero. The effective zero ! * value is implementation-dependent. * @return the decay time of the late reflections, in microseconds */ public final int getDecayTime() { return decayTime; } - /** * Indicates whether the specified object is equal to this reverb type, ! * returning <code>true</code> if the objects are identical. * @param obj the reference object with which to compare ! * @return <code>true</code> if this reverb type is the same as ! * <code>obj</code>; <code>false</code> otherwise */ public final boolean equals(Object obj) { return super.equals(obj); } - /** * Finalizes the hashcode method. */ public final int hashCode() { return super.hashCode(); } - /** ! * Provides a <code>String</code> representation of the reverb type, ! * including its name and its parameter settings. ! * The exact contents of the string may vary between implementations of ! * Java Sound. * @return reverberation type name and description */ public final String toString() { //$$fb2001-07-20: fix for bug 4385060: The "name" attribute of class "ReverbType" is not accessible. //return (super.toString() + ", early reflection delay " + earlyReflectionDelay + return (name + ", early reflection delay " + earlyReflectionDelay + " ns, early reflection intensity " + earlyReflectionIntensity + " dB, late deflection delay " + lateReflectionDelay + " ns, late reflection intensity " + lateReflectionIntensity + " dB, decay time " + decayTime); } ! ! } // class ReverbType --- 190,297 ---- this.lateReflectionDelay = lateReflectionDelay; this.lateReflectionIntensity = lateReflectionIntensity; this.decayTime = decayTime; } /** * Obtains the name of this reverb type. + * * @return the name of this reverb type * @since 1.5 */ public String getName() { return name; } /** ! * Returns the early reflection delay time in microseconds. This is the ! * amount of time between when the direct signal is heard and when the first ! * early reflections are heard. ! * * @return early reflection delay time for this reverb type, in microseconds */ public final int getEarlyReflectionDelay() { return earlyReflectionDelay; } /** ! * Returns the early reflection intensity in decibels. This is the amplitude ! * attenuation of the first early reflections relative to the direct signal. ! * * @return early reflection intensity for this reverb type, in dB */ public final float getEarlyReflectionIntensity() { return earlyReflectionIntensity; } /** ! * Returns the late reflection delay time in microseconds. This is the ! * amount of time between when the first early reflections are heard and ! * when the first late reflections are heard. ! * * @return late reflection delay time for this reverb type, in microseconds */ public final int getLateReflectionDelay() { return lateReflectionDelay; } /** ! * Returns the late reflection intensity in decibels. This is the amplitude ! * attenuation of the first late reflections relative to the direct signal. ! * * @return late reflection intensity for this reverb type, in dB */ public final float getLateReflectionIntensity() { return lateReflectionIntensity; } /** ! * Obtains the decay time, which is the amount of time over which the late ! * reflections attenuate to effective zero. The effective zero value is ! * implementation-dependent. ! * * @return the decay time of the late reflections, in microseconds */ public final int getDecayTime() { return decayTime; } /** * Indicates whether the specified object is equal to this reverb type, ! * returning {@code true} if the objects are identical. ! * * @param obj the reference object with which to compare ! * @return {@code true} if this reverb type is the same as {@code obj}; ! * {@code false} otherwise */ + @Override public final boolean equals(Object obj) { return super.equals(obj); } /** * Finalizes the hashcode method. */ + @Override public final int hashCode() { return super.hashCode(); } /** ! * Provides a {@code String} representation of the reverb type, including ! * its name and its parameter settings. The exact contents of the string may ! * vary between implementations of Java Sound. ! * * @return reverberation type name and description */ + @Override public final String toString() { //$$fb2001-07-20: fix for bug 4385060: The "name" attribute of class "ReverbType" is not accessible. //return (super.toString() + ", early reflection delay " + earlyReflectionDelay + return (name + ", early reflection delay " + earlyReflectionDelay + " ns, early reflection intensity " + earlyReflectionIntensity + " dB, late deflection delay " + lateReflectionDelay + " ns, late reflection intensity " + lateReflectionIntensity + " dB, decay time " + decayTime); } ! }