Module java.desktop
Package javax.sound.midi

Interface Synthesizer

所有超级接口:
AutoCloseable, MidiDevice

public interface Synthesizer extends MidiDevice
Synthesizer生成声音。通常情况下,当Synthesizer的一个MidiChannel对象接收到一个noteOn消息时,声音就会产生,无论是直接还是通过Synthesizer对象。许多Synthesizer支持Receivers,通过这些接收器,MIDI事件可以传递给Synthesizer。在这种情况下,Synthesizer通常会通过向适当的MidiChannel发送相应的消息,或者在事件不是MIDI通道消息之一时自行处理事件来做出响应。

Synthesizer接口包括用于从声音库加载和卸载乐器的方法。乐器是合成某种类型声音的规范,无论该声音是模拟传统乐器的声音还是某种声音效果或其他虚构的声音。声音库是一组乐器,由乐器的Patch对象组织,按照库和程序编号进行组织。不同的Synthesizer类可能实现不同的声音合成技术,这意味着某些乐器可能与给定的合成器兼容,而其他乐器可能不兼容。此外,合成器可能对乐器的内存有限,这意味着并非每个声音库和乐器都可以被每个合成器使用,即使合成技术是兼容的。要查看某个声音库的乐器是否可以由给定的合成器播放,请调用SynthesizerisSoundbankSupported方法。

“加载”一个乐器意味着该乐器变为可用于合成音符。该乐器加载到由其Patch对象指定的库和程序位置。加载并不一定意味着随后播放的音符会立即具有这个新加载乐器的声音。要使乐器播放音符,合成器的一个MidiChannel对象必须接收(或已经接收到)导致选择该特定乐器的库和程序编号的程序更改消息。

参见: