Scratchでは音を出すことのできるブロックを並べることで楽曲を演奏することができます。
音楽を奏でるには、メトロノームを使ってピアノの鍵盤を叩くのと同じように音符やテンポを意識する必要があります。
Scratchに本物の鍵盤があるわけではありませんが、ブロックの中に鍵盤を模したソフトウェア鍵盤が用意してあって、鍵盤の1つを選択するとその鍵盤に割り当てられた音が設定できるようになっていて、合わせて音の長さ(拍)を設定することで好きな音を出すことができるようになっています。
ただし、音をブロックに設定するときは『ド・レ・ミ』や『C・D・E』などの文字は使えないので数字に置き換えて設定する必要があります。
また、テンポについては音楽全体のスピードを早めたり遅くしたり調整することができます。
これらは音楽カテゴリーのブロックを使う必要がありますが、少なくとも音符などの意味を知らないとどのように使えば良いか分からないと思いますので、今回はScratchで音楽を演奏するために最低限必要な知識についてまとめました。
この記事では、音楽カテゴリーにあるブロックの基本的な使い方と最低限必要な知識について解説しています。
「音楽」拡張機能の呼び出し
音楽カテゴリーのブロックは、Scratchでプロジェクトを作ったばかりの初期状態では表示されていないので拡張機能から呼び出します。
「音楽」カテゴリーを選択すると下の図のようにブロックが表示されるようになります。
各ブロックの説明
(1).「~のドラムを~拍鳴らす」ブロック
「~のドラムを~拍鳴らす」ブロックは、指定した楽器を指定した時間(拍)演奏するブロックです。楽器の選択はドロップダウンメニューから行います。楽器はドラム系以外にも、トライアングル、ボンゴ、カウベル、ビブラフォンなど色々な楽器を選ぶことができます。
選べるMIDI楽器の一覧 |
---|
(1)スネアドラム |
(2)バスドラム |
(3)サイドスティック |
(4)クラッシュシンバル |
(5)オープンハイハット |
(6)クローズハイハット |
(7)タンバリン |
(8)手拍子 |
(9)クラーベ |
(10)ウッドブロック |
(11)カウベル |
(12)トライアングル |
(13)ボンゴ |
(14)コンガ |
(15)カバサ |
(16)ギロ |
(17)ビブラスラップ |
(18)クイーカ |
(2).「~拍休む」ブロック
「~拍休む」ブロックは、スクリプトの実行を指定した拍の数だけ停止するブロックです。なお、1拍の長さ(時間)は「テンポを~にする」ブロックで決まりますのでここでは拍数だけ入力します。
(3).「~の音符を~拍鳴らす」ブロック
「~の音符を~拍鳴らす」ブロックは、指定した高さの音を指定した拍数鳴らすブロックです。このとき、「楽器を~にする」で選択された楽器のMIDI音源をつかって音を鳴らします。
試してみたところ、音符に設定できる数値の範囲は 0~130 までのようです。
(4).「楽器を~にする」ブロック
「楽器を~にする」ブロックは、「~の音符を~拍鳴らす」ブロックを実行したときに鳴るMIDI音源の楽器の種類を選択するするブロックです。
選べるMIDI楽器の一覧 |
---|
(1)ピアノ |
(2)電子ピアノ |
(3)オルガン |
(4)ギター |
(5)エレキギター |
(6)ベース |
(7)ピチカート |
(8)チェロ |
(9)トロンボーン |
(10)クラリネット |
(11)サクソフォン |
(12)フルート |
(13)木管フルート |
(14)バスーン |
(15)合唱団 |
(16)ビブラフォン |
(17)ミュージックボックス |
(18)スチールドラム |
(19)マリンバ |
(20)シンセリード |
(21)シンセバッド |
(5).「テンポを~にする」ブロック
「テンポを~にする」ブロックは、演奏スピードを指定した値に設定するブロックです。テンポの値はBPM(Beats Per Minute:1分間の拍数)で指定します。また、テンポはスプライト間で共有されます。
(6).「テンポを~ずつ変える」ブロック
「テンポを~ずつ変える」ブロックは、演奏スピードを早めたり、遅めたりするのに使用します。テンポを指定された分変更するブロックです。値はBPM(Beat Per Minutes:1分間あたりの拍数)で指定します。
(7).「テンポ」ブロック
「テンポ」ブロックは、設定したテンポ値(BPM)が格納されている変数です。
音階・音符・テンポの基礎知識
Scratchで音楽を演奏するうえで最低限知っておきたい知識を記載しています。
(1).音階(音の高さ)について
音階というと本来はスケールのことですが、ここでは小学校の音楽でも最初に習うハ長調(Cキー)のドレミファソラシドを基準にします。
Scratchにおける音階(音の高さ)は、下の図の鍵盤に描かれているように数字で表されています。「~の音符を~拍鳴らす」ブロックにはこの数字を入力することで音の高さを指定することができます。
真ん中のドの値が60になっていて、数字が1ずつ上がると半音ずつ上がっていきます。
音には12種類あるので、60のドの1オクターブ上のドは12を足して”72″と計算で求めることも可能です。
(2).音符と休符について
音符は音を出すための記号、休符は音を出さないための記号です。
ここではもっとも馴染みのある4分音符を1拍とするパターンを表にまとめています。
これを見ると例えば、4分音符も4分休符も拍数は1(基準)で同じ長さになっています。ここから音符や休符は、拍数(音の長さ)を表す記号だということが分かると思います。
なお、付点音符や付点休符の拍数は、付点がつかない場合の1.5倍の長さになっています。
音符・名称 | 拍数(長さ) | 休符・名称 | ||
---|---|---|---|---|
全音符 | 4 | 全休符 | ||
2分音符 | 2 | 2分休符 | ||
4分音符 | 1 | 4分休符 | ||
8分音符 | 0.5 | 8分休符 | ||
16分音符 | 0.25 | 16分休符 | ||
付点全音符 | 6 | 付点全休符 | ||
付点2分音符 | 3 | 付点2分休符 | ||
付点4分音符 | 1.5 | 付点4分休符 | ||
付点8分音符 | 0.75 | 付点8分休符 |
(3).テンポについて
テンポとは1分間に打つ拍の数のことを言います。単位はBPM(Beats Per Minute)で表します。
たとえばテンポ=120bpmだとしたら、4分音符を1分間に120回鳴らすことのできる速さ、1拍あたり0.5秒で打つ速さという意味になります。テンポ=60だったら時計の秒針と同じ速さということですね。
つまり、数字が大きければ速い曲に、小さければ遅い曲になります。
ちなみに楽譜などで下の図のような形を見たことはないでしょうか?
4と4が分数のように縦に並んでいる部分と4分音符=120と書いてある部分です。分母の4が4分音符を、分子の4は1小節に分母の音符が4つ入ることを表していて、曲全体で何小節あるかが分かればこの曲の終わりまでの時間が計算できます。
音楽ブロックを使ってみる
ここでは実際に音を鳴らすことのできる2つの「を~拍鳴らす」ブロックの使い方を見ていきます。
(1).「~の音符を~拍鳴らす」ブロックの使い方
最初にテンポと楽器を指定します。そのあとに音階(音の高さ)と拍(音の長さ)を数字で入力します。適宜「~拍休む」ブロックで休符をはさんでメロディーを作っていきます。
下図のブロックは、ドミソドという音階を休符をはさんで1小節分、鳴らしています(拍数を全部足すと4になっている)。最後のドは始めのドから1オクターブ上の音です。
このメロディーは、放送の呼び出しの時によく聴く「ピンポンパンポン♪」の音が鳴ります。
「楽器を~にする」ブロックで楽器を選ぶときは、上の図のようにプルダウンから楽器名で選択するのでも良いですし、下の図のように変数に入れた数字でも指定することができます。
(2).「~のドラムを~拍鳴らす」ブロックの使い方
「~のドラムを~拍鳴らす」ブロックの場合は、「~の音符を~拍鳴らす」ブロックとは違って鳴らすタイミングごとにドラムの種類を選ぶ必要があります。
下図のブロックは、バスドラムやスネアドラムといった種類の楽器を選び、休符をはさんで1小節分、鳴らしています(拍数を全部足すと4になっている)。
このスクリプトを動かすと「ドッ タンッ ドッ ドッ タンッ」という8ビートのドラムが鳴ります。
ドラムの種類を選ぶときは、上の図のようにプルダウンから名前で選択するのでも良いですし、下の図のように変数に入れた数字でも指定することができます。
まとめ
今回は「音楽」カテゴリーのブロックを使ううえで最低限必要な知識について説明しました。
以下にこの記事のポイントをまとめます。
- 音階(ドレミ)は数字で設定する(範囲は0~130まで)
- 音符と休符の読み方を理解する
- テンポは曲全体の速さを決める、設定した値はスプライト間で共有される
- 音を鳴らせるのは「~の音符を~拍鳴らす」ブロックと「~のドラムを~拍鳴らす」ブロックの2つ
- 楽器やドラムの種類の選択はプルダウン以外に変数に入れた数字でも可能
「音楽」カテゴリのブロックは、楽器演奏・バンド演奏・音ゲーなどで活躍するブロックです。ソフトウェアピアノやソフトウェアギターなどを作ることもできますし、ピアノタイルなどの音ゲーも再現できるでしょう。
次の記事ではこれらのブロックを使って実際に楽曲を作ってみたいと思います。