2

我正在创建我的 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);
                });

现在我的问题是,因为我试图在谷歌上找到示例但没有成功,还有哪些其他参数可用于获取声音,如钢琴或除振荡器之外的某些电子乐器以及如何传递它们?

4

1 回答 1

2

我假设您对合成相当陌生。在代码中尝试合成算法之前,我建议使用一些可用的软件合成器 - VST 或其他。这将使您掌握要引入算法的参数类型。http://www.soundonsound.com/sos/allsynthsecrets.htm是一系列非常好的合成教程的索引。(从底部开始 - 第 1 部分!)

一旦您准备好开始在代码中进行试验,一个很好的起点是引入一个包络以随时间改变声音的音量或音高(像这样随时间改变参数称为“调制”)。这个视频可能很有趣:http ://www.youtube.com/watch?v=A6pp6OMU5r8

请记住,几乎所有原声乐器都很难通过算法令人信服地合成,到目前为止,接近钢琴的最简单方法是使用真实钢琴音符的样本。

于 2013-09-12T00:54:32.153 回答