API Web Audio имеет так называемый интерфейс осциллятора для генерации тонов, о которых вы говорите.Они довольно прямолинейны, чтобы начать ...
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;
Я написал статью на эту тему более подробно, так что она может быть вам полезна!