|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Synthesizer
はサウンドを生成します。これは通常、Synthesizer
の MidiChannel
オブジェクトの 1 つが直接、または Synthesizer
オブジェクトを介して noteOn
メッセージを受け取った場合に発生します。多くの Synthesizer
では、MIDI イベントを Synthesizer
に配信することのできる Receivers
をサポートしています。このような場合、Synthesizer
は、通常は対応するメッセージを該当する MidiChannel
に送るか、イベントが MIDI チャネルメッセージの 1 つでない場合にはそのイベントをそれ自身で処理します。
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, getTransmitter, isOpen, open |
メソッドの詳細 |
public int getMaxPolyphony()
getVoiceStatus()
public long getLatency()
この応答時間はマイクロ秒単位で表されますが、シンセサイザの遅延時間の実測値のばらつきは、この解像度の程度よりも大きい場合があります。たとえば、シンセサイザによっては最大遅延時間が数ミリ秒を超えることもあります。
public MidiChannel[] getChannels()
MidiChannel
です。
MIDI 1.0 仕様では 16 のチャネルが規定されているため、このメソッドは少なくとも 16 の要素を持つ配列を返します。ただし、このシンセサイザで 16 チャネルのうちのいくつかが使用されていない場合は、配列の要素の一部が null
となることがあります。そのため、シンセサイザを使用する前には各要素を確認してください。
Synthesizer
で管理される MidiChannel
オブジェクトの配列。配列要素には null
が含まれる可能性があるpublic VoiceStatus[] getVoiceStatus()
Synthesizer
のこのクラスからボイス情報を取得できない場合、返される配列の長さはいつでも 0 になります。取得できた場合には、返される配列の長さは getMaxPolyphony()
が返すボイスの合計数といつでも等しくなります (シンセサイザボイスの説明は、VoiceStatus
クラスの記述を参照)。
VoiceStatus
オブジェクトの配列getMaxPolyphony()
,
VoiceStatus
public 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()
public 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)
public 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)
public boolean remapInstrument(Instrument from, Instrument to)
from
がインストゥルメント to
で置換されます。たとえば、from
がバンク番号 2、プログラム番号 11 にある場合、再マッピングによってインストゥルメント from
はアンロードされ、そのバンク番号およびプログラム番号にはかわりに to
が割り当てられます。
from
- 置換されるインストゥルメントto
- 元のインストゥルメントのかわりに使用する新しいインストゥルメント
true
、そうでない場合は false
IllegalArgumentException
- そのサウンドバンクがサポートされていない場合public Soundbank getDefaultSoundbank()
null
isSoundbankSupported(javax.sound.midi.Soundbank)
public Instrument[] getAvailableInstruments()
このメソッドは、シンセサイザに現在ロードされているインストゥルメントを検索するためには使用できないことに注意してください。そのようなインストゥルメントを検索するには、getLoadedInstruments()
を使用します。またこのメソッドでは、シンセサイザにロードできるすべてのインストゥルメントを示すこともできません。このメソッドで示されるのは、シンセサイザに付属するインストゥルメントのサブセットだけです。他のインストゥルメントをロードできるかどうかを調べるには isSoundbankSupported()
を呼び出します。そのインストゥルメントの Soundbank
がサポートされていれば、そのインストゥルメントのロードを行うことができます。
getLoadedInstruments()
,
isSoundbankSupported(Soundbank)
,
loadInstrument(javax.sound.midi.Instrument)
public Instrument[] getLoadedInstruments()
Synthesizer
に現在ロードされているインストゥルメントのリストを取得します。
loadInstrument(javax.sound.midi.Instrument)
,
getAvailableInstruments()
,
Soundbank.getInstruments()
public 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[])
public 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[])
public 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()
public 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 Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.