Sound Library - データユーティリティ関数

sdBankDownloadEx

Bankの分割転送

書式

SDE_ERR sdBankDownloadEx( handle, bank_type, bank_num )
SDMEMBLK handle
const SDE_DATA_TYPE bank_type
const Sint8 bank_num

引数

handle   転送元のBankのメモリブロックのハンドル
bank_type   転送先のBankの種類
bank_num   転送先のBankの番号

戻り値

SDE_ERR_NOTHING   エラーなし
SDE_ERR_NO_INIT   Sound Library が初期化されていない
SDE_ERR_HANDLE_NULL   ハンドルがNULL
SDE_ERR_HANDLE_ILLEGAL_VALUE   ハンドルが不正なアドレスを指している
SDE_ERR_BANK_ILLEGAL_TYPE   Bankの種類が異常

解説

Bankをメインメモリからサウンドメモリへ転送します。

Bankの種類を指定する引数 bank_type には次の指定が可能です。

 定義   意味 
 SDE_DATA_TYPE_MIDI_SEQ_BANK   MIDI Sequence Bank 
 SDE_DATA_TYPE_MIDI_PRG_BANK   MIDI Program Bank 
 SDE_DATA_TYPE_SHOT_BANK   One Shot Bank 
 SDE_DATA_TYPE_FX_OUT_BANK   FX Output Bank 
 SDE_DATA_TYPE_FX_PRG_BANK   FX Program Bank 

sdBankDownload()関数との違いはBankを分割してダウンロードできることです。 例えばファイルシステムからBankファイルを4000Hバイト毎読み込んでsdBankDownloadEx()関数で 分割サイズごとに転送するなどといったことができます。


備考

基本的な引数や動作の仕様はsdBankDownload()関数と同様です。

この関数でSDE_ERR_BANK_ILLEGAL_CHECK_SUMが返ってきた場合Bankファイル作成時に記録されたチェクサムと実際にダウンロードした内容のチェクサムが合わなかったことを表します。 この場合Bankファイルが壊れている可能性がありますので、サウンドクリエーターに確認してください。

Bankのダウンロードを行う場合、その時点で各種音源(MIDI音源・One Shot音源・PCM Stream音源・GD-DA音源)で再生している音に関係あるBankを更新しないようにしてください。 例えばOne Shot Bank番号0番・One Shot Data番号0番を再生している時に、One Shot Bank番号0番を更新すると再生中の波形が破壊されることになり、ノイズが発生します。 この場合、それぞれの該当音源ポートの再生を停止する処置(sdMidiSeqStop()関数・sdShotStop()関数など)を取ってください。 また、Host Commandのバッファリング等の関係から、停止処理を行った後数V同期割り込み分待ったうえでダウンロードを行う方が安全です。

この関数を使用する時にはFXはsdSndClearFxPrg()関数で使用しないようにしてください。


参照

sdBankDownload()
 Bankの転送
sdBankDownloadSetDivSz()
 BankのDMA転送時の分割サイズの指定
sdMltDownload()
 Multi Unitの転送
sdMltDownloadEx()
 Multi Unitの分割転送
sdSndClearFxPrg()
 FX Programのクリア

sdBankDownloadEx
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000