目次



PMX ファイルの書き方

セットアップデータ

サンプルデータ primavera.pmx の冒頭部分を見てみましょう。

%----------------%
%
%  primavera.pmx
%
%----------------%
%
% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
  5    5       4       4       0       6       .5     4
%
% npages,nsyst,musicsize,fracindent
    8     24      16        .18
Basso
Viola
Violino II
Violino I
Violino principale

battt
./

「PMX を始めよう!」と思い立った方の第一関門が、このセットアップデータなのではないでしょうか?

PDF:primavera.pdf
画像:ページ 12345678
パート譜:Violino principaleViolino IViolino IIViolaBasso
などと照らし合わせながら、順に見ていきましょう。

コメント

行の頭に % がある行はコメントです。
コメント行の特殊な使い方は、「総譜からパート譜を作る」を見て下さい。
コメント行は無視されるので、上記のソースは、

5 5 4 4 0 6 .5 4 8 24 16 .18
Basso
Viola
Violino II
Violino I
Violino principale
battt
./

と書いても同じなのですが、それだと各パラメータの意味がとてもわかりにくくなってしまうので、通常はサンプルデータをコピーして修正する方がいいでしょう。

nv

nv(number of staves)は、スタッフ(staff:五線の 1行;複数形は staves)の数です。
12 以下の整数を指定します。
1つのスタッフには 1つまたは 2つのヴォイス(voice)が属します。
nv

noinst

noinst(number of instruments)は、インストゥルメント(instrument:楽器)の数です。
nv 以下の整数を指定します。
各インストゥルメントは、1つの名前を持ちます。

1つのインストゥルメントに 2つ以上のスタッフが割り当てられている場合(例えばピアノなど)、括弧(ブレイス)で括られます。
noinst = nv なら、各インストゥルメントに各スタッフが割り当てられます。
noinst < nv なら、余ったスタッフすべてが一番下の(つまり、一番最初に記述する)インストゥルメントに割り当てられます。
次の例は、nv = 3noinst = 2 です。
noinst-1
途中のインストゥルメントに複数のスタッフを割り当てるには、noinst にマイナスの数値を指定して、続けて各インストゥルメントのスタッフ数をスペースで区切って記述します。
次の例は、nv = 5noinst = -4 1 2 1 1 です。
noinst-2
この説明図のソース
当然ながら、この例で言えば 5-41 2 1 1 の関係が不整合だと、怖いことになります。

mtrnuml

mtrdenl

mtrnuml(logical numerator of the meter)と mtrdenl(logical denominator of the meter)は、拍子の分子と分母です。
例えば、8分の6拍子なら、mtrnuml = 6mtrdenl = 8 です。
いずれも、整数を指定します。
mtrdenl が 2 か 3 の倍数なら符尾の連桁が自動的に行われますが、それ以外の場合は、[...] で明示的に連桁を指定する必要があります。

mtrnump

mtrdenp

mtrnump(printed numerator of the meter)と mtrdenp(printed denominator of the meter)は、表示上の拍子の分子と分母です。
いずれも、整数を指定します。
mtrnumlmtrdenl で指定した実際の拍子と関係なく、mtrnumpmtrdenp で 4/4 を指定してやれば、譜面上には 4/4 が表示されます。
mtrp-1
ここで指定された拍子は、譜面上に表示されますが、内部での拍子整合性のチェックには影響しません。
mtrnump にマイナスの数値を指定すると、拍子に縦棒が引かれます。
次の例は、mtrnump = -2mtrdenp = 3 です。
mtrp-1
mtrnump = 0 の場合,mtrdenp の指定によって次のように表示されます。
0mtrp-2-0 Blind
1mtrp-2-1
2mtrp-2-2
3mtrp-2-3
4mtrp-2-4
5mtrp-2-5 Cut time(alla breve)
6mtrp-2-6 Common time
7mtrp-2-7

xmtrnum0

xmtrnum0 は、弱起の拍数です。
弱起がない場合には 0 を指定します。
xmtrnum0-0
この説明図のソース

4/4 拍子で弱起が 1拍の場合には、1 を指定します。
この場合、1小節目で m4/4/0/0 を指定して、本来の拍子に戻してやる必要があります。
xmtrnum0-1
この説明図のソース

xmtrnum0 には小数も指定できます。
次の例は、xmtrnum0 = .5 です。
xmtrnum0-0_5
この説明図のソース

isig

isig は、調性です。
正でシャープ、負でフラットの数を指定します。
isig = 0 isig-0
isig = 1 isig-1-1isig = 7 isig-1-1
isig = -1 isig-1-1isig = -7 isig-1-1

npages

nsyst

npages(number of pages)は、楽譜の総ページ数です。
0 か 20以下の正の整数を指定します。
nsyst(total number of systems)は、システム(system;スタッフの集まりである楽譜の一段)の段数です。
125以下の正の整数を指定します。
primavera.pmx では、全体の楽譜を 24段に分けて、8ページにしているので、npages = 8nsyst = 24 です。
当然ながら、この 2つのパラメータに無茶な設定をすると、えらいことになります。

npages0 にすると、nsyst は一段当たりの平均の小節数として解釈されます。
これは、楽譜を少しずつ打ち込んでいく際に有用です。
npages = 0nsyst = 4 あたりでがしがしと楽譜を打ち込んでいって、最後にその出力結果を参考に npagesnsyst を調整しましょう。

musicsize

musicsize は、楽譜の高さ(単位はポイント)です。
1620 と、(マニュアルには記載されていませんが)2429 が指定できます。
musicsize = 16musicsize-16
musicsize = 20musicsize-20
musicsize = 24musicsize-24
musicsize = 29musicsize-29

fracindent

fracindent は、最初のシステム(段)にインストゥルメント(楽器)名を表示するための左インデントを指定します。
楽譜の横幅に対する割合を 0 〜 1 の小数で指定します。
fracindent = 0 :fracindent-0
fracindent = .2fracindent-0_2
fracindent = .4fracindent-0_4

fracindent の指定の後で改行します。

インストゥルメント名

続いて、各インストゥルメントの名前を、noinst の数だけ、1行に 1つずつ、楽譜上で一番下になるインストゥルメントから順に記述していきます。
インストゥルメント名を表示する必要がなくても、noinst 分の空行が必要です。
インストゥルメント名以下のセットアップデータの残りの部分は、上記のパラメータ指定や大部分のコマンドと違って、行指向の記述になります。

音部記号

次の行に、各スタッフの音部記号を、ひとつ 1文字ずつ、一番下のスタッフから順に記述していきます。
brnamstf 或いは 07 を指定します。
t0clef-t treble
s1clef-s soprano
m2clef-m mezzo-soprano
a3clef-a alto
n4clef-n tenor
r5clef-r baritone
b6clef-b bass
f7clef-f French violin

TEX ファイル出力先ディレクトリ

セットアップデータの最後の行には、PMX が TEX ファイルを出力するディレクトリのパスを記述します。
primavera.pmx では ./ となっていて、これはカレントディレクトリを意味します。
通常はこのままでいいでしょう。
このパス指定の最後は、/\ でなければなりません。

ボディ

セットアップデータの次の行から、音符などのコマンドを入力していくボディの部分になります。

コマンド

(ほとんどの)PMX コマンドは、1文字のコマンド文字とそれに続くオプション文字列で構成されます。
各コマンドの間は、1つ以上のスペースか改行で区切られます。

インプットブロック

コマンドは、(単数または複数の)小節単位で打ち込まなければなりません。
コマンドの音価の合計が小節線からはみ出したり足りなかったりすると、エラーになります。
このコマンドのまとまりのことをインプットブロック(または単にブロック)といいます。

inputblock-1

% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
  1    1       4       4       0       6       0      0
% npages,nsyst,musicsize,fracindent
    1      1      20         0

t
./
c8 d e f e d c4 e8 f g a g f e4 /

この例では、最後の行が 1つのインプットブロックになります。
ここでは、2小節分を 1つのインプットブロックとして入力しています。

c8 d e f e d c4 | e8 f g a g f e4 /

と縦棒(|)を入れると、小節線の位置がわかりやすくなるだけでなく、小節毎の音価の不整合をチェックしてくれます。

次は、複数スタッフの楽譜を打ち込む例です。

inputblock-2

% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
  2    2       4       4       0       6       0      0
% npages,nsyst,musicsize,fracindent
    1      1      20         0


tt
./
r0              | c8 d e f e d c4 /
c8 d e f e d c4 | e8 f g a g f e4 /

この例では、最後の 2行で 1つのインプットブロックとなります。
複数スタッフの楽譜を入力する場合には、楽譜上で下になるスタッフから入力していき、スタッフの終わりで / を入力して改行します。
これが nv 分だけ繰り返された時点でインプットブロックが終了します。

次の例は、上とまったく同じ楽譜を出力しますが、意味的には異なるものです

r0              /
c8 d e f e d c4 /
c8 d e f e d c4 /
e8 f g a g f e4 /

nv = 2 なので、上の 2行で 1つのインプットブロック、下の 2行で 1つのインプットブロックを形成します。
つまり、この例では、1つのインプットブロックで 1小節を記述していることになります。
PMX コマンドの中には、インプットブロックの最初に記述しないとエラーになるものがあります。
拍子の変更など、システム全体に影響を及ぼすものがその典型です。
わかりやすいように、コメントで小節番号を明記しておきましょう。
その際に、% と小節番号の間にスペース(か他の何か)を挟むことを忘れないようにしましょう(理由は、コメントの特殊な使い方を参照)。

% 1
r0              /
c8 d e f e d c4 /

% 2
c8 d e f e d c4 /
e8 f g a g f e4 /

次は、1つのスタッフに 2つのヴォイスを入力する例です。

inputblock-3

% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
  1    1       4       4       0       6       0      0
% npages,nsyst,musicsize,fracindent
    1      1      20         0

t
./
% 1-2
r0b             | c8 d e f e d c4 //
c8 d e f e d c4 | e8 f g a g f e4 /

//〔改行〕で区切ると、同じスタッフに 2つのヴォイスを記述できます。

% 1
c8 d e f e d c4 /

% 2
c8 d e f e d c4 //
e8 f g a g f e4 /

としても、同じ結果が得られます。


目次

Last-modified: 2009/12/30

webmaster@pt2k.xii.jp
http://pt2k.xii.jp

Valid HTML 4.01 Strict Valid CSS 2.1