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

2019/03/25 15:30:34

MixJuice GET URL : kidspod.club/mj/775

IchigoPiano PWMで正確な音程

PWMコマンドで正確な音程で鳴るピアノ

PCで表示できない文字は ~16進数に置換してあります。
こちらで送信できます。
http://kidspod.club/program/default.html?id=759
~16進数を置換してIchigoJamに送信するエクセルマクロ


OUT5に圧電サウンダを接続します。P=でポートの変更ができる。

キーボードの手前二段が鍵盤になっています。
キーを押すと音が鳴ります。決められた時間、音が鳴ると止まります。
Q:オクターブダウン W:オクターブアップ
音の設定がないキーを押すと音は止まります。
123:音の長さの設定
456:矩形波デューティー比・音色の設定

平均律で周波数・波長をミリ秒単位*10の値で計算

キーを離すと止まるようにするには、キーボードではなくスイッチを使った鍵盤を製作する必要があります。Coming soon.

  • 1
  • 1

SOURCE CODE

10 'IchigoPiano
20 CLS:P=5:OUTP,0
30 ?"   ~FF IchigoPiano ~EE ":?
40 FORI=0TO3
50 ?"~92 ~92 ~92 ~92 ~92 ~92~92 ~92 ~92 ~92 ~92~92 ~92~92 ~92 ~92  ~92"
60 NEXT
70 ?"~92 ~92S~92 ~92 ~92F~92~92G~92 ~92 ~92J~92~92K~92~92L~92 ~92  ~92"
80 ?"~92 ~9A~97~9B ~92 ~9A~97~9B~9A~97~9B ~92 ~9A~97~9B~9A~97~9B~9A~97~9B ~92  ~92"
90 FORI=0TO2
100 ?"~92  ~92  ~92  ~92  ~92  ~92  ~92  ~92  ~92  ~92  ~92"
110 NEXT
120 ?"~92Z ~92X ~92C ~92V ~92B ~92N ~92M ~92, ~92. ~92/ ~92"
130 ?"~9A~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~96~91~91~9B"
140 O=20:T=10:H=50
150 @LP:K=INKEY()
160 IF(M>0)*(TICK()>=T)OUTP,0
170 IFK=0GOTO@LP
180 IFK=69OUTP,0:END
190 IFK=81O=O/2:GOTO@LP
200 IFK=87O=O*2:GOTO@LP
210 IFK=49T=5:GOTO@LP
220 IFK=50T=10:GOTO@LP
230 IFK=51T=20:GOTO@LP
240 IFK=52H=5:GOTO@LP
250 IFK=53H=25:GOTO@LP
260 IFK=54H=50:GOTO@LP
270 F=0
280 IFK=90F=4546
290 IFK=83F=4290
300 IFK=88F=4050
310 IFK=67F=3822
320 IFK=70F=3608
330 IFK=86F=3405
340 IFK=71F=3214
350 IFK=66F=3034
360 IFK=78F=2863
370 IFK=74F=2703
380 IFK=77F=2551
390 IFK=75F=2408
400 IFK=44F=2273
410 IFK=76F=2145
420 IFK=46F=2025
430 IFK=47F=1911
440 IFK=58F=1804
450 IFK=92F=1702
460 IFF=0OUTP,0:GOTO@LP
470 F=F/O:PWMP,F*H/100,F:CLT
480 GOTO@LP

COMMENT