「音楽・音響情報処理」第1回レポート課題

「音楽・音響情報処理」第1回レポート課題
平成 28 年 10 月 28 日
• 提出方法: 原則として manaba により提出する(下記参照)
• 提出期限: 11 月 11 日(金) 24:00(11/12 0:00)
manaba で提出できない場合には、メールで送付する(上記期限まで)、ないし 11 日の授業開始時に提出す
る(紙媒体による中間報告)。
• 提出するもの
– レポート本文ファイル
– 付属資料ファイル(MML テキストファイル、MIDI ファイル等。課題参照)
Manaba での提出について
• manaba (https://manaba.tsukuba.ac.jp) にログインし、本授業: GC51101「音楽・音響情報処理」の
「レポート」→「第 1 回レポート」から、提出ファイルをアップロードする。
(manaba のセットアップは週明け 10/31 までに行う予定)
• レポートファイルは原則として PDF 形式(A4 サイズ)で作成し、表紙をつけること。
(PDF への変換ができない事情がある場合に限り、WORD ファイルなどでの提出も認める)
表紙は(印刷文書としての)レポート体裁を整えるためのもので、授業名・レポート課題番号、タイトル(も
しあれば)、提出日付、学生番号、氏名は必ず記すこと。
(manaba 提出の場合、表紙は必ずしも必要ではないが、レポート作成練習の一環として表紙もつける。)
• 付属資料ファイルは必要に応じて添付する。
課題1についてはレポート提出は要しない。ただし、必ず実施はすること(関連事項は期末試験の出題対象
になる)。
また特徴的なポイントなどについてまとめたレポートを提出するのは自由である。
課題2では、レポート本文の他に、作成した MML ファイル(入力データファイル)、作成した MIDI ファ
イル(SMF 形式)、音符列ファイルは必ず添付すること。
MIDI のダンプファイルは特に必要性がある場合を除いては添付しないこと。一般に添付ファイルは、ダン
プファイルを丸ごと載せるなど、不必要に大きいファイルをそのままアップロードするのではなく、必要箇
所のみを抜き取り、またファイルについての説明を必ずレポート本文中に記すこと。
• ファイル名には日本語コードは用いず、半角英数字(&使用可能な記号)のみを使用すること。
(日本語コードがあると移動した際に文字化けが生じるため。)
ファイル名そのものについては格別の指定はしないが、わかりやすい名前をつけ、添付ファイルについては
必要に応じて本文で参照すること。
• 重要!: 複数のファイルをアップロードする場合には、zip などでアーカイブせず、個別にアップロードす
ること(ダウンロードしたとき、展開の手間がかかるとともに、ファイル名文字化けの原因ともなる)。
1
テーマ: SMF ファイルを作成し、読んでみる
概要
「簡易 MML のページ」
: http://www.slis.tsukuba.ac.jp/~hiraga/mml/ (授業ページからもリンクあり)
にまずアクセスする。
そこにある「簡易音楽記述言語 (MML)」に関する説明をよく読んで、MML による簡単な曲データを作成す
る。資料全体を詳細に読み、理解する必要はないが、基本的な使い方や記号の意味は理解する必要がある。
まず「データ記述例」のページに行き、そこに示されているデータ例を「実行」して生成される SMF ファイル
を聞き、また出力データを見てみること。特に「デモ (1)∼(4)」は使用例であるとともに、コメント部に使い方
の説明もあるので、実際の音と照らし合わせながら読むとよい。より詳しいマニュアルは「MML の説明ページ」
にある。詳細については授業時に口頭で述べる。
それを踏まえて、以下の課題 1, 2 を実行し、レポートを作成・提出せよ。
1. (SMF ファイルの中身を見る:レポート提出は任意)
「入力フォーム」に行き、
(自分の学生アカウントを記入してから)
「入力データ」のウィンドウに以下の行
を入力し、「送信」ボタンをクリックする。
@I1 @*1.0 cdefg
最初の “@I1” は楽器の指定で、ここではピアノ音になる。次の “@*1.0” は音の長さの指定で、ここでは 1.0
倍、つまり音符の長さと同じだけ延ばす。最後の “cdefg” は音名列で、「ドレミファソ」と演奏することに
あたる。
「実行結果」ページが表示されたら、実際にそのような音が出ることを確かめよ(「SMF ファイル」リンク
ないし「演奏」ボタンをクリックすれば、Media Player などの再生ソフトが自動で動くはず。音が出ない場
合には SMF ファイルを一旦ダウンロードしてから再生する)。
このとき、「SMF のダンプファイル」は 4 ページのようになる。
上の音長の指定を @*1.0 から@*1.2(次の音の鳴り始めと重なるように、音を音符より長めに演奏する)、
@*0.5(スタッカートのように、音を音符より短く切る)などするとどのように聞こえるか、またそれぞれ
の場合の note-on, note-off の出力、特に出力順とそれぞれのデルタタイムについて、どのようになっている
かをまとめ、そうなる理由を考察せよ。可能なら、極端に長くしたり、1音ごとに変えたりしてそれについ
ても考察せよ。音の長短の効果は、楽器(音色)を @I1 から@I41(バイオリン)、
@I74(フルート)などにしたほうがわかりやすいかもしれない。(いろいろ試してみよ)
さらに音列を下のようにすべて同音にしたらどうなるか。
@I1 @*1.0 ccccccccc
このとき @*1.0 の値をいろいろ変えたときにどうなるかも考察の対象に加えよ。
(MIDI メッセージでは note-on, off は同一チャネル、同一音高(ノートナンバー)であれば、同じ音に対
して働くことに注意。)
また和音を次の2通りの方法で作った場合(別々に実行する)、作成される SMF ファイルにどのような違
いがあるか、聞こえは違うかについて考察せよ。
方法 1 @I1 [c e g]1 % 同一トラックで作成
方法 2 #1 @I1 c1 #2 @I1 e1 #3 @I1 g1 % 別トラックで作成
2
楽器音の @I1 をいろいろ変えるとどうなるかもためしてみよ。
そのほかにも MIDI データについて特徴的・注意を要する事例があれば報告せよ。
2. (簡単な曲データを作る)
好きな曲を選んで MML データを打ち込み、SMF ファイルを作成してみる。
一番簡単には16小節程度の単旋律でもいいし、MML 入力の特徴を生かした音列なら、必ずしもまとまっ
た曲でなくてもよいが、複数声部を持ち、高度な演奏になっているもの、いろいろ工夫されているものを高
く評価する。
レポートには選択した曲名(ないし音列の意図)を記し、
「MML ファイル(入力データファイル)」、
「MIDI
ファイル」、
「音符列ファイル」は必ず添付すること。
「ダンプファイル」は 必要に応じて、説明に重要な部分を
添付する。
(不必要な大量出力を添付したりしないこと。)
レポート本文では、その曲を選択した理由、入力にあたって工夫した点、逆に苦労した点を記し、生成され
た出力が意図した結果になっているかについて、簡単な考察を記すこと。
データは単なる機械的な音符列入力ではなく、音の強弱や長短、音色の選択等にいろいろな工夫を行ったも
のであることが望ましい。
評価は、出来上がった作品の質、工夫や苦労の度合及びレポート本文の記述の内容に応じて行う。作品その
ものだけでなく、本文記述も同等に重要なのでしっかり書くこと(作品が優れていてもレポート記述が不十
分だといい評価にはならない)。
追記
本課題については、十分な内容を伴うものであれば、必ずしも簡易 MML システムを使用せず、Finale な
どの DTM ソフトを使用した曲作成でもよい。ただし、必ず SMF ファイル(“.mid” ファイル)として作
成すること(それ以外のファイル形式での提出は不可)。
実習室(全学計算機システム)では Finale が使用できる。
(使い方の説明はここでは省略:授業資料 music-tools.pptx 参照。)
備考
• システムは Web 上で動作するので、大学の実習室の端末を使用しても、自宅のパソコンなどを使用しても
よい。
注: ただし、Windows 8 ではデフォールトで MIDI 音源プログラム(ソフトシンセ)が設定されていな
いケースがあるようである。その場合には実習室端末等を使用すること。
• 実習室で使用する場合、本体スピーカーから音を出すと回りの迷惑になるので、イアホン・ヘッドホンなど
を自分で用意して使用する(こちらでは帯出しない)。
• 楽器音の音色や楽器番号を知りたいときには、windows 上の MAX パッチ MIDI-instrument-test.maxpat
を使用するとよい。
これや Finale の起動方法は授業資料(music-tools.pptx, pdf)などを参照。
• レポートの評価結果のフィードバック方法については後日案内する(manaba 上での記載にはなるだろうが)。
3
• 参考: SMF のダンプファイルの見方
課題 1(1 ページ)の「@I41 @*1.0 cdefg」
(楽器番号を 41 にしてある)を実行すると、下のようなダンプファ
イル出力が得られる。
*** Input file name: files/xxx.mid
00000 --------- ------ ["MThd" 00 00 00 06 00 00 00 01 01 e0]
*** Header Chunk ***
Format
# of Tracks : 1
Time quantum: 480
: 0
00014 --------- ------ ["MTrk" 00 00 00 3f]
*** Track Chunk 0 (63 bytes) ***
00022 00:000000 000000 [00]+[ff 51 03 07 a1 20]
<Meta> set tempo: 500000
00029 00:000000 000000 [00]+[b0 07 64]
<MIDI> #00 control change
7 100 (main volume (MSB))
00033 00:000000 000000 [00]+[c0 28]
<MIDI> #00 program change 40
00036 00:000000 000000 [00]+[90 3c 5a]
<MIDI>
#00 note on
60 90 [4C
00040 00:000480 000480 [83 60]+[80 3c 00]
]
<MIDI>
0 [4C
]
90 [4D
]
00049 00:000960 000480 [83 60]+[80 3e 00]
<MIDI> #00 note off 62
0 [4D
]
#00 note off 60
00045 00:000480 000000 [00]+[90 3e 5a]
<MIDI> #00 note on
62
00054 00:000960 000000 [00]+[90 40 5a]
<MIDI> #00 note on
64 90 [4E
00058 00:001440 000480 [83 60]+[80 40 00]
]
<MIDI>
0 [4E
]
#00 note on
65 90 [4F
00067 00:001920 000480 [83 60]+[80 41 00]
<MIDI> #00 note off 65
0 [4F
]
#00 note off 64
00063 00:001440 000000 [00]+[90 41 5a]
<MIDI>
00072 00:001920 000000 [00]+[90 43 5a]
<MIDI> #00 note on
67
]
90 [4G
]
00076 00:002400 000480 [83 60]+[80 43 00]
<MIDI> #00 note off 67
0 [4G
00081 00:002400 000000 [00]+[ff 2f 00]
]
<Meta>
end of track (14 events)
*** (85 bytes, 14 events) ***
(説明は次ページ)
4
本レポートの範囲では、見る必要があるのは note-on/off のイベントだけである。次の 6 行を例にとる。これ
らは2行1組で、上の行はナマのデータ情報、下の行はそれを読みやすく書き直したものである。
00054 00:000960 000000 [00]+[90 40 5a]
<MIDI>
#00 note on
64 90 [4E
00058 00:001440 000480 [83 60]+[80 40 00]
]
<MIDI>
0 [4E
]
90 [4F
]
#00 note off 64
00063 00:001440 000000 [00]+[90 41 5a]
<MIDI> #00 note on
65
• 先頭の「00054, 58, 63」は SMF ファイル内でのバイト位置を表す。54 であれば、その行の先頭のバイトは
SMF ファイルの 55 バイト目である(それより前に 54 バイトある、ということ)。
• 次の「00:」はチャネル番号。これは本レポートの範囲では無視してよい。
• 続く「000960, 001440, 001440」は曲の開始時からの通算時間である。単位は4分音符あたり 480 に固定さ
れている(Time quantum)。つまり 960(= 480 × 2), 1440(= 480 × 3) はそれぞれ、3拍目、4拍目の開始
時刻である。
• 次の「000000, 000480, 000000」はそのイベントのデルタタイムである。これを総和したものが上の通算時
間になる。
デルタタイムが 0 の場合、直前のイベントと同時に生じるイベントである。実際、2・3番目のイベントの
開始時刻は両方とも 1440 になっている。
• 続く「[00]+[90 40 5a]」、「[83 60]+[80 40 00]」はイベントのデータを 16 進で表したもので、最初のカッコ
内がデルタタイム、+ の後のカッコ内が MIDI イベント(note-on/off)である。
• 2,4,6行目はそれを読みやすく表したもので、例えば
<MIDI>
#00 note on
64
90 [4E
]
は「チャネル 0(MIDI 用語ではチャネル 1)の note-on イベントで、ノートナンバー(音の高さ)は 64、
velocity(音の強さ)は 90」であることを表す。最後の「4E」はノートナンバー 64 が第4オクターブの E
音であることを表す。
5