音楽をプログラミングしよう
1. 目的・ねらい
単純な決まりに従った演奏命令を理解し、入力→演奏→修正のループを体験することで、コンピュータを命令通りに動かすことに興味を持ってもらうことを狙いとします。

2. 実施内容の概要
演奏命令(楽譜情報+α)を入力するとそれに従って演奏させることができるソフトウェアを使用します。
まず演奏命令の決まりを理解し、音楽経験の影響が小さいリズムを使って入力・演奏を体験します。その後ドレミの音階を含む演奏に進み、慣れたところで思い思いの曲演奏にチャレンジしてもらいます。

3. 講師用の実施手順の詳細
3.1 準備することがら、物品など
・ 教材システム「Text Score」: サーバで動作させ、参加生徒分のアカウントを準備します。参加生徒同士が自分以外のデータを見られても問題がない場合には一つのアカウン
トを全員で利用することもできます。クラス中での無駄な操作を避けるため、曲情報までは事前に作成しておくのがいいでしょう。
・ 参加生徒それぞれに Windows パソコンを準備します。画面読み上げソフトと Web ブ
ラウザ(Firefox, Chrome, IE のうち読み上げ可能なもの)を利用できるようにします。
・ ドレミの音階を使った入力を行う場合は参考として利用できる題材をその生徒が読める形で準備しておくのもよいでしょう。よく知られた曲を仮名書きしたものなど。
・ 最初の紹介用、ドラムの課題用などにあらかじめ適当な演奏を用意しておくとよいでしょう。
Text Score の全機能の説明はこちらに掲載しています。必要に応じてご確認ください。
http://ushiushix.github.io/text_score/Text Score はサクセスネット事務局で管理するものを利用します。また以下のサイトでプログラムを公開しています。 https://github.com/ushiushix/text_score/
3.2 実施手順の詳細
3.2.1 イントロダクション
Text Score で何ができるかの簡単な紹介、サンプル曲の提示などを行い、これから何を実現しようとするかについてイメージを持ってもらいます。
ブラウザ上の操作は基本的に Tab キー、矢印キー、Enter キーでできることを伝えます。
3.2.2 ドラムトラックの導入
曲を開いた状態から「ドラムを追加」を選んで Enter を押します。すると楽譜の編集画面になります。
ここで「打楽器」まで移動して上下矢印キーで選択させ、いろいろな打楽器があることを確認します。
次にステップの欄に移動し、1 拍が 48 であること、その半分は 24、倍は 96 という風になっていることを伝えます。
「長さ」の欄はドラムでは使いません。
「追加」ボタンを 4 回押します。
楽譜欄に移動して内容を確認します。選んだ楽器を示す数値とステップの 48 が 4 行挿入されていることを確認し、これが演奏命令になっていることを伝えます。
「保存」を押して保存したら、「再生」を押して演奏させてみます。各自選んだ打楽器が 4回演奏されることを確認します。
3.2.3 ドラムトラックで変化を出す
楽譜欄の内容を削除し、今度は打楽器音を拍ごとに変えて追加してみます。追加したら保存して再生させます。各自違った打楽器が順に再生されてオリジナリティーが出てきます。
再度楽譜欄をクリアし、今度はステップを拍ごとに変えて入力します。保存し再生させると、単純な 4 拍とは違ったリズムパターンが演奏されます。
ステップを小さくすると間隔が短くなります。
0 にすると二つ同時に鳴らせることに気がつく生徒がいるかもしれません。

3.2.4 ドラムトラックで遊ぶ
課題のリズムを聞いてもらい、それぞれの打楽器がどれにあたるかを知らせた上で、個々人で同じように演奏できる演奏命令を組んでもらいます。
それができたら今度は自由に 4 拍分のパターンを入力してもらいます。最後にそれぞれの演奏を紹介してもらいます。
3.2.5 楽器トラックの導入
一度「曲に戻る」で曲情報に戻り、「楽器を追加」を押します。楽譜の演奏画面になります。
楽器の選択ができ、グランドピアノを始めとしていろいろな楽器から選ぶことができます。
また、先ほどは「打楽器」を選ぶ箇所だったところが音符になっていて、「c4」などとなっています。最初のアルファベット「cdefgab」が「ドレミファソラシ」を示し、後ろの 4は第四音列、ピアノでいうと真ん中のオクターブであることを説明します。c1 はとても低いド、c7 はとても高いドになっています。
「長さ」は鍵盤を押している時間に当たり、「-」だとステップの分だけずっと押していることになるということを説明します。
ステップを 0 にすると和音が作れることに気がつく生徒もいるかもしれません。
ドラムのところで操作には慣れていることを想定し、各自で「ドレミファソラシド」を入力してもらいます。ステップは自由に変えてもらってもいいでしょう。
3.2.6 楽器トラックで遊ぶ
ここまでで学んだことを使って楽器の演奏命令を自由に入力してもらいます。いきなりドレミを思いつく生徒とそうでない生徒がいると思いますので、あらかじめドレミで仮名書きした短い楽譜などを用意しておくとそれぞれが課題達成に近づけるかもしれません。
余裕があれば、先ほど入力したドラムトラックと合わせて演奏させてみることもできます。
この際、ドラムトラックにループ命令を加えて繰り返させると曲全体にわたって演奏させることができます。
３.３ 注意すべき点
・ コンピュータの利用スキルや理解力によって進度に差が出やすいです。発表などもある

ため、進みの遅い生徒には適宜補助をしながら足並みをそろえる方がよいでしょう。
・ 説明では選択入力方式を示しましたが、楽譜欄に直接入力する方が効率よく入力でき、プログラミングしている感覚も味わえます。編集操作への習熟度によって途中から直接編集に切り替えてもよいでしょう。
3.4 到達目標
・ 演奏命令の仕組みを理解し、それを使ってコンピュータに指示することができる。
・ 音符とステップの組み合わせを使って意図したリズムを演奏する演奏命令、メロディーを演奏させる演奏命令が作れる。

４．生徒用資料
４.１ 概要と目的、目標の説明
人間がコンピュータに思った通りの仕事をさせるためにコンピュータの理解できる言葉で指示をするのがプログラミングです。
ここでは画面を見られない視覚障害者にとって、コンピュータへの指示の結果を直接的に感じられるものの一つとして音楽を取り上げます。
ワークショップでは音符、次の音までの時間、音の長さからなる独自の記述を用いてコンピュータに音楽を演奏させながら、簡単なコーディングを通して「コンピュータに指示して動かすこと」を体験します。
４.２ 実施内容の説明
４.３ 事前資料
４.４ 当日ワークショップ内で使う資料
別紙を参照。

Text Score での楽譜の書き方-- 「音楽をプログラミングしよう」■ドラム音の書き方
1. 音符
テキストスコアではドラムの音を、打楽器の種類、ステップの組み合わせで書きます。
打楽器は数字に対応していて、38 がスネアドラム、36 がバスドラムです。他にもたくさんの楽器があります。
ステップは次の音までの時間で、1 拍が 48 です。
例1
38 48
打楽器: スネアドラム
ステップ: 1 拍
例2
36 48
38 48
バスドラムとスネアドラムを 1 拍ずつ演奏します。

■メロディー楽器の書き方
1. 音程
テキストスコアでは音程(音の高さ)をアルファベットと数字の組み合わせで書きます。
アルファベット: 「ドレミ」に対応します。
ド レ ミ ファ ソ ラ シ
c d e fg a b

数字: どの位置のオクターブかを示します。1 から 7 まであります。

例:
c4 ピアノの真ん中のドc1 ピアノの一番左側のドb7 ピアノの一番右側のシ
2. 音符
テキストスコアでの一つの音符は、音程、ステップ、音の長さで書き表します。
ステップは次の音までの時間を示します。48 が 1 拍です。
音の長さは音を伸ばしている時間です。省略するとステップと同じになります。
例 1
c4 48
音程: ピアノの真ん中のドステップ: 48(1 拍)
音の長さ: ステップと同じ
例2
c4 48
e4 48
g4 48
「ド」「ミ」「ソ」が 1 拍ずつ演奏されます。
例3
c4 0 48e4 0 48
g4 48 48
1 拍文の「ドミソ」の和音が演奏されます。

■文字の楽譜
1. チューリップ
ドレミ＿ ドレミ＿ ソミレド レミレ＿
ドレミ＿ ドレミ＿ ソミレド レミド＿
ソソミソ ララソ＿ ミミレレ ドーー＿
2. どんぐりころころ
ソーミミ ファミレド
ソーミミ レーー＿
ミーソソ ララーラ
ドーミミ ソーー＿
ソーミミ ファミレド
ソーミミ レーー＿
ソーミミ ララソソ
ララシシ ドーー＿
3. 静かな湖畔
ドードドーレ ミーミミーミ
レードレーミ ドードソー＿
ミーミミーファ ソーソソーソ
ファーミファーソ ミー＿＿＿ソ
ミーー＿＿ソ ミーー＿＿ソ
ミーソミーソ ミーー＿＿＿text_score
Text Score マニュアルText Score マニュアル
o概要

o

曲の作成から演奏まで

ooo



曲の作成



楽器の追加



ドラムの追加

楽器の同時演奏

画面詳細説明

ログイン画面



メイン画面



曲の作成および編集画面



曲操作画面



楽譜の編集画面

演奏命令解説

音符繰り返し(ループ)

演奏の再利用(マクロブロック)

コマンド

連絡先等

概要
Text Score はテキストで記述した演奏命令に従って演奏を行う Web アプリケーションです。
以下のような機能があります。


テキストによる演奏命令記述
o

音符、次の音までの時間、長さ、音の強さで 1 音を表現o

同一パターンの繰り返し(ループ)o

演奏の一部をまとめて名前を付け、後から呼び出し(マクロブロック)o

選択追加により音符入力を行う入力補助

標準 MIDI(GM)相当の音色選択(フリーのサウンドフォント使用)



複数楽器を重ね合わせたマルチトラックの楽曲作成

なお本 Web アプリケーションは科学へジャンプ・サマーキャンプにおけるワークショップを念頭に開発しました。そのため画面読み上げソフトを用いた操作やパソコン操作に不慣れな利用者を想定し、画面上の要素やナビゲーションをその場で必要な最低限のものに絞っています。

##動作環境 Text Score は以下の環境で動作を確認しています。
Google Chrome 61 以降



Firefox 56 以降

Internet Explorer 11 (Flash が必要)

画面読み上げソフトは JAWS および NVDA での動作を確認しています。 PC-Talker でも利用できることを想定していますが動作確認が不十分ですので、問題がありましたら開発者までご連絡ください。

曲の作成から演奏まで
Text Score を用いて演奏命令を入力し、演奏させるまでの操作を説明します。詳細については画面詳細説明を参照してください。

曲の作成
Text Score にログインしたら「作曲開始」を選択します。すると「曲の作成」画面に移動します。
「題名」に適当な名前を入力します。

「テンポ」はそのままで問題ありません。

「保存」を選択します。曲の操作画面に移動します。

楽器の追加
曲の操作画面で「楽器を追加」を選択します。楽譜の編集画面に移動します。
まず「楽器」欄でお好みの楽器を選びます。ここでは「Acoustic Grand Piano」とします。
「入力ガイド」欄で以下のように操作して演奏命令を入力してみます。


音符「c4」、ステップ「48」を選択して「追加」をクリックします。



音符「g4」、ステップ「24」を選択して「追加」をクリックします。



音符「e4」、ステップ「24」を選択して、「追加」をクリックします。



音符「c4」、ステップ「96」を選択して、「追加」をクリックします。

これで「楽譜」欄には以下のような演奏命令が入力されます。
c4 48
g4 24
e4 24
c4 96確認したら「保存」をクリックして演奏命令を保存します。
次に「再生」をクリックします。「ドーソミドーーー」というメロディーが再生されるはずです。
入力された演奏命令について少し説明します。「c4」「g4」などは音符で、最初の c, e, g はそれぞれド・ミ・ソを、次の 4 はオクターブの番号を示します。オクターブの番号は 0 から 8 まであります。 次の 48, 24 という数値はステップで、「次の音を鳴らすまでの時間」を示します。48 が基準となり、四分音符の 1 拍に当たります。24 はその半分の八分音符、96 はその 2 倍の二分音符です。
ステップはある意味リズムを指定するものですが、入力ガイド欄には他に「長さ」もあります。これは音を伸ばしている時間で、鍵盤を押している時間に相当します。長さとして「-」を選ぶと、ステップと同じ時間だけ音を伸ばします。
ステップと長さを組み合わせていろいろなパターンを作ることができます。たとえばステップを 0 とすると次の音までの時間が 0 となり、結果二つの音を同時に鳴らすことができます。

ドラムの追加「曲に戻る」をクリックして曲操作画面に戻ります。続いて「ドラムを追加」をクリックして楽譜編集画面に移動します。
今回は入力ガイドを使わず、楽譜の入力欄に以下のように入力してみましょう。
(36 1238 1238 1238 12)349 48
入力したら「保存」をクリックし、「再生」を押して演奏させてみましょう。
数字で始まる各行は打楽器の一つの音に相当します。数値はガイド欄の「打楽器」により調べることができます。この例では 36(バスドラム 1)、38(アコースティックスネア)、49(クラッシュシンバル 1)を利用しています。 二つ目の数字はステップで、12 は 1/4 拍 48 は 1 拍を示しています。
「(」は繰り返し範囲の開始を示します。また「)」は繰り返し範囲の終了を示します。「)」に続く数字で繰り返し回数を示します。この例では四つの打楽器音からなる 1 拍のリズムを 3 回繰り返した後、シンバルを鳴らしています。

楽器の同時演奏「曲に戻る」をクリックして曲操作画面に戻ります。
ここで「再生」を押してみましょう。先ほど入力したピアノとドラムが同時に演奏されることがわかります。
このようにして Text Score で曲を入力・演奏することができます。演奏命令の詳細については演奏命令解説を参照してください。

画面詳細説明ログイン画面
管理者が設定したログイン ID とパスワードを指定してログインします。 ログイン状態はブラウザを閉じても一定期間記録されます。必要に応じてメイン画面の「設定・ログアウト」よりログアウト操作を行ってください。

メイン画面
ログイン後の画面で、作成した曲の一覧が表示されます。ここから新しい曲の作成を始めることができます。
作曲開始: 新しい曲を作成します。

設定・ログアウト: ログアウトおよびパスワード等の変更ができます。

曲の作成および編集画面
メイン画面から「作曲開始」を押した場合、またはすでにある曲から「曲情報の変更」を押した場合に表示されます。


題名: 曲の題名を設定します。メイン画面の一覧でわかりやすい名前を設定します。



テンポ: 曲の速さを設定します。120 が一般的な行進曲のテンポと言われています。

変更したら「保存」を押すことで設定が反映されます。

曲操作画面作成した曲を再生したり各楽器の編集や新しい楽器の追加を行う画面です。


楽器を追加・ドラムを追加: 新しい楽器を追加して編集画面に移動します。

楽器○○を編集: 楽器ごとの演奏命令を編集する画面に移動します。

再生: 曲を演奏します。曲に含まれるすべての楽器を合わせた演奏となります。再生中は「再生」ボタンが「停止」ボタンに変わります。



曲情報の変更: 曲の編集画面に移動します。

MP3 ダウンロード、MIDI ダウンロード: それぞれの形式で演奏をダウンロードできます。



曲の一覧へ: メイン画面に移動します。

楽譜の編集画面
演奏命令を編集し、演奏させて確認することができます。
楽器: 演奏させる楽器を変更することができます。

入力ガイド: 演奏命令のうちで音符情報の入力を簡単に行うことができます。
o

音符: ドラム以外の場合に表示されます。演奏させたい音符を選択します。

o

打楽器: ドラムの場合に表示されます。演奏させたい打楽器を選択します。

oステップ: 次の音までの時間を選択します。48 を四分音符の 1 拍としています。

o長さ: 音を伸ばす長さを選択します。「-」の場合はステップと同じ時間だけ音を伸ばします。

o追加: 選択した音符を楽譜の入力欄に送ります。楽譜の入力欄でカーソルのある行の上に挿入されます。



楽譜: 演奏命令を入力する場所です。演奏命令の説明に従って入力します。

保存: 編集した内容を保存します。

再生: 保存した内容を演奏させます。編集を行ったらまず保存し、その後に再生するようにしてください。



曲に戻る: 楽器個別の編集画面から曲の操作画面に戻ります。

なお、楽譜欄を空にして保存することでそのトラックを削除することができます。

演奏命令解説Text Score で利用できる演奏命令を解説します。楽譜の入力欄にこの演奏命令を用いたプログラムを記述することで演奏させるのが Text Score の機能です。

音符
一つの音符は入力欄の 1 行で書きます。「音符」、「ステップ」、「長さ」、「強さ」の組み合わせです。後ろのものほど省略できます。
音符: 音程を表すアルファベット(cdefgab)とオクターブ番号の(0～8)で書きます。「c+4」はドのシャープを示します。



ステップ: 次の音を出すまでの時間で 0 以上の数値で書きます。48 が基準で、四分音符の 1 拍になります。0 を指定すると次の音と同時に音が出るので和音を作ることができます。省略すると 48 になります。

長さ: 音を伸ばしている時間です。ピアノなら鍵盤を押している時間に当たります。数値の意味はステップと同じです。省略するとステップと同じになります。



強さ: 音の強さを 0～127 の範囲で指定します。省略すると 100 になります。

休符を指定したい場合には音符を「z」と書きます。
なお音符の部分は 0 から 127 の数値でも指定でき、c4 が 60 になります。これは主にドラムの場合に用います。番号と打楽器の対応は MIDI の GM 規格による定義に従います。Text Score では入力ガイド欄で確認するのが簡単です。
例 1 (ドレミ)
c4 48
d4 48
e4 48
例 2 (ドミソの和音)
c4 0 48e4 0 48g4 48 48

繰り返し(ループ)「(」で始まる行と「) 数値」の行で挟まれた範囲を「数値」の回数だけ繰り返します。
例 1 (ドドドーを 16 回繰り返し)(c4 24c4 24
c4 48) 16
例 2 (ドドドドドーを 16 回繰り返し)((c4 12)4c4 48) 16

演奏の再利用(マクロブロック)
演奏の一部をまとめて名前を付け、それを後から何度も呼び出すことができます。
まず「name (」という行を書きます。ここで「name」はアルファベットで始まる、かつ音符ではない名前で、どんな内容かわかるような名前にします。
その後に必要な演奏命令を書きます。
最後に「)」だけの行を書きます。ここまでがマクロブロックになります。
マクロブロックを書いただけでは何も演奏されません。実際に演奏するには「name()」という行を書きます。ここで「name」は呼び出したいマクロブロックの名前です。
使い方は例を見るのが早いでしょう。
例 (C 和音と F 和音の組み合わせ)code_c((g3 0 48c4 0 48e4 48)2)
code_f((f3 0 48a3 0 48c4 48)2)
code_c()code_c()code_f()code_c()

コマンド
演奏命令にはこの他に、細かい設定を変更するコマンドがあります。
たとえばshift 2と書くとその後に続く音符を 1 音(2 半音)ずつ高く演奏します。
以下に一覧を示します。

shift: その後に続く音符を指定した数値分高くして演奏します。マイナスの数値を指定すると低くなります。数値は 1 が一つの半音に対応し、12 で 1 オクターブ高くなります。

row: 「c4」の「4」などオクターブ番号を省略して「c」と書いた時にどのオクターブで演奏するかを指定します。

step: ステップを省略した場合に 48 の代わりに使うステップ値を指定します。ステップ 12 の音符をたくさん書かなければいけない場合に、最初にステップを 12 に変更してから音程だけを書いて行くことができます。

gate: step と同様ですが、長さを省略した場合に 48 の代わりに使う長さの数値を指定します。

base: 四分音符 1 拍として 48 の代わりに使う数値を指定します。

vel: 強さを省略したときに 100 の代わりに使う数値を指定します。0 から 127 で大きいほど強くなります。

連絡先等
Text Score に関する要望は以下までご連絡ください。
メール: ushiushix+ts@gmail.com

Twitter: @ushiushix



GitHub: https://github.com/ushiushix/text_score/

最終更新: 2017 年 11 月 13 日