Spec-Zone.ru › OpenJDK 24

Интерфейс 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 синтезатора должен получить (или получить) сообщение изменения программы, которое вызывает выбор банка и номера программы этого конкретного инструмента.

См. также:
  • MidiSystem.getSynthesizer()
  • Soundbank
  • Instrument
  • MidiChannel.programChange(int, int)
  • Receiver
  • Transmitter
  • MidiDevice

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе javax.sound.midi.MidiDevice

MidiDevice.Info

Краткое описание методов

Модификатор и тип Метод Описание
Instrument[] getAvailableInstruments()
Получает список инструментов, поставляемых с синтезатором.
MidiChannel[] getChannels()
Получает набор каналов MIDI, управляемых этим синтезатором.
Soundbank getDefaultSoundbank()
Получает стандартный звуковой банк для синтезатора, если он существует.
long getLatency()
Получает задержку обработки, производимую этим синтезатором, выраженную в микросекундах.
Instrument[] getLoadedInstruments()
Получает список инструментов, которые в настоящее время загружены на этот объект Synthesizer.
int getMaxPolyphony()
Получает максимальное количество нот, которые этот синтезатор может воспроизводить одновременно.
VoiceStatus[] getVoiceStatus()
Получает текущий статус голосов, создаваемых этим синтезатором.
boolean isSoundbankSupported(Soundbank soundbank)
Сообщает вызывающей стороне, способен ли этот синтезатора загрузить инструменты из указанного звукового банка.
boolean loadAllInstruments(Soundbank soundbank)
Загружает на объект Synthesizer все инструменты, содержащиеся в указанном объекте Soundbank.
boolean loadInstrument(Instrument instrument)
Делает определенный инструмент доступным для синтеза.
boolean loadInstruments(Soundbank soundbank, Patch[] patchList)
Загружает инструменты, на которые ссылаются указанные патчи, из указанного звукового банка Soundbank.
boolean remapInstrument(Instrument from, Instrument to)
Переназначение инструмента.
void unloadAllInstruments(Soundbank soundbank)
Выгружает все инструменты, содержащиеся в указанном звуковом банке Soundbank.
void unloadInstrument(Instrument instrument)
Выгружает определенный инструмент.
void unloadInstruments(Soundbank soundbank, Patch[] patchList)
Выгружает инструменты, на которые ссылаются указанные патчи, из указанного звукового банка MIDI.

Методы, объявленные в интерфейсе javax.sound.midi.MidiDevice

close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getMicrosecondPosition, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, open

Подробное описание методов

getMaxPolyphony

int getMaxPolyphony()
Получает максимальное количество нот, которые этот синтезатор может воспроизводить одновременно.
Возвращает:
максимальное количество одновременно звучащих нот
См. также:
  • getVoiceStatus()

getLatency

long getLatency()
Получает задержку обработки, вносимую этим синтезатором, выраженную в микросекундах. Эта задержка измеряет максимальную задержку между моментом передачи сообщения MIDI синтезатору и моментом, когда синтезатор фактически воспроизводит соответствующий результат.

Хотя задержка выражается в микросекундах, фактическая измеренная задержка синтезатора может варьироваться в более широком диапазоне, чем это предполагает разрешение. Например, синтезатор может иметь максимальную задержку в несколько миллисекунд или более.

Возвращает:
максимальную задержку в микросекундах

getChannels

MidiChannel[] getChannels()
Получает набор каналов MIDI, управляемых этим синтезатором. Каждый ненулевой элемент в возвращаемом массиве — это MidiChannel, который получает сообщения MIDI, отправленные на этот номер канала.

Спецификация MIDI 1.0 предусматривает 16 каналов, поэтому этот метод возвращает массив, содержащий как минимум 16 элементов. Однако если этот синтезатор не использует все 16 каналов, некоторые элементы массива могут быть null, поэтому вы должны проверить каждый элемент перед его использованием.

Возвращает:
массив объектов MidiChannel, управляемых этим Synthesizer. Некоторые элементы массива могут быть null.

getVoiceStatus

VoiceStatus[] getVoiceStatus()
Получает текущий статус голосов, воспроизводимых этим синтезатором. Если этот класс Synthesizer не предоставляет информацию о голосах, возвращаемый массив всегда будет иметь длину 0. В противном случае его длина всегда равна общему количеству голосов, как возвращается getMaxPolyphony(). (См. описание класса VoiceStatus для объяснения голосов синтезатора.)
Возвращает:
массив объектов VoiceStatus, которые предоставляют информацию о соответствующих голосах синтезатора
См. также:
  • getMaxPolyphony()
  • VoiceStatus

isSoundbankSupported

boolean isSoundbankSupported(Soundbank soundbank)
Сообщает вызывающей стороне, может ли этот синтезатор загружать инструменты из указанного звукового банка. Если звуковой банк не поддерживается, любые попытки загрузить инструменты из него приведут к IllegalArgumentException.
Параметры:
soundbank — звуковой банк, для которого запрашивается поддержка
Возвращает:
true, если звуковой банк поддерживается, в противном случае false
См. также:
  • loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
  • loadAllInstruments(javax.sound.midi.Soundbank)
  • unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
  • unloadAllInstruments(javax.sound.midi.Soundbank)
  • getDefaultSoundbank()

loadInstrument

boolean loadInstrument(Instrument instrument)
Делает определённый инструмент доступным для синтеза. Этот инструмент загружается в место расположения патча, указанное его объектом Patch, так что если приходит (или пришло) сообщение с программой изменения патча, которое приводит к выбору этого патча, последующие ноты будут воспроизводиться, используя звук инструмента instrument. Если указанный инструмент уже загружен, этот метод ничего не делает и возвращает true.

Инструмент должен быть частью звукового банка, который поддерживает этот Synthesizer. (Чтобы убедиться в этом, вы можете использовать метод getSoundbank класса Instrument и метод isSoundbankSupported класса Synthesizer.)

Параметры:
instrument — загружаемый инструмент
Возвращает:
true, если инструмент успешно загружен (или уже был загружен), false, если инструмент не смог загрузиться (например, если у синтезатора недостаточно памяти для его загрузки)
Исключения:
IllegalArgumentException — если этот Synthesizer не поддерживает звуковой банк указанного инструмента
См. также:
  • unloadInstrument(javax.sound.midi.Instrument)
  • loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
  • loadAllInstruments(javax.sound.midi.Soundbank)
  • remapInstrument(javax.sound.midi.Instrument, javax.sound.midi.Instrument)
  • SoundbankResource.getSoundbank()
  • MidiChannel.programChange(int, int)

unloadInstrument

void unloadInstrument(Instrument instrument)
Выгружает определённый инструмент.
Параметры:
instrument — выгружаемый инструмент
Исключения:
IllegalArgumentException — если этот Synthesizer не поддерживает звуковой банк указанного инструмента
См. также:
  • loadInstrument(javax.sound.midi.Instrument)
  • unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
  • unloadAllInstruments(javax.sound.midi.Soundbank)
  • getLoadedInstruments()
  • remapInstrument(javax.sound.midi.Instrument, javax.sound.midi.Instrument)

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 имеют нулевое значение
См. также:
  • loadInstrument(javax.sound.midi.Instrument)
  • loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
  • loadAllInstruments(javax.sound.midi.Soundbank)

getDefaultSoundbank

Soundbank getDefaultSoundbank()
Получает стандартный звуковой банк для синтезатора, если он существует. (Некоторые синтезаторы предоставляют стандартный или встроенный звуковой банк.) Если у синтезатора нет стандартного звукового банка, инструменты должны быть загружены явно из внешнего звукового банка.
Возвращает:
стандартный звуковой банк или null, если он не существует
См. также:
  • isSoundbankSupported(javax.sound.midi.Soundbank)

getAvailableInstruments

Instrument[] getAvailableInstruments()
Получает список инструментов, которые поставляются с синтезатором. Эти инструменты могут быть встроенными в синтезатор, или они могут быть частью стандартного звукового банка, поставляемого с синтезатором и т. п.

Обратите внимание, что вы не используете этот метод, чтобы узнать, какие инструменты в настоящее время загружены в синтезатор; для этой цели вы используете getLoadedInstruments(). Метод также не показывает все инструменты, которые можно загрузить в синтезатор; он показывает только подмножество, которое поставляется с синтезатором. Чтобы узнать, можно ли загрузить другой инструмент, вы можете вызвать isSoundbankSupported(), и если звуковой банк инструмента Soundbank поддерживается, вы можете попробовать загрузить инструмент.

Возвращает:
список доступных инструментов. Если синтезатор не имеет инструментов, поставляемых с ним, возвращается массив длины 0.
См. также:
  • getLoadedInstruments()
  • isSoundbankSupported(Soundbank)
  • loadInstrument(javax.sound.midi.Instrument)
END_OF_DOCUMENT_MARKER

getLoadedInstruments

Instrument[] getLoadedInstruments()
Получает список инструментов, которые в данный момент загружены в этот Synthesizer.
Возвращает:
список текущих загруженных инструментов
См. также:
  • loadInstrument(javax.sound.midi.Instrument)
  • getAvailableInstruments()
  • Soundbank.getInstruments()

loadAllInstruments

boolean loadAllInstruments(Soundbank soundbank)
Загружает все инструменты, содержащиеся в указанном Soundbank, в этот Synthesizer.
Параметры:
soundbank - Soundbank, чьи инструменты необходимо загрузить
Возвращает:
true, если все инструменты успешно загружены (или уже были загружены), false, если какой-либо инструмент не удалось загрузить (например, если у Synthesizer недостаточно памяти)
Издаёт исключение:
IllegalArgumentException - если запрошенный звуковой банк несовместим с этим синтезатором
См. также:
  • isSoundbankSupported(javax.sound.midi.Soundbank)
  • loadInstrument(javax.sound.midi.Instrument)
  • loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])

unloadAllInstruments

void unloadAllInstruments(Soundbank soundbank)
Разгружает все инструменты, содержащиеся в указанном Soundbank.
Параметры:
soundbank - звуковой банк, содержащий инструменты для разгрузки
Издаёт исключение:
IllegalArgumentException - генерируется, если звуковой банк не поддерживается
См. также:
  • isSoundbankSupported(javax.sound.midi.Soundbank)
  • unloadInstrument(javax.sound.midi.Instrument)
  • unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])

loadInstruments

boolean loadInstruments(Soundbank soundbank, Patch[] patchList)
Загружает инструменты, на которые ссылаются указанные патчи, из указанного Soundbank. Каждый из объектов Patch указывает номер банка и программы; соответствующий Instrument, у которого совпадает Patch, загружается в эту позицию банка и программы.
Параметры:
soundbank - Soundbank, содержащий инструменты для загрузки
patchList - список патчей, для которых следует загрузить инструменты
Возвращает:
true, если все инструменты успешно загружены (или уже были загружены), false, если какой-либо инструмент не удалось загрузить (например, если у Synthesizer недостаточно памяти)
Издаёт исключение:
IllegalArgumentException - генерируется, если звуковой банк не поддерживается
См. также:
  • isSoundbankSupported(javax.sound.midi.Soundbank)
  • Instrument.getPatch()
  • loadAllInstruments(javax.sound.midi.Soundbank)
  • loadInstrument(javax.sound.midi.Instrument)
  • Soundbank.getInstrument(Patch)
  • Sequence.getPatchList()

unloadInstruments

void unloadInstruments(Soundbank soundbank, Patch[] patchList)
Разгружает инструменты, на которые ссылаются указанные патчи, из указанного звукового банка MIDI.
Параметры:
soundbank - звуковой банк, содержащий инструменты для разгрузки
patchList - список патчей, для которых следует разгрузить инструменты
Издаёт исключение:
IllegalArgumentException - генерируется, если звуковой банк не поддерживается
См. также:
  • unloadInstrument(javax.sound.midi.Instrument)
  • unloadAllInstruments(javax.sound.midi.Soundbank)
  • isSoundbankSupported(javax.sound.midi.Soundbank)
  • Instrument.getPatch()
  • loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API