slCDDAOn関数→SGLリファレンスマニュアル
但し、この関数を実行するためには予め、slInitSound関数を実行しておく
必要があります。
メインプログラムのループ内にてslSynch関数を実行していれば、CD-DAの
再生中にも上記の関数にてステレオとモノラルの切換が可能です。
サウンドドライバのステレオ/モノラルビットを変更します。
この設定は必ずサウンドドライバ設定後に行ってください。
(例)
Uint8 sndctrl; sndctrl = (*((volatile Uint8 *)(0x25a00483))); sndctrl &= 0x7f; if (stereo) { sndctrl |= 0x80; } (*((volatile Uint8 *)(0x25a00483))) = (Uint8)sndctrl;
STEREO | 16 Bit | 1音 | 音源使用数 4 |
STEREO | 8 Bit | 2音 | 音源使用数 2 |
MONORAL | 16 Bit | 2音 | 音源使用数 2 |
MONORAL | 8 Bit | 4音 | 音源使用数 1 |
となります。
音源使用数が4を越えた場合slPCMOnはエラーステータス-2
(チャネルオーバー)を返します。
従って、上で記述した種類のPCM音を組み合わせる事で1〜4音のPCMデータの再生
が可能になります。
--------------------------------------- BGM曲データ : シーケンスデータ0 SE曲データ : シーケンスデータ1 BGM音色データ : トーンバンクデータ0 SE音色データ : トーンバンクデータ1 ディレイ効果 : DSPプログラム0 リバーブ効果 : DSPプログラム1 : DSPワークエリア ---------------------------------------
まず "slSndEffect(Effect)" で指定する「エフェクトナンバー」ですが エフェクトが1つの場合は常に「0」を指定し、複数ある場合は 上記リバーブをかけたい場合は上記マップ情報から「1」を指定します。
次にエフェクトをかける対象を "slSndMixChange(Tbank,Mixno)" で 決定します。BGMにエフェクトをかけたい場合は「トーンバンク番号」 に0を指定します。またエフェクトからのリターンレベルやパンを指定 するミキサが複数ある場合は、使用したいパラメータの「ミキサ番号」を セットします。このミキサの詳細も制作側からもらう情報です。
最後に "slSndMixParmChange(Effect,Level,Pan)" ですが、これは プログラム側でエフェクト効果を初期設定から変更したい場合に使用 します。例えばリバーブ効果を小さくする場合は変更したいエフェクトを 「DSPエフェクト出力チャンネル」で指定し(これも制作側からチャンネル の割り振りの情報をもらってください。)「エフェクトリターンレベル」を 下げてやります。
"slDSPOff()" はサウンドDSP自体を停止して初期化する命令を発行する ものでエフェクトを扱う場合にサウンドの初期化処理や終了処理に必ず 行う必要のある関数です。
残念ながらエフェクトを扱ったSGLのサンプルプログラムはまだありません。