2009/02/12

vst作成メモ

サンプルのAGainを参考にして,
void EstMS::processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames)
{
    float* in1  =  inputs[0];
    float* in2  =  inputs[1];
    float* out1 = outputs[0];
    float* out2 = outputs[1];
てな感じで,バッファのアドレスを取り出して,
    *out1 = (*in1 + *in2) * fGain;
    *out2 = (*in1 - *in2) * fGain;
という処理を,(各ポインタを加算しながらsampleFrames回)繰り返せばいいかと思ったが,うまくいかなかった。何故か2回通すとモノラルっぽくなる。けど,完全にモノラルでもない。 いろいろ試行錯誤した結果,どうやら入力と出力のバッファのアドレスが同じだったらしい。上の行で*out1に書き込んだ時点で*in1が上書きされていると。 わかってしまえば,「なあんだ」って話なんですがね…。

0 件のコメント:

コメントを投稿