笛

Scratchで楽器を作ってみましょう。本連載は、親子で読むプログラミング初心者向けの学習サンプルになっています。
はじめに
本連載は、プログラミング学習に関心のある保護者の方が、お子さま(小学3年生以上)と一緒に読むことを想定して書いています。
なるべく分かり易く解説するように努めていますが、”Scratch (以下分かりやすく日本語で「スクラッチ」と書きます) ”が何であるか、どのように操作するのか、という内容については、過去の記事をご覧ください。
課題と目標
今回は、スクラッチの音楽(楽器)の機能に慣れ親しむために、「笛」を作ってみましょう。まず、ご自身で笛について調べてみてください。フリー百科事典『ウィキペディア(Wikipedia)』で調べると、実に様々な種類の笛があることが分かります。
今回はスクラッチの操作方法についてはほとんど触れず、アイデアをどのように形にするか、ということを主に書いていきます。
僕の調べたこと
以前、「ロバの音楽座」という楽団の演奏を聞きに行ったことがありました。そのとき聞いた話では、奏者が太鼓を叩きながら笛を演奏するなど、二つの動作を同時にできるように、「片手笛」というような類の伝統的な笛が、世界各地にあるそうです。
その後、何かの付録の玩具の笛を手にしたですが、それは押さえる穴が3つあって、「ド」の音から次の「ド」の音まで出せる仕組みになっていました。
なるほど、穴が3つの笛であれば、確かに片手で使える訳ですね。では今回は、「穴が3つの笛」を作ってみましょう。
実践
笛の操作を考える
笛は、息を吹き込むと音が出ます。そして指で穴を押さえると、様々な音程を表現できます。つまり、息を吹き込むキーと、穴を押さえるキーを、キーボードで割り振れば良いですね。
また鋭く息を吹き込むと、1オクターヴ高い音が出ます。この操作も何らかのキーに役目を割り振ると良いでしょう。
- 息を吹き込む => スペースキー
- 穴を押さえる => 1~3キー
- 鋭く息を吹き込む => zキー + スペースキー
笛の運指を考える
穴の名前を1~3とします。「ド」の音から次の「ド」の音まで出せる仕組みにするためには、次のように考えます。数値はその音程を表します。
- 3つの穴を全て押さえる => ド (60)
- 2と3の穴だけ押さえる => レ (62)
- 3の穴だけ押さえる => ミ (64)
- 1と3の穴だけ押さえる => ファ (66)
- 1と2の穴だけ押さえる => ソ (67)
- 2の穴だけ押さえる => ラ (69)
- 1の穴だけ押さえる => シ (71)
- 全て解放 => ド (72)
プログラム
こんな具合に出来ました。

実際にブロックを組み立てた作品を、以下のリンクから見ることができます。

https://scratch.mit.edu/projects/393667553/
ここまでお読みくださり、誠にありがとうございました。