public interface Synthesizer extends MidiDevice
Synthesizer产生声音。这通常发生在其中的
Synthesizer的
MidiChannel对象接收到一个
noteOn消息,直接或通过
Synthesizer对象。许多
Synthesizers支持
Receivers MIDI事件,通过它可以传递到
Synthesizer。在这种情况下,通常的反应的
Synthesizer发送相应的信息到相应的
MidiChannel,或通过处理事件本身,如果没有一个MIDI通道的信息。
的Synthesizer接口包括加载和卸载工具soundbanks方法。仪器是合成某种声音的规范,无论声音模拟传统仪器或是某种声音效果或其他虚构的声音。一个声音库是一个集仪器,由银行和计划数(通过仪器的Patch对象)。不同的Synthesizer类可能会实现不同的声音合成技术,这意味着一些乐器,没有人会与一个给定的合成器兼容。另外,合成器可能有一个有限的内存工具,意味着不是每个声音库和工具可以由每个合成器使用,即使合成技术是兼容的。是否从某个声音库中的工具可以通过一个给定的合成器演奏,调用的方法Synthesizer isSoundbankSupported。
“加载”一个仪器意味着该仪器成为可用于合成纸币。该仪器是加载到库和程序的Patch对象指定的位置。加载并不一定意味着随后播放的笔记将立即有这个新加载的乐器的声音。为发挥笔记的工具,一个合成器的MidiChannel对象必须接受(或接收)程序更改消息导致特定的仪器库和程序号被选中。
MidiDevice.Info| Modifier and Type | Method and Description |
|---|---|
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声音银行规定。
|
close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getMicrosecondPosition, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, openint getMaxPolyphony()
getVoiceStatus()
long getLatency()
虽然延迟表示为微秒,合成器的实际测量的延迟可能在更广泛的范围比这个分辨率显示。例如,一个合成器可能有一个最坏情况下的延迟几毫秒或更多。
MidiChannel[] getChannels()
MidiChannel接收发送,信道数的MIDI消息。
MIDI 1规范提供了16个频道,所以此方法返回至少16个元素的数组。然而,如果这个合成器不使用所有16个通道,一些元素的数组可能null,所以你应该使用前必须检查每个元素。
Synthesizer管理
MidiChannel对象数组。某些数组元素可以
null。
VoiceStatus[] getVoiceStatus()
Synthesizer不提供语音信息,返回的数组将总长度为0。否则,它的长度等于声音的总数量,返回的
getMaxPolyphony()。(见的合成器的声音,一个解释的
VoiceStatus类描述)
VoiceStatus对象相应的合成器的声音提供信息的数组
getMaxPolyphony(),
VoiceStatus
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()
boolean loadInstrument(Instrument instrument)
Patch对象指定的补丁的位置,所以如果一个程序改变信息的接收(或已收到),导致斑块被选中,随后的笔记将在使用
instrument声。如果指定的仪器已经加载,该方法不返回
true。
仪器必须是一个声音库中,这Synthesizer支持部分。(确保,你可以使用的方法和Instrument getSoundbank Synthesizer,isSoundbankSupported法)
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)
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)
boolean remapInstrument(Instrument from, Instrument to)
from
to需要的地方。
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参数为空值
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仪器。
boolean loadAllInstruments(Soundbank soundbank)
Synthesizer所有工具包含在指定
Soundbank。
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[])
void unloadAllInstruments(Soundbank soundbank)
Soundbank所有仪器。
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()
void unloadInstruments(Soundbank soundbank, Patch[] patchList)
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[])
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.