我正在尝试在浏览器中做一些 javascript 音乐合成器,我遇到了 riffwave.js。从这里的这个问题,答案给出了如何使用 riffwave.js 的提示。
我已经通过它来弄清楚一些东西,比如多重音调,我几乎理解了所有这些,但我不知道为什么128 + 127 *
会有。
它也显示在此演示页面中。
谁能提供解释或告诉我如何使用该部分来修改程序?
谢谢。
您引用的示例显示了以下形式的方程式:
A=128 + 127 * Sin(...)
由于Sin
函数可以在 -1 到 +1 之间变化,因此上述等式的结果是 1-255。因此,加上常数128
并乘以系数127
,这基本上是一个sin
输出在 1 到 255 之间变化的函数,这很方便,因为它可以使用 8 位(或 1 字节)存储。
就像 mti2935 所说的那样,这是一种方便的方法,可以将一个从 -1 到 1 变化的数字映射到一个从 1 到 255 变化的整数,它非常适合一个字节。特别是,riffwave 似乎在内部以 8 位 .wav 格式表示声音,因此这会将浮点数转换为实际播放声音所需的 8 位整数格式。