Класс ReverbType
- java.lang.Object
-
- javax.sound.sampled.ReverbType
public class ReverbType extends Object
Класс ReverbType предоставляет методы для доступа к различным настройкам реверберации, которые должны быть применены к аудиосигналу.
Реверберация моделирует отражение звука от стен, потолка и пола комнаты. В зависимости от размера комнаты и степени поглощения или отражения материалов поверхностей в комнате, звук может долго отражаться, прежде чем затихнуть.
Параметры реверберации, предоставляемые ReverbType, включают время задержки и интенсивность ранних отражений, время задержки и интенсивность поздних отражений и общее время затухания. Ранние отражения — это первоначальные отдельные отражения низкого порядка прямого сигнала от поверхностей в комнате. Поздние отражения — это плотные отражения высокого порядка, которые характеризуют реверберацию комнаты. Время задержки начала этих двух типов отражений дает слушателю представление о общем размере и сложности формы и содержимого комнаты. Чем больше комната, тем больше время задержки отражения. Интенсивность ранних и поздних отражений определяет усиление (в децибелах) отраженных сигналов по сравнению с прямым сигналом. Эти интенсивности дают слушателю представление о поглощающей природе поверхностей и объектов в комнате. Время затухания определяет, сколько времени требуется для экспоненциального затухания реверберации до тех пор, пока она не станет более невоспринимаемой («эффективное нулевое значение»). Чем больше и менее поглощающие поверхности, тем больше время затухания.
Набор параметров, определенных здесь, может не включать все аспекты реверберации, как указано в некоторых системах. Например, Ассоциация производителей MIDI (MMA) имеет рабочую группу по взаимодействию с аудио (IASIG), которая имеет рабочую группу 3D, которая определила Спецификацию уровня 2 (I3DL2). I3DL2 поддерживает фильтрацию реверберации и контроль плотности реверберации. Эти свойства не включены в определение управления реверберацией JavaSound 1.0. В таком случае реализующая система должна либо расширить определенное управление реверберацией, чтобы включить дополнительные параметры, либо интерпретировать дополнительные возможности системы таким образом, чтобы это соответствовало модели, описанной здесь.
При реализации JavaSound на устройстве, совместимом с I3DL2:
- Фильтрация отключена (понижения высоких частот установлены на 0,0 дБ)
- Параметры плотности устанавливаются посередине между минимальным и максимальным значениями
В следующей таблице показано, какие значения параметров может использовать реализация для набора репрезентативных параметров реверберации.
| Тип | Время затухания (мс) | Интенсивность поздних отражений (дБ) | Задержка поздних отражений (мс) | Интенсивность ранних отражений (дБ) | Задержка ранних отражений (мс) |
|---|---|---|---|---|---|
| Пещера | 2250 | -2,0 | 41,3 | -1,4 | 10,3 |
| Подземелье | 1600 | -1,0 | 10,3 | -0,7 | 2,6 |
| Гараж | 900 | -6,0 | 14,7 | -4,0 | 3,9 |
| Акустическая лаборатория | 280 | -3,0 | 8,0 | -2,0 | 2,0 |
| Шкаф | 150 | -10,0 | 2,5 | -7,0 | 0,6 |
- Since:
- 1.3
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
ReverbType(String name,
int earlyReflectionDelay,
float earlyReflectionIntensity,
int lateReflectionDelay,
float lateReflectionIntensity,
int decayTime) |
Создает новый тип реверберации, который имеет указанные значения параметров реверберации. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals(Object obj) |
Указывает, равняется ли указанный объект этому типу реверберации, возвращая |
int |
getDecayTime() |
Получает время затухания, которое представляет собой время, в течение которого поздние отражения затухают до эффективного нуля. |
int |
getEarlyReflectionDelay() |
Возвращает время задержки ранних отражений в микросекундах. |
float |
getEarlyReflectionIntensity() |
Возвращает интенсивность ранних отражений в децибелах. |
int |
getLateReflectionDelay() |
Возвращает время задержки поздних отражений в микросекундах. |
float |
getLateReflectionIntensity() |
Возвращает интенсивность поздних отражений в децибелах. |
String |
getName() |
Получает имя этого типа реверберации. |
int |
hashCode() |
Возвращает значение хэша для этого типа реверберации. |
String |
toString() |
Предоставляет строковое представление типа реверберации, включая его имя и параметры. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Подробное описание конструкторов
ReverbType
protected ReverbType(String name,
int earlyReflectionDelay,
float earlyReflectionIntensity,
int lateReflectionDelay,
float lateReflectionIntensity,
int decayTime)
Создает новый тип реверберации, который имеет указанные значения параметров реверберации.
- Параметры:
-
name— имя нового типа реверберации или строка нулевой длиныString -
earlyReflectionDelay— время задержки ранних отражений нового типа в микросекундах -
earlyReflectionIntensity— интенсивность ранних отражений нового типа в дБ -
lateReflectionDelay— время задержки поздних отражений нового типа в микросекундах -
lateReflectionIntensity— интенсивность поздних отражений нового типа в дБ -
decayTime— время затухания нового типа в микросекундах
Подробное описание методов
getName
public String getName()
Получает имя этого типа реверберации.
- Возвращает:
- имя этого типа реверберации
- Since:
- 1.5
getEarlyReflectionDelay
public final int getEarlyReflectionDelay()
Возвращает время задержки ранних отражений в микросекундах. Это время между моментом, когда слышен прямой сигнал, и моментом, когда слышится первое раннее отражение.
- Возвращает:
- время задержки ранних отражений для данного типа реверберации в микросекундах
getEarlyReflectionIntensity
public final float getEarlyReflectionIntensity()
Возвращает интенсивность ранних отражений в децибелах. Это затухание амплитуды первых ранних отражений относительно прямого сигнала.
- Возвращает:
- интенсивность ранних отражений для данного типа реверберации в дБ
getLateReflectionDelay
public final int getLateReflectionDelay()
Возвращает время задержки поздних отражений в микросекундах. Это время между моментом, когда слышится первое раннее отражение, и моментом, когда слышится первое позднее отражение.
- Возвращает:
- время задержки поздних отражений для данного типа реверберации в микросекундах
getLateReflectionIntensity
public final float getLateReflectionIntensity()
Возвращает интенсивность поздних отражений в децибелах. Это затухание амплитуды первых поздних отражений относительно прямого сигнала.
- Возвращает:
- интенсивность поздних отражений для данного типа реверберации в дБ
getDecayTime
public final int getDecayTime()
Получает время затухания, которое представляет собой время, в течение которого поздние отражения затухают до эффективного нуля. Эффективное нулевое значение зависит от реализации.
- Возвращает:
- время затухания поздних отражений в микросекундах
equals
public final boolean equals(Object obj)
Указывает, равняется ли указанный объект этому типу реверберации, возвращая true, если объекты одинаковы.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj— объект-ссылка для сравнения - Возвращает:
-
true, если указанный объект равен этому типу реверберации;falseв противном случае - См. также:
-
Object.hashCode(),HashMap
hashCode
public final int hashCode()
Возвращает значение хэша для этого типа реверберации.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэша для этого типа реверберации
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public final String toString()
Предоставляет строковое представление типа реверберации, включая его имя и параметры. Точное содержимое строки может отличаться в разных реализациях Java Sound.
© 1993, 2020, 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/11/docs/api/java.desktop/javax/sound/sampled/ReverbType.html