Spec-Zone.ru › OpenJDK 17

Интерфейс Синтезатор

Все суперинтерфейсы:
AutoCloseable, MidiDevice
public interface Synthesizer extends MidiDevice
A Synthesizer генерирует звук. Это обычно происходит, когда один из объектов Synthesizer's MidiChannel получает сообщение 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, управляемых этим синтезатором. Каждый элемент в возвращаемом массиве, отличный от null, представляет 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 - объект Instrument , который должен быть заменён
to - объект Instrument , который будет использоваться вместо старого инструмента, он должен быть загружен в синтезатор
Возвращает:
true если инструмент успешно переназначен, false если функция не реализована синтезатором
Исключения:
IllegalArgumentException - если инструмент from или инструмент to не поддерживаются синтезатором или если инструмент to не загружен
NullPointerException - если параметры from или to имеют значение null
См. также:
  • 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(), и если звуковой банк инструмента поддерживается, вы можете попробовать загрузить инструмент.

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

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 загружается в этом банке и позиции программы.
Параметры:
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, 2021, 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/17/docs/api/java.desktop/javax/sound/midi/Synthesizer.html

Spec-Zone.ru

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