使用纯JavaScript与Chromium WebAudio API生成音色

问题描述:

如何仅使用javascript和Chromium的WebAudio API生成音调(例如纯正弦波)?使用纯JavaScript与Chromium WebAudio API生成音色

我想完成类似the Firefox equivalent

Chromium WebAudio演示here似乎全部使用预先记录的<audio>元素。

谢谢!

也许不是这些最好的方式,但我用dsp.js产生不同类型的正弦曲线,然后传递了他们对网络音频API在这个演示:http://www.htmlfivewow.com/demos/waveform-generator/index.html

+1

啊,是啊,忘了放下;我基本上做了同样的事情。当我问这个问题时,那个演示或多或少地完全被破坏了。一些朋友和我一起黑了这个http://pastebin.com/7jEqJSCU的黑客马拉松。它使用DSP来产生正弦波。它还演示了一个异步加载鼓套件。我不知道它是否仍然有效,它在我们建造的时候在加那利奔跑,但如果现在需要调整就不会感到惊讶。 –

通过Web Audio API有什么作为了振荡器接口来产生你正在谈论的音调。他们是非常直截了当得走了......

var context = new webkitAudioContext(), 
    //Call function on context 
    oscillator = context.createOscillator(); // Oscillator defaults to sine wave 

oscillator.connect(context.destination); 
oscillator.start(); 

您可以通过执行变更波的类型:

oscillator.type = 1; // Change to square wave. 

或者:

oscillator.type = oscillator.SQUARE; 

我写an article about this very topic更详细,所以这可能对你有一些用处!

+0

有没有更好的方式来改变振荡器类型比使用数字?它不会提供非常可读的代码。 – frankster

+0

@frankster是的,你可以做oscillator.type = oscillator.SQUARE;我会更新答案。 –

+0

使用oscillator.start()而不是oscillator.noteOn(),它不再存在,请参阅:https://jsfiddle.net/xMruN/322/ – Seth

对于音频的生成,我认为这个链接会非常有帮助。 http://0xfe.blogspot.ca/2011/08/generating-tones-with-web-audio-api.html