exponentialRampToValueAtTime允许的最小浮点数是多少?

时间:2015-02-12 11:22:08

标签: javascript web-audio

如果exponentialRampToValueAtTime(value, time)为0,

value会触发错误,这是有道理的,因为0的日志未定义,但如果value过于接近0,则显然也会触发错误1e-150 1}}。

值参数可能的最小数值是什么?

1 个答案:

答案 0 :(得分:2)

可能是32位浮点数的最小正常值,即-126或约1.18e-38。规范实际上并没有说它必须是正常值,但我不会乱用非正规值;它可以降低性能(或者在某些硬件上只是舍入到零)。

当然,1.18-38是一个非常小的增益值,当样本转换为整数并发送到声音硬件时,这些小数字只会四舍五入为零。您也可以使用更大的值,例如1/32768,除非您因某种原因将其传递到后续的高增益阶段。

BUT

当你渐渐沉默时,你可能无论如何也不应该使用exponentialRampToValueAtTime。你应该使用setTargetAtTime。这使您可以控制指数斜坡的速度。这也意味着您不必担心最小允许目标值,因为您可以使用零作为目标。