Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/11/28 18:26:40

MixJuice GET URL : kidspod.club/mj/676

ジングルベル PWM_MUSIC

OUT 5 に圧電サウンダを接続して、PWMで音を鳴らします。IchigoJamBASICのPLAY文はちょっと音痴です。PWM文で音を出すことで正確な周波数で音を出しています。
MMLをBASICで処理するために、PLAY文よりも簡略化しています。
テンポ・音符の長さはL=で1/60秒を単位として設定します。
N=は音を区切るための無音の時間 P=パルス幅の%
CDEFGAB は音符 cdfgaは半音高い音符
-で音を伸ばします。_は休符
<=> オクターブ ダウン リセット アップ

演奏中にエンターを押すとOUT5,0で音を止めて終了します。


  • 1
  • 1

SOURCE CODE

10 'JINGLE_BELL
20 CLS:PRINT "JINGLE BELL"
30 L=10:N=2:P=20
40 M="EEE-EEE-EGCDE---":GSB@PL
50 M="FFFFFEEEEDDCD-G-":GSB@PL
60 M="EEE-EEE-EGCDE--_":GSB@PL
70 M="FFFFFEEEGGFDC---":GSB@PL
80 END
90 @PL:O=20:I=0
100 @RD:C=PEEK(M+I):I=I+1:F=0
110 IFC=34OUT5,0:RTN
120 IFC=60O=O/2
130 IFC=61O=20
140 IFC=62O=O*2
150 IFC=95GSB@RE
160 IFC=45GSB@WT
170 IFC=67F=3822
180 IFC=99F=3608
190 IFC=68F=3405
200 IFC=100F=3214
210 IFC=69F=3034
220 IFC=70F=2863
230 IFC=102F=2703
240 IFC=71F=2551
250 IFC=103F=2408
260 IFC=65F=2273
270 IFC=97F=2145
280 IFC=66F=2025
290 IFF>0GSB@NT
300 GOTO@RD
310 @RE:OUT5,0:WAITL:GSB@P:RTN
320 @NT:F=F/O:PWM5,F*P/100,F
330 @WT:WAITL-N:IFPEEK(M+I)<>45OUT5,0
340 WAITN:GSB@P:RTN
350 @P:IFINKEY()=10OUT5,0:END:ELSERTN

COMMENT