我正在尝试使用 Core Audio 实现线性卷积,我已经实现并运行了算法,但我正在尝试将其输出写入 .wav 音频文件。这是算法的代码......
//Create array containing output of convolution (size of array1 + array2 - 1)
float *COutput;
COutput = (float *)malloc(((size1+size2)-1)* sizeof(float));
int sizeOutput = ((size1 + size2)-1);
//Convolution Algorithm!!!
for (i=0; i<sizeOutput; i++) {
COutput[i]=0;
for (j=0; j<sizeCArray1; j++) {
if (((i-j)+1) > 0) {
COutput[i] += CArray1[i - j] * CArray2[j];
}
}
}
我需要将 COutput(标准浮点数组)中的浮点值写入音频文件。我假设我最初需要将这些浮点值发送到 AudioBufferList 中的 AudioBuffer 是否正确?或者有一个简单的方法可以做到这一点?
非常感谢您的帮助或指导!
免费的 DiracLE 时间拉伸库 (http://dirac.dspdimension.com) 具有将 ABL (AudioBufferList) 转换为浮点数组的实用程序代码,反之亦然,作为其示例代码的一部分。查看他们的 EAFRead 和 EAFWrite 类,它们正是您正在寻找的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)