プログラミング入門

プログラミング初心者のためのScratch(スクラッチ)入門-音編(1)

プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。Scratchで猫の動かし方はわかったけど・・・次にどんなことをしたらいいの?という疑問にお答えするシリーズです。
今回は「音」の基礎編をお届けします。
 
対象は小学校高学年のお子さん向けになっています。小学校低学年のお子さんは、保護者がまず作り、お子さんがプログラムを改造するという方法がおすすめです。
 

1. Scratchの音をマスターしよう

「音」のプログラムブロックは使い方が簡単な上、音を追加するとゲームや作品のクオリティがアップ!音ゲーなど新しいジャンルのゲームを作ったりすることもできます。それでは、音についての詳細を見ていきましょう。
 

1-1. Scratchの音って何?

Scratchには「音」をプログラムの中で使うことができます。Scrach内に標準で次のようなものが用意されています。
 ・効果音
 ・動物の鳴き声
 ・楽器の音
 ・短い音楽
また、自分で音を録音することもできます。これらの音の素材を、Scratch内でBGMとして鳴らしたり、効果音として使ったり、また音そのものを使う音ゲーを作ったりすることができます。
 

1-2. Scratchの音はどんなブロックを使えばいいの?

Scratchの「音」を使うためのブロックとして、以下のようなプログラムブロックがあります。
なんだか似ていて、違いがよくわかりませんね。

 
 
では、これらのブロックの働きや違いを確かめるプログラムを作ってみたいと思います。
 
音ファイルをプログラムに追加します。
「音」というタブから、音を追加できます。音タブでスピーカーのマークを押すと、いろいろな音が選べます。今回は”birthday bells”と”xylo3”という音を追加しました。

 
 
まずこのようなプログラムを作ってみます。

 
 
緑の旗を押すと・・・・あれ?2つの音がまざっていますね。
「○○の音を鳴らす」ブロックは、最初の音が終わるのを待たずに次のプログラムに進むブロックなんですね。
 
つぎにプログラムをこのように変えてみましょう。

 
すると、順番通りに音が流れました。
「終わるまで○○の音を鳴らす」ブロックは、音の再生が終わったら次のプログラムに進むブロックだということがわかりました。
 
 
次はまた新しいプログラムを作ります。
「●の音符を○拍鳴らす」ブロックを使ってみます。

 
緑の旗を押すと・・・「さいた、さいた、チューリップの花が」の曲が流れました。
「●の音符を○拍鳴らす」をたくさん並べると作曲ができちゃうようですね。
 
さきほどのプログラムに新しいブロックを追加します。「テンポ」を100BPMにするブロックです。

 
緑の旗を押すと、音のスピードが早くなりました。
 
 

1-3. Scratchの音ブロックで作曲マシンを作ろう

音を使った作曲マシンです。
https://scratch.mit.edu/projects/209541725/
 

先ほどのチューリップの曲の音を改造し、色々な音がランダム出るようにしました。毎回、違う曲が流れます。
また、ドラムの音を鳴らしてかっこいい雰囲気を出し、動きもつけて躍動感を表現しています。

 
このプログラムはドレミファソラシドだけが使われるように、リストに音の番号を入れてあります。
リストを使うのは、「ドレミファソラシド」だけを使いたい、つまりシャープ(#)やフラット(♭)のついた音を使いたくないためです。
 
▼ド〜ドまでの音の番号の一覧表

▼ド〜ドまでの音の番号を登録したリスト

▼リスト内の番号がランダムに選ばれ、その音を鳴らすプログラム

やってみよう
リストの中の番号を変えてみよう。
プログラムの中のいろいろな数字を変えてみよう。

 

2. Scratchの「音」 基礎編まとめ

Scratchの音ブロックには以下のようなものがあります。
 ・あらかじめ用意されている音を再生するブロック
 ・ドレミファソラシドなど指定した音を、指定した長さで鳴らすためのブロック
 ※このとき、音の指定は「ドレミ」ではなく「番号」で指定します。
 
こんなプログラムで使うことができます。
 ・ゲームに効果音やBGMをつける
 ・音ゲーを作る
 ・作曲をする
 
次回は音を使った応用プログラムにチャレンジしてみましょう。

伴野悠佳 / YUKA TOMONO
この記事の著者伴野悠佳 / YUKA TOMONO
キッズプログラミング講師。東京理科大学大学院卒。元SE。小学生の頃から教育書を読んでいた教育ヲタク。大学では、電池の素材の性質について実験とコンピューターシミュレーションを比較する研究を行っていたことがきっかけでSEになる。出産&育休後、子ども向けプログラミング教室講師(現職)に。