[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

3.1 LilyPond 入力ファイルの仕組み

@translationof How LilyPond input files work

LilyPond の入力フォーマットは非常に自由な形式であり、経験豊富なユーザにとってはファイルを構築する際の自由度が高いです。しかしながら、この自由度が新しいユーザにとっては混乱の元になります。このセクションではこの入力ファイルの構造についていくつか説明します。しかしながら、簡潔さを保つためにいくつかの詳細については目をつぶるかもしれません。入力フォーマットについての完全な記述は、 (notation)File structure section ‘File structure’ in Notation Reference を参照してください。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

3.1.1 LilyPond ファイル構造の紹介

@translationof Introduction to the LilyPond file structure

LilyPond 入力ファイルの基本例は以下のようなものです:

 
\version "2.21.3"

\header { }

\score {
   … 複合音楽表記 …                   % すべての音楽がここに入ります!
  \layout { }
  \midi { }
}

基本パターンは本当にさまざまです。しかしながら、この例はスタート地点として役に立ちます。

これまで、あなたが見てきた例では \score {} コマンドを使用していませんでした。その理由は、あなたが LilyPond に与えたのが簡単な入力であった場合、LilyPond が自動的に追加のコマンドを付け加えるからです。LilyPond は以下のような入力:

 
\relative {
  c''4 a d c
}

を以下を簡略表記したものとして扱います:

 
\book {
  \score {
    \new Staff {
      \new Voice {
        \relative {
          c''4 a b c
        }
      }
    }
    \layout { }
  }
}

言い換えると、入力が保持しているのが単一の音楽表記である場合、LilyPond はまるでその音楽表記が上で示されたコマンドで包まれているかのように解釈します。

一言警告! LilyPond ドキュメントの中にある多くの例では、 \new Staff と \new Voice コマンドは暗黙的に作成されるために省略されています。簡単な例ではそれでうまくいきますが、より複雑な例の場合 – 特に追加のコマンドが使用される場合 – コンテキストの暗黙的な作成は予想外の結果となる可能性があります。多分、予期しない余分な譜が作成されるでしょう。コンテキストを明示的に作成する方法は コンテキストとエングラーバ で説明されています。

Note: 数行以上の音楽を入力する場合、常に譜とボイスを明示的に作成したほうが賢明です。

今度は最初の例に戻って、\score コマンドについて検証します。他のことはデフォルトのままにしておきます。

\score ブロックは常にただ 1 つの音楽表記を保持していなければなりません。音楽表記は単一の音符である場合もありますし、以下のような巨大な複合表記である場合もあるということを覚えておいてください:

 
{
  \new StaffGroup <<
     … ワーグナーのオペラの楽譜全体がここに入ります … 
  >>
}

すべては { … } の内部にあるため、それは 1 つの音楽表記であるとカウントされます。

以前見てきたように、\score ブロックは他のものを含む可能性もあります。例えば以下のように:

 
\score {
  { c'4 a b c' }
  \header { }
  \layout { }
  \midi { }
}

これら 3 つのコマンド – \header, \layout, \midi – は特別なものであるということに注意してください: バックスラッシュ (\) で始まる他の多くのコマンドとは異なり、これらは音楽表記 ではなく、何らかの音楽表記の一部でもありません。そのため、これらは \score ブロックの中に置くこともできますし、外部に置くこともできます。実際、これらのコマンドは一般的に \score ブロックの外側に置かれます – 例えば、このセクションの最初の例のように \header はしばしば \score コマンドの上に置かれます。

以前は見なかった他の 2 つのコマンドは \layout { } と \midi { } です。それらが上記のように記述された場合、LilyPond はそれぞれ譜刻された楽譜と MIDI 出力を作り出します。それらは記譜法リファレンスの (notation)Score layout section ‘Score layout’ in Notation Reference と (notation)Creating MIDI output section ‘Creating MIDI output’ in Notation Reference で完全に記述されています。

あなたは複数の \score ブロックを記述するかもしれません。それらはそれぞれ別々の楽譜として扱われますが、それらは結合されて単一の出力ファイルに収められます。\book コマンドは必要ありません – このコマンドは暗黙的に 1 つ作成されます。しかしながら、あなたが 1 つの .ly ファイルから別々に分かれた出力ファイルを作成しようとするのなら、それぞれのセクションを異なる出力ファイルに分けるために \book コマンドが使用されます: 各 \book ブロックは別々の出力ファイルを作り出します。

要約:

各 \book ブロックは別々の出力ファイル (つまり PDF ファイル) を作成します。あなたが明示的に \book コマンドを記述しなかった場合、LilyPond は暗黙的に入力コードを \book ブロックで包み込みます。

各 \score ブロックは \book ブロック内部で別々の音楽表記のチャンク (塊) となります。

各 \layout ブロックはそのブロックを含んでいる \score ブロックや \book ブロックに影響を与えます – つまり、ある \score ブロックの内部にある \layout ブロックはその \score ブロックにだけ影響を与え、\score ブロックの外部にある (それゆえ、明示的あるいは暗黙的に \book ブロックの中にある) \layout ブロックはその \book ブロックの中にあるすべての \score に影響を与えます。

詳細は、 (notation)Multiple scores in a book section ‘Multiple scores in a book’ in Notation Reference を参照してください。

もう一つの重要な簡略表記は変数を定義することです。すべてのテンプレートがこれを使っています:

 
melody = \relative {
  c'4 a b c
}

\score {
  \melody
}

LilyPond がこのファイルを見ると、melody の値 (イコール記号の後にあるすべて) を記憶し、\melody と記述された箇所すべてにその値を挿入します。変数の名前について特別なことは何もありません – 変数名は melody, global, keyTime, pianorighthand などとなります。変数名はアルファベットだけで構成されていて、LilyPond コマンド名と異なっている限りは、ほぼどんな名前でも使用できるということを覚えておいてください。詳細は、変数と関数を用いて入力の手間を省く を参照してください。変数名の厳密な制限については、 (notation)File structure section ‘File structure’ in Notation Reference で詳述されています。

参照

入力フォーマットの完全な定義は、 (notation)File structure section ‘File structure’ in Notation Reference を参照してください。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

3.1.2 Score は (単一の) 複合的な音楽表記

@translationof Score is a (single) compound musical expression

前のセクション – LilyPond ファイル構造の紹介 – で LilyPond 入力ファイルの一般的な構造について見てきました。しかしながら、我々は最も重要な部分を飛ばしてきたようです: どうやって \score の後に記述するものを見つけ出すのでしょうか?

我々はそのことを完全には飛ばしてきませんでした。この大きな謎は簡単なことであり、謎でもなんでもないのです。以下の行がこの謎についてすべてを説明しています:

\score ブロックはただ 1 つの音楽表記のみを含まなくてはなりません。

音楽表記が意味しているものを理解するには、チュートリアルの 音楽表記についての説明 を読み返すと役に立つかもしれません。そこでは、小さな音楽表記 – 音符から始めて、それから和音など – から大きな音楽表記を構築する方法を説明しています。今度は、大きな音楽表記から始めます。話を簡単にするために、例を歌手 1 人とピアノとします。このアンサンブルでは StaffGroup は必要ありません。StaffGroup はいくつかの譜をグループ化して左端に括弧を付けるだけですが、我々は歌手 1 人とピアノ用の譜を必要としています。

 
\score {
  <<
    \new Staff = "singer" <<
    >>
    \new PianoStaff = "piano" <<
    >>
  >>
  \layout { }
}

ここで譜に名前を付けます – “singer” と “piano” です。 ここで名前を付ける必要は必ずしもありませんが、一見して各譜が何なのか見て取れるので名前を付けておくべきです。

歌手とピアノが同時進行であることを示すために { … } の代わりに << … >> を使用するということを思い出してください。こうすることで、ボーカル パートはピアノ パートの上に表示されます。上の例で歌手の譜が一続きの音楽表記を保持するだけであるのなら << … >> を使う必要はありませんが、譜が同時進行する複数の音楽表記 – 例えば、同時進行する 2 つの声部や、声部と歌詞です – を保持するのであれば必須となります。我々は歌詞を持つ声部にしようとしているので、二重角括弧が必須です。実際の音楽は後で付け加えるとして、ここではいくつかのダミーの音符と歌詞を配置してみます。歌詞の入力の仕方を忘れてしまったのなら、簡単な歌曲を作成する の \addlyrics を見直してください。

 
\score {
  <<
    \new Staff = "singer" <<
      \new Voice = "vocal" { c'1 }
      \addlyrics { And }
    >>
    \new PianoStaff = "piano" <<
      \new Staff = "upper" { c'1 }
      \new Staff = "lower" { c'1 }
    >>
  >>
  \layout { }
}

[image of music]

更に詳細を加えていきます。歌手の譜は Voice (LilyPond では、この用語は音符のセットを参照するものであり、必ずしもボーカルの音符であるわけではありません – 例えば、一般にバイオリンは 1 つのボイスを演奏します) と歌詞を保持します。さらに、ピアノの譜表は上部譜表(右手) と下部譜 (左手) を保持します。

この段階で、音符の入力を開始することができます。\new Voice = "vocal" の後の波括弧の中に、以下を書き加えることができます:

 
\relative {
  r4 d''8\noBeam g, c4 r
}

しかしながら、そのようにすると、\score セクションは非常に長くなり、何が起こるのか理解しにくくなります。そのため、直接音符を付け加える代わりに変数を使用しましょう。前のセクションで変数についての紹介を行いました。覚えていますよね?text 変数の内容が間違いなく歌詞と解釈されるよう、内容の前に \lyricmode を記述します。\addlyrics と同様に、これは入力モードを歌詞に切替間す。\lyricmode を記述しなければ、LilyPond は内容を音符と解釈しようとしてエラーを引き起こします。 (他にもいくつかの入力モードがあります。 (notation)Input modes section ‘Input modes’ in Notation Reference を参照してください。)

では、いくつかの音符を加えて、左手にはヘ音記号を加えます。これで、実際の楽譜の一部ができます:

 
melody = \relative { r4 d''8\noBeam g, c4 r }
text   = \lyricmode { And God said, }
upper  = \relative { <g' d g,>2~ <g d g,> }
lower  = \relative { b,2 e }

\score {
  <<
    \new Staff = "singer" <<
      \new Voice = "vocal" { \melody }
      \addlyrics { \text }
    >>
    \new PianoStaff = "piano" <<
      \new Staff = "upper" { \upper }
      \new Staff = "lower" {
        \clef "bass"
        \lower
      }
    >>
  >>
  \layout { }
}

[image of music]

\score セクションを書いている (あるいは読んでいる) とき、ゆっくりと注意深く進めてください。外側のレベルから始めて、それから内部の細かな部分に取り組んでください。さらに、きちんとインデントを入れると非常に役に立ちます – これは、テキスト エディタの中で同じレベルにある各要素は同じ水平位置から始まるということを保証します。

参照

記譜法リファレンス: (notation)Structure of a score section ‘Structure of a score’ in Notation Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

3.1.3 音楽表記をネストする

@translationof Nesting music expressions

すべての譜を開始時に宣言することは必須ではありません。譜はどこででも臨時に導入される可能性があります。これはオッシアを作成する際に特に有用です – (music-glossary)ossia section ‘ossia’ in Music Glossary を参照してください。ここで、3 つの音符に対して臨時に新しい譜を導入する方法を示すちょっとした例を挙げます:

 
\new Staff {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff {
        f8 f c
      }
    >>
    r4 |
  }
}

[image of music]

音部記号のサイズは音部変更後に譜刻される音部記号のサイズ – 行の開始点での音部記号よりも少し小さい – と同じであるということに注意してください。これは行の途中で譜刻される音部記号全般に言えることです。

オッシアは以下のように譜の上に置かれるかもしれません:

 
\new Staff = "main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
      } { f8 f c }
    >>
    r4 |
  }
}

[image of music]

この例は後で説明される \with を使用しています。このコマンドは単一の譜のデフォルトの振る舞いを変更することを意味します。ここでは、このコマンドは新しい譜をデフォルトの位置 (“main” と呼ばれている譜の下) ではなく、上に置くべきであると言っています。

参照

オッシアはしばしば音部記号や拍子記号無しで描かれ、通常は小さなフォントで描かれます。これらはまだ紹介されていない追加のコマンドを必要とします。オブジェクトのサイズ と (notation)オッシア譜 section ‘オッシア譜’ in Notation Reference を参照してください。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

3.1.4 入力音符の構造

@translationof Structure of a note entry

LilyPond の入力における音符は、順番にピッチ、長さ、1 つ以上の‘後置イベント’ (省略可能) からなります。LilyPond における‘後置イベント’ は、アーティキュレーション、運指、弦番号、スラー、タイ、テキストなどを追加するものです。

ピッチは、現在の音符名の言語 ( (notation)Note names in other languages section ‘Note names in other languages’ in Notation Reference で説明されています) に基づいて明示的に指定されます。ピッチが省略された場合、その音符のピッチは前の音符と同じものになります。 (notation)Durations section ‘Durations’ in Notation Reference を参照してください。r や s はピッチではないことに注意してください。

長さは、数字と省略可能な 1 つ以上のドットからなります。長さが明示的に指定されない場合、その音符の長さは前の音符、和音、休符、空白休符と同じものになります。 (notation)Durations section ‘Durations’ in Notation Reference を参照してください。

後置イベントはこれらの後に付加するものです。例えば、c’ の 8 分音符に、1 の運指記号、テヌート アーティキュレーション、スラーの開始、タイの開始、テキスト指示を付加したいとしましょう。これは以下のようになります:

 
{ c'8-1--(~^\markup{"text annotation"} c' d') }

[image of music]

参照

学習マニュアル: @ref{Ties and slurs}, @ref{Articulations and dynamics}, @ref{Adding text}

記譜法リファレンス: (notation)Pitches section ‘Pitches’ in Notation Reference, (notation)Rhythms section ‘Rhythms’ in Notation Reference, (notation)Expressive marks section ‘Expressive marks’ in Notation Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

3.1.5 ネストされない括弧とタイ

@translationof On the un-nestedness of brackets and ties

これまでに LilyPond への入力ファイルを書く際に使用する括弧と括弧のような構成物にはいくつかの種類があるということを見てきました。これらは異なる規則 – 最初は混乱を引き起こす可能性があります – に従います。規則についての説明を行う前に、括弧と括弧のような構成物の種類を再確認してみましょう。

括弧のタイプ機能
{ … }一続きの音楽を囲みます
< … >和音となる音符を囲みます
<< … >>同時進行する音楽表記を囲みます
( … )スラーの開始点と終了点を意味します
\( … \)フレージング スラーの開始点と終了点を意味します
[ … ]手動連桁の開始点と終了点を意味します

こららに対して、音符の間や音符をまたがって線を生成する他の構文を付け加えるべきです: タイ (チルド ~ によって記述されます)、連符 (\tuplet x/y { … } として記述されます)、グレイス ノート (\grace { … } として記述されます) です。

LilyPond 以外では、種類の異なる括弧が適切にネストされること – [ { ( … ) } ] のように – が一般的な使い方であり、括弧の終わりの順序は正確に括弧の始まりの順序と逆になります。このことは上記の表で ‘囲みます’ という言葉で記述されている 3 種類の括弧に対しては必須となります – それらは適切にネストされなければなりません。しかしながら、残りの括弧のような構成物 – 上記の表で ‘意味します’ という言葉で記述されいるものと、タイ、連符で使用されるもの – はいかなる括弧ともネストされる必要は ありません。実際、これらは何かを囲むという意味では括弧ではありません – それらは単に何かが始まる場所、終わる場所を示すためのマークです。

そのため、例えばフレージング スラーは手動で挿入される連桁の前に開始して、その手動連桁の前に終わる可能性もあります – たぶん音楽的ではないかもしれませんが、可能性はあります:

 
\relative { g'8\( a b[ c b\) a] g4 }

[image of music]

一般に、種類の異なる括弧、括弧のような構成物、それに連符、タイ、装飾小音符の囲みは自由に組み合わせることができます。以下の例では、連桁は連符の中にまで伸びていて (行 1)、スラーは連符の中にまで伸びていて (行 2)、連桁とスラーが連符の中にまで伸びていて (行 3)、タイが 2 つの連符にまたがっていて、さらにフレージング スラーが連符の外にまで伸びています (行 3 と 4)。

 
\relative {
  r16[ g' \tuplet 3/2 { r16 e'8] }
  g,16( a \tuplet 3/2 { b16 d) e }
  g,8[( a \tuplet 3/2 { b8 d) e~] } |
  \tuplet 5/4 { e32\( a, b d e } a4.\)
}

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]

This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.

他の言語: English, català, česky, deutsch, español, français, magyar, italiano, nederlands
About automatic language selection.