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

3.4 テンプレートを拡張する

@translationof Extending the templates

あなたはチュートリアルを読み終えました。あなたはどのように楽譜を書くかを知っていて、基礎となるコンセプトを理解しています。しかし、どうやったらあなたはあなたが望む譜を手に入れられるでしょうか?あなたにとって良いスタート地点となるかもしれない多くのテンプレートがあります (テンプレート を参照してください)。しかしながら、あなたの望むものがそこでカバーされていなかったらどうしましょう?続きを読んでください。


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

3.4.1 ソプラノとチェロ

@translationof Soprano and cello

あなたが最終的に望むものに最も近いテンプレートから始めてください。ソプラノとチェロのための楽譜を書きたいということにしましょう。ここでは、‘音符と歌詞’ (ソプラノ パート用) から始めることにします。

 
\version "2.21.3"

melody = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

text = \lyricmode {
  Aaa Bee Cee Dee
}

\score {
  <<
    \new Voice = "one" {
      \autoBeamOff
      \melody
    }
    \new Lyrics \lyricsto "one" \text
  >>
  \layout { }
  \midi { }
}

これにチェロ パートを追加していきます。‘音符のみ’ のテンプレートを見てみましょう:

 
\version "2.21.3"

melody = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

\score {
  \new Staff \melody
  \layout { }
  \midi { }
}

\version コマンドは 2 つも必要ありません。melody セクションは必要です。\score セクションは 2 つも必要ありません – \score が 2 つあると、2 つのパートがばらばらになります。2 つのパートをデュオのように一緒にしたいのです。\score セクションの中に \layout や \midi は 2 つも必要ありません。

単に melody セクションをカット&コピーした場合、melody 定義が 2 つになります。これはエラーにはなりませんが、 2 番目の定義が両方の旋律で使われることになります。そのため、2 つの旋律を区別するためにリネームします。ソプラノ用のセクションを sopranoMusic と呼び、チェロ用のセクションを celloMusic と呼ぶことにします。リネームするときに、text を sopranoLyrics とりネームしましょう。これらのインスタンスをリネームすることも忘れないでください −- 初期定義 (melody = \relative { 部分) とその名前が使われているところ (\score セクションの中) の両方です。

リネームする際に、チェロ パートの譜も変更しましょう −- 通常、チェロは低音部を使用します。さらに、チェロの音符を変えてみます。

 
\version "2.21.3"

sopranoMusic = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

sopranoLyrics = \lyricmode {
  Aaa Bee Cee Dee
}

celloMusic = \relative {
  \clef "bass"
  \key c \major
  \time 4/4
  d4 g fis8 e d4
}

\score {
  <<
    \new Voice = "one" {
      \autoBeamOff
      \sopranoMusic
    }
    \new Lyrics \lyricsto "one" \sopranoLyrics
  >>
  \layout { }
  \midi { }
}

これでうまくいくように見えますが、チェロ パートが楽譜に表示されません −- チェロ パートを \score セクションの中で使っていないからです。チェロ パートをソプラノ パートの下に表示させたいのなら、以下をソプラノの譜の下に追加する必要があります:

 
\new Staff \celloMusic

さらに、音楽を << と >> で囲む必要もあります −- これは LilyPond に複数のもの (この場合は 2 つの Stave) が同時に起こるということを知らせます。\score は以下のようになります:

 
\score {
  <<
  <<
    \new Voice = "one" {
      \autoBeamOff
      \sopranoMusic
    }
    \new Lyrics \lyricsto "one" \sopranoLyrics
  >>
  \new Staff \celloMusic
  >>
  \layout { }
  \midi { }
}

これは少し見にくいです。インデントがきちんと入っていません。これは簡単に修正できます。ここで、完成したソプラノとチェロ用のテンプレートを挙げます。

 
 
\version "2.21.3"
sopranoMusic = \relative {
  \clef "treble"
  \key c \major
  \time 4/4
  a4 b c d
}

sopranoLyrics = \lyricmode {
  Aaa Bee Cee Dee
}

celloMusic = \relative {
  \clef "bass"
  \key c \major
  \time 4/4
  d4 g fis8 e d4
}

\score {
  <<
    <<
      \new Voice = "one" {
        \autoBeamOff
        \sopranoMusic
      }
      \new Lyrics \lyricsto "one" \sopranoLyrics
    >>
    \new Staff \celloMusic
  >>
  \layout { }
  \midi { }
}

[image of music]

参照

開始点となるテンプレートは付録 ‘テンプレート’ で見つけることができます。@ref{Single staff templates} を参照してください。


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

3.4.2 4 パート SATB ボーカル譜

@translationof Four-part SATB vocal score

Mendelssohn の Elijah や Handel の Messiah などのオーケストラ伴奏付きの 4 パート聖歌隊のために書かれたボーカル譜の多くは 4 つの譜上に音符と歌詞を持ち、それぞれの譜は SATB (ソプラノ、アルト、テナー、バス) のうちの 1 つであり、その下にオーケストラ伴奏のピアノ譜が付きます。ここで、Handel の Messiah から例を挙げます:

[image of music]

Note: このレイアウトは LilyPond に組み込まれているテンプレートを用いることで簡単に実現できます: satb.ly 。@ref{Built-in templates} を参照してください。簡単に利用できるという利点はありますが、このテンプレートを用いるということは、必要なコンテキスト構造を自動で提供する代わりに、それを隠してしまうということです。ですから学習のために、これを一から作る方法を見てみましょう。組み込みのテンプレートが完全には望みどおりでない場合、この手順を行う必要があるかもしれません。

コピーして編集できるテンプレートの中で、最も近いものは @ref{SATB vocal score and automatic piano reduction} ですが、レイアウトを変更して、ボーカル パートから自動的に生成されたものではないピアノ伴奏譜を付け加える必要があります。ボーカル パートのための音楽と歌詞を保持している変数はそのまま使えますが、ピアノ伴奏譜のための変数を付け加える必要があります。

テンプレートの ChoirStaff の中でコンテキストが出現する順序は上で示したボーカル譜の順序と一致していません。そのため、コンテキストを再配置して、それぞれの歌詞が対応する譜表のすぐ下にくるようにします。すべてのボイスは \voiceOne – これがデフォルトです – になるべきなので、\voiceXXX コマンドは削除すべきです。さらに、テノールに対してハ音記号 (中音部記号) を指定する必要があります。テンプレートの中で歌詞を指定する方法はまだ説明していませんので、馴染みのある方法を使用する必要があります。さらに、それぞれの譜に名前を追加すべきです。

以上のことを ChoirStaff に対して行います:

 
\new ChoirStaff <<
  \new Staff = "sopranos"
  \with { instrumentName = "Soprano" }
  <<
    \new Voice = "sopranos" {
      \global
      \sopranoMusic
    }
  >>
  \new Lyrics \lyricsto "sopranos" {
    \sopranoWords
  }
  \new Staff = "altos"
  \with { instrumentName = "Alto" }
  <<
    \new Voice = "altos" {
      \global
      \altoMusic
    }
  >>
  \new Lyrics \lyricsto "altos" {
    \altoWords
  }
  \new Staff = "tenors"
  \with { instrumentName = "Tenor" }
  <<
    \new Voice = "tenors" {
      \global
      \tenorMusic
    }
  >>
  \new Lyrics \lyricsto "tenors" {
    \tenorWords
  }
  \new Staff = "basses"
  \with { instrumentName = "Bass" }
  <<
    \new Voice = "basses" {
      \global
      \bassMusic
    }
  >>
  \new Lyrics \lyricsto "basses" {
    \bassWords
  }
>>  % end ChoirStaff

次にピアノ パートに取り掛からなければなりません。これは簡単です – ‘ソロ ピアノ’ テンプレートからピアノ パートを引き抜いてくるだけです:

 
\new PianoStaff \with { instrumentName = "Piano  " }
<<
  \new Staff = "upper" \upper
  \new Staff = "lower" \lower
>>

そして、upper と lower に変数定義を付け加えます。

ChoirStaff を PianoStaff の上に置きたいので、それらを山括弧を使って組み合わせなければなりません:

 
<<  % combine ChoirStaff and PianoStaff one above the other
  \new ChoirStaff <<
    \new Staff = "sopranos" <<
      \new Voice = "sopranos" {
        \global
        \sopranoMusic
      }
    >>
    \new Lyrics \lyricsto "sopranos" {
      \sopranoWords
     }
    \new Staff = "altos" <<
      \new Voice = "altos" {
        \global
        \altoMusic
      }
    >>
    \new Lyrics \lyricsto "altos" {
      \altoWords
    }
    \new Staff = "tenors" <<
      \clef "G_8"  % tenor clef
      \new Voice = "tenors" {
        \global
        \tenorMusic
      }
    >>
    \new Lyrics \lyricsto "tenors" {
      \tenorWords
    }
    \new Staff = "basses" <<
      \clef "bass"
      \new Voice = "basses" {
        \global
        \bassMusic
      }
    >>
    \new Lyrics \lyricsto "basses" {
      \bassWords
    }
  >>  % end ChoirStaff

  \new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
>>

これらすべてを組み合わせて、上の例の 3 小節分の音楽を付け加えます:

 
 
\version "2.21.3"
global = { \key d \major \time 4/4 }
sopranoMusic = \relative {
  \clef "treble"
  r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
  Wor -- thy | is the lamb | that was slain |
}
altoMusic = \relative {
  \clef "treble"
  r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
}
altoWords = \sopranoWords
tenorMusic = \relative {
  \clef "G_8"
  r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
}
tenorWords = \sopranoWords
bassMusic = \relative {
  \clef "bass"
  r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
}
bassWords = \sopranoWords
upper = \relative {
  \clef "treble"
  \global
  r4 <a' d fis>2 <a e' a>4 |
  <d fis d'>4. <d fis d'>8 <a d a'>2 |
  <g cis g'>4 <a d fis> <a cis e>2 |
}
lower = \relative {
  \clef "bass"
  \global
  <d, d'>4 <d d'>2 <cis cis'>4 |
  <b b'>4. <b' b'>8 <fis fis'>2 |
  <e e'>4 <d d'> <a' a'>2 |
}

\score {
  <<  % ChoirStaff と PianoStaff を並行に組み合わせます
    \new ChoirStaff <<
      \new Staff = "sopranos"
      \with { instrumentName = "Soprano" }
      <<
        \new Voice = "sopranos" {
          \global
          \sopranoMusic
        }
      >>
      \new Lyrics \lyricsto "sopranos" {
        \sopranoWords
      }
      \new Staff = "altos"
      \with { instrumentName = "Alto" }
      <<
        \new Voice = "altos" {
          \global
          \altoMusic
        }
      >>
      \new Lyrics \lyricsto "altos" {
        \altoWords
      }
      \new Staff = "tenors"
      \with { instrumentName = "Tenor" }
      <<
        \new Voice = "tenors" {
          \global
          \tenorMusic
        }
      >>
      \new Lyrics \lyricsto "tenors" {
        \tenorWords
      }
      \new Staff = "basses"
      \with { instrumentName = "Bass" }
      <<
        \new Voice = "basses" {
          \global
          \bassMusic
        }
      >>
      \new Lyrics \lyricsto "basses" {
        \bassWords
      }
    >>  % ChoirStaff の終了

    \new PianoStaff
    \with { instrumentName = "Piano  " }
    <<
      \new Staff = "upper" \upper
      \new Staff = "lower" \lower
    >>
  >>
}

[image of music]


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

3.4.3 ゼロから楽譜を構築する

@translationof Building a score from scratch

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

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

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

 
\version "2.21.3"
\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’ と呼ばれることが多いです。) 今、グラフィカル オブジェクトの詳細について知らなくても心配しないでください。後で詳しく説明します。興味があるのなら、 (notation)Overview of modifying properties section ‘Overview of modifying properties’ in Notation Reference を見てください。今回は、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 つの譜を持つオルガン譜はいずれも同様の構造を持ちますが、ボイスの数はさまざまになるかもしれません。この後に行うべきことは、音楽を付け加え、各パートを一緒にすることです。

 
 
\version "2.21.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 コンテキストの終了

[image of music]

参照

音楽用語集: (music-glossary)system section ‘system’ in Music Glossary


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

3.4.4 変数と関数を用いて入力の手間を省く

@translationof Saving typing with variables and functions

これまでに、以下のような記述を見てきました:

 
hornNotes = \relative { c''4 b dis c }

\score {
  {
    \hornNotes
  }
}

[image of music]

これは音楽表記を最小化するのに役に立つ可能性があるということに気付くかもしれません:

 
fragmentA = \relative { a'4 a8. b16 }
fragmentB = \relative { a'8. gis16 ees4 }

violin = \new Staff {
  \fragmentA \fragmentA |
  \fragmentB \fragmentA |
}

\score {
  {
    \violin
  }
}

[image of music]

さらに、これらの変数 (変数、マクロ、(ユーザ定義) コマンドなどと呼ばれます) を調整のために使うこともできます:

 
dolce = \markup { \italic \bold dolce }

centreText = { \once \override TextScript.self-alignment-X = #CENTER }

fthenp =_\markup {
  \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}

violin = \relative {
  \repeat volta 2 {
    c''4._\dolce b8 a8 g a b |
    \centreText
    c4.^"hi there!" d8 e f g d |
    c4.\fthenp b8 c4 c-. |
  }
}

\score {
  {
    \violin
  }
}

[image of music]

これらの変数は明らかに入力の手間を省くのに役立っています。例え 1 回しか使用しない音楽であっても、変数化することを考慮する価値はあります – 変数化は複雑さを減らします。前の例を変数化しなかったものを見てみましょう。とても読み難く、特に最後の行が読み難いです。

 
violin = \relative {
  \repeat volta 2 {
    c''4._\markup { \italic \bold dolce } b8 a8 g a b |
    \once \override TextScript.self-alignment-X = #CENTER
    c4.^"hi there!" d8 e f g d |
    c4._\markup {
      \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
    }
    b8 c4 c-. |
  }
}

これまでに見てきたのは静的な置き換えです – LilyPond は \centreText を見つけると、それを定義した内容 (つまり、centreText= の右側にあるもの) に置き換えます。

LilyPond は非静的な置き換えも処理できます (それらを関数と見なすことができます)。

 
padText =
#(define-music-function
     (padding)
     (number?)
   #{
     \once \override TextScript.padding = #padding
   #})

\relative {
  c''4^"piu mosso" b a b
  \padText #1.8
  c4^"piu mosso" b a b
  \padText #2.6
  c4^"piu mosso" b a b
}

[image of music]

変数を使うことは、LilyPond 入力構文に変更があった場合の作業を減らす良い方法でもあります ( (usage)convert-ly を使ってファイルを更新する section ‘convert-ly を使ってファイルを更新する’ in Application Usage を参照してください)。あなたがあなたの入力ファイルすべてに使用する単一の定義 (\dolce のような) を持っていて、構文が変更された場合、すべての .ly ファイルを変更する代わりに、\dolce 定義をアップデートするだけで済みます。 (スタイル シート を参照してください。)


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

3.4.5 楽譜とパート

@translationof Scores and parts

オーケストラ音楽では、すべての音符は 2 回譜刻されます。1 回は演奏家のためのパート譜で、1 回は指揮者のための総譜で譜刻されます。変数を使うことで二度手間を避けることができます。音楽は 1 回、変数に入力されます。その変数の内容は、パート譜と総譜の両方を生成するために使用されます。

音符を特別なファイルの中に定義すると便利です。例えば、ファイル horn-music.ly は以下のホルン/バスーン デュオのパートを保持しているとします:

 
hornNotes = \relative {
  \time 2/4
  r4 f8 a | cis4 f | e4 d |
}

個々のパートは、ファイルの中に以下の記述をすることによって作り出されます:

 
\include "horn-music.ly"

\header {
  instrument = "Horn in F"
}

{
 \transpose f c' \hornNotes
}

以下の行:

 
\include "horn-music.ly"

は、ファイルの中でその行が置かれている場所で、‘horn-music.ly’ の内容に置き換わり、hornNotes の定義になります。\transpose f c' は、引数 \hornNotes は 5 度上へ移調すべきであるということを示しています。f の音は譜面に表記された c' で表され、これは通常のフレンチ ホルンを F にチューニングすることに相当します。この移調により出力は以下のようになります:

[image of music]

アンサンブルでは、しばしばボイスの 1 つが何小節も演奏されないことがあります。これは特別な休符 – 複小節休符 – によって示されます。これは大文字の R とその後に続く演奏時間 (全音符には 1、半音符には 2 などです) で入力されます。この演奏時間に掛け算を行うことによって、さらに長い休符を構築することができます。例えば、以下の休符は 2/4 拍子で 3 小節分の長さになります:

 
R2*3

この部分を譜刻するとき、複小節休符を圧縮する必要があります。これを行う音楽関数が存在します。

 
\compressMMRests { ... }

これを hornNotes に適用すると、以下のような結果になります:

[image of music]

楽譜はすべての音楽を一緒にすることによって作り出されます。他のボイスはファイル ‘bassoon-music.ly’ の中の bassoonNotes の中にあると仮定すると、楽譜は以下のような記述で作られます:

 
\include "bassoon-music.ly"
\include "horn-music.ly"

<<
  \new Staff \hornNotes
  \new Staff \bassoonNotes
>>

そして、以下のような楽譜になります:

[image of music]

参照

学習マニュアル: @ref{Organizing pieces with variables}.

記譜法リファレンス: (notation)Transpose section ‘Transpose’ in Notation Reference, (notation)Writing parts section ‘Writing parts’ in Notation Reference, (notation)Full measure rests section ‘Full measure rests’ in Notation Reference, (notation)Including LilyPond files section ‘Including LilyPond files’ in Notation Reference.


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

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.