NNS_SndCaptureStartOutputEffect

構文

#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ハンドラで実行されます。

出力エフェクト開始の失敗には、以下の原因が考えられます。

  • キャプチャがエフェクト以外の用途で使用中
  • チャンネル1またはチャンネル3が、エフェクトやシーケンスによる発音以外の用途で使用中

注意

長期間の割り込み禁止など、エフェクト処理が定期的に実行できなくなると、 正常な音声が出力されなくなります。

音声を再生しながらこの関数を呼びだすと、再生される音が途切れます。

サラウンドモードでは、その他のモードより、音が割れて聞こえる場合があります。

参照

NNS_SndCaptureCreateThread

履歴

2005/06/27 関数失敗の原因を追加
2004/11/19 サラウンドモード時の音割れに関する注意書き追加
2004/10/04 初版