MusiXTeXの使いこなし術

Last Updated: 2012/07/18, 2021/05/23, 2022/09/17

MusiXTeX、PMX、M-Txに関するTips集です。デフォルトで備わっていない機能の実現方法やトラブルシューティングを集積しています(備忘録とも言えます)。「こんなことができたらいいな」という方法を、気がついて実現次第まとめていきます。

[2007/07/22] 以下には古い記述も含まれていますのでご注意ください。また、リンク先が無効となっているものは、当該ページの再建が間に合っていないためです。鋭意再建を目指しますが、作業は遅々たるものです。ご了承ください。現在公開されているもののリストは上位のインデックスページにあります。


基本機能編

★mfやmp、ppの見栄えがいまひとつよくない

現在、これらに用いるための新しいフォントを設計中です。

当座しのぎとして、以下のような方法があります。m(メゾ)をひとまわり小さなフォントで書くと良いようです。sfzなども同じです。また、ppは間隔を狭めてやると良いようです。

\makeatletter
\def\f@kern{\kernm\p@ne ex}
\def\p@kern{\kern-0.115em}

\def\sfz{{\raise0.1ex\hbox{\smallppff s}\normppff\kern-0.1em f%
          \kern-0.08em\raise0.1ex\hbox{\smallppff z}}}%
\def\mf{{\raise0.1ex\hbox{\smallppff m}\normppff\kern-0.1em f}}%
\def\mp@{{\raise0.1ex\hbox{\smallppff m}\normppff\kern-0.08em p}}%
\let\mezzopiano\mp@
\def\pp{{\normppff p\p@kern p}}%
\makeatother

★拍子記号の分数のフォントが楽譜らしくない

LilyPondのフォントを流用する拡張を作ってみましたのでご参照ください。

★連桁記号・スラーが美しくない
★連桁記号・スラーの途中に継ぎ目が入る

連桁記号・スラーをベクトルデータ化する拡張を作ってみましたのでご参照ください。

★ダルセーニョが斜めなのが気に入らない
★コーダー記号に飾り腕がないのが気に入らない
★<>という形のアクセント(little-swell. 日本では三善アクセントと呼ばれるもの)が使えない

追加フォントを作ってみましたのでご参照ください。ただし、あくまで試験品であり、今後どうするかは未定です。

ダルセーニョについて:
海外の楽譜で、MusiXTeXのフォントと同様のダルセーニョが使われているのを、一度だけ見たことがあります。しかし、日本で出版される楽譜では見たことがありません。
かつてMusicTeX用の拡張マクロMusicExpがあり、そこには綺麗な(日本人好みの?)ダルセーニョが入っていました。MusicExpは今でもCTANから入手できますが、マクロがMusiXTeXと非互換であることと、フォントのライセンスが保留となったままで明確な規定が無いので、そのままではMusiXTeXへの流用が出来ません。

little-swellについて:
[2005/02/23] 海外のいくつかのページ(例えばここここ)でこの名前 little-swell を見つけました。また、辞書によっては音楽記号として記載があります(Excite エキサイト辞書:英和辞典、swell 名詞3項)。ただし単にswellというとcrescendoを含む場合があるようです。
日本では三善晃が非常に多用して普及したことから「三善アクセント」と通称されていますが、ブラームスの作品にも出てきますので、この呼び方は不適切なのかもしれません。

★同時に使えるスラーの本数が足りない、パート数が足りない、トリルが6パートまでしか出せない、etc.

→標準配布に含まれる musixmad.tex でも足りない場合に対応するため、e-TeXの使用を前提に、パート数を含め、いろいろなものを増やす拡張を作ってみました。
[2008/01/01] 欧文だけならこの拡張のみで可能でしたが、2007/12/30にW32TeXのpTeX+e-TeX対応がアナウンスされ、高度な日本語組版を含む大規模楽譜作成も可能になりました。もっともこれに対応するプリプロセッサがありませんので、普段使いにはまだまだハードルが高いことに変わりはありません。

T.115において、標準でe-TeXに対応となり、スラー等すべてが100個まで使えるようになりました。

★線の太さが太い、細い

五線・小節線・譜尾の線の太さを変えられるようにしてみました。(musixlth)

私が2002年当時使っていたプリンタ(EPSON LP-900)は、線が太めに出る傾向が強く、特に16ptで組むと真っ黒い楽譜になってしまいました。その線を細くするために作ったものです。しかし欧州の方から「シニア向けのサークルで賛美歌の組版をしているが、老眼鏡をかけたくない人が多く、もっと太い線で書いてくれと頼まれた」というレポートも頂きました。このあたりは人それぞれ、用途それぞれ、どうにでも出来てしまうのがMusiXTeXの良いところだと思います。

ついでに、リピートの場合分け(volta 「1. 「2. etc.)の縦線の位置を、より適切と思われる位置に直しています。このあたりは詳しい方のご助言をいただきたいところです。

★符鈎つき(八分音符以上)音符にも符尾の長さの調整を行いたい

[2009/10/13 NEW!!]
MusiXTeX日本語版マニュアルより抜粋:

合唱用の楽譜では、1 段に2 声分の音符が書かれます。このような場合、高声部のパートは常に上向きの符尾で、低声部のパートは常に下向きの符尾で書かれます。これで段数が増えた場合、下の段の高声部の符尾と上の段の低声部の符尾とが重ならないように、符頭が段の外側に出る音符の符尾は短めに出力されるように設定できます※。この機能は\stemcut の宣言で有効となり、\nostemcut で無効となります。MusiXTeX では標準で\stemcut が有効になっていますが、musixcpt.tex を読み込むことにより、\nostemcut が標準となります。
(※脚注)日本語版注:この機能、例にあるように二分音符と四分音符、つまり符鈎の付かない符尾でしか有効でないようです。なぜ?
符鈎が付く(八分音符以上)符尾の長さが短くならないのは従来MusiXTeXの非常に不便な仕様でしたが、この不具合は以下のようにすれば解決できます。

\makeatletter
\def\down@flag{\Box@Flag\advance\st@bot-\y@v
  \advance\st@bot-\stemfactor\interbeam
  \advance\st@bot\DefaultStemlength\interbeam
  \ifdim\st@top>\st@bot \comp@stem\minst@bot
    \ifx\st@mcut\empty
      \ifdim\st@bot<-\thr@@\internote
        \cutst@l\thr@@\cutst@l\f@ur\cutst@l\fiv@
        % \cutst@l\si@\cutst@l\s@v@n\cutst@l\@ight
      \fi
    \fi
    \stem@rule\raise\st@bot\box\ch@box \fi\resetst@m}
\def\up@flag{\Box@Flag\advance\st@top\y@v
  \advance\st@top\stemfactor\interbeam
  \advance\st@top-\DefaultStemlength\interbeam
  \ifdim\st@top>\st@bot \comp@stem\maxst@top
    \ifx\st@mcut\empty
      \ifdim\st@top>\@l@v@n\internote
        \cutst@u\@l@v@n\cutst@u\tw@lv@\cutst@u\active
        % \cutst@u\fourt@@n\cutst@u\fiv@t@@n\cutst@u\sixt@@n
      \fi
    \fi
    \kern\qd@skip\stem@rule\advance\st@top-\y@v \raise\st@top\box\ch@box%
    \kernm\qd@skip \fi\resetst@m}
\makeatother

PMX & M-Tx編

★音符の並びのバランスが良くない

PMXは音符の横幅を公比√2の等比数列をもとにした数列で設定します。MusiXTeXのマニュアルにも公比√2の等比数列が書いてあります。しかし、曲調にもよりますが一定のテンポ感をもった曲では、音符の長さと紙面の上で占める幅が矛盾しないように、公比は1.6〜1.85程度が良いように感じます(音符の横幅の問題参照)。
これを調整するには、PMXが出力したMusiXTeXファイルの \pnotes{x.xx} の中身を、以下のように調整すると良いです。ここではPMXオリジナルのほか、面白そうな二つの例を挙げておきます。テンポを機械的に守るべき曲には大きな(2に近い)公比が、民謡などrubatoをふんだんに含んだりsenza tempoな曲では小さな(√2程度)公比が似合うようです。黄金比(1.618)も面白いかもしれません。曲調に応じて選んでください。

音符の種類 PMXデフォルト(公比√2の等比数列) 公比√3の等比数列公比π/√3(=1.814)の等比数列 基準値(初項)2.2、公比√3の等比数列
全音符 5.66 10.4 11.9 11.43
付点二分音符 4.90 8.27 9.32 9.10
二分音符 4.00 6.00 6.58 6.60
付点四分音符 3.46 4.78 5.14 5.25
四分音符 2.83 3.46 3.63 3.81
付点八分音符 2.45 2.76 2.83 3.03
四分三連符 2.31 2.51 2.56 2.76
八分音符 2.00 2.00(基準) 2.20(基準)
八分三連符 1.63 1.45 1.41 1.59
十六分音符 1.41 1.15 ※ 1.10 ※ 1.27
※ これらは1段に4小節入れる場合など、間隔が狭くなり符鉤(いわゆる旗)が小節線に接触することがあるので、もう少し伸ばしても良いでしょう。
(注)[2002/07/13] 計算ミスを訂正。

ちなみに、これらの数列は公比を r 、基準(八分音符)を a 、八分音符を基準(1拍)にした音符の拍数を x として次のように表されます。

y = a * r log2(x)

[2022/09/17] 根本的には PMX を改造すればいいんですが、これはなかなか難儀です。pmx.for ソース中の sqrt をいくつか削除すると、公比が 2 になります。付点の幅補正まで消す方法はよくわからん。

★楽譜のパート間の間隔が広い

\interstaff を調整すると直ります。
出力されたTeXファイルの \interstaff{xx.x} を編集しても良いのですが、PMXでは最初に \\interstaff{12.5}\ と書いたり、途中に AI0.85 とか書いておく方法もあります。M-Txの場合は、最初に %%\\interstaff{12.5}\ という行を追加してみたり、途中に %%AI0.85 という行を追加します。いずれも、数値は適当に調整します。

★楽譜の段の間隔が狭い

\staffbotmarg を調整すると直ります。デフォルトでは0ですが、PMXファイルの先頭付近に \\staffbotmarg7\Interligne\ などの記述を入れておくと良いです。数値は適当に調整します。M-Txではプリアンブルに PMX: \staffbotmarg7\Interligne\ という行を追加します。

★スラーを手作業で修正するときに、PMXが自動生成したスラーの参照番号を探すのが大変

スラーを描くマクロに細工すると、スラーの参照番号を楽譜上に書き出すことができ、どの参照番号のスラーを直せばよいか判り易くなります。 これ(細工したマクロ)をファイルに保存して楽譜と同じディレクトリに置き、\input musixtex の後に \input してみてください。

rit. とか、文字列を書き込むのは?

★途中で楽譜の段数が変わる曲はどうやってタイプセットすれば良いですか

長い曲で紙面を節約したい場合や、ピアノ前奏など。

結局、複数のファイルに分けて、TeXファイルの段階で結合するほうがラクです。 ただし、段数を変える場所で拍子も変えたい場合、そのままでは「拍子変更の予告」が出力されません。PMXの段階でダミーの小節を入れて「拍子変更の予告」を出させておき、あとで不要な部分を削除してから結合します。

★M-Txを使うと楽器名がボールド体になるので幅が広く、入りきりません

M-Txがパート名に勝手に \tewlvebf(ver.0.52)や \mtxInstrName(ver.0.54以降)を入れてしまうためです。出てきたPMXファイルを編集し、楽器名に入っている \tewlvebf や \mtxInstrName を削除すればOKです。ただし、ver.0.52ではこれを横着して \let\tewlvebf\relax とすると他の所に影響するのでいけません。
本当は musixtex.tex の \setname の定義を \edef でなく \def にするのが正解です。これで、ver.0.54以降なら \let\mtxInstrName\relax とできるようになります。

T.115において、 musixtex.tex の \setname の定義を \edef でなく \def に変更しました。

また、TeXがデフォルトで使うComputer Modern族はそもそも幅が広いフォントなので、狭いところに詰め込むと窮屈になりがちです。歌詞が入り組んだ曲では、幅の狭いTimes系フォントを使うのが現実的です。

★メトロノーム記号や速度曲想表記は?

PMXで1小節目に

\Uptext{{\kern-20pt\twelvebf Andante \twelverm \metron{\qu}{72}ca.}}\ ...

などと書き込んで出力します。
音符記号が大きすぎる場合、\metron をこんな定義に変更してみても良いかもしれません。

% metronome sign
\def\metron#1#2{{\smallnotesize\stemlength\f@ur\noteskip\t@n\p@
        #1 1\kern-.3\noteskip= \normtype#2}}\relax

★M-Txで合唱用テナー記号(G8; ト音記号の下に8)

"8"の輪の中にト音記号の下端フック部が通過しますが、これが嫌な("8"はフックよりも下にしたい)場合。

\makeatletter
% G clef for tenor
\def\treblelowoct{\trebleclef\raise -8\internote%
\hbox\@to\z@{\smalltype\it\kern -2.3\Interligne 8\hss}}\relax
\makeatother

★1段に複数の楽器をまとめて記述したときの楽器名(SATB2段合唱譜でSoprano|Alto, Tenor|Bass)

foobar.mod (foobar.pmxからfoobar.texを生成すると、foobar.modが存在すれば自動で読み込まれる)

\def\SopranoAlto{\vbox{\hbox to\parindent{\hss Soprano\hss}\hbox to\parindent{\hss Alto\hss}}}
\def\TenorBass{\vbox{\hbox to\parindent{\hss Tenor\hss}\hbox to\parindent{\hss Bass\hss}}}

foobar.mtx

Title: Foobar
Bass: Voices V; Clefs F
Style: SATB
Composer: Foobar
Poet: Foobar
Name: \SopranoAlto \TenorBass 
Flats: 4
Meter: 4/4
Bars/Line: 4
Indent: 0.08
Size: 16
Disable: unbeamVocal
PMX: w190m h260m Abr B

Indent: 0.08 によって \parindent を変えられます。値を適宜調整する必要があります。

★PMXで臨時記号を伴った和音にアルペジオ記号を付けようとすると、アルペジオ記号が臨時記号に重なる

PMXのアルペジオ記号を使わず、MusiXTeXマクロ \larpeggio をM-TxファイルやPMXファイルに直接書き込んでください。

★M-Txを使うと歌詞は書きやすいが、複雑な和音が書きにくい
★長い曲を一度に書くのは大変なので、最初のうちはいくつかのファイルに分割して書きたいが、オクターブを相定で指示しなければならないので混乱する

M-Tx 0.54c 以降で絶対オクターブ指定がサポートされていますのでバージョンアップしてください。
絶対オクターブ指定対応は私が提案し、WIMAの管理者Christian Mondrup氏の支持をうけて採用されたものですが、M-Txの作者Dirk Laurie氏は絶対オクターブ指定が余程お気に召さないのか、最新の0.60cでもundocumented featureのままになっています。

★M-Txで、入力は正しいにもかかわらず、メリスマ(音節の伸ばし)がおかしくなったり、歌詞が思い通りに配置できない。

%で始まるコメント行どうしの間に空行が入っているとこうなります。ブロックの区切り以外の空行を削除してください。

★PMXで、mod ファイルの名前が入力に与えたファイルに決め打ちになっている。

PMX の実行時に与えるファイル名を foobar とすると(要は pmxab foobar と起動して foobar.pmx を foobat.tex に変換するということ)、出力ファイル中に \input{foobar.tex} という行が書き込まれます。

これは仕様ですが、なにかと不便で、\input{\jobname} として欲しいところです。とりあえず PMX のソースを以下のように書き換えて g77 でコンパイルすれば、そのようにできますが、この改造はあくまでローカルということにしてください。

修正箇所
25507
(PMX 2.98a)
オリジナル
      write(11,'(a)')sq//'readmod{'//basenameq(1:lbase)//'}'
改造
      write(11,'(a)')sq//'readmod{'//sq//'jobname'//'}'

応用編

★練習番号

練習番号の例

(TeX-music ML 2002/04/18, 04/21投稿)
\def\TAG#1{{%
    \kern30pt\kern-\afterruleskip{%
      \medtype
      \setbox0\hbox{#1}\relax
      \dimen0=\wd0 \ifdim\dimen0<2ex\relax \dimen0=2ex\fi
      \boxit{\hbox to \dimen0{\hss\box0\hss}}}}}\relax

としておき(箱の横幅の最小値を 2ex にしていますが適宜調整してください)、たとえばPMXでは

h 
\TAG{A}
c44 d44 e44 f44

とします。

M-Txではさらに

\def\MTXTAG#1{\zcharnote{12}{\kern-30pt \TAG{#1}}}
としておき \MTXTAG{A} a44 b44 ... などとして直接書き込みます。 この手法はplain MusiXTeXでも使えます。

ちなみにこの \kern-30pt はPMXが勝手に決め打ちするもので、本来は \kern-\afterruleskip となるべき長さです。上の定義ではPMXの指示を \kern30pt で打ち消して、体裁が整うようにしています。

こんな定義も面白いかもしれません(箱の横幅が、中身の高さ+深さの1.1倍)。

\def\TAG#1{%
    \kern30pt\kern-\afterruleskip{%
      \medtype
      \setbox0\hbox{#1}\relax
      \dimen0=\ht0 \advance\dimen0\dp0 \dimen0=1.1\dimen0
      \boxit{\hbox to \dimen0{\hss\box0\hss}}}}\relax

★歌詞のセンタリングとメリスマ

musixlyr パッケージは、単音節歌詞を音符に中央揃え(デフォルト)と左揃えが選択できますが、メリスマを用いた歌詞は常に左揃えとなる仕様です(マニュアルに明記)。普通に組むと左の例のようになり、shout-ingの縦が揃わず不自然です。右(後)の例のように中央揃えで統一して組みたくなります。

\def\parse@melisma#1#2#3_#4\@end の定義の内部、musixlyr.tex ver.2.1cでは438行目にある \leftlyrtrue\@strichtrue\@strichtrue に変更すれば、メリスマを用いた歌詞も中央揃えにできます。しかし、musixlyr.tex そのものを書き換えるのは互換性上推奨できませんので、PMX/M-Txでは \def\parse@melisma#1#2#3_#4\@end の再定義を .mod ファイルに記述すればOKです。

★行き先が休符(あるいは何も無い空間)になっているスラー

ピアノ曲や、日本の合唱曲によく見られます。ハープ、打楽器などでも使われるそうです。

作者に要請した結果、PMX2.404以降、スラーがそのまま休符につなげられるようになりました。特に気にせず、休符でスラーを終わるように記述すればOKです。ただし、2.404にはまだ微妙にバグがあるようです。

(以前はスラーの傾きがおかしくなってしまうので、PMXの段階ではダミーの音符を置いておき、TeXファイルの段階でそれを休符に変更するというトリックを使う必要がありました。)

★サイズの調整(用紙サイズとフォントと綴じ代の兼ね合い)(工事中)

PMXのデフォルト用紙サイズはletterです。A4でも大きな不都合はないものの、左右のマージンが少し不自然になります。以下のようにすると左右マージンが10mmずつに揃い、上下方向にも少し広がります。(この例はM-Txのプリアンブル)

PMX: w190m h270m

しかし、左右マージンが10mmでは綴じ代が足りないときもあります。そもそもA4版用紙に、適当な綴じ代を確保して楽譜を書こうとすると、\normalmusicsize はもとより \smallmusicsize でも少し窮屈です。

五線の高さを少々縮小してもよいならば、楽譜サイズは \normalmusicsize のままにして、PMXに対しては用紙サイズをだましておき、最後に楽譜全体を \mag パラメータでA4に縮小するのが最も手っ取り早いです。具体的には、以下のようにします。

PMX: w237m h342m \\mag=775\relax\hoffset-10.4truemm\relax\voffset-12.4truemm\relax\hsize180truemm\relax\vsize265truemm\relax\

ただし、これだけでは普通の文字も一緒に小さくなってしまいます。\normtype などのフォントサイズ命令を再定義することが必要です。

\mag で倍率を指定すると、フォントのデザインサイズに倍率をかけたものが使用されます。したがって、使用するすべてのフォントについて、Type1やTryeTypeなどのベクトルフォントを用意しておくとともに、それらに対応したdviドライバを使用する必要があります(ただし、MusiXTeXのTrueTypeフォントは今のところ存在しません)。ベクトルフォント非対応のdviドライバでは、物凄い数のPKフォントをいちいち生成する羽目になります。


日本語の取り扱い

★日本語の取り扱いは?

日本語フォントを適切に定義し、コンパイルにpTeXを使えば、特に何の問題もなく、そのまま書けます。実はこれが、LilyPondに対してMusiXTeXが優れている点です(正確にはMusiXTeXは単にロケールフリーなだけで、本当に優れているのはpTeXのほう)。

dviからPDFを生成する場合は、dvipdfm(日本語化されています)を使うか、dvipsk + Ghostscriptでは日本語CIDフォントをインストールしておくと良いです。

★日本語の歌詞について

歌詞を書くのに M-Txを(あるいは musixlyr.tex を直接)使うときは、例えば次のようにします。個々の音節の間に半角空白が入っています。(\llap{1. }はオマケです。1番、2番、…とある曲で歌詞の位置を揃えるトリック)

\setlyrics{21}{\llap{1. }どっ こ い しょ と}%

強いて言えば、歌詞を左揃え(\leftlyrtrue)にしている時にはバランスが悪いです。これを直すには musixlyr.tex に手を加える以外に方法がありません。

また、Hum. や Ah- などを除き、日本語の歌詞でメリスマ(音節の伸ばし)を使うのは正しくないようです。M-Txを使う場合は、連桁・スラーがメリスマに解釈されないようにする必要があります。連桁はプリアンブルの Options: b で自動生成させることもできますが、手動で [[ c8 d8 e8 f8 ] のようにします。スラーは ( g4 a8 g8 ) ではメリスマになるので、g4 s a8 g8 s とします。また、母音の伸長は音引き「ー」が使われることもありますが、楽譜の中では全角マイナス「−」のほうが普通です(一般的な文章では音引き「ー」が正しく、全角マイナス「−」は誤りです)。

★作詞・作曲者の欄

日本の出版社の楽譜のように、右詰めで「だれだれ作詞<改行>なにがし作曲」としたい場合。以前は複雑なマクロ再定義が必要でしたが、PMX 2.352以降、非常に簡単になりました。複数の項目を \\ で区切ればOKです。基本的には

Tt
なんかへんな曲
Tc
だれだれ 作詞\\なにがし 作曲

とすればOKですが、このままでは欧州流に、大きな文字サイズで出ます。日本風にするには

Tt
なんかへんな曲
Tc
\normtype だれだれ 作詞\\\normtype なにがし 作曲

のように、各「行」ごとに \normtype をつけます。

M-Txではプリアンブルに以下のようになります。

Title: なんかへんな曲
Composer: \normtype だれだれ 作詞\\\normtype なにがし 作曲

★縦書きの歌詞を楽譜の下に付属させる(小学校の音楽の教科書風に)

ソースを以下のようにして、コンパイルにpTeXを使うとうまく行きました(あえてpLaTeXを使う必要はない)。

PMXが生成したMusiXTeXファイルの末尾はたいてい

\Endpiece
\vskip1.2\Interligne\eject\endmuflex
\bye

のようになっていますが(\vskip... はないこともあります)、これを例えば

\Endpiece
\endmuflex
\vfill
\font\jisvx=jis-v at 10pt
\font\jisvxiv=jis-v at 14pt
\hbox{\vbox to\hsize{\tate\vss\jisvx\baselineskip18pt%
    \hbox{\jisvxiv 曲の題名}\par
    \hbox{~}\par
    \hbox{いろはにほへとちりぬるを}\par
    \hbox{わかよたれそつねならむ}\par
    \hbox{~}\par
    \hbox{うゐのおくやまけふこえて}\par
    \hbox{あさきゆめみしゑいもせすん}\par
    \vss
}}%
\vfill\eject
\bye

のように変更します(この部分を別ファイルにして \input しても良いでしょう)。もちろん、楽譜を作る時点で歌詞が入るだけのスペースを空けておく必要があります。
pTeX(とplain TeX)をよく理解していないため滅茶苦茶な書き方になっているのはご勘弁ください。


変換編

★楽譜をPDFにしたい

現在では4つの方法があります。

Distillerは持っていないのでわかりません。それ以外について比較すると以下のようです。

dvipsk + Ghostscript

[2021/05/23] ver.1.32 (T.132) で拙作 musixvbm.tex が取り込まれたことに伴い、ずいぶん前からあった dvips で変換したときの音符の縦棒 (stem) の位置の狂いが、連桁の位置精度向上によってかえって視覚的に顕在化してしまうという課題がありました。この問題は dvips のオプション -e 0 (Maximum drift in pixels をゼロにする。参照: https://www.tug.org/texinfohtml/dvips.html )で解決できる(可能性が高い)ことが判りました。旧来のフォントベースの連桁にも有効です。子細に見ていませんが罫線の座標丸めにも効果があるのかもしれません。

dvipdfm / dvipdfmx

pdfTeX

お勧めはdvipdfmです。よく枯れていて不具合はほとんど無く、どんなソースを処理してどこで印刷しても分相応な楽譜が得られます。なお、dvipdfmxはまだ十分枯れていないため、バージョンによってはおかしな挙動をすることがあり、注意が必要です。
pdfTeXは、欧文文字のみの楽譜で、特殊な拡張パッケージを使わないならば、最良の選択肢となります。pdfTeXはできるだけ新しいものを使うほうが良いです。
一般的な文章ではdvipskがよく使われますが、上記の理由により楽譜には不向きです。ただし、いくつかのMusiXTeX拡張パッケージはdvipsk依存命令を使っているため、この組み合わせを使わざるを得ない場合があります。

dvipdfm(上)と dvipsk + Ghostscript(下)の比較:五線および小節線の太さに注目。dvipsk + Ghostscriptのほうは見るに耐えない結果です。両者の差がわざと誇張されるような設定でPDF化および表示していますが、dvipskではプリンタが変わると常にこうなる可能性があります。画像は古いAcrobat Reader 4ですが、この現象は出来上がったPDFファイルの内部構造に因るものなので最新の8.1でも殆ど変わりません。

[2021/05/23] これは dvips のオプション -e 0 で軽減できるかもしれません(上述)。

このほか、Adobe Acrobat PDFWriterをdviout上から用いることも考えられますが、Type1フォントの埋め込みができないのでメリットはほとんどありません。また、PSを作るのにdvi2ps(jdvi2psk)などを使うことも可能と思いますが、調査はしていません。

★PDF化楽譜のトラブルシューティング

★PSやPDFに変換したときに音符・休符などのフォントが汚い

MusiXTeX用Type1フォントをインストールしていなくて、METAFONTソースから生成されたビットマップ(PK)フォントが埋め込まれてしまったためです。

前記のような特殊な事情がなければ、Type1フォント使うのがベターです。

日本語文字は、特別な設定をしないGhostscriptでPDF化すると概してビットマップが埋め込まれ、汚くなります(前記参照)。GSで日本語ベクトルフォントを埋め込む設定は難しい上、フォントのライセンスの問題もあるので、dvipdfm(x)を使うのが最も簡単です。

★楽譜をMIDIにしたい

MXTX2MMLというものがあるそうです。

★PMXをMIDIにしたい

PMX2.20以降で標準サポート。ただし機能制限多数。

★MIDIから楽譜を作りたい

Linux上では、NoteEditという楽譜エディタ兼MIDIシーケンサが利用可能(MIDIインポート、PMXへのエクスポートが可能)になっているとのことですが、私はLinux使いではないのでよくわかりません。数年前、心無い人の発言により、NoteEditの作者は開発を投げ出してしまったようです。
Windows上でそういうものがあったら私も欲しいです。


トップページ / MusiXTeXによる楽譜の組版楽譜 / MusiXTeXの使いこなし術
このサイトについて・著者連絡先