4.4.3 ゼロから楽譜を構築する (GNU LilyPond 学習マニュアル)

#### 4.4.3 ゼロから楽譜を構築する

LilyPond コードを書くことにある程度熟練した後、あなたはテンプレートの 1 つを変更するよりもゼロから楽譜を構築するほうがより容易であることに気づくかもしれません。さらに、あなたはこの方法であなたの好みのタイプの音楽に適したあなた自身のスタイルを開発することもできます。例として、オルガン前奏曲のための楽譜を作成する手順を見てみましょう。

ヘッダ セクションから始めます。そこでタイトル、作曲者の名前などを記述し、それから任意の変数を定義し、最後にスコア ブロックに取り掛かります。以上のことを概要から始めて、その後に詳細を詰めていきます。

Jesu, meine Freude – これは 2 つの鍵盤とペダルを持つオルガンのために書かれたものです – をベースとする Bach の前奏曲の最初の 2 小節を使います。このセクションの最後でこの音楽の最初の 2 小節を見ることができます。上段鍵盤パートは 2 つのボイスを持ち、下段鍵盤とペダルはそれぞれ 1 つのボイスを持ちます。そのため、4 つの音楽定義と、拍子記号と調号を定義するための 1 つの音楽定義が必要となります:

    \version "2.26.0"
    \header {
      title = "Jesu, meine Freude"
      composer = "J S Bach"
    }
    keyTime = { \key c \minor \time 4/4 }
    ManualOneVoiceOneMusic = { s1 }
    ManualOneVoiceTwoMusic = { s1 }
    ManualTwoMusic = { s1 }
    PedalOrganMusic = { s1 }

    \score {
    }

ここでは、実際の音楽の代わりに空白音符 `s1` を使用しました。実際の音楽は後で付け加えます。

次に、スコア ブロックで何をすべきなのかを見ていきましょう。単純に望む譜表構造を反映させます。通常、オルガン音楽は 3 つの譜で書かれます – 2 つの鍵盤とペダルのための譜です。鍵盤の譜はブレース (譜表の左端の波括弧) でまとめられているべきなので、それらに対して `PianoStaff` を使用する必要があります。1 番目の鍵盤パートは 2 つのボイスを必要とし、2 番目の鍵盤パートは 1 つだけボイスを必要とします。

    \new PianoStaff <<
      \new Staff = "ManualOne" <<
        \new Voice {
          \ManualOneVoiceOneMusic
        }
        \new Voice {
          \ManualOneVoiceTwoMusic
        }
      >>  % ManualOne Staff コンテキストの終了
      \new Staff = "ManualTwo" <<
        \new Voice {
          \ManualTwoMusic
        }
      >>  % ManualTwo Staff コンテキストの終了
    >>  % PianoStaff コンテキストの終了

次にペダル オルガンのための譜表を付け加える必要があります。これは `PianoStaff` の下にきますが、`PianoStaff` と同時進行でなければなりませんので、ペダル オルガンのための譜表と `PianoStaff` を山括弧で囲む必要があります。これを忘れるとエラーがログ ファイルに生成されます。このエラーはあなたが早かれ遅かれ遭遇する一般的なミスです！生成されるエラーを確認するために、このセクションの最後にある例をコピーし、この山括弧を削除し、コンパイルしてみてください。

    <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
      \new PianoStaff <<
        \new Staff = "ManualOne" <<
          \new Voice {
            \ManualOneVoiceOneMusic
          }
          \new Voice {
            \ManualOneVoiceTwoMusic
          }
        >>  % ManualOne Staff コンテキストの終了
        \new Staff = "ManualTwo" <<
          \new Voice {
            \ManualTwoMusic
          }
        >>  % ManualTwo Staff コンテキストの終了
      >>  % PianoStaff コンテキストの終了
      \new Staff = "PedalOrgan" <<
        \new Voice {
          \PedalOrganMusic
        }
      >>
    >>

2 番目の鍵盤パートとペダル オルガンの譜表は 1 つだけしか音楽表記を保持しないため、それらに対して同時進行構造 `<< … >>` を使う必要は必ずしもありません。しかしながら、そうしても害はありませんし、`\new Staff` の後に常に山括弧を置くというのは複数のボイスがある場合では推奨される良い習慣です。Voice はこれとは対照的に、あなたの音楽を連続して演奏すべきいくつかの変数に分けてコード化する場合に Voice の後に波括弧 `{ … }` を常に置くべきです。

この構造をスコア ブロックに付け加えて、インデントを調整しましょう。さらに、適切な音部記号を付け加え、`\voiceOne` と `\voiceTwo` を使って上部譜の各ボイスで符幹、タイ、スラーの向きが正しくなるようにし、あらかじめ定義しておいた変数 `\keyTime` を使って拍子記号と調号を各譜に挿入します。

    \score {
      <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
        \new PianoStaff <<
          \new Staff = "ManualOne" <<
            \keyTime  % 調号と拍子記号をセットします
            \clef "treble"
            \new Voice {
              \voiceOne
              \ManualOneVoiceOneMusic
            }
            \new Voice {
              \voiceTwo
              \ManualOneVoiceTwoMusic
            }
          >>  % ManualOne Staff コンテキストの終了
          \new Staff = "ManualTwo" <<
            \keyTime
            \clef "bass"
            \new Voice {
              \ManualTwoMusic
            }
          >>  % ManualTwo Staff コンテキストの終了
        >>  % PianoStaff コンテキストの終了
        \new Staff = "PedalOrgan" <<
          \keyTime
          \clef "bass"
          \new Voice {
            \PedalOrganMusic
          }
        >>  % PedalOrgan Staff の終了
      >>
    }  % Score コンテキストの終了

上のオルガン譜のレイアウトはほぼ完璧です。しかしながら、それぞれの譜を見ているだけではわからない、ちょっとした欠陥があります。ペダル譜と左手譜の距離は右手譜と左手譜の距離とほぼ等しくなるべきです。詳しく説明すると、`PianoStaff` コンテキストの譜の伸縮性は制限される (制限により、左手譜と右手譜の距離はあまりにも大きくなることはありません) ので、ペダル譜も同様に制限されるべきです。

譜の伸縮性は ‘グラフィカル オブジェクト’ `VerticalAxisGroup` の `staff-staff-spacing` プロパティで制御することができます。 (LilyPond ドキュメントの中でグラフィカル オブジェクトは ‘grobs’ と呼ばれることが多いです。) 今、グラフィカル オブジェクトの詳細について知らなくても心配しないでください。後で詳しく説明します。興味があるのなら、Overview of modifying properties を見てください。今回は、`stretchability` サブ-プロパティを変更する必要があるだけです。さらに興味があるのなら、グラフィカル オブジェクト `VerticalAxisGroup` の定義を調べていくと、ファイル `scm/define-grobs.scm` の中に `staff-staff-spacing` プロパティのデフォルト値を見つけることができます。`stretchability` の値は、`PianoStaff` コンテキスト (これはファイル `ly/engraver-init.ly` の中にあります) の定義から来ていて、2 つの値は等価です。

    \score {
      <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
        \new PianoStaff <<
          \new Staff = "ManualOne" <<
            \keyTime  % 調号と拍子記号をセットします
            \clef "treble"
            \new Voice {
              \voiceOne
              \ManualOneVoiceOneMusic
            }
            \new Voice {
              \voiceTwo
              \ManualOneVoiceTwoMusic
            }
          >>  % ManualOne Staff コンテキストの終了
          \new Staff = "ManualTwo" \with {
            \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
          } <<
            \keyTime
            \clef "bass"
            \new Voice {
              \ManualTwoMusic
            }
          >>  % ManualTwo Staff コンテキストの終了
        >>  % PianoStaff コンテキストの終了
        \new Staff = "PedalOrgan" <<
          \keyTime
          \clef "bass"
          \new Voice {
            \PedalOrganMusic
          }
        >>  % PedalOrgan Staff の終了
      >>
    }  % Score コンテキストの終了

これでこの構造は完成です。3 つの譜を持つオルガン譜はいずれも同様の構造を持ちますが、ボイスの数はさまざまになるかもしれません。この後に行うべきことは、音楽を付け加え、各パートを一緒にすることです。

>     \header {
>       title = "Jesu, meine Freude"
>       composer = "J S Bach"
>     }
>     keyTime = { \key c \minor \time 4/4 }
>     ManualOneVoiceOneMusic = \relative {
>       g'4 g f ees |
>       d2 c |
>     }
>     ManualOneVoiceTwoMusic = \relative {
>       ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
>       8 c4 b8 c8. g16 c b c d |
>     }
>     ManualTwoMusic = \relative {
>       c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
>       f16 ees f d g aes g f ees d ees8~ 16 f ees d |
>     }
>     PedalOrganMusic = \relative {
>       r8 c16 d ees d ees8~ 16 a, b g c b c8 |
>       r16 g ees f g f g8 c,2 |
>     }

>     \score {
>       <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
>         \new PianoStaff <<
>           \new Staff = "ManualOne" <<
>             \keyTime  % 調号と拍子記号をセットします
>             \clef "treble"
>             \new Voice {
>               \voiceOne
>               \ManualOneVoiceOneMusic
>             }
>             \new Voice {
>               \voiceTwo
>               \ManualOneVoiceTwoMusic
>             }
>           >>  % ManualOne Staff コンテキストの終了
>           \new Staff = "ManualTwo" \with {
>             \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
>           } <<
>             \keyTime
>             \clef "bass"
>             \new Voice {
>               \ManualTwoMusic
>             }
>           >>  % ManualTwo Staff コンテキストの終了
>         >>  % PianoStaff コンテキストの終了
>         \new Staff = "PedalOrgan" <<
>           \keyTime
>           \clef "bass"
>           \new Voice {
>             \PedalOrganMusic
>           }
>         >>  % PedalOrgan Staff コンテキストの終了
>       >>
>     }  % Score コンテキストの終了

#### 参照

音楽用語集: system

#### 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 インデックス