Интерфейс Synthesizer
- Все суперинтерфейсы:
-
AutoCloseable,MidiDevice
public interface Synthesizer extends MidiDevice
Synthesizer генерирует звук. Это обычно происходит, когда один из объектов MidiChannel Synthesizer получает сообщение 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 |
Загружает на объект Synthesizer все инструменты, содержащиеся в указанном объекте Soundbank. |
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(), и если звуковой банк инструмента Soundbank поддерживается, вы можете попробовать загрузить инструмент.
- Возвращает:
- список доступных инструментов. Если синтезатор не имеет инструментов, поставляемых с ним, возвращается массив длины 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 указывает номер банка и программы; соответствующий Instrument, у которого совпадает Patch, загружается в эту позицию банка и программы.- Параметры:
-
soundbank-Soundbank, содержащий инструменты для загрузки -
patchList- список патчей, для которых следует загрузить инструменты - Возвращает:
-
true, если все инструменты успешно загружены (или уже были загружены),false, если какой-либо инструмент не удалось загрузить (например, если уSynthesizerнедостаточно памяти) - Издаёт исключение:
-
IllegalArgumentException- генерируется, если звуковой банк не поддерживается - См. также:
unloadInstruments
void unloadInstruments(Soundbank soundbank, Patch[] patchList)
- Параметры:
-
soundbank- звуковой банк, содержащий инструменты для разгрузки -
patchList- список патчей, для которых следует разгрузить инструменты - Издаёт исключение:
-
IllegalArgumentException- генерируется, если звуковой банк не поддерживается - См. также:
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/sound/midi/Synthesizer.html