Я пытаюсь определить количество ударов в минуту (BPM) с микрофона, используя звуковую энергию, я думаю, что понял часть, определяющую BPM, но у меня возникли небольшие проблемы с получением данных RAW.
Пример основан на приложении Apples SpeakHere - на функции обратного вызова AudioQueue, которую я использую:
SInt16 *buffer = (SInt16*)inBuffer->mAudioData;
for (int i = 0; i < (inBuffer->mAudioDataByteSize)/sizeof(SInt16); i++)
{
printf("before modification %d\n", (int)*buffer);
buffer++;
}
Но я получаю некоторые интересные значения - любой шанс, что кто-то может указать мне правильное направление, в котором я ошибаюсь, и сообщить, в какой диапазон я должен вернуться.
Настройка аудиоформатов:
mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
mRecordFormat.mBitsPerChannel = 16;
mRecordFormat.mBytesPerPacket = mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel / 8) * mRecordFormat.mChannelsPerFrame;
mRecordFormat.mFramesPerPacket = 1;
Ваше здоровье,