Интерфейс Синтезатор
- Все суперинтерфейсы:
-
AutoCloseable,MidiDevice
public interface Synthesizer extends MidiDevice
Synthesizer генерирует звук. Это обычно происходит, когда один из объектов Synthesizer MidiChannel получает сообщение noteOn, либо напрямую, либо через объект Synthesizer. Многие Synthesizer поддерживают Receivers, посредством которых события MIDI могут быть доставлены Synthesizer. В таких случаях Synthesizer обычно отвечает, отправляя соответствующее сообщение в соответствующий MidiChannel, или обрабатывая само событие, если оно не является сообщением канала MIDI. Интерфейс Synthesizer включает методы для загрузки и выгрузки инструментов из звуковых банков. Инструмент представляет собой спецификацию для синтеза определенного типа звука, будь то имитация традиционного инструмента, какой-либо звуковой эффект или другой воображаемый звук. Звуковой банк представляет собой коллекцию инструментов, организованных по номеру банка и программе (через объект инструмента Patch). Разные классы Synthesizer могут реализовывать различные методы синтеза звука, что означает, что некоторые инструменты, а не другие, могут быть совместимы с данным синтезатором. Кроме того, синтезаторы могут иметь ограниченный объём памяти для инструментов, что означает, что не каждый звуковой банк и инструмент может быть использован каждым синтезатором, даже если методика синтеза совместима. Чтобы узнать, могут ли инструменты из определённого звукового банка воспроизводиться данным синтезатором, вызовите метод isSoundbankSupported объекта Synthesizer.
«Загрузка» инструмента означает, что этот инструмент становится доступным для синтеза нот. Инструмент загружается в указанную его объектом Patch позицию банка и программы. Загрузка не обязательно означает, что последующие воспроизведённые ноты сразу же будут иметь звук этого только что загруженного инструмента. Для воспроизведения нот инструментом один из объектов синтезатора MidiChannel должен получить (или уже получил) сообщение о смене программы, которое вызывает выбор банка и номера программы этого конкретного инструмента.
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе javax.sound.midi.MidiDevice
MidiDevice.Info
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Instrument[] |
getAvailableInstruments() |
Получает список инструментов, поставляемых с синтезатором. |
MidiChannel[] |
getChannels() |
Получает набор каналов MIDI, управляемых этим синтезатором. |
Soundbank |
getDefaultSoundbank() |
Получает стандартный звуковой банк для синтезатора, если он существует. |
long |
getLatency() |
Получает задержку обработки, производимую этим синтезатором, выраженную в микросекундах. |
Instrument[] |
getLoadedInstruments() |
Получает список инструментов, которые в данный момент загружены в этот Synthesizer. |
int |
getMaxPolyphony() |
Получает максимальное количество нот, которые этот синтезатор может воспроизводить одновременно. |
VoiceStatus[] |
getVoiceStatus() |
Получает текущий статус голосов, производимых этим синтезатором. |
boolean |
isSoundbankSupported |
Уведомляет вызывающую сторону о том, способен ли этот синтезатор загружать инструменты из указанного звукового банка. |
boolean |
loadAllInstruments |
Загружает все инструменты, содержащиеся в указанном Soundbank, в Synthesizer. |
boolean |
loadInstrument |
Делает конкретный инструмент доступным для синтеза. |
boolean |
loadInstruments |
Загружает инструменты, на которые ссылаются указанные патчи, из указанного Soundbank. |
boolean |
remapInstrument |
Переназначает инструмент. |
void |
unloadAllInstruments |
Выгружает все инструменты, содержащиеся в указанном Soundbank. |
void |
unloadInstrument |
Выгружает конкретный инструмент. |
void |
unloadInstruments |
Выгружает инструменты, на которые ссылаются указанные патчи, из указанного звукового банка MIDI. |
Методы, объявленные в интерфейсе javax.sound.midi.MidiDevice
close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getMicrosecondPosition, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, open
Подробное описание методов
getMaxPolyphony
int getMaxPolyphony()
- Возвращает:
- максимальное количество одновременных нот
- См. также:
getLatency
long getLatency()
Несмотря на то, что задержка выражается в микросекундах, фактическая измеренная задержка синтезатора может варьироваться в более широком диапазоне, чем предполагает эта точность. Например, синтезатор может иметь максимальную задержку в несколько миллисекунд или более.
- Возвращает:
- максимальную задержку в микросекундах
getChannels
MidiChannel[] getChannels()
MidiChannel, который получает сообщения MIDI, отправленные на этом номере канала. Спецификация MIDI 1.0 предусматривает 16 каналов, поэтому этот метод возвращает массив из как минимум 16 элементов. Однако, если этот синтезатор не использует все 16 каналов, некоторые элементы массива могут быть null, поэтому вы должны проверить каждый элемент перед его использованием.
- Возвращает:
- массив объектов
MidiChannel, управляемых этимSynthesizer. Некоторые элементы массива могут бытьnull.
getVoiceStatus
VoiceStatus[] getVoiceStatus()
Synthesizer не предоставляет информацию о голосах, возвращаемый массив всегда будет длиной 0. В противном случае его длина всегда равна общему количеству голосов, как возвращается getMaxPolyphony(). (См. описание класса VoiceStatus для объяснения голосов синтезатора.)- Возвращает:
- массив объектов
VoiceStatus, предоставляющих информацию о соответствующих голосах синтезатора - См. также:
isSoundbankSupported
boolean isSoundbankSupported(Soundbank soundbank)
IllegalArgumentException.- Параметры:
-
soundbank- звуковой банк, для которого запрашивается поддержка - Возвращает:
-
trueесли звуковой банк поддерживается, в противном случаеfalse - См. также:
loadInstrument
boolean loadInstrument(Instrument instrument)
Patch , так что если получено (или было получено) сообщение о смене программы, которое приводит к выбору этого патча, последующие ноты будут воспроизводиться с помощью звука instrument. Если указанный инструмент уже загружен, этот метод ничего не делает и возвращает true. Инструмент должен быть частью звукового банка, который поддерживается этим Synthesizer. (Чтобы убедиться, можно использовать метод getSoundbank объекта Instrument и метод isSoundbankSupported объекта Synthesizer.)
- Параметры:
-
instrument- инструмент для загрузки - Возвращает:
-
trueесли инструмент успешно загружен (или уже был загружен),falseесли инструмент не удалось загрузить (например, если у синтезатора недостаточно памяти для его загрузки) - Исключения:
-
IllegalArgumentException- если этотSynthesizerне поддерживает звуковой банк указанного инструмента - См. также:
unloadInstrument
void unloadInstrument(Instrument instrument)
- Параметры:
-
instrument- инструмент для выгрузки - Исключения:
-
IllegalArgumentException- если этотSynthesizerне поддерживает звуковой банк указанного инструмента - См. также:
remapInstrument
boolean remapInstrument(Instrument from, Instrument to)
to заменяет инструмент from. Например, если
from находился в банке 2, программе 11, переназначение приводит к тому, что это место банка и программы вместо этого займет to. Если функция выполнена успешно, инструмент
from выгружается. Чтобы отменить переназначение, загрузите инструмент from, вызвав один из loadInstrument(javax.sound.midi.Instrument), loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[]) или loadAllInstruments(javax.sound.midi.Soundbank).
- Параметры:
-
from- объект инструмента, который нужно заменить -
to- объект инструмента, который нужно использовать вместо старого, он должен быть загружен в синтезатор - Возвращает:
-
trueесли инструмент успешно переназначен,falseесли функция не реализована синтезатором - Исключения:
-
IllegalArgumentException- если инструментfromили инструментtoне поддерживаются синтезатором или если инструментtoне загружен -
NullPointerException- если параметрыfromилиtoимеют нулевое значение - См. также:
getDefaultSoundbank
Soundbank getDefaultSoundbank()
- Возвращает:
- стандартный звуковой банк или
nullесли он не существует - См. также:
getAvailableInstruments
Instrument[] getAvailableInstruments()
Обратите внимание, что вы не используете этот метод для определения того, какие инструменты в настоящее время загружены в синтезатор; для этой цели вы используете getLoadedInstruments(). Метод также не показывает все инструменты, которые могут быть загружены в синтезатор; он указывает только подмножество, поставляемое с синтезатором. Чтобы узнать, может ли быть загружен другой инструмент, можно вызвать isSoundbankSupported(), и если звуковой банк инструмента поддерживается, можно попробовать загрузить инструмент.
- Возвращает:
- список доступных инструментов. Если синтезатор не поставляется с инструментами, возвращается массив длиной 0.
- См. также:
getLoadedInstruments
Instrument[] getLoadedInstruments()
Synthesizer.- Возвращает:
- список загруженных инструментов
- См. также:
loadAllInstruments
boolean loadAllInstruments(Soundbank soundbank)
Soundbank в Synthesizer.- Параметры:
-
soundbank-Soundbank, инструменты которого необходимо загрузить - Возвращает:
-
trueесли все инструменты успешно загружены (или уже были загружены),falseесли какой-либо инструмент не удалось загрузить (например, из-за недостаточной памяти уSynthesizer) - Исключения:
-
IllegalArgumentException- если указанный звуковой банк несовместим с данным синтезатором - См. также:
unloadAllInstruments
void unloadAllInstruments(Soundbank soundbank)
Soundbank.- Параметры:
-
soundbank- звуковой банк, содержащий инструменты для выгрузки - Исключения:
-
IllegalArgumentException- выбрасывается, если звуковой банк не поддерживается - См. также:
loadInstruments
boolean loadInstruments(Soundbank soundbank, Patch[] patchList)
Soundbank. Каждый из Patch объектов указывает номер банка и программы; загружается инструмент, имеющий соответствующий Patch, в это место банка и программы.- Параметры:
-
soundbank-Soundbank, содержащий инструменты для загрузки -
patchList- список патчей, для которых необходимо загрузить инструменты - Возвращает:
-
trueесли все инструменты успешно загружены (или уже были загружены),falseесли какой-либо инструмент не удалось загрузить (например, из-за недостаточной памяти уSynthesizer) - Исключения:
-
IllegalArgumentException- выбрасывается, если звуковой банк не поддерживается - См. также:
unloadInstruments
void unloadInstruments(Soundbank soundbank, Patch[] patchList)
- Параметры:
-
soundbank- звуковой банк, содержащий инструменты для выгрузки -
patchList- список патчей, для которых необходимо выгрузить инструменты - Исключения:
-
IllegalArgumentException- выбрасывается, если звуковой банк не поддерживается - См. также:
© 1993, 2023, 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/21/docs/api/java.desktop/javax/sound/midi/Synthesizer.html