1 /*
2 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
52 * <p>
53 * The set of parameters defined here may not include all aspects of
54 * reverberation as specified by some systems. For example, the Midi
55 * Manufacturer's Association (MMA) has an Interactive Audio Special Interest
56 * Group (IASIG), which has a 3-D Working Group that has defined a Level 2 Spec
57 * (I3DL2). I3DL2 supports filtering of reverberation and control of reverb
58 * density. These properties are not included in the JavaSound 1.0 definition of
59 * a reverb control. In such a case, the implementing system should either
60 * extend the defined reverb control to include additional parameters, or else
61 * interpret the system's additional capabilities in a way that fits the model
62 * described here.
63 * <p>
64 * If implementing JavaSound on a I3DL2-compliant device:
65 * <ul>
66 * <li>Filtering is disabled (high-frequency attenuations are set to 0.0 dB)
67 * <li>Density parameters are set to midway between minimum and maximum
68 * </ul>
69 * <p>
70 * The following table shows what parameter values an implementation might use
71 * for a representative set of reverberation settings.
72 * <p>
73 *
74 * <b>Reverberation Types and Parameters</b>
75 *
76 * <table border=1 cellpadding=5 summary="reverb types and params: decay time, late intensity, late delay, early intensity, and early delay">
77 *
78 * <tr>
79 * <th>Type</th>
80 * <th>Decay Time (ms)</th>
81 * <th>Late Intensity (dB)</th>
82 * <th>Late Delay (ms)</th>
83 * <th>Early Intensity (dB)</th>
84 * <th>Early Delay(ms)</th>
85 * </tr>
86 *
87 * <tr>
88 * <td>Cavern</td>
89 * <td>2250</td>
90 * <td>-2.0</td>
91 * <td>41.3</td>
92 * <td>-1.4</td>
93 * <td>10.3</td>
94 * </tr>
95 *
96 * <tr>
97 * <td>Dungeon</td>
98 * <td>1600</td>
99 * <td>-1.0</td>
100 * <td>10.3</td>
101 * <td>-0.7</td>
102 * <td>2.6</td>
103 * </tr>
104 *
105 * <tr>
106 * <td>Garage</td>
111 * <td>3.9</td>
112 * </tr>
113 *
114 * <tr>
115 * <td>Acoustic Lab</td>
116 * <td>280</td>
117 * <td>-3.0</td>
118 * <td>8.0</td>
119 * <td>-2.0</td>
120 * <td>2.0</td>
121 * </tr>
122 *
123 * <tr>
124 * <td>Closet</td>
125 * <td>150</td>
126 * <td>-10.0</td>
127 * <td>2.5</td>
128 * <td>-7.0</td>
129 * <td>0.6</td>
130 * </tr>
131 *
132 * </table>
133 *
134 * @author Kara Kytle
135 * @since 1.3
136 */
137 public class ReverbType {
138
139 /**
140 * Descriptive name of the reverb type.
141 */
142 private final String name;
143
144 /**
145 * Early reflection delay in microseconds.
146 */
147 private final int earlyReflectionDelay;
148
149 /**
150 * Early reflection intensity.
151 */
|
1 /*
2 * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
52 * <p>
53 * The set of parameters defined here may not include all aspects of
54 * reverberation as specified by some systems. For example, the Midi
55 * Manufacturer's Association (MMA) has an Interactive Audio Special Interest
56 * Group (IASIG), which has a 3-D Working Group that has defined a Level 2 Spec
57 * (I3DL2). I3DL2 supports filtering of reverberation and control of reverb
58 * density. These properties are not included in the JavaSound 1.0 definition of
59 * a reverb control. In such a case, the implementing system should either
60 * extend the defined reverb control to include additional parameters, or else
61 * interpret the system's additional capabilities in a way that fits the model
62 * described here.
63 * <p>
64 * If implementing JavaSound on a I3DL2-compliant device:
65 * <ul>
66 * <li>Filtering is disabled (high-frequency attenuations are set to 0.0 dB)
67 * <li>Density parameters are set to midway between minimum and maximum
68 * </ul>
69 * <p>
70 * The following table shows what parameter values an implementation might use
71 * for a representative set of reverberation settings.
72 *
73 * <table class="striped">
74 * <caption>Reverb types and params: decay time, late intensity, late delay,
75 * early intensity, and early delay</caption>
76 * <thead>
77 * <tr>
78 * <th>Type</th>
79 * <th>Decay Time (ms)</th>
80 * <th>Late Intensity (dB)</th>
81 * <th>Late Delay (ms)</th>
82 * <th>Early Intensity (dB)</th>
83 * <th>Early Delay(ms)</th>
84 * </tr>
85 * </thead>
86 * <tbody>
87 * <tr>
88 * <td>Cavern</td>
89 * <td>2250</td>
90 * <td>-2.0</td>
91 * <td>41.3</td>
92 * <td>-1.4</td>
93 * <td>10.3</td>
94 * </tr>
95 *
96 * <tr>
97 * <td>Dungeon</td>
98 * <td>1600</td>
99 * <td>-1.0</td>
100 * <td>10.3</td>
101 * <td>-0.7</td>
102 * <td>2.6</td>
103 * </tr>
104 *
105 * <tr>
106 * <td>Garage</td>
111 * <td>3.9</td>
112 * </tr>
113 *
114 * <tr>
115 * <td>Acoustic Lab</td>
116 * <td>280</td>
117 * <td>-3.0</td>
118 * <td>8.0</td>
119 * <td>-2.0</td>
120 * <td>2.0</td>
121 * </tr>
122 *
123 * <tr>
124 * <td>Closet</td>
125 * <td>150</td>
126 * <td>-10.0</td>
127 * <td>2.5</td>
128 * <td>-7.0</td>
129 * <td>0.6</td>
130 * </tr>
131 * </tbody>
132 * </table>
133 *
134 * @author Kara Kytle
135 * @since 1.3
136 */
137 public class ReverbType {
138
139 /**
140 * Descriptive name of the reverb type.
141 */
142 private final String name;
143
144 /**
145 * Early reflection delay in microseconds.
146 */
147 private final int earlyReflectionDelay;
148
149 /**
150 * Early reflection intensity.
151 */
|