Tone.js

偶然发现个可以在web应用上玩弄各种声音,功能还挺强大的框架Tone.js。不过官方没有中文文档,官方文档也稍微有点让人无语。稍微翻译记录下一些基础操作,日后再研究。

为了使用Tone.js,首先需要创建合成器。框架里其实内置了不少合成器,这里用最简单的示例。

const synth = new Tone.Synth().toMaster();

这样就创建了一个最基础的带一个震荡器的合成器。Tone.Synth继承自Tone.OmniOscillator,默认的波形是三角波(triangle)。当然,这些合成器都支持ADSR包络,可以高度自定义。创建后的toMaster则是定义这个合成器输出至主输出,也就是输出至电脑喇叭。

synth.triggerAttackRelease("C4", "8n");

为了使合成器发声,需要指定其音高和长度。音高可以直接输入代表频率的数字,也可以用音名来指定。音长可以是代表秒数的数字,也可以是拍子长度。上面例子中就是让synth合成器演奏一个八分音符长的C4。

值得一提的是Tone.js还支持采样。这也是我最想尝试的功能。不过按照官方文档一顿操作后,在使用采样时其内建的处理采样文件的buffer总是会出现各种匪夷所思的bug。这部分只能等以后再说了。

上一篇
下一篇