使用Accelerate Framework将分贝转换为卷

时间:2015-11-05 16:08:15

标签: ios core-audio accelerate-framework vdsp the-amazing-audio-engine

我正在构建某种音频推子效果。

我正在使用vDSP_vdbcon将卷的缓冲区转换为分贝,在db-space中应用一些修改,并希望使用加速框架将分贝缓冲区转换为卷。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是我用于每个元素的分贝值在-40和0之间的值。它给出了非常好的结果。

float decibelsToMag(float decibels){
    return pow (10, (0.05 * decibels));
}

我不知道pow功能的Accelerate矢量等价物。但这是一个半矢量化版本。

void decibelsToMags(float *decibels, float *mag, int count){
    float mul = 0.05;
    vDSP_vsmul(decibels, 1, &mul, mag, 1, count);
    for (int i = 0; i < count; i++) {
        mag[i] = pow(10,mag[i]);
    }
}

如果您能找出循环的vDSP版本,请回发。