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

2019/05/06 18:53:47

MixJuice GET URL : kidspod.club/mj/822

IchgoJamでプログラミング教育 小学校音楽科"ふしづくり"

IchigoJamを使って、音楽の"ふしづくり"の学習をします。

文法
ドレミファソラシド 12345678
音を伸ばす -
休む 0
1オクターブ高く /
1オクターブ低く \ *

テンポの初期値はL=20 20ミリ秒

バージョンアップしました。
数字の後に ^ + で ド♯レ♯ミ♭ファ♯ソ♯ラ♯シ♭シ
9は乱数で1~8

. F5:RUN を表示して終了

隠しコマンド
L 音の長さ1/60ミリ秒単位
N 音と音の切れ目 <L
P 音色 矩形波のHの割合 1~50%

簡単に指導案を書いてみた。

IchigoJamで"ふしづくり"

0.必要な技能と教師の準備
IchigoJam・電源・キーボード・モニタの組み立ては自分でできること。
キー入力 12345670- LRUN は位置がわかり入力できること。

EEPROMかIchigoJam本体に MUSIC1-2-3.basを保存しておく。

1.導入
IchigoJamに数字を入力して音を鳴らす。教師が見本を示す。
(タイピングが難しい場合は……1文字ずつ画面に表示してから演奏するようにプログラムを作っておく。)

2.準備
1.IchigoJamを用意して、配線をします。
2.OUT5 と GND に、圧電サウンダを挿します。SOUNDではないので注意。
3.EEPROMを挿します。GNDの方向を合わせて、裏表に注意。
4.LRUN 100でプログラムを起動します。
5.1 ENTER で音が鳴ることを確認する。

3.音を鳴らしてみる。
1,2,3,4,5,6,7,8を入力して、ドレミファソラシドの音が鳴ることを知る。
1---2---3--- で音が伸びることを知る。
1020304 で0が休符であること知る。
(/\で音域が変わることを知る。)

4.ふしづくりをする。
ワークシートにふしづくりをする。文字列は32文字までワークシートにマスを書いておく。
(ドレミで書いてから数字に変換させてもよい)
IchigoJamに入力して、自分が作ったメロディをたしかめる。

  • 1
  • 1

SOURCE CODE

10 'MUSIC1-2-3
20 CLS
30 LET[0],3822,3405,3034,2863,2551,2273,2025,1911 
40 LET[8],3608,3214,3214,2703,2408,2145,2145,2025
50 ?" ~FF MUSIC 1-2-3 ~EE ":?
60 ?"~92\~92 ~92~92 ~92 ~92 ~92 ~92~92 ~92~92 ~92 ~92/ ~92-"
70 ?"~92 ~9A~97~9B~9A~97~9B ~92 ~9A~97~9B~9A~97~9B~9A~97~9B ~92  ~92^"
80 ?"~921 ~922 ~923 ~924 ~925 ~926 ~927 ~928 ~920"
90 ?"~9A~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~9B"
100 L=20:N=2:P=50:O=20
110 O=20:LC0,8,1:?CHR$(12);:INPUT "",S:M=#900+32*8:GSB@P:CONT
120 M="":GSB@P
130 END
140 @P:C=PEEK(M):M=M+1:F=0 
150 IFC=46?"F5:RUN":END
160 IF(C=76)GOTO@T
170 IF(C=78)GOTO@S
180 IF(C=80)GOTO@N
190 IFC=0OUT5,0:RTN
200 IF(C=92)+(C=42)O=O/2:GOTO@P 
210 IFC=32:GOTO@P 
220 IFC=47O=O*2:GOTO@P 
230 IFC=45GOTO@L 
240 IFC=48OUT5,0:GOTO@L 
250 IFC=57C=RND(8)+49
260 IF(C>48)*(C<57)F=[C-49] 
270 S=PEEK(M):IF(S=94)+(S=43)F=[C-41]:M=M+1
280 IFF=0GOTO@P 
290 F=F/O:PWM5,F*P/100,F 
300 @L:WAITL-N 
310 IFPEEK(M)<>45OUT5,0 
320 WAITN:GOTO@P 
330 @T:INPUT "L=",L:RTN
340 @S:INPUT "N=",N:RTN
350 @N:INPUT "P=",P:RTN

COMMENT