上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
ichigojamの1.0.2βから追加されたPWM機能で2和音音楽をやってみました。

PWM2系統による和音実験です。

(Faebookでのご指摘によると、PWM機能が搭載されているのは1.0.2 beta11から1.1.0 beta1ということです。この記事ではichigojam-1.1b5_jpmnをFacebook ichigojamグループからダウンロードして使っています。)

ハードは非常に簡単で、圧電ブザーの2端子をOUT3,OUT5に繋ぐだけです。
圧電ブザーは大きめの物を使った方が音がよくなるようです。この写真は秋月電子で2個100円の物です。



これで、PWM3,PWM5命令で異なるパートを出力します。

音は動画で見てください。



「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">



ソースをコピーします。
まずは音階定義と「さくらさくら」の楽譜定義。音階定義は音程ごとの周波数に対応したPWM周期を配列に入れます。
楽譜はPCGエリア#700-#7FFに置きました。このため定義が書いてあったら壊してしまうのでご注意ください。

10 let[0],1,909,858,810,764,722,681,643,607,573,541
20 LET [11],510,482,455,429,405,382,361,341,321,303
30 LET [21],286,270,255,241,227,215,202,191,180,170
40 LET [31],161,152,143,135,128,120,114,107,101,96
50 LET [41],90,85,80,76,72,68,64,60,57,54,51,48
60 POKE #700,25,8,25,8,27,16,25,8,25,8,27,16,25,8,27,8
70 POKE #710,28,8,27,8,25,8,27,4,25,4,21,16,20,8,16,8
80 POKE #720,20,8,21,8,20,8,20,4,16,4,15,16,25,8,27,8
90 POKE #730,28,8,27,8,25,8,27,4,25,4,21,16,20,8,16,8
100 POKE #740,20,8,21,8,20,8,20,4,16,4,15,16,255,255
200 POKE #780,0,16,0,4,32,4,28,4,27,4,0,16,0,4,32,4
210 POKE #790,28,4,27,4,0,4,20,4,0,4,20,4,0,4,20,4
220 POKE #7A0,0,4,20,4,0,4,20,4,0,4,20,4,0,4,30,4
230 POKE #7B0,28,4,21,4,20,4,0,4,0,24,0,16,0,4,32,4
240 POKE #7C0,33,4,32,4,0,4,20,4,0,4,20,4,0,4,20,4
250 POKE #7D0,0,4,20,4,0,4,20,4,0,4,20,4,0,4,30,4
260 POKE #7E0,28,4,21,4,20,4,0,4,0,8,0,16,0,16,0,4,32,4,33,4,32,4,255,255


次に演奏プログラム。各パートの音階と長さを取出しながらPWM操作をします。
10 A=#700:B=#780:C=0:D=0:E=0:F=0
15 '********* PART1 0 IF A=0 GOTO 120
20 IF A=0 GOTO 120
30 IF D>0 GOTO 60
40 C=PEEK(A):D=PEEK(A+1):A=A+2
50 IF C=255 A=0:PWM 3,1,1 ELSE PWM3,[C]/2,[C]
60 D=D-1:IF D=1 :PWM 3,1,1
115 '********* PART2 **********
120 IF B=0 GOTO 200
130 IF F>0 GOTO 160
140 E=PEEK(B):F=PEEK(B+1):B=B+2
150 IF E=255 B=0:PWM 5,1,1 ELSE PWM5,[E]/4,[E]
160 F=F-1:IF F=1 :PWM 5,1,1
200 WAIT 7:IF A>0 OR B>0 GOTO 20
210 END


データ形式や原理説明は時間ができた時に別記事で解説いたします。

また、やりようによってはエンベロープ等も付けられそうなので、もう少し改善したいと思います。

それではまたです。






2015.10.07 Wed l ICHIGOJAM l コメント (0) l top

コメント

コメントの投稿












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。