●メロディのプログラム
ミュウロボ命令には電子音(MYU BASICはPulsOut)という命令があります。音の高さはパルス幅(1−255)を指定して行います。パルス幅は大きいほど低い音になります。時間の単位は0.1秒。
電子音,t, p //第1引数t(0-255)x0.1秒だけ 第2引数p(1-255)パルス幅の音を鳴らす (MYUROBO転送ソフト)
PulsOut t, p //第1引数t(0-255)x0.1秒だけ 第2引数p(1-255)パルス幅の音を鳴らす (MYU BASIC)
下はC(ド)の音を440Hzとした場合の音階を表にしたものです。
音階 | ド | ド# | レ | レ# | ミ | ファ | ファ# | ソ | ソ# | ラ | ラ# | シ |
周波数(Hz) | | | | | | 293.7 | 311.1 | 329.6 | 349.2 | 370.0 | 392.0 | 415.3 |
パルス幅 | | | | | | 242 | 228 | 215 | 203 | 192 | 181 | 171 |
周波数(Hz) | 440 | 466.2 | 493.9 | 523.3 | 554.4 | 587.3 | 622.3 | 659.3 | 698.5 | 740.0 | 784.0 | 830.6 |
パルス幅 | 161 | 152 | 143 | 135 | 128 | 120 | 114 | 107 | 101 | 95 | 90 | 85 |
周波数(Hz) | 880 | 932.3 | 987.8 | 1046.5 | 1108.7 | 1174.7 | 1244.5 | 1318.5 | 1396.9 | 1480.0 | 1568.0 | 1661. |
パルス幅 | 80 | 75 | 71 | 67 | 63 | 60 | 56 | 53 | 50 | 47 | 44 | 42 |
周波数(Hz) | 1760 | 1864.7 | 1975.5 | 2093.0 | 2217.5 | 2349.3 | 2489.0 | 2637.0 | 2793.8 | 2960.0 | 3136.0 | 3322.4 |
パルス幅 | 39 | 37 | 35 | 33 | 31 | 29 | 27 | 26 | 24 | 23 | 22 | 20 |
下の例は、この表を参考に「ドレミ」を2回演奏するプログラムです。
//「ドレミ」を2回演奏 (MYU-USB転送ソフト)
繰り返す(2){
電子音,2,161
電子音,2,143
電子音,2,128
}
//「ドレミ」を2回演奏 (MYU BASIC)
LoopProc DOREMI,2 //プロシージャDOREMIを2回呼び出す
Proc DOREMI() //「ドレミ」の演奏
PulsOut 2,161 PulsOut 2,143 PulsOut 2,128
EndProc
//「ドレミ」を2回演奏 (MYUROBO転送ソフト)
ブロック繰り返し,10,2 //ブロック番号10を2回呼び出す
ブロックはじめ,10 //ブロック番号10、「ドレミ」の演奏
電子音,2,161 電子音,2,143 電子音,2,128
ブロックおわり
//「ドレミ」を2回演奏 (構造化ドリトル)
ロボ太=MYU!"com1"作る。 //シリアルポートが2番の場合、com2となる
ロボ太:転送命令=「!はじめロボット
「!2 161 電子音 2 143 電子音 2 128 電子音」2 繰り返す //「ドレミ」を2回繰り返す
おわりロボット」。
ロボ太!転送命令。