当サイトは2020年小学生のプログラミング必修化に向けて、関連する情報を纏めています。サイトリニューアルしました。

Micro:bit(マイクロビット)で学ぶ 13

Micro:bit(マイクロビット)で学ぶ 13

前回の記事では、ブロックエディターの入力ブロックとmicropythonを対比しながら説明しました。今回は音楽ブロックの紹介です。

当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。

2018年10月26日にブロックエディター(V1)が新しくなりました。ブロックの外観が変わりましたが、使い方はほぼ同じです。当記事は今までのブロックエディター(V0)のブロックを基に記事を作成していますので、新しいV1ブロックエディターのブロックと見た目が異なりますので、ご了承ください。今後、順次新しく追加されたブロック等に対応していきます。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。クラス、関数、モジュールなどは最初は難しいかなという事で説明を省き、サンプルプログラムを通して理解できればと考えています。

音楽ブロックについて

注:実際のmicropython説明記事と、当記事のパラメーター指定について一部異なる点があります。説明記事通りに指定するとエラーする場合がありましたので、Micro:bitでテストして実際に問題なく動いたパラメーター設定にしてあります。今後のmicropyhonのアップデートにより変わる可能性があります。当方でも注意しますが、もし当記事のサンプルプログラムが動かない場合がありましたら、お手数ですが記事一番下の『コメントを残す』から連絡をお願い致します。

 
ブロック micropython
1.音を鳴らす 高さ
microbit13-1
import music
music.play(music, pin0, wait=True, loop=False)
music指定した音のリストをpin0に出力します。music命令を使用するには最初にmusicをimportする必要があります。
pinは、pin0,pin1,pin2のいずれかを指定できます。
wait=Trueで排他処理、Falseで背景処理です。
loop=Falseで1回演奏、loop=Trueで繰り返し演奏です。
musicのリストは、’オクターブ:長さ’で指定します。オクターブは、こちらの表を参考にしてください。長さは、music.set_tempo(ticks=4, bpm=120)で指定します。ticks=4、bpm=120はデフォルトです。オクターブも長さも再度指定するまで引き継がれます。[‘c1:4’, ‘e:2’, ‘g’, ‘c2:4’] はリストの例です。
以下は、ベートーベンの運命の最初の部分を演奏するプログラム
2.音を鳴らす Hz
microbit13-2
music.pitch(oto, nagasa, pin0, wait=True)
otoで指定した周波数の音を、nagasaで指定したms時間、pin0から演奏します。周波数の情報についてはこちらの表を参照してください。
pinは、pin0,pin1,pin2のいずれかを指定できます。
wait=Trueで排他処理、Falseで背景処理です。
music.pitch(262, 1000, pin0, wait=True)はC4の音を1秒間pin0に出力する例です。
以下はF4の音を1秒間pin1に出力するプログラム

3.休符
microbit13-3
1で説明したmusicリストで’r:長さ’で指定します。
以下は、ベートーベンの運命の最初の部分を演奏するプログラム
4.メロディーを開始する
microbit13-4
music.play(music.DADADADUM)
内蔵されている曲DADADADUMを演奏します。他にも多くの曲が含まれています。他の曲の情報については、こちらを参照してください。1と同じパラメーターを指定できます。
以下は、バッハのプレリュードをpin1から1回演奏するプログラム


5.音楽 メロディーの音をだした
microbit13-5

 

現時点、実装されていないようです。継続調査します。
6.拍、テンポ
microbit13-6
microbit13-7

 

music.get_tempo()
ビートとテンポをタプルとして返します。
以下は、ビートとテンポをREPLで印刷するプログラム。変更していないのでデフォルトの120と4が返されます。以下のプログラムを転送後、REPLアイコンを押してからMicro:bitのリセットボタンを押すとREPL画面に結果が印刷されます。
7.テンポを設定する
microbit13-9
microbit13-8
music.set_tempo(ticks=4, bpm=120)
この命令でビートとテンポを設定できます。テンポだけを設定したい場合はmusic.set_tempo(bpm=120) と指定します。増やす場合は増やした分を足した結果を指定します。20足したい場合は140を指定します。
以下は、ビートを6、テンポを180にするプログラム
8.演奏を停止
(ブロック無し)
music.stop(pin0)
指定された端子のすべての音楽再生を停止します。pinはpin0,pin1,pin2を指定できます。
以下は、プレリュードを2秒間だけ演奏するプログラム。2秒間で演奏を止めるためには、music.play命令を背景で実行する必要があります。(wait=False)
9.設定をリセット
(ブロック無し)
music.reset()
ビート、テンポなどをデフォルトに戻します。ticks = 4、bpm = 120、duration = 4、octave = 4 がデフォルトです。

 

音楽ブロックについての紹介は以上です。次の記事ではLEDブロックとループブロックの紹介をします。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


良く解る解る解りにくい部分がある解りにくい 


 

クロームブラウザーをご使用の方へ

当サイトへの訪問ありがとうございます。その際、グーグルクロームブラウザーをお使いの方にお知らせです。グーグルクロームブラウザーでは、2018年7月から、サイトにより以下の表示がブラウザーのアドレスバーに表示されます。当サイトでも表示されますが、心配ありませんのでご安心ください。
SSL案内1
これは、SSLと呼ばれるWebサイトとそのサイトを閲覧しているユーザとのやり取り(通信)を暗号化するための仕組みを使用していないためです。ネットショッピング、銀行サイトではパスワードやクレジットカードの情報を扱いますので、必須の仕組みです。当サイトでは、そのような情報を扱っておりませんので、暗号化は必須ではありませんが、訪問される方により安心していただけるように、SSL化を予定しております。このメッセージはSSL化完了まで念のため表示します。

マイクロビットカテゴリの最新記事