10 'MUSIC
20 LET[0],2273,2025,3822,3405,3034,2863,2551,1911
30 LET[8],2145,2145,3608,3214,3214,2703,2408
40 L=10:N=2:P=50:O=20
50 M="C-D-E-F-G-A-B-H-":GSB@P
60 M="CcDdEFfGgAaBH":GSB@P
70 END
80 @P:C=PEEK(M):M=M+1:F=0
90 IFC=34OUT5,0:RTN
100 IFC=60O=O/2:GOTO@P
110 IFC=62O=O*2:GOTO@P
120 IFC=45GOTO@L
130 IFC=95OUT5,0:GOTO@@L
140 IF(C>64)*(C<73)F=[C-65]
150 IF(C>96)*(C<104)F=[C-89]
160 IFF=0GOTO@P
170 F=F/O:PWM5,F*P/100,F
180 @L:WAITL-N
190 IFPEEK(M)<>45OUT5,0
200 WAITN:GOTO@P
M="CcDdEFfGgAaBC---":GSB@P
L=20:N=2:P=50:O=20
20 | Hz | HL | ||||||
0 | A | 440 | ||||||
3 | C | 523.25 | 3822 | 0 | 65 | A | 2273 | |
4 | d | 554.37 | 3608 | 1 | 66 | B | 2025 | |
5 | D | 587.33 | 3405 | 2 | 67 | C | 3822 | |
6 | d | 622.25 | 3214 | 3 | 68 | D | 3405 | |
7 | E | 659.26 | 3034 | 4 | 69 | E | 3034 | |
8 | F | 698.46 | 2863 | 5 | 70 | F | 2863 | |
9 | f | 739.99 | 2703 | 6 | 71 | G | 2551 | |
10 | G | 783.99 | 2551 | 7 | 72 | H | 1911 | |
11 | g | 830.61 | 2408 | 8 | 97 | a | 2145 | |
12 | A | 880 | 2273 | 9 | 100 | d | 3608 | |
13 | a | 932.33 | 2145 | 10 | 100 | d | 3214 | |
14 | B | 987.77 | 2025 | 11 | 102 | f | 2703 | |
15 | H | 1046.5 | 1911 | 12 | 103 | g | 2408 |
保存のときに表示されるREM文
10 'MUSIC
ドレミファソラシドの音データ
ABCDEFGHの順
20 LET[0],2273,2025,3822,3405,3034,2863,2551,1911
♯♭の音データ
abcdefgの順
30 LET[8],2145,2145,3608,3214,3214,2703,2408
L 音の長さ
N 間隔
P 矩形波の比
O オクターブ
40 L=10:N=2:P=50:O=20
50 M="C-D-E-F-G-A-B-H-":GSB@P
60 M="CcDdEFfGgAaBH":GSB@P
70 END
1文字読み出し
80 @P:C=PEEK(M):M=M+1:F=0
"ならデータ終端
90 IFC=34OUT5,0:RTN
< オクターブダウン
100 IFC=60O=O/2:GOTO@P
> オクターブアップ
110 IFC=62O=O*2:GOTO@P
− 音を伸ばす @Lへ
120 IFC=45GOTO@L
_ 休符 音を止める
130 IFC=95OUT5,0:GOTO@@L
ABCDEFGHのデータを配列から
140 IF(C>64)*(C<73)F=[C-65]
abcdefgabのデータを配列から
150 IF(C>96)*(C<104)F=[C-89]
音データでなければ@Pへ
160 IFF=0GOTO@P
PWM5から音出す
170 F=F/O:PWM5,F*P/100,F
L-N 音を出して待つ
180 @L:WAITL-N
次が−でなければ音を止める
190 IFPEEK(M)<>45OUT5,0
次の音まで待つ
200 WAITN:GOTO@P
+--------+---------+---------+--
HTML <p class="jam"> +--------+---------+---------+--<br> </p> CSS .jam { width:640px; font-size: 30px; line-height: 30px; letter-spacing:3px; white-space:pre-wrap; word-break:break-all; border: 30px solid #000000; font-family: Consolas, 'Courier New', Courier, Monaco, monospace; color: #ffffff; background-color:#000000; }