Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface Synthesizer extends MidiDevice
Synthesizer
генерирует звук. Это обычно происходит когда один из Synthesizer
's MidiChannel
объекты получают a noteOn
сообщение, или непосредственно или через Synthesizer
объект. Многие Synthesizer
s поддержка Receivers
, через который события MIDI могут быть поставлены Synthesizer
. В таких случаях, Synthesizer
обычно отвечает, отправляя соответствующее сообщение к соответствующему MidiChannel
, или обрабатывая событие непосредственно, если событие не является одним из сообщений канала MIDI. Synthesizer
интерфейс включает методы для инструментов загрузки и разгрузки от soundbanks. Инструмент является спецификацией для того, чтобы синтезировать определенный тип звука, эмулирует ли тот звук традиционный инструмент или является некоторым звуковым эффектом или другим воображаемым звуком. soundbank является набором инструментов, организованных банком и числом программы (через инструмент Patch
объект). Отличающийся Synthesizer
классы могли бы реализовать различные методы синтеза звука, означая, что некоторые инструменты и не другие могли бы быть совместимыми с данным синтезатором. Кроме того, у синтезаторов может быть ограниченный объем памяти для инструментов, означая, что не каждый soundbank и инструмент могут использоваться каждым синтезатором, даже если метод синтеза является совместимым. Чтобы видеть, могут ли инструменты от определенного soundbank играться данным синтезатором, вызовите isSoundbankSupported
метод Synthesizer
.
"Загрузка" инструмента означает, что тот инструмент становится доступным для синтезирования примечаний. Инструмент загружается в банк и расположение программы, определенное Patch
объект. Загрузка не обязательно означает, что впоследствии у играемых примечаний сразу будет звук этого недавно загруженного инструмента. Для инструмента, чтобы играть примечания, один из синтезатора MidiChannel
объекты должны получить (или получили), сообщение изменения программы, которое заставляет банк того определенного инструмента и число программы быть выбранным.
MidiDevice. Информация
Модификатор и Тип | Метод и Описание |
---|---|
Инструмент[] |
getAvailableInstruments()
Получает список инструментов, которые идут с синтезатором.
|
MidiChannel[] |
getChannels()
Получает набор каналов MIDI, которыми управляет этот синтезатор.
|
Soundbank |
getDefaultSoundbank()
Получает значение по умолчанию soundbank для синтезатора, если Вы существуете.
|
long |
getLatency()
Получает задержку обработки, понесенную этим синтезатором, выраженным в микросекундах.
|
Инструмент[] |
getLoadedInstruments()
Получает список инструментов, которые в настоящий момент загружаются на это
Synthesizer . |
int |
getMaxPolyphony()
Получает максимальное количество примечаний, которыми этот синтезатор может звучать одновременно.
|
VoiceStatus[] |
getVoiceStatus()
Получает текущий статус речи, произведенной этим синтезатором.
|
boolean |
isSoundbankSupported(Soundbank 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.
|
close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getMicrosecondPosition, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, open
int getMaxPolyphony()
getVoiceStatus()
long getLatency()
Хотя задержка выражается в микросекундах, фактическая измеренная задержка синтезатора может измениться по более широкому диапазону, чем это разрешение предлагает. Например, у синтезатора могла бы быть задержка худшего случая нескольких миллисекунд или больше.
MidiChannel[] getChannels()
MidiChannel
это получает сообщения MIDI, отправленные на том номере канала. MIDI 1.0 спецификации предусматривают 16 каналов, таким образом, этот метод возвращает массив по крайней мере 16 элементов. Однако, если этот синтезатор не использует все 16 каналов, некоторые из элементов массива могли бы быть null
, таким образом, следует проверить каждый элемент перед использованием этого.
MidiChannel
объекты управляли этим Synthesizer
. Некоторые из элементов массива могут быть null
.VoiceStatus[] getVoiceStatus()
Synthesizer
не предоставляет информацию о речи, возвращенный массив будет всегда иметь длину 0. Иначе, его длина всегда равна общему количеству речи, как возвращено getMaxPolyphony()
. (См. VoiceStatus
Описание class для объяснения речи синтезатора.)VoiceStatus
объекты, которые предоставляют информацию о соответствующей речи синтезатораgetMaxPolyphony()
, VoiceStatus
boolean isSoundbankSupported(Soundbank soundbank)
IllegalArgumentException
.soundbank
- soundbank, для которого запрашивается поддержкаtrue
если soundbank поддерживается, иначе 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()
boolean loadInstrument(Instrument instrument)
Patch
объект, так, чтобы, если сообщение изменения программы получается (или был получен), который заставляет тот патч быть выбранным, последующие примечания игрались, используя звук instrument
. Если указанный инструмент уже загружается, этот метод не делает ничего и возвратов true
. Инструмент должен быть частью soundbank что это Synthesizer
поддерживает. (Чтобы удостовериться, можно использовать getSoundbank
метод Instrument
и isSoundbankSupported
метод Synthesizer
.)
instrument
- инструмент, чтобы загрузитьсяtrue
если инструмент успешно загружается (или уже был), false
если инструмент не мог бы быть загружен (например, если у синтезатора есть недостаточная память, чтобы загрузить его),IllegalArgumentException
- если это Synthesizer
не поддерживает soundbank указанного инструмента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)
void unloadInstrument(Instrument instrument)
instrument
- инструмент, чтобы разгрузитьсяIllegalArgumentException
- если это Synthesizer
не поддерживает soundbank указанного инструмента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)
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
если инструмент succeessfully повторно отображенный, 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)
Soundbank getDefaultSoundbank()
null
если Вы не существуете.isSoundbankSupported(javax.sound.midi.Soundbank)
Instrument[] getAvailableInstruments()
Отметьте, что Вы не используете этот метод, чтобы узнать, какие инструменты в настоящий момент загружаются на синтезатор; с этой целью Вы используете getLoadedInstruments()
. И при этом метод не указывает на все инструменты, которые могут быть загружены на синтезатор; это только указывает на подмножество, которые идут с синтезатором. Чтобы учиться, может ли другой инструмент быть загружен, можно вызвать isSoundbankSupported()
, и если инструмент Soundbank
поддерживается, можно попытаться загрузить инструмент.
getLoadedInstruments()
, isSoundbankSupported(Soundbank)
, loadInstrument(javax.sound.midi.Instrument)
Instrument[] getLoadedInstruments()
Synthesizer
.loadInstrument(javax.sound.midi.Instrument)
, getAvailableInstruments()
, Soundbank.getInstruments()
boolean loadAllInstruments(Soundbank soundbank)
Synthesizer
все инструменты содержатся в указанном Soundbank
.soundbank
- Soundbank
чей инструменты, должны быть загруженыtrue
если инструменты все успешно загружаются (или уже был), false
если какой-либо инструмент не мог бы быть загружен (например, если Synthesizer
имел недостаточную память),IllegalArgumentException
- если требуемый soundbank является несовместимым с этим синтезатором.isSoundbankSupported(javax.sound.midi.Soundbank)
, loadInstrument(javax.sound.midi.Instrument)
, loadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
void unloadAllInstruments(Soundbank soundbank)
Soundbank
.soundbank
- soundbank, содержащий инструменты, чтобы разгрузитьсяIllegalArgumentException
- брошенный, если soundbank не поддерживается.isSoundbankSupported(javax.sound.midi.Soundbank)
, unloadInstrument(javax.sound.midi.Instrument)
, unloadInstruments(javax.sound.midi.Soundbank, javax.sound.midi.Patch[])
boolean loadInstruments(Soundbank soundbank, Patch[] patchList)
Soundbank
. Каждый из Patch
объекты указывают на банк и число программы; Instrument
у этого есть соответствие Patch
загружается в тот банк и расположение программы.soundbank
- Soundbank
содержа инструменты, чтобы загрузитьсяpatchList
- список патчей, для которых должны быть загружены инструментыtrue
если инструменты все успешно загружаются (или уже был), false
если какой-либо инструмент не мог бы быть загружен (например, если Synthesizer
имел недостаточную память),IllegalArgumentException
- брошенный, если soundbank не поддерживается.isSoundbankSupported(javax.sound.midi.Soundbank)
, Instrument.getPatch()
, loadAllInstruments(javax.sound.midi.Soundbank)
, loadInstrument(javax.sound.midi.Instrument)
, Soundbank.getInstrument(Patch)
, Sequence.getPatchList()
void unloadInstruments(Soundbank soundbank, Patch[] patchList)
soundbank
- soundbank, содержащий инструменты, чтобы разгрузитьсяpatchList
- список патчей, для которых должны быть разгружены инструментыIllegalArgumentException
- брошенный, если soundbank не поддерживается.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[])
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92