第二日

音名

デフォルトでは、以下が基本の音名である。

c g
d a
e b
ファ f    

ドのシャープなどの派生音は、音名の末尾に is (シャープ)または es (フラット)を付ける。 isis でダブルシャープ、 eses でダブルフラットを表現する。

cis → ドのシャープ, ges → ソのフラット, bisis → シのダブルシャープ

また、以下の音名に限り別表記がある。

ees = es , eeses = eses , aes = as , aeses = ases

コマンドを付加することで、他の言語での音名表記が可能であるが、本ドキュメントでは省略する。TODO: http://lilypond.org/doc/v2.18/Documentation/notation/writing-pitches#note-names-in-other-languages http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blob;f=scm/define-note-names.scm

音符と音符との間は1つ以上のスペースか改行で区切らなければならない。 すなわち、ドとレを続けて表記する際、 cd とは書くことができないということである。

注意しなければならないのが、音名は調号や臨時記号のいかんに関わらず実際に演奏される音名で記述されなければならないことである。 例えば、次の出力は全て同じ音名の入力 g' fis' aes' bes' から得られる。臨時記号はLilyPondが自動的に付加する。 オクターブ記号 ' については 絶対オクターブ入力 で、調号については 調号 で学ぶ。

LilyPond: ハ長調
{
  \key c \major
  g' fis' aes' bes'
}
LilyPond: ト長調
{
  \key g \major
  g' fis' aes' bes'
}
LilyPond: 変二長調
{
  \key des \major
  g' fis' aes' bes'
}

絶対オクターブ入力

LilyPondには2つのオクターブ入力方法がある。絶対オクターブ入力と、相対オクターブ入力である。

何も指定しない時、LilyPondは絶対オクターブ入力を用いる。 絶対オクターブ入力では、 cb はヘ音記号譜表でいう第二間〜上第一間に対応する。 これより高いピッチを指定するには、 c' のように音名のすぐ後に ' を付加する。 c'b はト音記号譜表の下第一線〜第三線に対応する。 低いピッチは、 c, のように , を付加する。 ', を複数付けることで更に高いピッチや低いピッチを指定することができる。

以下の例では、ピッチの見やすさのため \clef コマンドで音部記号を変更しているが、これについては 音部記号 で扱う。 なお、例で見るように、音楽表記は { } で囲む必要がある。

LilyPond: 絶対オクターブ入力
{
  \clef bass
  c, b, c b
  \clef treble
  c' b' c'' b''
}
{
  \clef bass
  c, b, c b
  \clef treble
  c' b' c'' b''
}

相対オクターブ入力

音符を \relative コマンドで囲うと、中にある音符では相対オクターブ入力が用いられる。 相対オクターブ入力では、ある音符のオクターブはその前の音符のピッチによって決定される。 具体的には、 ', が付いていない場合、前の音符との音程の間隔が一番近いオクターブが(すなわち、四度以内のものが)選ばれる。 ', が付いている場合、上記のピッチに対して相対的にオクターブが移動する。

\relative コマンドを使用するには、まず \relative の後にスペース、続けて最初の音符の基準となるピッチを絶対オクターブで入力する。 最後に、相対オクターブとして解釈する音符列を {} で挟む。括弧の前後もスペースまたは改行で区切る。

LilyPond: 相対オクターブ入力
\relative c'' { e b g' e, }
\relative c'' { e b g' e, }

この例では、 c'' (すなわち、ト音記号譜表第三間のド)が基準ピッチであり、 最初の音符 e は基準ピッチの c'' に近いものが選ばれるから、第四間のミ(絶対オクターブでいうところの e'' )となる。 次の音符 be との関係で配置される。下のシが選ばれているが、上のシよりも間隔が狭いことを確認してほしい。 g' は、 b により近い下側のソの1オクターブ上、 e,g' により近い下側のミの更に1オクターブ下となる。

注釈

相対オクターブの決定に、 -is, -es などの派生は 関与せず 、基本となる(ピアノの白鍵の)音高のみ考慮される。 つまり、 cisges のように、鍵盤上は「上がるほうが近い」関係であっても、 { cis ges } における ges は前の音符より 下に 配置される (上下の判断は { c g } で行われる)。

基準ピッチは省略可能であり、省略された場合は最初の音符が絶対オクターブとして解釈される。 (基準ピッチが f になっているのと同じことである。) しかし、基準ピッチは常に明記することを推奨している。

LilyPond: 基準ピッチを指定しない場合
\relative { e' g b, e' }
\relative { e' g b, e' }

上の例では、最初のピッチ e' が絶対オクターブとして扱われ、それ以降の音符は前の音を基準にしてオクターブが決定されている。

基準ピッチは、 c の任意のオクターブを用いるのが慣例である。

音長

音名のすぐ後に数字を記入することで音長を指定する。 指定可能な音長は2のべき乗(1, 2, 4, 8, 16, …)であり、それぞれ全音符、二分音符、四分音符…に対応する。

倍全音符(ブレーべ、全音符の2倍長)は数字の代わりに \breve 、四倍全音符(ロンガ)は \longa を記入する。 八倍長(マキシマ)は \maxima で得られるが、通常では符頭が用意されていないため休符でしか用いない。 休符は 休符 (1) で扱う。

付点は数字の後に . を付加する。付点は複数付けることができる。

音長が指定されていない音符は、その前の音符の音長を引き継ぐ。付点を用いる時は数字を省略できない。

LilyPond: 音長の指定例
\relative c' { c2 c4 c c16 c c c c2. c4.. c16 c8. c16 c8 c c1 }
\relative c' { c2 c4 c c16 c c c c2. c4.. c16 c8. c16 c8 c c1 }

休符 (1)

通常の休符は音名の部分を r に置き換えることで入力できる。

LilyPond: 休符
\relative c' { c2 r4 r c16 c c r c2. c4.. r16 r8. c16 c8 r c1 }
\relative c' { c2 r4 r c16 c c r c2. c4.. r16 r8. c16 c8 r c1 }

小節の中央に書かれる全休符は、 r1 の代わりに大文字の R1 を用いる。 R は、指定された音長にかかわらず、小節の中央に全休符記号を描く。 そのため、例えば3/4拍子の小節に対して全休符を書きたい場合、以下のように R2. を用いる。

LilyPond: 小節にわたる全休符
\relative c' {
  \time 3/4
  c4 d e R2. a b c
}
\relative c' {
  \time 3/4
  c4 d e R2. a b c
}

拍子記号コマンド \time については 拍子記号 で扱う。

LilyPondはもう一種類、空白休符と呼ばれる特殊な休符が存在する。 空白休符は何の記号も出力しないが、演奏しない時間を作り出すものである。

LilyPond: 空白休符
\relative c' { c4 c s c c c8. c16 s2 }
\relative c' { c4 c s c c c8. c16 s2 }

空白休符は、声部が1つの譜ではほとんど用いられないが、複数の声部を持つ場合に用いることがある。 複数声部については 第四日 で扱うため、下の例は眺めるだけでよい。

LilyPond: 空白休符(多声部の例)
\relative c'' {
  << { s4  c s bes } \\
     { c,4 e g e   } >>
}
\relative c'' {
  << { s4  c s bes } \\
     { c,4 e g e   } >>
}

コメント

LilyPondのソースファイルには、出力結果に全く関与しないコメントを挿入することができる。

単一行コメントは、 % で始まり、行末までがコメントとなる。

LilyPond: 単一行コメント
{
  c4 d e f % これがコメント
}

複数行コメントは、 %{ %} で囲まれた範囲が対象となる。

LilyPond: 複数行コメント
{
  c4 d e f
  %{
    これが複数行コメント。
    長いコメントを書くことができる。
  %}
}

複数行コメントは入れ子構造にすることはできず、最初に出現した %} でコメントは終了する。

scheme-syntax で扱うが、Schemeコード中でのコメントはこれと異なり、単一行が ' 、複数行が #! !# である。

練習問題

以下のコード片に記述を追加し、各画像の通りの楽譜を出力せよ。

\version "2.19.59"
\relative c' {
  % ADD CODE HERE
}
LilyPond: 第一週第二日 練習問題 (1)
\relative c' {
  c2 d4 e
  f g a g
  c,1
}
LilyPond: 第一週第二日 練習問題 (2)
\relative c' {
  c8. e16 f8. g16 b8. c16 b8. c16
  b8. g16 f8. e16 c4 r
}
LilyPond: 第一週第二日 練習問題 (3)
\relative c' {
  c8 f c g' c,4.. r16 |
  c8 fis' c ges' c,,4.. r16
}
LilyPond: 第一週第二日 練習問題 (4)
\relative c'' {
  r16 gis16 ais gis
  fisis gis cis e
  dis cis dis cis
  bis cis e gis |

  dis e dis cisis
  dis b' ais gis
  fisis e' dis cis
  b ais gis fisis
}