micro:bit で電子オルゴール その1
投稿者:マーチン 2020年5月6日
カテゴリ:障碍者全般::micro:bit
カテゴリ:障碍者全般::micro:bit
micro:bit には、20種類の楽譜が最初から入っていて、それらから選択するだけで、音楽を演奏することができます。自分の好きな曲のデータを入れて演奏させる方法を調べてみたら、なんとできることが分かりました。この情報はあまりWeb上でも見かけないので、初耳学でした。拡張機能でやる方法もありそうですが、MakeCodeの標準機能でできます(古いバージョンではできなかったのかも)。音楽が苦手な自分にとって、曲データを作るのは大変でしたが、8曲作りました。
2020/5/18 第2弾 8曲を追加しました。
●曲データの作り方
https://makecode.microbit.org/reference/music/begin-melody より
あなた自身のメロディを演奏したい場合は、内蔵のメロディの代わりにメロディを作曲して使用することができます。
メロディは音符の連続で、それぞれが少量の時間、次々と演奏されます。メロディの音符は、文字列の配列の中に保持されています。配列の中の各弦は、メロディの音符です。音符を、その音符が演奏する時間と一緒に組み立てて、メロディを作ります。旋律は、このような形になります。
NOTE [octave][:duration] 例: ['g5:1']
リファレンス メモ micro:bit も参考にしてまとめると、
記述例
あなた自身のメロディを演奏したい場合は、内蔵のメロディの代わりにメロディを作曲して使用することができます。
メロディは音符の連続で、それぞれが少量の時間、次々と演奏されます。メロディの音符は、文字列の配列の中に保持されています。配列の中の各弦は、メロディの音符です。音符を、その音符が演奏する時間と一緒に組み立てて、メロディを作ります。旋律は、このような形になります。
NOTE [octave][:duration] 例: ['g5:1']
リファレンス メモ micro:bit も参考にしてまとめると、
記号 | 説明 | 追加情報 |
---|---|---|
NOTE | 音階 C~G・A~B:ド~シ R:休符 | b:フラット #:シャープ を後ろに付ける |
octave | オクターブ | 省略時は、直前のオクターブ |
duration | 長さ | 省略時は、直前の音の長さ |
記述例
音 | 長さ | 表記 | 周波数 |
---|---|---|---|
真ん中のミ | 1拍 | E4:4 | 330 |
下のド# | 1/2拍 | C#3:2 | 139 |
上のシb | 2拍 | Bb5:8 | 932 |
●曲の演奏方法
◆標準で選択できる20曲
◆配列変数を使った指定方法
上記の記述方法で、音符のデータを配列変数に代入すれば、標準曲と同じように変数名を指定することで演奏できます。
●サンプルプログラム
◆関数、イベント処理
・演奏が終了するのを待つ関数・メロディが終わったイベントが発生したら変数の値を変更する処理
◆メインルーチン(一部)
◆初期設定、曲データ(一部)
ブロックでこのデータを入力することはほとんど不可能です。画面を [ブロック] から [JavaScript] に切り替えて入力しました。