VB6音楽編03.変える!

前回で結構いい感じに鳴るようになりました。
今回はいろいろパラメータをいじって曲に変化を加えようと思います。
変数名などは前回と同じにします。

SetMasterTempo

dmPerformance.SetMasterTempo (テンポの倍率)

ま、何倍速にするかということですね。
速いのは2倍速、遅いのは4分の1倍速までです。
ただ音を鳴らすだけでもたくさんの手順を踏んでいたのにこういうのは拍子抜けするほど簡単なんですね。
欠点といえば、再生中のセグメント全部に影響が出るということでしょうか。

SetMasterVolume

dmPerformance.SetMasterVolume (ボリュームの調整)

調整っていうのは1/100dB単位で指定するということなので、0が普通、+1000にすると+10dBだから10倍の音量、-1000だと10分の1の音量になります。
通常は-10000~0あたりで使うことになると思います。

SendxxxxPMSG系

えっとですね、これ、メッセージを送信して、いろいろできます。
例えば転調(音の高さを変更)するSendTransposePMSGメソッド。

dmPerformance.SendTransposePMSG 0, DMUS_PMSGF_REFTIME, (チャンネル), (半音の数)

はじめの2つはメッセージを処理するタイミングを決めているようです。
すぐ変更を反映する場合は0とDMUS_PMSGF_REFTIMEを指定します。
チャンネルを指定できることからもわかるように、同時にひとつのチャンネルにしかメッセージを送れません。
他のSendNotePMSGやSendPatchPMSGとかSendTempoPMSGなどでも最初の3つは共通なので同じ要領で使えます。

サンプル(2.66kilobyte)