3

NOVOCAINEを使用して 10 バンドのイコライザーを構築しようとしています。Equaliser.mm のコードを にコピーしviewWillAppear、xib ファイルにさらに 9 つのスライダーを追加し、IBActionコードも次のように変更しました。

-(void)HPFSliderChanged:(UISlider *)sender {
PEQ[sender.tag - 1].centerFrequency = sender.value;
NSLog(@"%f",sender.value);
} 

私が知りたいのは、これを正しい方法で行っているかどうかです。スライダーの範囲はどうなりますか?例のようHPFに、スライダーの範囲は 2k から 8k です。ここでいくつかのガイダンスが必要です。

ありがとう。

4

1 に答える 1

0

編集:あなたのコメントの後、あなたが何を求めているのかがより明確になったと思います。

をインスタンス化するコードを取得しますNVPeakingEQFilter

        NVPeakingEQFilter* PEQ = [[NVPeakingEQFilter alloc] initWithSamplingRate:self.samplingRate];
        PEQ.Q = QFactor;
        PEQ.G = gain;
        PEQ.centerFrequency = centerFrequencies;

Q、G、centerFrequency の 3 つのパラメーターを定義する必要があります。通常、Q と centerFrequency はどちらも固定されています (私の場合、QFactor は 2.0 に等しい定数です)。

したがって、10 個のスライダーがあり、それぞれが固定に対応していcenterFrequencyます。iTunes の値として、32Hz、64Hz、125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz を提案しました。スライダーの値が変更されたときに、これらの値を変更したくない場合。

スライダーの値が変化したときに変えたいのはゲイン(G)です。初期化時に、G は 0.0 に設定できます。これは「増幅/減衰なし」を意味します。

スライダーが動くと G が変わるので、実際には次のようにします。

PEQ[sender.tag - 1].G = sender.value * kNominalGainRange;

ここで、kNominalGainRange は 12.0 であるため、sender.value-1.0 から +1.0 になると、G は -12 から +12 になります。

お役に立てれば。

私が知りたいのは、これを正しい方法で行っているかどうかです。

あなたは多くのコードを示していませんが、HPFSliderChanged正しいようです。特定の問題がある場合は、それについて説明し、さらにコードを投稿する必要があります。

スライダーの範囲はどうなりますか?

実際、イコライザーに関しては厳格なルールはありません。iTunes は -12db から +12db まで変化しますが、異なる範囲を使用することもできます (唯一の注意点は歪みです)。

HPF の例のように、スライダーの範囲は 2k から 8k です。ここでいくつかのガイダンスが必要です。

繰り返しになりますが、iTunes イコライザー (32Hz、64Hz、125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz) を例に取るか、Google で実際のイコライザーの画像を探して、それらが使用する帯域を確認できます。

于 2014-07-03T08:03:30.880 に答える