1

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

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

谢谢!

4

1 回答 1

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 版本,请回复。

于 2015-11-05T19:19:00.817 回答