かつて、営団1地下鉄の駅で、電車の発車前に鳴っていたブザー、通称「営団ブザー」は、周波数536Hzの矩形波だそうなので、拙作のソフトウェアPSG音源「PSG for Web」で再現してみました。
リアルさを出すために、わずかに周波数が高い音と同時に鳴らすことで、デチューンをかけてあります。
コードは以下の通りです。
<script src="/apps/util/psgweb-1.3.2.js"></script>
<script>
var psg;
var psg_enabled=false;
var buzzer_on=false;
window.addEventListener("load",function(){
psg=new PSGWEB();
let button=document.createElement("button");
button.id="buzzer";
button.innerHTML="鳴らす";
button.style.width="300px";
button.style.height="100px";
button.style.fontSize="50px"
button.addEventListener("click",buttonOnClick);
document.getElementById("buttonField").append(button);
});
function buttonOnClick(){
if(!psg_enabled){
psg.init(function(){
psg_enabled=true;
buzzer();
})
}else{
buzzer();
}
}
function buzzer(){
if(buzzer_on) buzzerOff();
else buzzerOn();
}
function buzzerOn(){
document.getElementById("buzzer").innerHTML="止める";
psg.sound(7,188);
psg.sound(8,15);
psg.sound(9,15);
psg.sound(0,209);
psg.sound(2,207);
buzzer_on=true;
}
function buzzerOff(){
document.getElementById("buzzer").innerHTML="鳴らす";
psg.sound(8,0);
psg.sound(9,0);
psg.sound(0,0);
psg.sound(2,0);
buzzer_on=false;
}
</script>
<div id="buttonField"></div>
これを、MSX BASICで記述すると次のようになります。
10 SOUND 7,188 ' チャンネルAとチャンネルBを有効にする
20 SOUND 8,15 ' チャンネルAの音量 15(最大)
30 SOUND 9,15 ' チャンネルBの音量 15(最大)
40 SOUND 0,209 ' チャンネルAの周波数 約535.2Hz
50 SOUND 2,207 ' チャンネルBの周波数 約540.4Hz
- 帝都高速度交通営団。現在の東京地下鉄(東京メトロ)の前身。 ↩︎