MIDI

MIDI とは

MIDI(Musical Instrument Digital Interface)は音楽データの標準形式です。 詳細は次のページをご覧ください。

MIDI ファイルを聴くには

Windows ならダブルクリックすれば適当なアプリケーション(たいていは Windows Media Player) が鳴らしてくれます。 音質は音源ボードに依存します。

Linux ならいろいろな手がありますが,私は TiMidity++ というソフトウェア・シンセサイザを使っています。

MIDI ファイルを作るには

私はテキストベースの MML(Music Macro Language)で書いて MML2MID というソフト(DOS でも Windows でも Linux でも使えます)でMIDIに変換しています。

Windows での MML2MID の簡単な使い方や Web ページで鳴らす方法も含めて,私の授業用の MIDI のページで触れましたが,以下ではもうちょっと詳しく説明します。

[New] JSM2M (JavaScriptでMML to Midi) というものを教えていただきました。これならソフトをインストールする必要はありません。ただし書き方はこのページで説明しているものと少し違うようです。

最初の例

ドレミファソラシドと鳴らしてみましょう。最後のドは高いドです。

たとえば test.mml というファイルに次のように書き込みます。

A C1 cdefgab>c

そして mml2mid test.mml と打ち込むと test.mid というファイルができます。それを鳴らしてみましょう。

MMLの行は必ずトラックの記号(AZ)で始めます。

トラックの記号に続けて,チャンネル番号をたとえば C1 のように指定します。 番号は 116です。 ただしチャンネル10はドラム専用です。

ドレミファソラシは cdefgab です。 ドのシャープは c+,ドのフラットは c- です。 休符は r です。

> と書くと,それ以降は1オクターブ上がります。 逆に,< で1オクターブ下がります。

次のように行を分けて書いても同じことです。スペースも意味を持ちません。

A C1 cd ef
A C1 gab > c

最初の例プラスアルファ

A C1 @0 t120 r
A C1 ccggaag2ffeeddc2

音色(音源)はチャンネルごとに変えられます。 たとえば @0 とするとピアノの音になります。 @ の後の番号は 0127 です。 番号と楽器との対応は General MIDI Level 1 Sound Set に定義されています。 ただし MML2MID で指定する番号はこれから 1 を引いた値です。

t120 は「4分音符 = 120」という速さを示します。

音符は,何も付けなければ4分音符(4分休符)です。 c2 でドの2分音符になります。 c8. で付点8分音符です。

なお,音色を変えた後は休符(r の類)を加えておくと安全です。

きらきら星

Mozart の K.265 の冒頭です。 音を鳴らすには ここ をクリックしてください。

; きらきら星変奏曲

#title "Mozart, K.265"

A C1 @0 t126 r
B C1         r

A  >cc  | gg | aa | gg | ff  | ee   | de32d32c32d16.e16 | c2  |
B  <c>c | ec | fc | ec | d<b | >c<a | fg                | c2> |

A  gg   | ff   | ee  | dd | gg   | ff   | ef32e32d32e16.f16ed |
B  e<g> | d<g> | c<g | bg | >e<g | >d<g | >cc8.d16            |
B  c<b |
1B <g  |

A  cc  | gg | aa | gg | ff  | ee   | de32d32c32d16.e16 | c2  |
B  c>c | ec | fc | ec | d<b | >c<a | fg                | c2> |

; から行末までは無視されます。

#title はタイトルを付けるコマンドです。

| は無視されるので小節の区切りに使うと見やすくなります。

右手をトラック A に,左手をトラック B に割りあてました。 ただし同じ楽器なので両方チャンネル 1 にしました。 右手と左手でチャンネルを分けることも可能です。 そうすれば,ダンパーペダル(P で押して X で離す)を左右独立に踏むこともできます。

トラック 1B は直前のトラック B と同時進行します。 部分的に和音を付けるときに便利な書き方です。

ショパン Op.9-1

Op.9-1 のノクターンは,機械的に演奏するといかにつまらないかという例になりそうだと思ってやってみました。 4分音符3拍を11等分した11連符,4分音符6拍を22等分した22連符も機械的に等分しただけです。

フラットが5個付いているので変ロ短調(KIb-)です。 8分音符が多いので l8(無指定で8分音符になる)としました。

#title "Chopin, Op.9-1"
#timebase 48

A  C1 @0 KIb- r k80 l8 t90
B  C1    KIb- r k30 l8

A  o5 b>cd<a*bg | frfrfr f4gfec X |
B  o3 P r X r r2 | P <b>f>d<b X P >f<f X P <b>f>e<a* X P >f<f X |

A  o5 d2<b4 l%13 >b%14 >cd<a*ba*g+a*>c<bg |
B  o3 P [<b>f>d<b X P >f<f X]2 |

A  o5 f%14 ge*fba*ag*gfe* e%14 d*dcdc<b*>cfe*e | l8 d2<b4 >brbrbr |
B  o3 P <b>f>d<b X P >f<f X P <b>f>e<a* X P >f<f X | [P <b>f>d<b X P >f<f X]2 |

A  o5 a1.-8g |
1A o5 KIb- l8 r2. d4<b>cdr |
B  o3 P <d>f>d<a X P >f<f X P <g>dbg X P >d<d X |

A  o5 f2. e4fed<b-- | a2>d4e4fede |
B  o3 P <d>daf X P >d<d X P <g>db--g X P >d<d X | P <d>daf X P >d<d X P <g>db--g X P >e&<c X

A  o5 f2.
B  o3 P <f>ca*f X P >e&<a* X

kn はベロシティ(打鍵の強さ)です。 デフォルトは n = 100 です。 左手のベロシティをずっと小さくしました。 vn で指定する音量(ボリウム)と似ていますが,ちょっと違う概念です。

デバッグが便利なように,絶対的なオクターブ指定を随所に入れました。 o4 が標準の高さです。

11連符は次のようにしました。 まず,デフォルトでは4分音符が48ステップです(ステップとは音符の長さの最小単位)。 3拍を11等分したいわけです。 48×3÷11=13あまり1ですから, 最初の音だけ14ステップ,残りを13ステップにしました。 l%13 は無指定の音の長さを13ステップにする命令です。 b%14 はB(シ)の音を14ステップ鳴らします。

最後で2箇所出てくる & は,次の音がキーオフされるまで持続する音です。 UNIXのバックグラウンド動作と似ています。

ゴールトベルク変奏曲 アリア

冒頭だけです。

#title "J. S. Bach, Goldberg Variations, Aria"

A  C1 @0 KJg r k60 t40
B  C1    KJg r k60
1B C1    KJg r k60

A  o5 gga64g64a16.^16b16 | a8g16f16e8d. |
B  o3 g&b&>d<            | f&a&>d<      |

A  o4 g64f64g16.^8 l32 agfgagag l%4 agagag l16 fg |
B  o3 e&g&>c+<                                    |

A  o4 l4 a32g32f16g32f32e16 e8d. |
B  o3 rf&a                       |
1B o3 d2^8c8                     |

A  o5 dde64d64e16.^16f*16 | e8d16c16<b8a>g32f32e32f32 |
B  o3 <b&>d&g |
B  o3 r2a4    |
1B o3 r4e4.r8 |
2B o3 c2^8d8  |

A  o5 g32f16.a32g16.f32e16.d32c16.c16a8c16 |
B  o3 r8 > c4 < b16a16g16f16e16f16         |
1B o3 e8c8d2                               |

A  o4 b32g16.f8f4g64f64g8^16^32 |
B  o3 g8a8b2                    |
1B o3 <g4.>d8e64d64e16.^16f16   |

a16.^16 は付点16分音符と16分音符のタイです。

ln は無指定の音符の長さを n 分音符にします。 デフォルトでは l4 です。 8分音符を6等分するところがありますが,デフォルトで4分音符が48ステップですので, 8分音符を6等分すれば4ステップになるので,l%4 としました。 % は絶対的なステップ数を表します。

& は,次の & のない音符(または休符)が終わるまで持続します。

弦楽合奏

モーツァルトの交響曲第40番の冒頭です。 MIDI ファイルは これ です。

#title "Mozart, K.550"

A  C1 @48 q0,0 v80 p30 KIg r ; Violino I
B  C2 @48 q0,0 v60 p50 KIg r ; Violino II
C  C3 @48      v40 p70 KIg r ; Viola
1C C3 @48      v40 p70 KIg r ; Viola
D  C4 @48      v40 p90 KIg r ; Violoncello
E  C4 @48      v60 p90 KIg r ; Contrabasso

A t180

A  >r2. k60 e8d8 | k80 d k60 e8d8de8d8 | k100 d k60 brb8a8 | gg8f8ee8d8 | k100 c k60 c
B   r2. k60 e8d8 | k80 d k60 e8d8de8d8 | k100 d k60 brb8a8 | gg8f8ee8d8 | k100 c k60 c
C  k60 [<b8b8>g8g8]6 | <b8b8>d8d8<b8b8>g8g8 | e8e8a8a8
1C k60 [<g8g8b8b8>]4 | [<g8g8>d8d8]2 | [<g8g8b8b8>]2 | <a8a8>e8e8
D  k60 << gr2. | >gr2. | <gr2. | >gr2. | <gr2.
E  k60 <<<gr2. | >gr2. | <gr2. | >gr2. | <gr2.

@48 は弦楽合奏です。 v は音量(ボリューム)です。 数値は 0〜127 で指定します。

qm,n はノートオフ(音を切ること)のタイミングを m ステップだけ早くします。 ただし最低 n ステップ発音します。 q1,0 がデフォルトです。 4分音符が48ステップですが,頭に

#timebase 96
などと書いておくと4分音符のステップ数が変えられます。 ここで q0,0 としたのはできるだけレガートにしたかったためですが, 自信はありません。

pn はパンポット(楽器の位置)の設定です。 左端が 0,右端が 127 で,中央は 64 です。 あまり極端な値にはしないほうがいいでしょう。

フルート独奏

タミーノの奏でる魔笛の笛の音 tamono.mid です。 楽譜ともっと完璧な MIDI ファイルが The Magic Flute Project からダウンロードできます(08c_tami.*)。

#title "Magic Flute"

A  C1 @73 v100 l16 ; flute
B  C2 @48 v30  l8 ; violin I
C  C3 @48 v30  l8 ; violin II
D  C4 @48 v30  l4 ; viola
E  C5 @48 v30  l4 ; vcello/basso

A  > e8.f |
B  r4     |
C  r4     |
D  < r    |
E  < r    |

A  g4e8crf+8g8ercr | < br > crc+rdr < g4 > c8. < b |
B  reeereee | rdddddgg |
C  rcccrccc | r<bbbbb>cc |
D  grgr     | grrg       |
E  crcr     | grre       |

A  a8b > c defgg+agfedef | c4.dc < b r8. > e8.f |
B  f2.af | e4.f16e16d4r4 |
C  c2.fd | c4.d16c16<b4r4 |
D  a1    | g2.r4  |
E  f1    | gg<gr> |

A  f+8g8ercrf+gagfedc | < b > c < b > cc+dc+d < g4 > c8. < b |
B  reeereee | rdddddgg |
C  rcccrccc | r<bbbbb>cc |
D  grgr     | grrg       |
E  crcr     | grre       |

A  a>cfa>c<agfegegfdfd | d2c4
B  f4.fe16r16e16r16 d16r16d16r16 | d2c4
C  c4.dc16r16c16r16<b16r16b16r16 | b2>c4
D  a2g8r8g16r8.    | f2e
E  ffg<g           | g2>c

グロッケンシュピール

「魔笛」のパパゲーノの魔法の鈴です。 これについてのいきさつは いろいろ 2002-11-06いろいろ 2002-11-07 あたりに少し書きました。

[2003-07-06] MIDI のリンクを忘れていました ^^; ついでに1オクターブ上げました。

#title "Magic Bells"

A C1 @9 KJg t180
B C1 @9 KJg k50
C C1 @9 KJg k50
D C1 @9 KJg k50
E C1 @9 KJg k50

A o6 d8c8 | <b>gbd8<b8> | ca>c<c8<b8 | a>faf | g8b8g8b8gd8c8 |
B o5 r    | d r r2      | d r r2     | d rr2 | dddr          |
C o4 r    | b r r2      | a r r2     | a rr2 | bbbr          |
D o4 r    | g r r2      | f r r2     | f rr2 | gggr          |
E o4 r    | r1          | d r r2     | d rr2 | r1            |

A o6 <b>d8g8bd8<b8> | ce8a8>c<e8c8 | <b8>d8g<a8>d8f | gbg
B o5 d r r2         | c r r2       | r1             | r>d<b
C o4 b r r2         | a r r2       | brar           | r>dd<
D o4 g r r2         | e r r2       | grfr           | rbb
E o4 r1             | c r r2       | drdr           | ggg

リンク

楽譜の組版関係は ここ に書いていく予定です。

Rosegarden については ここ に書いていく予定です。


奥村晴彦

Last modified: 2009-06-10 08:12:25