SDE_ERR sdMidiSetSeqSpeed( handle, speed, fade_time )
SDMIDI handle
const Sint16 speed
const Sint32 fade_time
handle MIDIポートのハンドル speed 再生スピード fade_time 目的の再生スピードに達するまで時間
SDE_ERR_NOTHING エラーなし SDE_ERR_NO_INIT Sound Library が初期化されていない SDE_ERR_HANDLE_NULL ハンドルがNULL SDE_ERR_PRM_OVER_RANGE 引数が正常な値の範囲外 SDE_ERR_HOST_CMD_BUF_NO_ENOUGH ホストコマンドのバッファが不足
指定したMIDIポートに対してMIDI Sequence Dataの再生スピードを設定をします。目的の再生スピードを示す引数 speedの値は下記の計算式で求まります。
speed = 倍率×1000H - 1000H
倍率は1/64倍から3倍未満までです。
計算結果の範囲で-0FC0H(最遅)〜1FFFH(最速)でなければなりません。
引数speedは作成されたデータのボリュームバランスを基準に相対的に設定されます。 つまりspeedの値を元に戻すとき(作成されたデータのボリューム値に戻すとき)は0を指定します。
再生スピードに達する時間を示す引数 fade_time の単位はミリ秒で、範囲は0000H(最速)〜7FFFH(最遅)までです。 この再生スピードに達するまでの時間中、VSync毎にsdSysServer()関数が実行されていなければなりません。
この関数を実行しても、MIDIメッセージの送信関数sdMidiSendMes()への影響はありません。この関数で影響が有るのはSound DriverでのMIDI Sequence Dataの再生に対して影響があります。
定期的なタイミングで行うアプリケーションで用意したサーバ関数などで、V同期で変化のない値を毎回設定し続けることは効率的なHost Command Bufferの利用方法でないばかりか、Sound Driverの負荷を増やす原因になります。 なるべく行わないでください。
sdMidiSendMes() MIDIポートにMIDIメッセージを送信