#include <nnsys/snd.h>BOOL NNS_SndCaptureStartOutputEffect( void* buffer_p, u32 bufSize, NNSSndCaptureOutputEffectType type );
buffer_p |
エフェクトバッファのポインタです。32バイトアライメントされている必要があります。 |
bufSize |
エフェクトバッファのサイズです。128の倍数で無ければなりません。 |
type |
出力エフェクト処理のタイプです。 |
出力エフェクト処理を開始します。
キャプチャー機能を使ってミキサー出力をキャプチャし、コールバック関数でエフェクト処理を行った後、 最終音声として出力します。 エフェクト動作中は、16チャンネル中の2チャンネル(チャンネル1及びチャンネル3)を消費します。 チャンネル1またはチャンネル3が、シーケンスによって使用中の場合、発音中の音は強制的に停止させられます。
エフェクトを使うためには、エフェクトバッファが必要になります。
先頭アドレスbuffer_pは、32バイトアライメントされている必要があります。
また、バッファサイズbufSizeは、128の倍数で無ければなりません。
エフェクトバッファが小さいほど頻繁にエフェクト処理が実行され、
逆にエフェクトバッファが大きいほど、1回あたりのエフェクト処理の時間が長くかかります。
エフェクトバッファが4KBの時、1ビデオフレームにほぼ1回の割合で、エフェクト処理が行われるようになります。
出力エフェクトのタイプtypeは、下記の値から選択します。
表 . NNSSndCaptureOutputEffectType
| ラベル | 説明 |
|---|---|
| NNS_SND_CAPTURE_OUTPUT_EFFECT_NORMAL | 何も処理しません(通常のステレオモード) |
| NNS_SND_CAPTURE_OUTPUT_EFFECT_MONO | モノラルモード |
| NNS_SND_CAPTURE_OUTPUT_EFFECT_SURROUND | サラウンドモード |
| NNS_SND_CAPTURE_OUTPUT_EFFECT_HEADPHONE | ヘッドフォンモード |
サラウンドモードは、DSステレオスピーカーから再生したときに、 スピーカー位置より広がって感じられるエフェクトをかけます。 ヘッドフォンモードは、ヘッドフォンで聴いているときに 耳の負担を軽減するエフェクトをかけます。
NNS_SndCaptureCreateThread関数で キャプチャースレッドを起動しているときは、エフェクト処理はキャプチャースレッドで実行されます。 キャプチャースレッドを起動していない場合は、IRQハンドラで実行されます。
出力エフェクト開始の失敗には、以下の原因が考えられます。
長期間の割り込み禁止など、エフェクト処理が定期的に実行できなくなると、 正常な音声が出力されなくなります。
音声を再生しながらこの関数を呼びだすと、再生される音が途切れます。
サラウンドモードでは、その他のモードより、音が割れて聞こえる場合があります。
2005/06/27 関数失敗の原因を追加
2004/11/19 サラウンドモード時の音割れに関する注意書き追加
2004/10/04 初版