我正在创建我的html5应用程序进行测试,我使用音频api,在键盘上生成声音我正在做这样的事情
keyboard.keyDown(function (note, frequency) {
var oscillator = context.createOscillator(),
gainNode = context.createGainNode();
oscillator.type = 2;
oscillator.frequency.value = frequency;
gainNode.gain.value = 0.3;
oscillator.connect(gainNode);
if (typeof oscillator.noteOn !== 'undefined') {
oscillator.noteOn(0);
}
gainNode.connect(context.destination);
nodes.push(oscillator);
});
现在我的问题是,因为我试图在谷歌上找到例子但是没有成功,除了振荡器以及如何传递它们之外,还有什么其他的parammetars可用于获取钢琴或某些电子乐器之类的声音?
答案 0 :(得分:1)
我假设你对合成很新。在代码中尝试合成算法之前,我建议使用一些可用的软件合成器 - VST或其他。这将为您提供有关要引入算法的参数类型的处理。 http://www.soundonsound.com/sos/allsynthsecrets.htm是一系列非常好的综合教程的索引。 (从底部开始 - 第1部分!)
一旦你准备开始尝试代码,一个好的开始就是引入一个envelope来改变声音的音量或音高(随着时间的推移改变一个参数就像这个'调制')。该视频可能会引起您的兴趣:http://www.youtube.com/watch?v=A6pp6OMU5r8
请记住,几乎所有原声乐器都难以令人信服地合成算法,到目前为止,接近钢琴的最简单方法是使用真实钢琴音符的样本。