Home » ソフトウェア » 【ネタ】ソフトウェアPSG音源で「営団ブザー」を鳴らす

【ネタ】ソフトウェアPSG音源で「営団ブザー」を鳴らす

ソフトウェア

かつて、営団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
  1. 帝都高速度交通営団。現在の東京地下鉄(東京メトロ)の前身。 ↩︎