LoginSignup
0
0

Playableなメロディーを宣言して鳴らす

Last updated at Posted at 2023-12-15

一般的な音楽プログラム

micro:bitでは、音を鳴らすことができ、一般的に 音を鳴らす ブロックを使います。

micro:bitのプログラムで童謡を聴こう♪(マイクロビット不要) の記事では、 音を鳴らす ブロックをつなぎ合わせた音楽プログラムが季節別の童謡リストとして紹介されています。

雪やこんこん の音楽プログラム(SnowComeCome)
image.png

Playableなメロディーとは

音を鳴らす ブロックをつなぎ合わせた場合、途中でメロディーを止めるためには、止める処理をコーディングする必要があります。
公式リファレンスの Making melodies では、 文字列の配列 を使ったメロディー(Musical notes)が紹介されており、 全ての音を停止する ブロックを使えば、このメロディーを途中で止めることができます。

文字列の配列
image.png

しかし、文字列の配列を使ったメロディー(Musical notes)では、そのコーディングが少し煩雑です。次の記事の「ブロックでメロディーを組み立てる」 で紹介されているように ユーザー定義の拡張機能(pxt-melody-playable) を使えば、 音を鳴らす ブロックのようなコーディングが可能です。

サンプル・プログラム

micro:bitのプログラムで童謡を聴こう♪(マイクロビット不要) の記事で紹介されている次の2つのプログラムを元に Playableなメロディー として宣言して鳴らしてみました。

image.png

Aボタン を押下すると 「ジングルベル」 のメロディーが 繰り返し鳴りBボタン を押下すると 「雪やこんこん」 のメロディーが 1回だけ鳴ります。
AボタンとBボタンとを同時に押下するとメロディーが 止まります。

ブロックの説明

ユーザー定義の拡張機能を追加し、次のブロックを使ってコーディングしています。

ブロック 関数名 説明 備考

g6666.png

melody.melodyPlayable melody.declareMelodyブロックで宣言したメロディーを鳴らす。 メロディーのidを指定する。

g7461.png

melody.declareMelody メロディーを宣言する。 メロディーにidを付与する。

g6700.png

melody.scale 音階(scale)を追加する。 内部の配列に追加する。

g6728.png

melody.rest 休符を追加する。 内部の配列に追加する。

おわりに

micro:bitで音を鳴らしてみました。

  • 季節別の童謡で、一般的な音楽プログラムを確認しました。
  • 途中でメロディーを止めることのできるPlayableなメロディーを紹介しました。
  • ユーザー定義の拡張機能(pxt-melody-playable) を使ってPlayableなメロディーを宣言して鳴らしてみました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0