WebAudioを使用して矩形波を鳴らします。
<code><html> <body> <button onclick="start()">開始</button><br/> <script> var sc = 0; var ac, on, gn; function start() { ac = new AudioContext(); on = new OscillatorNode( ac ); gn = new GainNode( ac ); play(); on.type = "square"; // 矩形波 gn.gain.value = 0.02; // 音量 on.connect( gn ).connect( ac.destination ); on.start(); setInterval( play, 1000 ); } function play() { let fr = 440 * Math.pow( 2, sc++ / 12 ); document.write( fr + "Hz " ); on.frequency.value = fr; // 音程 } </script> </body> </html>
「開始」ボタン押下でイベントが始まるようにします。セキュリティの都合上、そのページで何かしらのアクションを行なった後でないとAudioContextを作成できません。