2015-10-18 60 views
1

我用SDL2生成32位浮點音頻格式的440Hz正弦波。SDL2浮點音頻放音片段

我讀過else where 32位浮點音頻格式在-1.0和+1.0之間歸一化。

有了這個說法,我會期望剪切發生超過-1和+1的值。

當我將正弦波的幅度增加到-1.0和+1.0以上時,音調變爲加載器(真的真的在3000振幅下很響),並且似乎沒有發生削波。

所以我的問題是:

  • 什麼用超過-1.0/+ 1.0,爲什麼不把它夾振幅發生?

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

  • 有沒有定義-1/+ 1規範化約定的地方?

回答

2

當從整數格式轉換成浮點,SDL映射到[1,1],但是剪輯在最大float混合時:[-3.402823466e + 38F,3.402823466e + 38F]。

除此之外,SDL似乎將浮動音頻數據直接傳遞到未經修改的許多音頻設備實現,因此您的問題變爲操作系統/音頻卡特定。

在你的情況下,你的信號可能在某些時候被「對數」,因此在3000x處沒有剪切。

+0

好的,聽起來像我的問題應該是「核心音頻如何處理浮點音頻?」 – MrRadiotron

+0

我正如我上面所說,例如在這裏閱讀:https://www.mikeash.com/pyblog/friday-qa-2012-10-26-fourier-transforms-and-ffts.html –