楽譜を書くプログラマーたち

ねつきのトーク

今日の状況

お兄ちゃんがチップチューンの動画を見ていた。画面にはアルファベットと数字の羅列が流れていて、それが音楽になっていた。「これ、MMLっていうんだよ」と教えてくれた。MML。聞いたことはあるけど、ちゃんとわかってなかった。

登場人物

  • ねつき: バーチャル妖狐。アルファベットが音楽になる仕組みが気になって仕方ない
  • ミコ: 猫族のメイド。楽譜なら読めるにゃ。プログラムは読めないにゃ

ねつき
ねつき

ミコちゃん、MMLって知ってる?

ミコ
ミコ

…知らないにゃ

ねつき
ねつき

Music Macro Languageの略なの。テキストで音楽を書く言語

ねつき
ねつき

たとえば CDEFGAB って書くと、ド・レ・ミ・ファ・ソ・ラ・シって鳴るの

ミコ
ミコ

…ドレミをアルファベットで書くだけにゃ?

ねつき
ねつき

基本はそう。C4 で四分音符のド、C8 で八分音符のド。O5 でオクターブを指定して、T120 でテンポを決める。全部テキスト

ミコ
ミコ

…五線譜の代わりに文字列にゃ

ねつき
ねつき

そう! まさにそれなの


1978年のキーボード

ねつき
ねつき

で、調べてみたの。MMLっていつからあるんだろうって

ねつき
ねつき

最初に「テキストで音楽を書く」仕組みが入ったのは、1978年のSHARP MZ-80Kなの。日本のパソコン。BASICっていうプログラミング言語に MUSICTEMPOBEEP っていう命令があった

ミコ
ミコ

…1978年にゃ。48年前にゃ

ねつき
ねつき

そのあとNECのPC-8801に載ったN88-BASICとか、MSXとか、いろんなパソコンのBASICに PLAY 文として入っていったの。PLAY "CDEFGAB" って書くと音が鳴る

ねつき
ねつき

当時のパソコンって、画面に文字を表示するか、ビープ音を鳴らすか、くらいしかできなかったの。その「ビープ音を鳴らす」部分を音楽的に制御するために生まれたのがMML

ミコ
ミコ

…つまり、楽器がないから文字で音楽を書いたにゃ?

ねつき
ねつき

そうなの! キーボードしかなかったから、キーボードで音楽を書く方法を作ったの。鍵盤のキーボードじゃなくて、タイプするほうの

ミコ
ミコ

…道具が制約を決めて、制約が表現を決めるにゃ


MIDIは手紙じゃなくて電話線

ねつき
ねつき

で、MIDIの話なの。MMLと名前が似てるからよく混同されるんだけど、全然違うものなの

ミコ
ミコ

…MIDIにゃ。聞いたことはあるにゃ

ねつき
ねつき

MIDI——Musical Instrument Digital Interface。1983年に生まれた規格なの。Rolandの梯郁太郎さんとSequential Circuitsのデイヴ・スミスが中心になって作った

ねつき
ねつき

当時、シンセサイザーってメーカーごとに全部バラバラだったの。Rolandの機材とYAMAHAの機材を繋いでも、お互いの言葉が通じなかった

ミコ
ミコ

…方言にゃ

ねつき
ねつき

うん、方言どころか別言語なの。だから「楽器同士が話すための共通語を作ろう」ってなった。1983年のNAMMショーで、Prophet 600とJupiter-6——別のメーカーのシンセサイザー同士がMIDIケーブル1本で繋がって、一緒に演奏したの。初めて

ミコ
ミコ

…別メーカーの楽器が会話したにゃ

ねつき
ねつき

そう。MIDIは「今、ドの鍵盤が押された」「強さは80」「離された」っていう操作の情報をリアルタイムでやり取りする仕組みなの。音そのものじゃなくて、動作の指示


テキストエディタとケーブル

ミコ
ミコ

…待つにゃ。整理させるにゃ

ねつき
ねつき

うん

ミコ
ミコ

MMLは「テキストで音楽を書く言語」にゃ。MIDIは「楽器同士の通信規格」にゃ

ねつき
ねつき

そう! そこが核心なの

ミコ
ミコ

…料理に例えるにゃ。MMLはレシピにゃ。「にんにくを刻んで、オリーブオイルで炒めて」と文字で書いてあるにゃ

ねつき
ねつき

うんうん

ミコ
ミコ

MIDIは厨房の連絡網にゃ。「今、3番コンロに火をつけた」「フライパンの温度が180度」という情報が、厨房内のモニターにリアルタイムで流れるにゃ

ねつき
ねつき

わぁ〜、その例えすごくわかりやすいの(゚∀゚)

ミコ
ミコ

レシピを見て人間が料理するにゃ。連絡網は厨房の機材同士が勝手にやるにゃ。読む主体が違うにゃ

ねつき
ねつき

MMLは人間が読み書きするためのもので、MIDIは機械が読み書きするためのもの。だからMMLはテキストファイルで、MIDIはバイナリデータなの

ミコ
ミコ

…それなのに混同されるにゃ?

ねつき
ねつき

だって両方とも「音そのものじゃなくて、音の指示を記録する」って点では同じだから。最終的にスピーカーから出てくる音はどっちも同じになりうるの。過程が違うだけ


2ちゃんねるで生まれた音楽

ねつき
ねつき

で、ここからがねつきが一番好きな話なの

ミコ
ミコ

…にゃ

ねつき
ねつき

MMLって、BASICが廃れた1990年代にいったん忘れられかけたの。WindowsになってMIDIが主流になって、GUIの作曲ソフトが出てきて。テキストで音楽を書く必要がなくなった

ねつき
ねつき

でも2001年に、日本の2ちゃんねるで「mck」っていうツールが生まれたの。Music Creation Kit。ファミコンの音源チップをMMLで制御するコンパイラ

ミコ
ミコ

…ファミコンにゃ? ゲーム機にゃ?

ねつき
ねつき

そう。ファミコンって矩形波2つ、三角波1つ、ノイズ1つ、DPCMサンプル1つ——たった5チャンネルしか音が出せないの。その制約の中でどこまで音楽を作れるか、っていう遊びが始まった

ミコ
ミコ

…5つしかないにゃ。オーケストラなら100以上あるにゃ

ねつき
ねつき

だからこそ面白いの。1つのチャンネルでメロディとベースを高速に切り替えたり、ノイズでドラムとハイハットを同時に表現する技とか。制約があるから技術が生まれた

ミコ
ミコ

ミコ
ミコ

制限された食材で、どれだけ豊かな味を出せるか…にゃ

ねつき
ねつき

4つの材料のペペロンチーノみたいでしょ

ミコ
ミコ

…ペペロンチーノと一緒にするにゃ

ねつき
ねつき

mckで作られた音楽はNSFっていうファイル形式で出力されて、実際のファミコンで再生できたの。2ちゃんねるのDTM板で共有されて、テキストだけのやり取りから音楽が生まれていった

ねつき
ねつき

テキストで書かれた音楽を、テキストだけの掲示板で共有する。考えてみたら、すごく自然な組み合わせだったの


書ける人と弾ける人

ミコ
ミコ

…ねつきちゃん

ねつき
ねつき

うん

ミコ
ミコ

一つ聞くにゃ。MMLを書く人は、楽器を弾けるにゃ?

ねつき
ねつき

…弾けない人も多いと思うの

ミコ
ミコ

…にゃ

ねつき
ねつき

MMLって、楽器の演奏技術がなくても音楽を作れるの。C4D4E4 って打てば音が鳴る。指が動かなくても、コードを知らなくても。テキストエディタさえあれば

ミコ
ミコ

…MIDIはどうにゃ

ねつき
ねつき

MIDIは元が「楽器を繋ぐ規格」だから、基本的には何かしら楽器を弾いて入力するの。MIDIキーボードとか。もちろん画面上でマウスでポチポチ置くこともできるけど、発想の出発点が「演奏」なの

ミコ
ミコ

…MMLの出発点は「記述」にゃ

ねつき
ねつき

そうなの。演奏する人と、書く人。音楽への入口が違う

ミコ
ミコ

…レシピを書ける人が、必ずしも包丁を上手く使えるわけではないにゃ。でもレシピがあれば、料理は完成するにゃ

ねつき
ねつき

…うん。プログラマーが音楽を作れる道を開いたのがMMLなの。楽器の代わりにキーボードで。五線譜の代わりにテキストエディタで


まとめ

ミコ
ミコ

…ねつきちゃん

ねつき
ねつき

うん

ミコ
ミコ

MMLは1978年から48年経ってるにゃ。MIDIは1983年から43年にゃ。どちらも古い技術にゃ。なぜ今も使われてるにゃ

ねつき
ねつき

…なんでだろ

ねつき
ねつき

MIDIは、仕様がシンプルで拡張しやすかったからだと思うの。2020年にMIDI 2.0が出たけど、1.0との後方互換がある。43年前の設計が今でも使えてるのは、最初の設計が良かったから

ミコ
ミコ

…MMLはにゃ?

ねつき
ねつき

MMLは…たぶん、テキストで音楽を書きたい人がいなくならないからだと思うの

ミコ
ミコ

ねつき
ねつき

GUIの作曲ソフトがどんなに進化しても、テキストエディタを開いて CDEFGAB って打ちたい人がいるの。コードを書くみたいに音楽を書きたい人が

ねつき
ねつき

1978年はキーボードしかなかったから文字で書いた。2026年は何でもあるのに、それでも文字で書く人がいる。理由が変わったの。必要だからじゃなくて、そう書きたいから

ミコ
ミコ

…手でこねたパンにゃ

ねつき
ねつき

え(゚∀゚)

ミコ
ミコ

機械でこねたほうが均一で効率的にゃ。でも手でこねるのは、生地の温度と水分を指で感じて、その日の湿度に合わせて力加減を変えるからにゃ

ミコ
ミコ

テキストで音を一つずつ書くのは、音の長さと高さを一つずつ自分で決めてるということにゃ。便利さを捨てて、手触りを選んでるにゃ

ねつき
ねつき

ねつき
ねつき

ミコちゃんがパンをこねる理由と、プログラマーがMMLを書く理由が同じだったの

ミコ
ミコ

…一緒にするにゃ

ねつき
ねつき

2回目のそれ


関連リンク:

♪ 拍手 ♪
0 拍手