4.1.1 LilyPond ファイル構造の紹介 (GNU LilyPond 学習マニュアル)

#### 4.1.1 LilyPond ファイル構造の紹介

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

    \version "2.26.0"

    \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 出力を作り出します。それらは記譜法リファレンスの Score layout と Creating MIDI output で完全に記述されています。

あなたは複数の `\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` に影響を与えます。

詳細は、Multiple scores in a book を参照してください。

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

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

    \score {
      \melody
    }

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

#### 参照

入力フォーマットの完全な定義は、File structure を参照してください。

#### GNU LilyPond 学習マニュアル v2.26.0 (stable-branch).

- 1 Installing
  - 1.1 Graphical setup
  - 1.2 Command line setup
- 2 チュートリアル
  - 2.1 ファイルをコンパイルする
  - 2.2 入力ファイルの書き方
    - 2.2.1 簡単な記譜法
      - ピッチ
      - 演奏時間 (リズム)
      - 休符
      - 拍子記号
      - テンポ記号
      - 音部記号
      - すべてをまとめて
    - 2.2.2 入力ファイルに取り組む
  - 2.3 エラーに対処する
    - 2.3.1 一般的なトラブルシュート Tips
    - 2.3.2 いくつかの一般的なエラー
  - 2.4 このマニュアルの読み方
    - 2.4.1 省略された構成要素
    - 2.4.2 クリック可能な例
    - 2.4.3 マニュアルの概要
- 3 一般的な記譜法
  - 3.1 単一譜表表記
    - 3.1.1 小節線と小節チェック
      - 小節線
      - 小節チェック
    - 3.1.2 ピッチと調号
      - ピッチ変更
      - 調号
      - 警告: 調号とピッチ
    - 3.1.3 タイとスラー
      - タイ
      - スラー
      - フレージング スラー
      - 警告: スラー vs. タイ
    - 3.1.4 アーティキュレーションと強弱記号
      - アーティキュレーション
      - 運指法記号
      - 強弱記号
    - 3.1.5 テキストを追加する
    - 3.1.6 自動連桁と手動連桁
    - 3.1.7 高度なリズム コマンド
      - 部分小節
      - 連符
      - 装飾小音符
  - 3.2 同時に演奏する複数の音符
    - 3.2.1 音楽表記についての説明
      - 数学的表記との類似
      - 同時進行する音楽表記: 複数の譜
      - 同時進行する音楽表記: 単一の譜表
    - 3.2.2 複数の譜
    - 3.2.3 譜表グループ
    - 3.2.4 音符を組み合わせて和音にする
    - 3.2.5 単一譜表での多声
  - 3.3 歌曲
    - 3.3.1 簡単な歌曲を作成する
    - 3.3.2 歌詞を旋律に揃える
    - 3.3.3 複数の譜への歌詞
  - 3.4 仕上げ
    - 3.4.1 変数を用いて楽曲を編成する
    - 3.4.2 タイトルを付け加える
    - 3.4.3 絶対音符名
    - 3.4.4 このチュートリアルの後にすべきこと
- 4 基礎となるコンセプト
  - 4.1 LilyPond 入力ファイルの仕組み
    - 4.1.1 LilyPond ファイル構造の紹介
    - 4.1.2 Score は (単一の) 複合的な音楽表記
    - 4.1.3 音楽表記をネストする
    - 4.1.4 入力音符の構造
    - 4.1.5 ネストされない括弧とタイ
  - 4.2 音楽を保持するボイス
    - 4.2.1 私はボイスを聴いている
    - 4.2.2 ボイスを明示的にインスタンス化する
    - 4.2.3 ボイスとボーカル
  - 4.3 コンテキストとエングラーバ
    - 4.3.1 コンテキストの説明
    - 4.3.2 コンテキストを作成する
    - 4.3.3 エングラーバの説明
    - 4.3.4 コンテキスト プロパティを変更する
    - 4.3.5 エングラーバを追加 / 削除する
  - 4.4 テンプレートを拡張する
    - 4.4.1 ソプラノとチェロ
    - 4.4.2 4 パート SATB ボーカル譜
    - 4.4.3 ゼロから楽譜を構築する
    - 4.4.4 変数と関数を用いて入力の手間を省く
    - 4.4.5 楽譜とパート
- 5 出力を調整する
  - 5.1 調整の基本
    - 5.1.1 調整の紹介
    - 5.1.2 オブジェクトとインタフェイス
    - 5.1.3 オブジェクトとプロパティの命名規則
    - 5.1.4 調整手段
      - `\override` コマンド
      - `\revert` コマンド
      - `\once` 接頭辞
      - `\overrideProperty` コマンド
      - `\tweak` コマンド
      - `\single` 接頭辞
  - 5.2 内部リファレンス マニュアル
    - 5.2.1 レイアウト オブジェクトのプロパティ
    - 5.2.2 インタフェイスの中で見つかるプロパティ
    - 5.2.3 プロパティのタイプ
  - 5.3 オブジェクトの見た目
    - 5.3.1 オブジェクトの可視性と色
      - `stencil` プロパティ
      - `break-visibility` property
      - `transparent` プロパティ
      - `color` プロパティ
    - 5.3.2 オブジェクトのサイズ
    - 5.3.3 オブジェクトの長さと太さ
  - 5.4 オブジェクトの配置
    - 5.4.1 自動配置
    - 5.4.2 譜内部オブジェクト
      - `direction` プロパティ
      - 運指
    - 5.4.3 譜外部オブジェクト
      - `outside-staff-priority` プロパティ
      - `\textLengthOn` コマンド
      - 強弱記号の配置
      - グラフィカル オブジェクトのサイズ
  - 5.5 垂直方向のスペース
  - 5.6 オブジェクトの衝突
    - 5.6.1 オブジェクトを移動させる
    - 5.6.2 表記の重なりを修正する
      - `padding` プロパティ
      - `right-padding` プロパティ
      - `staff-padding` プロパティ
      - `self-alignment-X` プロパティ
      - `staff-position` プロパティ
      - `extra-offset` プロパティ
      - `positions` プロパティ
      - `force-hshift` プロパティ
    - 5.6.3 実際の音楽からの例
  - 5.7 更なる調整
    - 5.7.1 調整のその他の使用方法
      - 異なるボイスの中にある音符をタイで結ぶ
      - MIDI でフェルマータをシミュレートする
    - 5.7.2 レイアウトの調整のために変数を使用する
    - 5.7.3 スタイル シート
    - 5.7.4 その他の情報源
    - 5.7.5 Scheme を用いた高度な調整
- Appendix A テンプレート
  - A.1 組み込まれているテンプレート
    - A.1.1 SATB テンプレート
    - A.1.2 SSAATTBB テンプレート
  - A.2 単一譜テンプレート
    - A.2.1 音符のみ
    - A.2.2 音符と歌詞
    - A.2.3 音符とコード
    - A.2.4 音符、歌詞それにコード
  - A.3 ピアノ テンプレート
    - A.3.1 ソロ ピアノ
    - A.3.2 ピアノと歌詞を持つ旋律
    - A.3.3 歌詞が中央に配置されたピアノ譜
  - A.4 弦楽四重奏テンプレート
    - A.4.1 弦楽四重奏
    - A.4.2 弦楽四重奏パート
  - A.5 合唱テンプレート
    - A.5.1 SATB ボーカル譜
    - A.5.2 SATB ボーカル譜と自動ピアノ譜
    - A.5.3 整列されたコンテキストを持つ SATB
    - A.5.4 4 つの譜に配置された SATB
    - A.5.5 ソロと 2 パートのリフレイン
    - A.5.6 賛美歌
    - A.5.7 聖歌
  - A.6 オーケストラ テンプレート
    - A.6.1 オーケストラ、合唱それにピアノ
  - A.7 古代の記譜法テンプレート
    - A.7.1 計量記譜法のテンプレート
    - A.7.2 グレゴリア聖歌のテンプレート
  - A.8 その他のテンプレート
    - A.8.1 ジャズ バンド
- Appendix B GNU Free Documentation License
- Appendix C インデックス