Создание тона с использованием чистого javascript с помощью API Chromium WebAudio

Как я могу генерировать тон (например, синусоида), используя только javascript и API Chromium WebAudio?

Я хотел бы сделать что-то вроде эквивалента Firefox.

В демонстрационных версиях Chromium WebAudio здесь используются все предварительно записанные элементы <audio>.

Спасибо!

Ответ 1

Вероятно, это не лучший способ, но я использовал dsp.js для генерации различных типов синусоид, а затем передал их в API Web Audio в этой демонстрации: http://www.htmlfivewow.com/demos/waveform-generator/index.html

Ответ 2

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;

Я написал статью об этой самой теме более подробно, так что это может пригодиться вам!