Я написал простой аудиоустройство, которое должно поменять местами левый и правый каналы стереофонического источника.Портированная версия этого кода прекрасно работала на C для программы командной строки, которая использовала библиотеку BASS, но у меня возникли проблемы с получением того же кода для работы в Xcode для аудиоустройства.
Для ввода в буфериз, например, {1, 2, 3, 4, 5, 6}, я ожидаю, что стереофонический реверс будет {2, 1, 4, 3, 6, 5}.
Мой код правильноинвертирует сэмплы таким образом, но все, что я слышу, - это какая-то фильтрация нижних частот, а не стереофоническая инверсия сэмплов.
Первые 4 значения в моем входном буфере: 0,000104 0,000101 0,000080 0,000113
Вывод: 0,000101 0,000104 0,000113 0,000080
Неужели я что-то не так понял относительно структуры входных / выходных буферов?
void First::FirstKernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inSamplesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
if (!ioSilence) {
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
for (int i = inSamplesToProcess/2; i>0; --i) {
*(destP+1) = *sourceP;
*destP = *(sourceP+1);
sourceP = sourceP +2;
destP = destP +2;
}
}
}