/*
* @(#)ReverbType.java 1.14 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
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 Relections 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>
* <p>
* <table border=1 cellpadding=5 summary="reverb types and params: decay time, late intensity, late delay, early intensity,
and early delay">
*
* <tr>
* <th>Type</th>
* <th>Decay Time (ms)</th>
* <th>Late Intensity (dB)</th>
* <th>Late Delay (ms)</th>
* <th>Early Intensity (dB)</th>
* <th>Early Delay(ms)</th>
* </tr>
*
* <tr>
* <td>Cavern</td>
* <td>2250</td>
* <td>-2.0</td>
* <td>41.3</td>
* <td>-1.4</td>
* <td>10.3</td>
* </tr>
*
* <tr>
* <td>Dungeon</td>
* <td>1600</td>
* <td>-1.0</td>
* <td>10.3</td>
* <td>-0.7</td>
* <td>2.6</td>
* </tr>
*
* <tr>
* <td>Garage</td>
* <td>900</td>
* <td>-6.0</td>
* <td>14.7</td>
* <td>-4.0</td>
* <td>3.9</td>
* </tr>
*
=1= |