我找到了一些用Web Audio API进行仪器合成的库.
其中一人(Band.js)使用createOscillator()
,结合振荡器型(正弦波,方波,...)看到源.
但它听起来太合成了(例如,听)我想要听起来更真实的东西,但我不想使用任何预编译的声音字体,所以它应该被合成.它也适用于移动设备.
所以我找到了另一个库(musical.js),它使用前32个谐波作为矩阵与createPeriodicWave
see source结合使用.音色很棒,你可以听
正如它在源代码的注释中所写,谐波来自该钢琴样本文件.还有更多其他乐器的示例文件.我试图取代谐波,甚至整个2000年,但它听起来总是像钢琴.
还有一些值可以调整和插入谐波和ADSR值.也许他们只针对钢琴声音进行了优化?
然后我找到了另一个库(吉他合成器),它有一个非常好的吉他音色,听听它.但是这个库不使用任何createPeriodicWave
API.相反,它使用createScriptProcessor
并getChannelData
结合一些"简单"计算,但没有像其他库中的谐波那样,请参阅源代码
可以将吉他合成器移植到使用createPeriodicWave
API吗?我想在musicjs中使用吉他音色.这样我就可以在钢琴音色和吉他音色之间切换.
BTW:找到了另一个合成声音乐器的库.这是演示,这里是源代码.声音也很好听,但是music.js音乐库的音色更加美妙.但它看起来也像使用像getChannelData
WAVE 一样编码的东西.它也无法在我的Android移动设备上运行.