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

2019/06/19 12:12:01

MixJuice GET URL : kidspod.club/mj/865

IchiRina イチゴオカリナ

マイクをフーフー吹いて鳴らすオカリナ

4穴オカリナの運指でドレミファソラシドの8音を鳴らします。
PWMを使い、正確な平均律で鳴ります。

タクトスイッチはOUT1,2,3,4 を IN 5,6,7,8 に設定して使用
BTNをANA(9)として用いて、マイクの出力からアナログ値を得ています。
音が入力されると、0~1024の数値が、無音では500前後の数値が得られるので、3回分を合計して判定しています。

リストの ~16進数はPCで表示できない●○です。

  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

SOURCE CODE

10 'IchiRina
20 FORI=1TO4:OUTI,-1:NEXT
30 LET[0],191,170,152,143,128,114,101,96
40 CLS:LC5,0:?"IchiRina"
50 LC5,3:?"~E9 ~E9  ~E9 ~E8  ~E9 ~E9  ~E9 ~E8"
60 LC5,4:?" ド   レ    ミ    ファ"
70 LC5,5:?"~E9 ~E9  ~E9 ~E9  ~E9 ~E8  ~E9 ~E8"
80 LC5,9:?"~E8 ~E8  ~E8 ~E8  ~E8 ~E9  ~E8 ~E8"
90 LC5,10:?" ソ    ラ    シ    ド"
100 LC5,11:?"~E9 ~E9  ~E9 ~E8  ~E8 ~E8  ~E8 ~E8"
110 @LP
120 D=!IN(5)+!IN(6)*2+!IN(7)*4+!IN(8)*8
130 IFD=15E=0
140 IFD=14E=1
150 IFD=13E=2
160 IFD=12E=3
170 IFD=10E=4
180 IFD=8E=5
190 IFD=1E=6
200 IFD=0E=7
210 V=ABS(ANA(9)-500):C=B:B=A:A=V:V=A+B+C
220 IF(F=0)AND(V>800)PWM5,[E]/2,[E]:F=1
230 IF(F=1)AND(V<300)OUT5,0:F=0
240 GOTO@LP

COMMENT

Kidspod運営チーム
Kidspod運営チーム2019/07/04 16:36:20

ボタンとマイクでオカリナ! それにこれは、音痴を直すプログラムを使っているのでしょうか。このアイデアはすごいですね……!