MusiXTeX でピアノソナタ悲愴(4) 音符の入力

前回のところまででは音符が入力されていなくて,まったく楽譜らしくありませんでした.そこで今回はピアノソナタ悲愴の冒頭の少しだけ,音符を入力してみました.



\input musixtex
\def\nbinstruments{1}% % パート数 1
\setstaffs 1{2}% パート1の段数 2
\setclef{1}{60}% % ト音記号(右手パート)
\generalsignature{-3}% % 調号=ハ短調
\generalmeter{\meterC}% % 拍子はC(4分の4拍子)
%
\startmuflex
\startpiece % 楽譜スタート
%
% 第一小節
% 左手の段
\notes % 16分音符の間隔で譜面開始
\qu J\ccup J\cccu J\ccup K\cccu L\ql M\cl N\ds%

% 段の区切り記号

% 右手の段
\uptext{\medtype\bf Grave.}% 速度・演奏指示
\qu c\ccup c\cccu c\ccup d\cccu e\qu e\cu d\ds\en
\stoppiece
\end

\startpiece と \stoppiece で挟まれた部分が音符のデータになります.\stoppiece はなくてもエラーにはなりませんが,書くほうがいいでしょう(省いてしまうと終端部分に小節線がかかれません).このファイルをコンパイルすると以下のようになります.音符数が少ないときに musixflx を通すと,無理やり横幅いっぱいに音符を広げようとしておかしくなるので,ここでは musixflx を通さずに処理してます.

この楽譜は,左手パートと右手パートの一番上の音だけ入力してあります.タイやスラーなども入っておらず,オリジナルの楽譜とは似ても似つかぬ感じですね.


  • 音符データの入力方法

MusiXTeX では五線譜上に書き込む音符や記号は \notes (または \Notes, \\NOtes, NOTes, \NOTEs) と \enotes (または \en) の間に書くというルールがあります.\notes と \Notes などの違いは,音符のあとに開けるスペースの大きさの違いです.スペースのコントロールはかなり難しいので,ここではとりあえず \notes だけ使っていくことにします.なお \enotes と \en に違いはありません.

音符列は,パートが1つで段数が1なら \notes 音符列 \en と書きます.この曲は二段あるので,その場合は \notes 下段の音符列 | 上段の音符列 \en というように書きます.上の例では少し分かりにくくなっていますが,\notes のあとに音符列があって '|' が途中にあり,その後にまた音符列が続いて最後に \en があります.\notes と \en の間に音符をいくついれてもかまいません.ただし,見た目に分かりにくくなるので1小節程度ごとに \notes .... \en のブロックを作るのがよいようです.

\notes ... \en の間に改行や空白,注釈が含まれていても構いません.ただし,空白については,空ける場所によって意味が微妙に変わってきます.出力された譜面に妙なスペースを感じたら,おそらくそれは空白が入っているせいです.このスペーシング関係はややこしいのでここでは説明しませんが,できるだけ空白は入れないほうがいいでしょう.

また改行を入れると譜面を「改行する」という意味になって,出力が変わります.そのため,行末には「%」を入れて改行そのものを「注釈」にしてしまうことで,これを回避することができます.他にも,見やすくするために改行を入れたいときもあります.こういうときは '%' 一文字だけの文を作れば,それは空行と認識されずにすみます.

なお,この \notes ... \en の間には p や ff などの強弱記号や "Allegro" などのテキストも書き込みます.ここが少し戸惑う&間違うところなんですよね.

  • 音符データの書式

音符データは,およそ「音符に付く記号」「\」「音の長さ」「音符に付く棒の向き」「付点の有無」「音程」という順序でかかれます.全部の音符について,どの情報も基本的には省略できません.省略できないというよりは.省略すると思うとおりの譜面が出てこなくて結局書くことになるといったほうが適切でしょう.ここでは,ひとまず「音符に付く記号」は複雑なのであとにまわして,残りの三つについて簡単に説明します.

  • 音の長さ

音の長さは,全音符=w,二分音符=h,四分音符=q,八分音符=c,16分音符=cc,32分音符=ccc,64分音符=cccc で表します.

  • 音符に付く棒の向き

上付きの棒は u,下付きの棒は l,向きを MusiXTeX にゆだねたければ a を指定します.全音符には棒がないので特別に h を指定します.全音符以外には h を指定できません.棒を表示したくない場合は z を指定する方法もあります.これについては和音の入力のところで触れることにします.

  • 付点の有無

付点を付けたいときは p を指定します.付点がいらなければ,何も書きません.付点を2個つけたければ pp と書きます.

  • 音程

ピアノの中心の「ド」を c として,「レ」が d,「ミ」が e というようにして,以下 efghijk... と一音ずつ上がっていきます.c の下の「シ」は大文字で P です.以下 ONML... と下がっていき,2オクターブ下のドの音が C です.c の1オクターブ上のドは j になりますが,j と表記するかわりに 'c と書く方法もあります.2オクターブ上なら ''c です.これらの対応表をしたに載せておきます.1オクターブ下は `c です( ' とは向きが違う文字なので注意).



フラットやシャープなどは「音符に付く記号」に含まれます(後述します).なお,8va などの記号は自動的にはつけてくれず,使いたければ自分で記号を書き込むように指示する必要があります.

  • 休符

全休符は \pause,半休符は \hpause,四分休符は \qp,8分休符は \ds,16分休符は \qs,32分休符は \qqs です.付点をつけるときは p を末尾につけます.付点全休符なら \pausep です.ただし,四分休符より短い休符に付点をつけるときは \pt というコマンドで別途付点を打つ必要があります(\dsp のようなコマンドはないということです).




  • テキストの表示

五線譜の上にテキストを書くときは \uptext{....} を使います.この .... の部分に書きたいテキストを書きます.この \uptext{} が書かれた,その場所の五線譜の上のところにテキストがかかれます.ですので \notes ... \en のブロックの中で使う必要があります.また音符の下に書きたいときは \ccharnote. \lcharnote, \rcharnote を使います.\ccharnote{音程}{テキスト} のように使い,指定した音程の真下にテキストを書き込みます.\lcharnote は少し左にずらして表示,\rcharnote は少し右にずらして表示します.

  • 音符データの実際

先に挙げた譜面を例にとって説明します.


\notes % 16分音符の間隔で譜面開始
\qu J\ccup J\cccu L\ccup K\cccu J\ql M\cl N\ds%

% 段の区切り記号

% 右手の段
\uptext{\medtype\bf Grave.}% 速度・演奏指示
\qu c\ccup c\cccu c\ccup d\cccu e\qu e\cu d\ds\en

  1. 最初の行は \notes があり,最後の行の末尾に \en があるので,この間が譜面になります.この譜面は2段あるので,ここの直後に書かれる音符は左手パート(下段)とみなされます.
  2. \qu J は「四分音符=q・上付きの棒=u,J=(中央のドから見て)1オクターブ下のド」という意味です.\quJ とくっつけて書いてもエラーになりませんが,見にくいのでここでは空白をあけてあります.ただしスペースがあけられるのは音程の直前だけで,例えば q と u の間を空けるとエラーになるようです.
  3. \ccup J は「16分音符=cc,上付きの棒=u,付点=p,音程=J」の意味です.以下同様に \cl N まで続いています.\ds は八分音符です.
  4. '|' で段を切り替えています.ここから先には右手パート(上段)を書きます.
  5. 冒頭の \uptext{Grave.} は上段パートの上に Grave. と表示させるためのものです.
  6. \qu c は「四分音符=q・上付きの棒=u,c=中央のド」,以下同様です.
  7. \en で音符列は終わりです.

MusiXTeX は1小節の音符の長さの合計が,拍とあっているかをチェックしません.その他,楽譜が「音楽的に正しいか」というような整合性に関するチェックは全くしません.ですから,譜面があっているかどうかは自分で出来上がりをみてチェックする必要があります(これがまた大変ではありますが).