モジュール java.desktop
パッケージ javax.sound.midi

インタフェースSynthesizer

すべてのスーパー・インタフェース:
AutoCloseable, MidiDevice

public interface Synthesizer
extends MidiDevice
Synthesizerはサウンドを生成します。 これは通常、SynthesizerMidiChannelオブジェクトの1つが直接、またはSynthesizerオブジェクトを介してnoteOnメッセージを受け取った場合に発生します。 多くのSynthesizerでは、MIDIイベントをSynthesizerに配信することのできるReceiversをサポートしています。 このような場合、Synthesizerは通常、対応するメッセージを適切なMidiChannelに送るか、イベントがMIDIチャネル・メッセージでない場合にはそのイベント自身を処理します。

Synthesizerインタフェースには、インストゥルメントをサウンド・バンクにロードおよびロード解除するためのメソッドが含まれています。 インストゥルメントは、従来の音源をエミュレートしたサウンドや、なんらかのサウンド・エフェクトあるいはその他の想像上のサウンドなど、ある種のサウンドを合成するための仕様です。 サウンド・バンクはインストゥルメントのコレクションで、そのインストゥルメントのPatchオブジェクトによってバンクおよびプログラム番号に基づいて編成されています。 実装されているサウンド合成技術はSynthesizerクラスによって異なる可能性があります。そのため、一部のインストゥルメントのみが特定のシンセサイザとの互換性を持つ場合があります。 また、シンセサイザがインストゥルメントに割り当てるメモリー・サイズには制限がある場合があるため、合成技術が互換のシンセサイザでも、サウンド・バンクやインストゥルメントによっては使用できない可能性があります。 特定のサウンド・バンクに含まれているインストゥルメントが特定のシンセサイザで再生できるかどうかを確認するには、SynthesizerisSoundbankSupportedメソッドを呼び出してください。

インストゥルメントを「ロードする」とは、ノートを合成するためにそのインストゥルメントを使用可能にすることです。 インストゥルメントは、そのPatchオブジェクトで指定されたバンクおよびプログラムの位置にロードされます。 インストゥルメントをロードしても、次に演奏するノートにそのインストゥルメントのサウンドがただちに反映されるわけではありません。 ノートを演奏するインストゥルメントのバンク番号およびプログラム番号を選択するプログラム・チェンジ・メッセージを、シンセサイザのMidiChannelオブジェクトの1つが受け取る(またはすでに受け取っている)必要があります。

関連項目:
MidiSystem.getSynthesizer()SoundbankInstrumentMidiChannel.programChange(int, int)ReceiverTransmitterMidiDevice