我正在使用SDL2以32位浮点音频格式生成440Hz正弦波。
我读过else where 32位浮点音频格式在-1.0和+1.0之间归一化。
使用该语句,我预计会发生超过-1和+1的值的剪切。
当我将正弦波的幅度增加到-1.0和+1.0时,音调变为加载器(在3000幅度下真的非常响亮),并且似乎没有发生削波。
所以我的问题是:
振幅超过-1.0 / + 1.0会发生什么,为什么不剪辑?
32位浮点音频格式的最大幅度值是多少?
是否有定义-1 / + 1规范化约定的地方?
答案 0 :(得分:2)
当从整数格式转换为浮点时,SDL映射到[-1,1],但是当混合它时,剪辑最大为float
:[ - 3.402823466e + 38F,3.402823466e + 38F]。
除此之外,SDL似乎将浮动音频数据直接传递到其未修改的许多音频设备实现,因此您的问题变为特定于操作系统/音频卡。
在你的情况下,你的信号在某些时候可能已经“对数”,因此在3000x时没有削波。