TeXで楽譜・MIDI作り --- M-Tx入門

はじめに

TeXには楽譜を扱うためのパッケージやソフトがいくつかあります。その有名なものにMusiXTeXがあり、柔軟な設定により非常に美しい出力が得られます。しかし、これは少々使い方の難しいものです。

そのため、簡単な記述のファイルからMusiXTeXのファイルを生成してくれるPMXというものが出来ました。これは、簡単な命令とアルファベットと数字の羅列で楽譜を作ることが出来るようにしたもので、MusiXTeXよりも手間がぐっとかからなくなりました。さらに、簡単なMIDIを作る機能まで備えています。しかし、これでもちょっと直感的な記述方式とはいえませんでした。

そこで、さらに簡単で直感的な記述のファイルからPMXのファイルを生成してくれるM-Txができました。これで、TeXによる楽譜作りは相当簡単になりました。

ここでは、M-Txから楽譜を作ってみることにしましょう。

M-Txおよび関連ソフトのインストール

MusiXTeXのインストール

MusiXTeX and Related Softwareというサイトからmusixtex.zipをダウンロードしてきます。これを解凍し、出来たフォルダを開きます。

以下、C:\usr\local\share\texmf-local(Cドライブのusrフォルダの中のlocalフォルダの中のshareフォルダの中のtexフォルダ内のtexmf-localフォルダ)を「$TEXMF」という記号で表します。

TeX フォルダの中身すべてを $TEXMF\tex\generic\musixtexフォルダの中 に入れます。

fonts\mf フォルダ内のすべてのファイルを $TEXMF\fonts\source\public\musixtexフォルダの中に入れます。

fonts\tfm フォルダ内のすべてのファイルを $TEXMF\fonts\tfm\public\musixtexフォルダの中に入れます。

system\musixflx\win32フォルダ内のmusixflx.exeをC:\usr\local\binなどPATHの通っているところであればどこでもいいので、コピーします。

もしも必要であれば、コマンドプロンプト(MS-DOSプロンプト)より
mktexlsr

を忘れずに実行してください。

PMXのインストール

MusiXTeX and Related SoftwareというサイトからPMXの「ZIP with DOS/Win binary」をダウンロードしてきます。これを解凍し、出来たフォルダを開きます。

インストールは次のようにします。ここも、$TEXMFはC:\usr\local\share\texmf-localなど、自分の環境に置き換えてください。

PMXを解凍し、 texフォルダ内のpmx.texを $TEXMF/tex/generic/musixtex/pmx に、 binの中身すべてをPATHの通ったところ(TeXを私のWebページの方法でインストールした場合はC:\usr\local\bin)にコピーします。

M-Txのインストール

MusiXTeX and Related SoftwareというサイトからM-Txの「Version for Win32」より「ZIP」をダウンロードしてきます。これを解凍し、出来たフォルダを開きます。

インストールは次のようにします。ここも、$TEXMFはC:\usr\local\share\texmf-localなど、自分の環境に置き換えてください。

prepmx.exeをPATHの通ったところにコピーし、 mtx.texを $TEXMF/tex/generic/musixtex/mtx にコピーします。

さらに、「Documentation」の「ZIP」もダウンロードし、解凍後、styファイルをすべて$TEXMF/tex/generic/musixtex/mtxにコピーします。

なお、上の作業だけではPMX処理時にエラーが出ることがあるそうです。その場合はmusixlyrをダウンロードし、$TEXMF/tex/generic/musixtex/misc にコピーします。

使ってみよう

まずは簡単なドレミから

まずは、test.mtxというテキストファイルを作り、次のように書いてみましょう。すべて半角英数字で書きます。

c d e f | g a b c |
c d e f | g a b c |

これを処理すると、次のような出力が得られるでしょう。

ドレミファソラシド

何も指定しない今回の場合は、上がト音記号、下がヘ音記号の譜面になります。一行のみ書いた場合はト音記号のみです。

音符をアルファベットで書くやり方に慣れてない方のために補足しますと、ドがc, レがd, ミがe, ファがf, ソがg, ラがa, シがbです。(「℃(ドC)」、「lady(レD)」、「意味(Eミ)」、「FA, F(Fとファの頭文字はどちらもF)」、「素地(ソG)」、「あら(Aラ)」、「ビシッ(Bシ)」といった感じに覚えればいいでしょう。ドとラさえ覚えておけば十分だと思いますが。)単に「c」と書いた場合は四分音符で、ト音記号の場合は下に一つ棒を引いて書くドです。ただし、今回のように、連続して音程が上がっていき、その後でcが出た場合は自動的に1オクターブ上がったドになります。低いドにしたい場合は、後述するように、「c-」という記号を使う必要があります。

縦棒が小節線に相当します。

以上でひとまず出来上がりです。

はじめての楽譜作り

では、このmtxファイルを処理してみましょう。コマンドプロンプト(MS-DOSプロンプト)を開き、mtxファイルのある場所にcdコマンドで移動した後、次を実行します。ファイルがtest.mtxだとすると、

prepmx test
pmxab test
ptex test
musixflx test
ptex test
dvipdfmx test

と、6つものコマンドを実行します。(それぞれ、M-Tx→PMX→pTeX→MusiXTeX→pTeX→dvipdfmxのコマンドです。)mtxファイルを修正するなどして、もう一度処理しなおす場合は、最初に

del test.mx2

を実行するなどしてmx2ファイルを消してからにしてください。(Explore上でマウスで削除しても構いません。)そうしないとおかしな出力が得られるでしょう。

さて、test.pdfを開いてみてください。うまくできたでしょうか?

音の高さを変えてみよう

同じド(c)でも、低いドや高いドを使いたいときがあります。その場合は次のように「+」と「-」を後ろにつけます。

c- c- c+ c+ | c+ c+ c- c- |
c- c- c+ c+ | c+ c+ c- c- |

出力は次のとおりです。

低いドから高いドへ

音の長さを変えてみよう

音の長さを変えてみましょう。全音符から64分音符まで短くしていきます。

c0 | c2 c4 c8 c1 c3 c6 c6 |
c0 | c2 c4 c8 c1 c3 c6 c6 |

見てのとおり、後ろに数字をつけることで音符の長さを表します。(省略した場合は先ほど申し上げたように4分音符になります。)全音符は0、2分音符は2、4分音符は4、8分音符は8、16分音符は1、32分音符は3、64分音符は6と、全音符以外はそれぞれ頭の数字から取っています。

出力は次のとおりです。

音の長さを長いほうから短いほうへ

符点も付けてみましょう。これは長さを表す数字の後ろにd(dotの略)をつけるだけです。

c2d c4 | c8d c1 c3d c6 c2 c8 |
c2d c4 | c8d c1 c3d c6 c2 c8 |

出力は次のとおりです。

符点を付けてみる

休符とシャープ・フラットなどの記号

休符は音符の代わりにrを書くだけです。

r0 | r2 r4 r8 r1 r3 r6 r6 |
r0 | r2 r4 r8 r1 r3 r6 r6 |

出力は次のとおりです。

休符

余談ですが、休符(正確には「休止」)のみで構成された「4分33秒」という曲があります。

それはともかく、次はシャープ・フラット・ナチュラルです。音符の後ろにsをつけたらシャープ、fをつけたらフラット、nをつけたらナチュラルです。

c cs cf cn | c c c c |
c d e f | c c c c |

出力は次のとおりです。

シャープなどの記号

スラーやタイを付けてみよう

音を滑らかに出すときに使うのがスラー、同じ音を連続的に出すのがタイでした。2つとも音符の上や下に小さなカーブをつけるのでしたね。

これは、スラーをつけたい音符の始まりの左に左カッコを、音符の終わりの部分の右に右カッコをつけます。左カッコのすぐ右に"をつけると点線のスラーになります。タイは中カッコを使うようですが、普通のカッコでも大丈夫に見えます。

( c c ) ( c c | c c ) (" c d ) |
{ c c } ( c c | c c ) (" c d ) |

小節をまたいでも大丈夫です。

出力は次のとおりです。

符点を付けてみる

譜面の上にいろいろな記号を付けてみよう

今度は、譜面の上にさまざまな記号を付けてみましょう。まずは「フォルテ」などの記号の付け方です。これは、譜面の記号の上に「U:」で始まる行を作り、そこにpだとかffだとか書いていくだけです。これらの強弱の記号は自動的に適切なフォントで表示されるようになります。

U: p mp mf f ff pp sf rfz |
c c c c | c c c c |
c c c c | c c c c |

出力は次のとおりです。

譜面の上の強弱記号

「U:」の行にcrescやritだのといった記号をつけた場合は、イタリックのようなフォントではなく、普通の立体で表示されます。

U: cresc. | rit. |
c c c c | c c c c |
c c c c | c c c c |

出力は次のとおりです。

譜面の上の文字

クレッシェンドなどの不等号のような記号は<や>を普通に書き、終わらせたいところで<や<の後ろにピリオドを加えたような記号を書きます。小節をまたぐことも出来ます。

U: < <. | > >. |
c c c c | c c c c |
c c c c | c c c c |

出力は次のとおりです。

不等号のようなクレッシェンドなどの記号

クレッシェンドの長さを変えることも出来ます。この場合は、音符と音符の間くらいの空白を空ける命令であるチルダ「~」を使います。具体的には次のようにします。

U: < ~ <. | > >. |
c c c c | c c c c |
c c c c | c c c c |

出力は次のとおりです。

クレッシェンドを伸ばす

フェルマータなどの記号類は「U:」の単独行ではなく、譜面と一緒に書きます。oの後にアルファベットなどがついたようなものがそれです。

c ot c ox c om c o+ | c oT c os c c |]
c c c c | c c c c |]

出力は次のとおりです。

フェルマータなどの記号

応用編です。「U:」行にはギターのコードを書くことができますし、「D.C.」などの記号をを下に書くことも出来ます。ギターコードでシャープは#を、フラットは%を書きます。また、下に記号を書くときは「@v」という記号をあらかじめ書いておきます。D.C.の場合は右にずらしたいですので、「出力しないでずらす」記号であるチルダ「~」を使って書いていきます。(重ねて書くときは、音符と同様、半角スペースで区切って書きます。)具体的には次のとおりです。

U: A# | A% @v ~ ~ D.C. |
c+ c c c | c c c c |

出力は次のとおりです。実際にはD.C.はもう少し右だと思いますが、どうもうまくいきません。解決策をご存知の方はまでご連絡ください。

譜面の上下の文字

最後はセーニョとダル・セーニョです。ogがセーニョの記号です。

U: @v | ~ ~ ~ D.S |
c+ og c c c | c c c c |

出力は次のとおりです。楽譜の書き方を間違えていますが、皆さんは正しく書いてください。

セーニョ

和音を書こう

同時の複数の音を出した音を和音といいますね。これは行頭に「C:」をつけて単独行で書いていきます。一番低い音を譜面の行に、それより高い複数の音を「C:」の行に音符を並べて書きます。

c d b c | c c c c |
C: eg fa dg eg | |
c c c c | c c c c |

出力は次のとおりです。

和音

アルペジオ(和音の横に波線がついたもの)は次のように、「C:」の行の和音の前に「?」を書くだけです。

c d b c | c c c c |
C: eg ?fa dg ?eg | |
c c c c | c c c c |

出力は次のとおりです。

アルペジオ

さまざまな小節線・繰り返し記号

小節線にもいろいろありますが、書き方は非常にシンプルです。細いのは縦棒「|」、太いのは大カッコ「[, ]」、繰り返しの2つの点はコロン「:」と、形のとおりです。
c c c c |: c c c c :|: c c c c :| c c c c || c c c c | c0 |]

出力は次のとおりです。

小節線・繰り返し記号

連符と装飾音

まずは、連符のようなものから書いてみましょう。連符の最初の音符の後ろにxを書き、そのxの後ろに連符にしたい音符の数を書き、あとは普通に音符を書いていくだけです。

c c ax3 b c d |

出力は次のとおりです。

連符

音符の前につける小さな音符、装飾音をつけてみましょう。

これは装飾音を付けたい音符の前にGを書き、その後ろに装飾音の音符の数(1なら省略可)、さらに後ろにオプションを現すアルファベットを書きます。詳しくは入力例と出力例をご覧ください。

c c G2a b c4 G3g a b c4 | Gb c Gsb c Gxb c G3m2g a b c |

出力は次のとおりです。

装飾音

歌詞をつけよう

さて、次は歌詞を書いてみることにしましょう。

これを書くためには、譜面を書く前の部分に「Style:」で始まる行を作り、そこに「SATB」(ソプラノ・アルト・テノール・バスの四声)や「SINGER」(独唱)を指定しなければなりません。(他にはPIANOなどがあります。無指定のときは二重奏であるDUETとなります。)

指定できたら譜面の下、あるいは二つ譜面があるならその間にでも「L:」で始まる行を作り、歌詞を半角スペースで区切りながら書いていきます。(全角スペースで書かないように注意してください!)

Style: SINGER

c4 d e f | g a b c |
L: ア ア ア ア ア ア ア ア

出力は次のとおりです。

歌詞

声を伸ばしたいときは半角ハイフンで区切ります。一つの音符で2文字分パッと歌わせたいときに、2文字の下にカーブを書くことがありますが、これは「_」を二つの文字の間に挟みます。

Style: SINGER

c2+d d4 |]
L: アー-メ_ン |]

出力は次のとおりです。

歌詞を伸ばしたいとき

楽譜にさまざまな調整をしてみる

歌詞の項目で「Style:」のような単独行を紹介しましたが、他にもこのような役割のものがいくつかあります。これらはすべてmtxファイルの前半部(これを「プリアンブル」といいます)に書きます。

次をご覧ください。

Title: ドレミファソラシド
Composer: とある作曲家
Style: SATB
Space: 9
Sharps: 3
Meter: 3/4

% w120m

c d e | g a b |]
a- b c | e f g |]
L: 1. ア ア ア ア ア ア
L: 2. イ イ イ イ イ イ
L: 3. ウ ウ ウ ウ ウ ウ
c d e | g a b |]
a- b c | e f g |]

プリアンブルに書いたものは、「Title:」に曲のタイトル、「Composer:」に作曲者、「Style:」に曲の形式、「Space:」に譜面間のスペースをどれだけ取るか(歌詞をたくさん書くときに便利)、「Sharps:」「Flats:」にてシャープやフラットの数を、「Meter:」で拍子を指定します。(スラッシュの前に分子、後ろに分母を書きます。)また、「% w120m」は譜面の幅を120 mmとったことを示すものです。

詳細はマニュアルをご覧ください。

出力は次のとおりです。

譜面の調整

細かい小技

以下は細かい小技を紹介していきます。

まずは、繰り返し線の上にある四角と番号のようなものです。V1が繰り返し線の手前の1番の箱、Vb2が2番の箱、Vxはその2番の箱はここまで、という意味の命令です。

Style: SINGER

|: c c c c | V1 c c c c :| Vb2 c c c c |: Vx c c c c |]

出力は次のとおりです。

繰り返し線の前後の箱

調号の変更と変調・特殊な拍子の書き方です。

一見難しそうですが、まずは行頭が「Meter:」および「%%」で始まる行をそのままコピー・貼り付けをし、たとえば、3分の4拍子、カッコの中が6分の8であれば、下のようになりますが、そうでない場合は下の命令の「34」となっているところや「68」となっているところをすべて書き換えるだけです。(M-Txのマニュアルを参考にしました。)

調号の変更ですが、ヘ音記号に変えたい場合はC6, ト音記号に変えたい場合はC0と書きます。変調は、Kの後ろに+あるいは-をつけた数字を2つ書いていけばいいです。Cの位置を移動する量が一番目、二番目はシャープあるいはフラットの数です。一番目の数字の意味が分からない場合は+0とでも書いておきましょう。そして、二番目の数字において、シャープ2つのものに変調するなら+2、フラット3つなら-3のように書けばいいでしょう。

Style: Piano

Meter: m3406
%% \def\upiii#1{\raise3\internote\hbox{{#1}}}
%% \def\chacarera{\meterfrac34\upiii{\Big(}\meterfrac68\upiii{\Big)}}
%% \let\oldmeterC=\meterC \let\meterC=\chacarera

c c c || C6 c c c || C0 c c c |]
c c c || K+0-2 c c c || c c c |]

出力は次のとおりです。

調号変更・変調・特殊な拍子

ピアノの楽譜でよく見かけるペダルの記号を書いてみましょう。\PED\でペダルを踏む記号、\DEP\でペダルを離す記号です。

c+ \PED\ c c c | c \DEP\ c c c |

出力は次のとおりです。

ペダル

最後はコーダを書いてみましょう。実はちょっと手間がかかります。PMXの簡潔なまとめを参考に、やってみましょう。

まずは、M-Txソースに、たとえば次のように書きます。コーダはとりあえず譜面部分に「\coda g\」と書いておきます。

U: @v ~ ~ ~ D.C. | |]
c+ c c c | \coda g\ c c c c |]

このファイルをtest.mtxとします。M-TxおよびPMXで処理します。

prepmx test
pmxab test

ここで、texファイルが出てきます。これを直接修正します。Bar countの行の前の行に「\en」というものがありますが、該当する「\coda g」(最後の\はいらない)を\enの前に切り取り・貼り付けします。具体的には、

\pnotes{2.83}\ql{'c}\ql c\ql c\mtxZchar{-4}{D.C.}\ql c\en%
% Bar count 2
\xbar
\pnotes{2.83}\coda g\ql{'c}\ql c\ql c\ql c\en%

\pnotes{2.83}\ql{'c}\ql c\ql c\mtxZchar{-4}{D.C.}\ql c\coda g\en%
% Bar count 2
\xbar
\pnotes{2.83}\ql{'c}\ql c\ql c\ql c\en%

のように直すわけです。あとは残りの処理を完了させるだけです。

ptex test
musixflx test
ptex test
dvipdfmx test

出力は次のとおりです。

コーダ

LaTeXに楽譜を貼り付けてみよう

楽譜を画像として貼り付けるという手もありますが、一応M-TxおよびMusiXTeXには楽譜を挿入するための命令があります。

楽譜をtest.mtxとします。あらかじめM-TxとPMXで処理しておきます。

prepmx test
pmxab test

test.texができました。LaTeX文書ではmtxlatexとcharterパッケージを読み込み、その後で\mtxlatexという命令を書いておきます。以上をプリアンブルに書きます。あとは本文中のscore環境内で\inputという命令を用いてtest.texを読み込みます。「.tex」は省略可能です。

\documentclass{jarticle}

\usepackage{mtxlatex,charter}
\mtxlatex

\begin{document}

楽譜の出力テストです。

\begin{score}

\input test

\end{score}

\end{document}

このLaTeX文書をfoo.texとします。楽譜ファイルtest.texはfoo.texと同じ場所にあるとします。次のように処理します。

platex foo
musixflx foo
platex foo
dvipdfmx foo

以上で完成です。出力は次のようになります。

楽譜を貼り付けたLaTeX文書

MIDIファイルを作ろう

mtxファイルに一行加えるだけで、MIDIファイルを作ることが出来ます。その一行とは、次のものです。

PMX: I

あとは次のように処理するだけです。

prepmx test
pmxab test

これでMIDIファイルが出来ました。

出来上がったMIDIファイルをそのまま楽しむもよし、携帯電話の着メロにしてみるのもよしです。VodafoneやAUの方はSMF to SMAFコンバータ、DoCoMoの方はMIDIToMLDが使えるでしょう。

目次に戻る


This document is dedicated to the Public Domain! --- この著作権を放棄した文書は「みなさんのもの」です!
This web page is written by Yasuhiro Otomo.
If you have any question about this page, send e-mail to me --- ご質問は大友まで。
You can link to this web page freely! --- リンクはご自由にどうぞ!
This web page typed on xyzzy 2.2.234