MewMMLPad リリース — 音楽は、テキストでも書ける

Published: May 16, 2026 by mewlist

MewMMLPad という MML シーケンサーをリリースしました。MML(Music Macro Language)テキストを書くだけで MIDI を生成・再生できる VST3 プラグイン / スタンドアローンアプリです。最大 16 チャンネル同時演奏、内蔵シンセ搭載、DAW(Cubase で動作確認済み)への MIDI ルーティング、MIDI クリップのドラッグ書き出しに対応しています。

この記事では、なぜ今この道具を作ったのか、設計で何を大事にしたのか、そしてどんな使い方を想定しているのかを書いていきます。

あの頃の PC 打ち込み文化、そして MML

少し時代を巻き戻します。パソコンが家庭に入ってきた 1980 年代後半から 90 年代にかけて、PC は計算機であると同時に、音楽を作る道具 でもありました。当時はもちろん DAW なんてものは存在しません。曲を作る人たちは、テキストエディタを開いて、英数字で音符を 1 つずつ書き並べていました。

o4 c4 d4 e4 f4

たとえばこれで「ドレミファ」が 4 分音符で鳴ります。o4 がオクターブ 4、c4 がドの 4 分音符。慣れてくると、文字を見るだけで、どの音がどれだけ鳴るかが頭の中で読めるようになっていきます。

この、英数字で音楽を書く言語が MML(Music Macro Language) です。MML は当時のさまざまな PC 環境で広く使われていて、機種ごとに少しずつ方言の違う MML 環境が育っていきました。PC-88 では古代祐三氏作の MUCOM88、PC-9801 では PMD や FMP、X68000 では MXDRV、MSX では MuSICA、といった具合に、それぞれの音源を鳴らすための MML コンパイラがありました。

なかでも MUCOM88 は、いまも開発・メンテナンスが続けられている現役の MML 環境で、現代の Windows 上でも動かせます。30 年以上前に生まれた道具が、いまも育てられていて、現役で使える——テキストで音楽を書くという文化が決して過去のものではないことを、よく表している例だと思います。

意外なところでは、任天堂のゲーム機向け周辺機器 「ファミリーベーシック」でも MML を書くことができました。家庭用ゲーム機のキーボードの前で、BASIC のプログラムを書きながら PLAY "CDEFG" という命令で曲を鳴らす——そんな入口から MML に出会った人も少なくないはずです。子供が初めて触れた “プログラミング” であり、初めて触れた “作曲” でもあった、というケースは案外多かったのではないでしょうか。

矩形波・三角波・FM 音源・PSG といった、いま チップチューン と呼ばれるあの独特の音色は、もともとこういった環境で MML から書かれていました。テキストを書いて、当時のシンセに鳴らしてもらう。それが、ひとつのスタンダードな作曲スタイルだったわけです。

これらの環境で当時の人たちがやっていた作業は、いまのピアノロールにマウスで音符を置くのとはまったく違うものでした。音楽を「書く」、文字どおり、書いていた。テキストに書いて、コンパイルして、鳴らして、書き直す——そうやって少しずつ曲を組み立てていく営みは、当時の PC 文化の一部でした。

その文化のなかで、MML は道具として磨かれていきます。繰り返し、マクロ、ピッチベンド、調号、タプレット——テキストだけで複雑なアンサンブルを書ける言語に育っていきました。

FMP の頃から続くテキスト作曲には、いまも独自の価値がある

そうした文化のなかで、私自身が当時いちばん使い込んだ環境が FMP でした。PC-98 で FM 音源を鳴らすための MML コンパイラのひとつで、テキストエディタに FMP の MML を書いて、コンパイルして、鳴らして、書き直して。テンプレートを写経することから始めて、自分なりにフレーズを足したり、リピートやマクロで曲の構造を組み替えたりしていた——あの作業フローが、私にとっての「曲を作る」の原体験です。今で言う「コードを書く」感覚で音楽を作るのは、当時すごく自然に感じていました。

時代が下って、私の作曲作業もすっかり DAW 中心になりました。ピアノロールでマウスを使って音符を置く、いわゆる打ち込みの世界です。便利だし、直感的だし、ミックスや音源の自由度も段違いです。でも、ふとした瞬間に「テキストで音楽を書きたい」と思うことが何度もありました。

理由を整理するとこんなところです。

テキストで音楽を書くことの良さ

  • コピペでパターンを繰り返したり、少しの修正で変化を加えられる:リピート記法、マクロ、変数を組み合わせると、「2 周目の途中で和音だけ転調」「同じリズムで音だけ差し替え」といった変奏を、数文字の編集で表現できる。同じ変化をピアノロールで作る手間と比べて、編集の単位が大きい
  • 画面に収まる抽象度で全体像を把握しやすい:ピアノロールは音符一つひとつが具体的に並ぶので、曲全体を見渡すには横スクロールが必要になる。MML だと 1 画面に全 16 ch の構造を収められるので、「ここで盛り上がってここで抜く」といった大局的な判断がしやすい
  • 文字で書くことによる音に対するアプローチの違いが、曲そのものにも現れる:マウスで音符を置くときと、文字で旋律を書くときでは、思考の流れが違ってきます。テキスト中心で書いていると、繰り返しの中に変化を仕込むような、パターン的・構造的なフレーズが生まれやすい印象があります。道具が変われば、書ける曲も変わってくる、と言ってもいいかもしれません

一方で、現代の DAW フローの中で MML をそのまま使うのはなかなか難しい状態でした。既存の MML 環境は素晴らしい完成度ですが、コンパイル → SMF 書き出し → DAW にインポート、という分断があります。書いては鳴らし、書いては鳴らし、というイテレーションを DAW の中だけで完結させたかった。

そこで、MML を DAW プラグイン(VST3)にしてしまえばよいのではないか、というのが MewMMLPad の出発点でした。VST3 として DAW に挿せば、MML テキストを書く・パースする・MIDI を出す、までが DAW の中で完結します。書いた内容はその場で DAW 上の音源で試聴できますし、出来上がった MIDI はそのまま DAW のトラックにドラッグして配置できます。

設計で大事にしたこと

16 ch オムニ MIDI 出力

MewMMLPad のチャンネル A〜P は、そのまま MIDI ch 1〜16 に対応します。送信側の出力 ch と、受け取る VSTi 側の入力 ch を両方とも「All」にすれば、1 つのインストゥルメントトラックの中で 16 パートを同時に鳴らせます。マルチティンバー音源なら、チャンネルごとに別の音色を割り当てて分業させられます。

このマルチ ch ルーティングが、MewMMLPad の「DAW プラグインらしさ」を支える部分です。MML はもともと 16 ch のアンサンブルを記述するのに向いた記法なので、その構造をそのまま DAW のトラック構成に持っていけるようにしました。

内蔵シンセも同梱

VST3 版を DAW に挿す場合、必ずしも外部音源にルーティングしなくても、内蔵シンセだけで音を出せます。波形は Sine / Saw / Tri / Square、ADSR エンベロープはチャンネルごとに個別設定。プリセットの XML 保存にも対応しています。

スタンドアローン版なら、それ単体で曲を試聴できます。Windows では ASIO に対応しているので、実用的な遅延で再生できます。

MIDI クリップのドラッグ書き出し

ヘッダの MIDI ボタンから DAW のトラックへドラッグするだけで、MML の内容をチャンネルごとに分けた SMF として書き出せます。MML を編集した直後でも、ドラッグ開始時に最新の内容が反映されるようにしてあります。

「MML で骨組みを書いて、MIDI として書き出して、あとは DAW でちゃんとアレンジ」というワークフローを成立させるための機能です。

リアルタイム再パースと演奏位置の可視化

テキストエディタに何か書くと、約 0.5 秒後に自動的にパースされて、すぐに再生に反映されます。エラーがあればステータスバーに赤字で出ます。

演奏中はエディタ内にチャンネルごとに色分けされた色帯が流れ、今どの位置を弾いているかが視覚的にわかります。テキストとサウンドの対応関係が常に見えていることは、編集中のズレや誤りに気づく助けになります。

数行で曲が鳴る

ドレミファソラシドを鳴らすのに必要な MML は、たった 1 行です。

A T120 O4 L8 V100 CDEFGAB>C

A がチャンネル、T120 でテンポ、O4 がオクターブ、L8 がデフォルト長さ(8 分音符)、V100 がベロシティ、その後ろがドレミファソラシド。スタンドアローン版で ▶ ボタンを押せばすぐ鳴ります。

2 チャンネル同時に鳴らすときは行を分けて書きます。

A T120 O4 L8 V100 CEGCEGCE
B      O3 L4 V70  C4 G4 C4 G4

T のような曲全体に効く設定は A チャンネルにだけ書きます。

DAW に挿して使うときは、別トラックの音源に MIDI をルーティングして、両端の MIDI ch を「All」にすれば 16 パート分の MIDI が一気に流れます。詳しくはチュートリアルインストール、全コマンドは MML リファレンスにまとめてあります。

実際の曲を題材にした機能解説はサンプル曲で学ぶを見ていただくのが早いです。マクロや変数、ピッチベンド、グリッサンド、タプレットといった発展的な記法が、1 つの曲の中でどう組み合わさっているかを 1 行ずつ追えるように書きました。

こんな作業に向いている

スケッチ・アイデア出し

頭の中にあるフレーズをテキストに落とす作業は、ピアノロールに音符を 1 つずつ置いていくのとは別の手触りがあります。O4 L8 CDEFG のように一度に書き下せる粒度感、リズムパターンを [CDER]4 のように短くまとめられる書き方の自由度は、スケッチ作業と相性がよいと感じています。

骨組みが固まった段階で、MIDI 書き出しによって DAW に渡す、という流れに自然に乗せられます。

チップチューンを書く

矩形波・三角波・ノイズが MML から直接書けるので、チップチューンの制作に素直に向いた構成です。内蔵シンセだけでも形にできますし、外部の専用音源と組み合わせれば、より細かい音作りにも発展させられます。

AP の 16 ch を、メロディ / ベース / アルペジオ / パッド / SE のように分業させると、チップチューン特有のレイヤー構造を、テキスト 1 枚で見渡せます。

DAW でのプロトタイピング

DAW で本格的なアレンジに入る前の、「コードとメロディの骨組みを組み立てる」フェーズで使う、という流れがあります。和声進行やリズムパターンを MML で書き換えながら検討し、形が決まったら MIDI に書き出して DAW のトラックに流し込む、という運用です。

書き換えがその場で再生に反映されるので、「この進行とあの進行どちらが収まりがよいか」のような比較は、テキストを差し替えるだけで進められます。

既存 MML 環境のリファレンス再生

FMP をはじめ、当時の MML 環境向けに書かれた古い MML(自作のものも、他人のものも)を、現代の DAW 上で再現してみたい場合の入口にもなります。記法は方言の違いがあるので完全互換ではありませんが、「テキストで音楽を書く」という操作感そのものは同じです。当時の曲を読み返しながら写経し直すのは、それ自体が楽しい作業です。

まとめ

MewMMLPad は、テキストで音楽を書く文化を現代の DAW フローに接続するための道具です。MML の良さ(再現性、構造の可視性、書き直しの速さ)と、DAW の良さ(多彩な音源、ミキシング、トラック管理)を両立させたい、というのが設計のモチベーションでした。

動作確認は今のところ Cubase(Windows / macOS) で取れています。MewMMLPad は VSTi として MIDI を出力するプラグインなので、ホスト側に VSTi の MIDI 出力ルーティングのサポートが必要です。たとえば Ableton Live はこの仕組みに対応していないため、現時点で動作しないことを確認しています。他の DAW でも、ホストの MIDI 出力対応の有無によって動作するかどうかが決まります。

その場合でも、スタンドアローン版で曲を仮組みし、ヘッダの MIDI ボタンから SMF を DAW にドラッグアンドドロップして受け渡す、という運用は可能です。MML での編集とパース・試聴はスタンドアローン側で済ませ、出来上がった MIDI を DAW のトラックに流し込む、という分業のかたちで使うことができます。

入手先は BOOTH です。ドキュメントとサンプル曲解説は本サイトに揃えてあるので、買う前に雰囲気を見たい方はそちらも覗いてみてください。

Share

About me

mewlist

Latest Posts

MewMMLPad リリース — 音楽は、テキストでも書ける
MewMMLPad リリース — 音楽は、テキストでも書ける

MewMMLPad という MML シーケンサーをリリースしました。MML(Music Macro Language)テキストを書くだけで MIDI を生成・再生できる VST3 プラグイン / スタンドアローンアプリです。最大 16 チャンネル同時演奏、内蔵シンセ搭載、DAW(Cubase で動作確認済み)への MIDI ルーティング、MIDI クリップのドラッグ書き出しに対応しています。

Unity の初期化順とDoinject を使った初期化順の制御について
Unity の初期化順とDoinject を使った初期化順の制御について

Unity の初期化順とDoinject を使った初期化順の制御について

マルチシーン構成のプロジェクトに Doinject を導入して、いかなるシーンの作業中でもUnityEditor を直接再生できるようにする
マルチシーン構成のプロジェクトに Doinject を導入して、いかなるシーンの作業中でもUnityEditor を直接再生できるようにする

マルチシーン構成の Unity プロジェクトを開発しているとして、 以下のような構成を想定してみましょう。