2

I am recording the raw audio data using Remote I/O unit as given below:

static OSStatus performRender(void *inRefCon,
                              AudioUnitRenderActionFlags *ioActionFlags,
                              const AudioTimeStamp *inTimeStamp,
                              UInt32 inBusNumber,
                              UInt32 inNumberFrames,
                              AudioBufferList *ioData)
{
    OSStatus err = noErr;
    if (*callbackStruct.audioChainIsBeingReconstructed == NO)
    {
        err = AudioUnitRender(callbackStruct.rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
        {
            [callbackStruct.bufferManager CopyAudioDataToDrawBuffer:(Float32 *)ioData->mBuffers[0].mData frames:inNumberFrames];
        }
    }
    return err;
}

What is the unit of measurement of this raw audio data ( mBuffers[0].mData, which is a void pointer if you look up the AudioBuffer structure ).

Is it Pascal or milliVolts (mV) ? Thanks in advance.

4

1 回答 1

1

两者都不是 - 它可以是多种音频数据格式中的一种常见的有:

  • float有价值观-1.0 <= x <= 1.0
  • 16 位signed short带值-32768 < x < 32768

其中最小值和最大值是可以在不裁剪的情况下表示的最小和最大样本值。

为了计算输出电压,您需要确定音频系统其余部分的增益。您可以假设以帕斯卡为单位的 SPL 与输出功率或多或少呈线性关系,与 成正比V^2

于 2015-08-05T13:09:30.990 回答