まうかめ堂では、楽譜の作成を MusiXTeX + PMX + M-Tx という TeX のツール群でやっています。 何分にも TeX なので、だいぶ面倒なことになっています。 しかも、しばらくぶりに楽譜を作ったりすると、前に苦労して得たノウハウを忘れてたりします。 そこで、私自身の備忘のために、MusiXTeX + PMX + M-Tx に関するノートを作っておきます。
そういうわけなので、MusiXTeX + PMX + M-Tx の基本的なことについては一切書きません。そういったことに興味のある人は、例えばとのむ〜さんによる次のサイトを見られると良いでしょう。
WIDTH
あ、それから、以下の例で、「そんなことしなくても、もっと簡単にできるよ」ということがありましたら是非教えてください。
●M-Tx編
三連符は、例えば c4x3 c c という風。(4x3 は四分音符を三つに分けるという意味。但し、これは PMX の命令。)
Style: Solo Size: 20 Meter: 3/4 Bars/line: 5 r2 a4 | c e2 | d4 [ e8 g ] [ f d ] | d4x3 c d [ e8 b ] c4s | d2d | |
ムジカ・フィクタの可能性を示すのに、音符の上に#, ♭を付けたいときは \uppersh x\, \upperfl x\ を入れる。(この段階で入れておくと心理的負担が軽減する。)
Style: Solo Size: 20 Meter: 6/8 Bars/line: 5 f2 c+4 | \upperfl i\ b8 a4 f g8 | [ e c d1 e ] f8 e4 | f4d r4 c+8 | c2 a4 | |
途中で拍子を変えるときは m3434, m4444 等のPMX の命令を使う。(ちなみに m3400 とやると中身は3/4拍子になるけど表示はされない。)
Trio: Voices S S S; Vocal; Clefs G G G Style: Trio Size: 20 Meter: 3/4 Bars/line: 7 r4 r c | [ e8 f ] g4 [ f8 e ] | m4444 g4 [ f8 d ] [ e f ] d4 | m3434 f4d e8 [ e d ] | e2d | r4 r g | [ b8 c ] d4 [ c8 b ] | m4444 d4 c [ b8 c ] a4 | m3434 c4d b8 [ b a ] | b2d | r4 r c | [ g8+ a ] b4 a | m4444 g2 g4 [ f8 g ] | m3434 a4 g f | e2d | |
●PMX編
ひとつの例
そのソース→alle.pmx
コードの冒頭部分
% % Example of PMX file (Alle psalite cum luya) % % nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig, 3 3 6 8 6 8 0.00000 0 % % npages,nsyst,musicsize,fracindent 0 7 20 0.12 {\twelvebf{Tenor}} {\twelvebf{Duplum}} {\twelvebf{Triplum}} 600 ./ Tt Alle psallite cum luya Tc Montpellier Codex |
nv = the number of staves
noinst = the number of instruments
mtrnuml = logical な拍子の分子
mtrdenl = logical な拍子の分母
mtrnump = 印刷される(printed)拍子の分子
mtrdenp = 印刷される(printed)拍子の分母
もし mtrnump = 0 なら、mtrdenp の値によって次が印刷される。
0 なにも印刷されない 1,2,3,4 一桁の数 5 alla breve 6 C 7 3に縦棒
xmtrnum0 = 最初の小節が半端な拍数のとき、その拍数。(小数可。)
isig = 調号(正なら#の数、負なら♭の数)
npages = ページ数
nsyst = the total number of systems
musicsize = 16 または 20 (pt を表す)
fracindent = 最初の段の左端からの indent を小数で表す
その後の三行がパートの名前。(下から上の順)
その次の 600 は、それぞれのパートの音部記号(clef)を表す。(これも下から上の順。) t,s,m,a,n,r,b または 0-7 の数が、それぞれ、treble, soprano, mezzo-soprano, alto, tenor, baritone, bass, French violin の clef を表す。
Tt はタイトル、Tc は composer.
途中で一段の instrument 数が変わる例
そのソース→pmx-ex2.pmx
instrument数が変わるところのコード
%Bar 12 g2 r4 | / g2 r4 | / % Paragraph 5 line 28 bar 13 L4Mn3123ttt r4 r4 c44 | / r4 r4 g4 | / r4 r4 c4+ | / |
L4 = 4段目の開始部
M = line break を置く
n3 = 新しい instrument 数は 3
123ttt = 1, 2, 3番目の instrument の clef はそれぞれ t, t, t (全部 treble clef)
最初から少ない instrument 数で始めるのは無理らしい。そういうときはダミーページを作り2ページ目から曲が始まるようにする。(他に良い方法はないでしょうか?)
Tt This is a dummy page. % Paragraph 3 line 22 bar 1 rp | / rp | / rp | / Tt Alleluya: A nywe werke Tc The Selden Carol Book L2P2Mn212tt r4 r4 g44 | / r4 r4 g44 | / |
ここで P2 は page break を表す。
アウフタクトの例。(参照するソース→congaudeant.pmx)
% % Example of Auftakt % 2 2 1 8 6 8 0.00000 0 0 4 20 0 60 ./ % Paragraph 3 line 23 bar 1 %m1/8/0/0 fa83 | // fa83 | / [ fa14 ea1 ] | / %Bar 2 m6/8/0/0 \\\advance\barno-1\ a4 ga8 f4 ea8 | // d4 ea8 f4 ga8 | / [ fa8 da8 ] [ da3 ca3 da3 ea3 ] f4 ca8 | / |
まず、set up のところで拍子を 1 8 6 8 にする。Bar 2 で、m6/8/0/0 として logical な拍子を 6/8 に変える。\\\advance\barno-1\ は小節番号を一つもどす。(そうでないとアウフタクトの小節が1小節目とカウントされる。)
●MusiXTeX 編
まず参考にするソース→bellebon.tex
よく忘れる octave clefの命令。
\setclefsymbol 1\treblelowoct |
一つのパートだけ拍子記号を変える極めて ad hoc な方法。(もちろん、こんなことしなくてもできますが、この方がレイアウト的に良い場合がある。)
% Bar count 44 \xbar \pnotes{1.9}\tslur1{'F}\ql F&\hu{'a}&% \roffset{0.8}{\lcharnote e{\meterfrac24}\ibbl3{'d}0\qb3d\ast{.24}\qb3e}% \en% |
\roffset{0.8}{...} は ... を音符 0.8 個分の長さだけ右にずらす。左にずらすときは\loffset。\lcharnote e{...} はその次の音符の左側の e の位置に ... を置く。 類似の命令に \rcharnote, \zcharnote などがある。
offset の命令は、ヘ音記号でB♭の調号をオクターブ上に置きたいときも使ったりする。(ほんとはマクロを作るべきなんでしょうけど…。)
\pnotes{4.00}\loffset{3.0}{\bigfl b}\hl{'G}\en% \pnotes{2.83}\ql{'G}\en% |
さて、次のような
を出すのにこんなことをしたことも…。
\pnotes{2.83}\beginmel{\tinynotesize\roffset{2.6}{\lpar{a}\zw a\rpar{a}}}\hl {N} \sk\hl M\en% |
パートごとに別の調号を用いるとき
\generalsignature{-1}% \setsign2{0}% |
● musixlyr 編
長いメリスマ部分では、単語間に長いダッシュが入ってしまう。
これを抑止するには \minlyrrulelength を調整すれば良い。これは単語間のダッシュの最小の長さの指定なので、これを紙の大きさよりも大きくするとダッシュは全て消えます。
\minlyrrulelength=30cm |
途中で歌詞が三段から二段に変わる場合。(bellebon.tex より。)
% Bar count 22 \stoppiece% \setlyrics{Vous}{{\hskip -1.5mm}2.8.Vous} \setlyrics{Qui}{6.Qui} \vskip2.1\Interligne\eject% \interstaff{17.0}\contpiece \znotes&&\zcharnote{16}{\titles{4.8}{}{0}{}{0}{}{0}}\en% \pnotes{2.83}\hlp{''A}\sk{\lcharnote A {\bigtype *}}&% \hl{'e}\sk\isluru0c{\lcharnote {f} {\bigtype *}}% \uppersh d\ql c&\ql{''a}\qp{\lcharnote a {\bigtype *}}\assignlyricshere{Vous,Qui}\ql a\en% \setlyrics{11}{fait le don d'u-ne chan-son nou-vel-le}% \setlyrics{12}{fa-me\lyrlink a-ves que chas-cun vous ap-pel-le:}% \assignlyrics3{11,12}% |
\assignlyricshere を用いるとそれなりにうまくいきます。