TDDSDオブジェクトにChannelsプロパティとして含まれているTDDSDChannelオブジェクトは、同時に一チャンネル分の発音を行います。
(凡例:
読み取り専用
Published)
| 波形データ | WaveData | |
| 設定 | SrcFreq | |
| FreqRate | ||
| Pan | ||
| Params3D | ||
| Volume | ||
| ステータス | Status | |
| その他 | Buffer |
| 再生 | Play |
| PlayAt | |
| 繰り返し再生 | LoopPlay |
| LoopPlayAt | |
| 停止 | Stop |
property WaveData:TDDSDGenWave;
Playメソッドによって再生される波形データを示します。
TDDSDGenWaveクラスは、TDDSDWaveDataクラスとTDDSDWave3Dクラスの親となるクラスで、その両方のクラスのインスタンスとの代入互換性があります。
例
DDSD1というTDDSDオブジェクトがあるとします。 precedure DDSDSamp1; var Wave1:TDDSDWaveData; begin Wave1:=TDDSDWaveData.Create(DDSD1,'foo.wav'); //foo.wavからWave1というWaveDataを作る DDSD1.Channels[0].WaveData:=Wave1; //Ch#0にWave1を載せる DDSD1[0].Play; //再生する .Channels を書く事は省略可 end;
roperty SrcFreq:DWORD;
原音の周波数を示す、読み出し専用プロパティです。セットされたWaveDataによって変わります。
property FreqRate:Double;
WaveDataプロパティによってセットされた波形データを再生する際の、原音に対する周波数の比率を設定します。
2.0を指定すると、原音より一オクターブ高い音になり、0.5を指定すると原音より一オクターブ低い音になります。
property Pan:Integer;
パン(音がスピーカーの左右どちら寄りに聞こえるか)を設定します
property Params3D:TDDSDParams3D;
音源データの仮想空間内での、位置、速度、音の広がりかたといったパラメータを設定・取得するためのプロパティです。
TDDSDWave3Dオブジェクトが、WaveDataプロパティに代入されると、WaveDataに指定されたWaveData3DオブジェクトのParams3Dプロパティが、このプロパティに自動的に代入されます。
例
procedure Wave3DTest; var wav1,wav2:Wave3D; begin //wav1にサイレンの音を読み込みます wav1:=TDDSDWave3D.Create(DDSD1,'silen.wav'); //wav2に、メガホンの音を読み込みます wav2:=TDDSDWave3D.Create(DDSD1,'megahon.wav'); wav2.Params3D.ConeAngle.Inside:=60; wav2.Params3D.ConeAngle.Outside:=120; //指向性を付けます wav2.Params3D.ConeOutsideVolume:=-4000; //コーンの外側では-40dBの減衰 //サイレンの音を鳴らします DDSD1[0].WaveData:=wav1; DDSD1[0].Play; //メガホンの音を鳴らします。 DDSD1[0].WaveData:=wav2; DDSD1[0].Play; //指向性があります(ヘルプじゃ聞こえないけど(^^;)) end;
property Volume:Integer;
再生時の原音に対する相対的な音量を示します。
単位は1/100dBで、マイナスの値を指定すると音が減衰しますが、プラスの値を指定しても、特に何もおきません(アンプ機能は未サポートだそうです)
property Status:DWORD;
チャンネルの再生状態を示す、読み出し専用プロパティです。
以下の値の和によって演奏状態を表します。
DSBSTATUS_LOOPING…ループ再生中です
DSBSTATUS_PLAYING…再生中です
property Buffer:IDirectSoundBuffer;
このチャンネルの持つIDirectSoundBufferを表します。このプロパティはDDSDコンポーネントでは出来ない事をする時のための、拡張用です。
詳しい使い方は、DirectSoundに関する資料を各自で調べてくださいm(__)m
procedure Play;
WaveDataプロパティで設定された波形データを再生します。
注意
一部の環境では、Playメソッドを実行する前に、Stopメソッドを実行しないと、正しく再生が出来ない場合があるそうです。
一方で、Playメソッドの前にStopメソッドを挟むと不要なウェイトのかかってしまう環境もあります。
procedure PlayAt(ofs:DWord);
WaveDataプロパティで設定された波形データをofsバイト目から再生します。
procedure LoopPlay;
WaveDataプロパティで設定された波形データを、Stopメソッドが呼ばれるまで繰り返し再生します。
procedure LoopPlayAt(ofs:DWord);
WaveDataプロパティで設定された波形データを、Stopメソッドが呼ばれるまでofsバイト目から繰り返し再生します。
procedure Stop;
波形データの再生を停止します。