|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface Synthesizer
Synthesizer
はサウンドを生成します。これは通常、Synthesizer
の MidiChannel
オブジェクトの 1 つが直接、または Synthesizer
オブジェクトを介して noteOn
メッセージを受け取った場合に発生します。多くの Synthesizer
では、MIDI イベントを Synthesizer
に配信することのできる Receivers
をサポートしています。このような場合、Synthesizer
は通常、対応するメッセージを該当する MidiChannel
に送るか、イベントが MIDI チャネルメッセージでない場合にはそのイベント自身を処理します。
Synthesizer
インタフェースには、インストゥルメントをサウンドバンクにロードおよびロード解除するためのメソッドが含まれています。インストゥルメントは、伝統的なインストゥルメントをエミュレートしたサウンドや、ある種のサウンドエフェクトあるいはその他の想像上のサウンドなど、一定のタイプのサウンドを合成するための仕様となります。サウンドバンクはインストゥルメントの集合体で、そのインストゥルメントの Patch
オブジェクトによってバンク番号およびプログラム番号に基づいて編成されています。実装されているサウンド合成技術は Synthesizer
クラスによって異なる可能性があります。そのため、一部のインストゥルメントだけが特定のシンセサイザとの互換性を持つ場合があります。また、シンセサイザがインストゥルメントに対して割り当てるメモリサイズには制限がある場合があるため、合成技術が互換のシンセサイザでも、サウンドバンクやインストゥルメントによっては使用できない可能性があります。特定のサウンドバンクに含まれているインストゥルメントが特定のシンセサイザで使用できるかどうかを確認するには、Synthesizer
の isSoundbankSupported
メソッドを呼び出します。
インストゥルメントを「ロードする」とは、ノートを合成するためにそのインストゥルメントを使用可能にすることです。インストゥルメントは、その Patch
オブジェクトで指定されたバンク番号およびプログラムの位置にロードされます。インストゥルメントをロードしても、次に演奏するノートにそのインストゥルメントのサウンドがただちに反映されるわけではありません。ノートを演奏するインストゥルメントのバンク番号およびプログラム番号を選択するプログラムチェンジメッセージを、シンセサイザの MidiChannel
オブジェクトの 1 つが受け取る (またはすでに受け取っている) 必要があります。
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)
指定した Soundbank に含まれているすべてのインストゥルメントを Synthesizer にロードします。 |
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 |
メソッドの詳細 |
---|
int getMaxPolyphony()
getVoiceStatus()
long getLatency()
この応答時間はマイクロ秒単位で表されますが、シンセサイザの遅延時間の実測値のばらつきは、この解像度の程度よりも大きい場合があります。たとえば、シンセサイザによっては最大遅延時間が数ミリ秒を超えることもあります。
MidiChannel[] getChannels()
MidiChannel
です。
MIDI 1.0 仕様では 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 にある場合、再マッピングによってインストゥルメント from
はアンロードされ、そのバンク番号およびプログラム番号には代わりに to
が割り当てられます。
from
- 置換されるインストゥルメントto
- 元のインストゥルメントの代わりに使用する新しいインストゥルメント
true
、そうでない場合は false
IllegalArgumentException
- そのサウンドバンクがサポートされていない場合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)
Soundbank
に含まれているすべてのインストゥルメントを Synthesizer
にロードします。
soundbank
- ロードするインストゥルメントを含んでいる Soundbank
true
、ロードされなかったインストゥルメントがある場合 (たとえば Synthesizer
のメモリが不足していたとき) は false
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
に含まれるすべてのインストゥルメントをアンロードします。
soundbank
- アンロードするインストゥルメントを含んでいるサウンドバンク
IllegalArgumentException
- そのサウンドバンクがサポートされていない場合にスローされる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
オブジェクトは、バンク番号およびプログラム番号を示します。一致する Patch
を持つ Instrument
が、そのバンク番号およびプログラム位置にロードされます。
soundbank
- ロードするインストゥルメントを含んでいる Soundbank
patchList
- それに対応するインストゥルメントがロードされるパッチのリスト
true
、ロードされなかったインストゥルメントがある場合 (たとえば Synthesizer
のメモリが不足していたとき) は false
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[])
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。