SDL2浮点音频不会剪辑

时间:2015-10-18 12:09:30

标签: audio floating-point sdl clipping

我正在使用SDL2以32位浮点音频格式生成440Hz正弦波。

我读过else where 32位浮点音频格式在-1.0和+1.0之间归一化。

使用该语句,我预计会发生超过-1和+1的值的剪切。

当我将正弦波的幅度增加到-1.0和+1.0时,音调变为加载器(在3000幅度下真的非常响亮),并且似乎没有发生削波。

所以我的问题是:

  • 振幅超过-1.0 / + 1.0会发生什么,为什么不剪辑?

  • 32位浮点音频格式的最大幅度值是多少?

  • 是否有定义-1 / + 1规范化约定的地方?

1 个答案:

答案 0 :(得分:2)

当从整数格式转换为浮点时,SDL映射到[-1,1],但是当混合它时,剪辑最大为float:[ - 3.402823466e + 38F,3.402823466e + 38F]。

除此之外,SDL似乎将浮动音频数据直接传递到其未修改的许多音频设备实现,因此您的问题变为特定于操作系统/音频卡。

在你的情况下,你的信号在某些时候可能已经“对数”,因此在3000x时没有削波。