1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
4 Translation of GIT committish: c1b0482f63f881bd3f67845e5f76a3e04675ef2a
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes..
13 @c Translators: Yoshiki Sawada
14 @c Translation status: post-GDP
18 @translationof Fundamental concepts
20 チュートリアルではシンプルなテキスト ファイルから美しい楽譜を譜刻する方法を@c
22 このセクションでは、同じように美しいがより複雑な楽譜を@c
23 作り出すのに必要とされるコンセプトとテクニックについて紹介します。
26 * LilyPond 入力ファイルの仕組み::
33 @node LilyPond 入力ファイルの仕組み
34 @section LilyPond 入力ファイルの仕組み
35 @translationof How LilyPond input files work
37 LilyPond の入力フォーマットは非常に自由な形式であり、@c
38 経験豊富なユーザにとってはファイルを構築する際の自由度が高いです。@c
39 しかしながら、この自由度が新しいユーザにとっては混乱の元になります。@c
40 このセクションではこの入力ファイルの構造についていくつか説明します。@c
41 しかしながら、簡潔さを保つためにいくつかの詳細については@c
43 入力フォーマットについての完全な記述は、@ruser{File structure} を@c
47 * LilyPond ファイル構造の紹介::
48 * Score は (単一の) 複合的な音楽表記::
54 @node LilyPond ファイル構造の紹介
55 @subsection LilyPond ファイル構造の紹介
56 @translationof Introduction to the LilyPond file structure
58 @cindex input format (入力フォーマット)
59 @cindex file structure (ファイル構造)
61 LilyPond 入力ファイルの基本例は以下のようなものです:
64 \version @w{"@version{}"}
69 @var{...複合音楽表記...} % すべての音楽がここに入ります!
77 しかしながら、この例はスタート地点として役に立ちます。
86 これまで、あなたが見てきた例では @code{\score @{@}} コマンドを@c
88 その理由は、あなたが LilyPond に与えたのが簡単な入力であった場合、@c
89 LilyPond が自動的に追加のコマンドを付け加えるからです。@c
116 言い換えると、入力が保持しているのが単一の音楽表記である場合、@c
117 LilyPond はまるでその音楽表記が上で示されたコマンドで包まれている@c
120 @cindex implicit contexts (暗黙のコンテキスト)
121 @cindex contexts, implicit (暗黙のコンテキスト)
123 @strong{一言警告!} LilyPond ドキュメントの中にある多くの例では、
124 @code{\new Staff} と @code{\new Voice} コマンドは暗黙的に作成されるために@c
126 簡単な例ではそれでうまくいきますが、より複雑な例の場合
127 -- 特に追加のコマンドが使用される場合 --
128 コンテキストの暗黙的な作成は予想外の結果となる可能性があります。@c
129 多分、予期しない余分な譜が作成されるでしょう。@c
130 コンテキストを明示的に作成する方法は @ref{コンテキストとエングラーバ} で@c
133 @warning{数行以上の音楽を入力する場合、常に譜とボイスを明示的に@c
136 今度は最初の例に戻って、@code{\score} コマンドについて検証します。@c
137 他のことはデフォルトのままにしておきます。
139 @code{\score} ブロックは常にただ 1 つの音楽表記を@c
141 そして、その音楽表記は @code{\score} コマンドのすぐ後に@c
143 音楽表記は単一の音符である場合もありますし、以下のような@c
144 巨大な複合表記である場合もあるということを覚えておいてください:
149 @var{...ワーグナーのオペラの楽譜全体がここに入ります...}
155 すべては @code{@{ ... @}} の内部にあるため、@c
156 それは 1 つの音楽表記であるとカウントされます。
158 以前見てきたように、@code{\score} ブロックは他のものを含む可能性もあります。@c
177 @cindex layout (レイアウト)
181 これら 3 つのコマンド -- @code{\header}, @code{\layout}, @code{\midi} -- は@c
182 特別なものであるということに注意してください:
183 バックスラッシュ (@code{@bs{}}) で始まる他の多くのコマンドとは異なり、@c
184 これらは音楽表記 @emph{ではなく}、何らかの音楽表記の一部でもありません。@c
185 そのため、これらは @code{\score} ブロックの中に置くこともできますし、@c
187 実際、これらのコマンドは一般的に @code{\score} ブロックの外側に置かれます
188 -- 例えば、このセクションの最初の例のように @code{\header} は@c
189 しばしば @code{\score} コマンドの上に置かれます。
191 以前は見なかった他の 2 つのコマンドは @code{\layout @{ @}} と
192 @code{\midi @{ @}} です。@c
193 それらが上記のように記述された場合、LilyPond はそれぞれ譜刻された楽譜と
195 それらは記譜法リファレンスの @ruser{Score layout} と
196 @ruser{Creating MIDI files} で完全に記述されています。
198 @cindex scores, multiple (複数の Score)
199 @cindex book block, implicit (暗黙の book ブロック)
200 @cindex implicit book block (暗黙の book ブロック)
204 あなたは複数の @code{\score} ブロックを記述するかもしれません。@c
205 それらはそれぞれ別々の楽譜として扱われますが、それらは結合されて@c
207 @code{\book} コマンドは必要ありません -- このコマンドは暗黙的に 1 つ@c
209 しかしながら、あなたが 1 つの @code{.ly} ファイルから別々に分かれた@c
210 出力ファイルを作成しようとするのなら、@c
211 それぞれのセクションを異なる出力ファイルに分けるために @code{\book}
213 各 @code{\book} ブロックは別々の出力ファイルを作り出します。
217 各 @code{\book} ブロックは別々の出力ファイル (つまり PDF ファイル) を@c
219 あなたが明示的に @code{\book} コマンドを記述しなかった場合、@c
220 LilyPond は暗黙的に入力コードを @code{\book} ブロックで包み込みます。
222 各 @code{\score} ブロックは @code{\book} ブロック内部で@c
223 別々の音楽表記のチャンク (塊) となります。
225 @cindex layout block, effect of location (レイアウト ブロックの配置場所による影響)
227 各 @code{\layout} ブロックはそのブロックを含んでいる @code{\score} ブロックや
228 @code{\book} ブロックに影響を与えます --
229 つまり、ある @code{\score} ブロックの内部にある @code{\layout} ブロックは@c
230 その @code{\score} ブロックにだけ影響を与え、@code{\score} ブロックの@c
231 外部にある (それゆえ、明示的あるいは暗黙的に @code{\book} ブロックの中に@c
232 ある) @code{\layout} ブロックはその @code{\book} ブロックの@c
233 中にあるすべての @code{\score} に影響を与えます。
235 詳細は、@ruser{Multiple scores in a book} を参照してください。
237 @cindex variables (変数)
239 もう一つの重要な簡略表記は変数を定義することです。@c
240 すべてのテンプレートがこれを使っています:
243 melody = \relative @{
252 LilyPond がこのファイルを見ると、@code{melody} の値
253 (イコール記号の後にあるすべて) を記憶し、@c
254 @code{\melody} と記述された箇所すべてにその値を挿入します。@c
255 変数の名前について特別なことは何もありません
256 -- 変数名は @code{melody}, @code{global}, @code{keyTime}, @code{pianorighthand}
258 変数名はアルファベットだけで構成されていて、LilyPond コマンド名と@c
259 異なっている限りは、ほぼどんな名前でも使用できるということを@c
261 詳細は、@ref{変数と関数を用いて入力の手間を省く} を参照してください。@c
262 変数名の厳密な制限については、@ruser{File structure} で詳述されています。
266 入力フォーマットの完全な定義は、@ruser{File structure} を参照してください。
269 @node Score は (単一の) 複合的な音楽表記
270 @subsection Score は (単一の) 複合的な音楽表記
271 @translationof Score is a (single) compound musical expression
276 @cindex contents of a score block (score ブロックの内容)
277 @cindex score block, contents of (score ブロックの内容)
278 @cindex compound music expression (複合音楽表記)
279 @cindex music expression, compound (複合音楽表記)
281 前のセクション -- @ref{LilyPond ファイル構造の紹介} -- で
282 LilyPond 入力ファイルの一般的な構造について見てきました。@c
283 しかしながら、我々は最も重要な部分を飛ばしてきたようです:
284 どうやって @code{\score} の後に記述するものを見つけ出すのでしょうか?
286 我々はそのことを完全には飛ばしてきませんでした。@c
287 この大きな謎は簡単なことであり、謎でもなんでも@emph{ないのです}。@c
288 以下の行がこの謎についてすべてを説明しています:
291 @emph{@code{\score} ブロックは 1 つの複合音楽表記で始まらなくてはなりません。}
295 音楽表記と複合音楽表記が意味しているものを理解するには、チュートリアルの
296 @ref{音楽表記についての説明} を読み返すと役に立つかもしれません。@c
297 そこでは、小さな音楽表記 -- 音符から始めて、それから和音など -- から@c
298 大きな音楽表記を構築する方法を説明しています。@c
300 話を簡単にするために、例を歌手 1 人とピアノとします。@c
301 このアンサンブルでは @code{StaffGroup} は必要ありません。@c
302 @code{StaffGroup} はいくつかの譜をグループ化して左端に括弧を付けるだけですが、@c
303 我々は歌手 1 人とピアノ用の譜を必要としています。
308 \new Staff = "singer" <<
310 \new PianoStaff = "piano" <<
317 ここで譜に名前を付けます -- @qq{singer} と @qq{piano} です。
318 ここで名前を付ける必要は必ずしもありませんが、@c
319 一見して各譜が何なのか見て取れるので名前を付けておくべきです。
324 @{ % this brace begins the overall compound music expression
325 % この波括弧は複合音楽表記全体の開始点です
327 @var{...insert the whole score of a Wagner opera in here...}
328 @var{...ワーグナーのオペラの楽譜全体がここに入ります...}
330 @} % this brace ends the overall compound music expression
331 % この波括弧は複合音楽表記全体の終了点です
336 ワーグナーのオペラの長さはこのマニュアルの軽く 2 倍はあります。@c
337 そのため、歌手とピアノだけを加えることにします。@c
338 このアンサンブルでは複数の譜をまとめて左端に波括弧を付ける
339 @code{StaffGroup} は必要ありません。@c
341 しかしながら、歌手とピアノが@emph{必要}です。
346 \new Staff = "singer" <<
348 \new PianoStaff = "piano" <<
356 歌手とピアノが同時進行であることを示すために @code{@{ ... @}} の代わりに
357 @code{<< ... >>} を使用するということを思い出してください。@c
358 こうすることで、ボーカル パートはピアノ パートの上に表示されます。@c
359 上の例で歌手の譜が一続きの音楽表記を保持するだけであるのなら
360 @code{<< ... >>} を使う必要はありませんが、@c
362 -- 例えば、同時進行する 2 つの声部や、声部と歌詞です
363 -- を保持するのであれば必須となります。@c
364 我々は歌詞を持つ声部にしようとしているので、二重角括弧が必須です。@c
366 ここではいくつかのダミーの音符と歌詞を配置してみます。@c
367 歌詞の入力の仕方を忘れてしまったのなら、@c
368 @ref{簡単な歌曲を作成する} の @code{\addlyrics} を見直してください。
370 @lilypond[verbatim,quote,ragged-right]
373 \new Staff = "singer" <<
374 \new Voice = "vocal" { c'1 }
377 \new PianoStaff = "piano" <<
378 \new Staff = "upper" { c'1 }
379 \new Staff = "lower" { c'1 }
387 歌手の譜は @code{Voice} (LilyPond では、この用語は音符のセットを@c
388 参照するものであり、必ずしもボーカルの音符であるわけではありません
389 -- 例えば、一般にバイオリンは 1 つのボイスを演奏します) と歌詞を保持します。@c
390 さらに、ピアノの譜表は上部譜表(右手) と下部譜 (左手) を保持します。
392 この段階で、音符の入力を開始することができます。@c
393 @code{\new Voice = "vocal"} の後の波括弧の中に、以下を書き加えることができます:
397 r4 d''8\noBeam g, c4 r
401 しかしながら、そのようにすると、@code{\score} セクションは非常に長くなり、@c
403 そのため、直接音符を付け加える代わりに変数を使用しましょう。@c
404 前のセクションで変数についての紹介を行いました。@c
406 @code{text} 変数の内容が間違いなく歌詞と解釈されるよう、@c
407 内容の前に @code{\lyricmode} を記述します。@c
408 @code{\addlyrics} と同様に、これは入力モードを歌詞に切替間す。@c
409 @code{\lyricmode} を記述しなければ、LilyPond は内容を音符と解釈しようとして@c
411 (他にもいくつかの入力モードがあります。@ruser{Input modes} を参照してください。)
413 では、いくつかの音符を加えて、左手にはヘ音記号を加えます。@c
416 @lilypond[verbatim,quote,ragged-right]
417 melody = \relative { r4 d''8\noBeam g, c4 r }
418 text = \lyricmode { And God said, }
419 upper = \relative { <g' d g,>2~ <g d g,> }
420 lower = \relative { b,2 e }
424 \new Staff = "singer" <<
425 \new Voice = "vocal" { \melody }
428 \new PianoStaff = "piano" <<
429 \new Staff = "upper" { \upper }
430 \new Staff = "lower" {
440 @code{\score} セクションを書いている (あるいは読んでいる) とき、@c
442 外側のレベルから始めて、それから内部の細かな部分に取り組んでください。@c
443 さらに、きちんとインデントを入れると非常に役に立ちます
444 -- これは、テキスト エディタの中で同じレベルにある各要素は@c
445 同じ水平位置から始まるということを保証します。
449 記譜法リファレンス: @ruser{Structure of a score}
453 @subsection 音楽表記をネストする
454 @translationof Nesting music expressions
456 @cindex staves, temporary (一時的な譜)
457 @cindex temporary staves (一時的な譜)
458 @cindex ossias (オッシア)
460 すべての譜を開始時に宣言することは必須ではありません。@c
461 譜はどこででも臨時に導入される可能性があります。@c
462 これはオッシアを作成する際に特に有用です -- @rglos{ossia} を参照してください。@c
463 ここで、3 つの音符に対して臨時に新しい譜を導入する方法を示す@c
466 @lilypond[verbatim,quote,ragged-right]
483 音部記号のサイズは音部変更後に譜刻される音部記号のサイズ
484 -- 行の開始点での音部記号よりも少し小さい
485 -- と同じであるということに注意してください。@c
486 これは行の途中で譜刻される音部記号全般に言えることです。
488 @cindex staff, positioning (譜表の配置)
490 オッシアは以下のように譜の上に置かれるかもしれません:
492 @lilypond[verbatim,quote,ragged-right]
493 \new Staff = "main" {
500 alignAboveContext = #"main"
508 この例は後で説明される @code{\with} を使用しています。@c
509 このコマンドは単一の譜のデフォルトの振る舞いを変更することを意味します。@c
510 ここでは、このコマンドは新しい譜をデフォルトの位置 (@qq{main} と@c
511 呼ばれている譜の下) ではなく、上に置くべきであると言っています。
515 オッシアはしばしば音部記号や拍子記号無しで描かれ、@c
517 これらはまだ紹介されていない追加のコマンドを必要とします。@c
518 @ref{オブジェクトのサイズ} と @ruser{オッシア譜} を参照してください。
522 @subsection ネストされない括弧とタイ
523 @translationof On the un-nestedness of brackets and ties
525 @cindex brackets, nesting (括弧をネストする)
526 @cindex bracket types (括弧のタイプ)
527 @cindex brackets, enclosing vs. marking (囲みの括弧 vs. マークの括弧)
529 これまでに LilyPond への入力ファイルを書く際に使用する括弧と@c
530 括弧のような構成物にはいくつかの種類があるということを見てきました。@c
531 これらは異なる規則 -- 最初は混乱を引き起こす可能性があります -- に従います。@c
533 括弧と括弧のような構成物の種類を再確認してみましょう。
535 @c attempt to force this onto a new page
537 @multitable @columnfractions .3 .7
540 @item @code{@{ .. @}}
544 @item @code{<< .. >>}
547 @tab スラーの開始点と終了点を意味します
548 @item @code{\( .. \)}
549 @tab フレージング スラーの開始点と終了点を意味します
551 @tab 手動連桁の開始点と終了点を意味します
554 こららに対して、音符の間や音符をまたがって線を生成する他の構文を@c
555 付け加えるべきです: タイ (チルド @code{~} によって記述されます)、@c
556 連符 (@code{\times x/y @{..@}} として記述されます)、@c
557 グレイス ノート (@code{\grace@{..@}} として記述されます) です。
559 LilyPond 以外では、種類の異なる括弧が適切にネストされること
560 -- @code{[ @{ ( .. ) @} ]} のように --
562 括弧の終わりの順序は正確に括弧の始まりの順序と逆になります。@c
563 このことは上記の表で @q{囲みます} という言葉で記述されている
564 3 種類の括弧に対しては@strong{必須}となります
565 -- それらは適切にネストされなければなりません。@c
567 -- 上記の表で @q{意味します} という言葉で@c
568 記述されいるものと、タイ、連符で使用されるもの --
569 はいかなる括弧ともネストされる必要は @strong{ありません}。@c
570 実際、これらは何かを囲むという意味では括弧ではありません
571 -- それらは単に何かが始まる場所、終わる場所を示すためのマークです。
573 そのため、例えばフレージング スラーは手動で挿入される連桁の前に開始して、@c
574 その手動連桁の前に終わる可能性もあります -- たぶん音楽的では@c
577 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
578 { g8\( a b[ c b\) a] }
581 一般に、種類の異なる括弧、括弧のような構成物、@c
582 それに連符、タイ、装飾小音符の囲みは自由に組み合わせることができます。@c
583 以下の例では、連桁は連符の中にまで伸びていて (行 1)、@c
584 スラーは連符の中にまで伸びていて (行 2)、@c
585 連桁とスラーが連符の中にまで伸びていて (行 3)、@c
586 タイが 2 つの連符にまたがっていて、@c
587 さらにフレージング スラーが連符の外にまで伸びています (行 3 と 4)。
589 @lilypond[quote,verbatim,ragged-right]
591 r16[ g' \tuplet 3/2 { r16 e'8] }
592 g,16( a \tuplet 3/2 { b16 d) e }
593 g,8[( a \tuplet 3/2 { b8 d) e~] } |
594 \tuplet 5/4 { e32\( a, b d e } a4.\)
601 @translationof Voices contain music
604 LilyPond も歌う (演奏する) ボイスを必要とします。@c
605 楽譜の中にあるすべての楽器に対する実際の音楽はボイスの中に保持されます
606 -- このことは LilyPond すべてのコンセプトの中での最も基礎的なことです。
610 * ボイスを明示的にインスタンス化する::
616 @subsection 私はボイスを聴いている
617 @translationof I'm hearing Voices
619 @cindex polyphony (多声)
621 @cindex multiple voices (複数のボイス)
622 @cindex voices, multiple (複数のボイス)
623 @cindex Voice context (Voice コンテキスト)
624 @cindex context, Voice (Voice コンテキスト)
625 @cindex simultaneous music (同時進行する音楽)
626 @cindex music, simultaneous (同時進行する音楽)
627 @cindex concurrent music (並列な音楽)
628 @cindex music, concurrent (並列な音楽)
629 @cindex voices vs. chords (ボイス vs. 和音)
630 @cindex chords vs. voices (和音 vs. ボイス)
632 LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、最も内部にあるレイヤは
633 @q{ボイス コンテキスト} または縮めて単に @q{ボイス} と呼ばれます。@c
634 ボイスはときどき他の記譜法パッケージの中で @q{レイヤ} と呼ばれます。
636 実際、ボイス レイヤまたはコンテキストは音楽を保持することができる@c
638 ボイス コンテキストが明示的に宣言されていない場合、この章の始めで@c
639 見てきたようにボイス コンテキストが 1 つ自動的に生成されます。@c
640 オーボエなどといった楽器は同時に 1 つの音符だけを演奏できます。@c
641 そのような楽器のために書かれた楽譜はボイスを 1 つだけを必要とします。@c
642 ピアノのように同時に複数の音符を演奏することができる楽器はしばしば、@c
643 それらが演奏することのできる同時進行の異なる音符やリズムを@c
644 エンコードするために、複数のボイスを必要とします。
646 もちろん、単一のボイスは和音の中で多くの音符を保持することができます。@c
647 それでは、複数のボイスが実際に必要とされるのはどんな場合なのでしょうか?@c
648 まずは、4 つの和音を持つ以下の例を見てください:
650 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
652 <d g>4 <d fis> <d a'> <d g>
655 この例は単一の山括弧からなる和音記号 @code{< ... >} を使って@c
656 表記することができ、必要とされるボイスは 1 つだけです。@c
657 しかしながら、F シャープが A に移行する際に、F シャープは実際には
658 8 分音符であり、そのあとに 8 分音符の G が続くとしたらどうでしょうか?@c
659 そのような場合、同時に開始されるが演奏時間が異なる 2 つの音符を@c
660 持つことになります: 4 分音符の D と 8 分音符の F シャープです。@c
661 これらの音符をどのように記述すればよいのでしょうか?@c
662 これらの音符は和音として記述することはできません。@c
663 なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。@c
664 そして、それらの音符は同時に開始しなければならないので、2 つのシーケンシャルな
665 (連続した) 音符として記述することもできません。@c
666 この場合は 2 つのボイスが必要となります。
668 上記のことが LilyPond 入力構文でどのように達成されるのかを見てみましょう。
673 1 つの譜に複数のボイスがある楽譜を入力する最も簡単な方法は、@c
674 各ボイスをシーケンスに (続けて) 入力し
675 (各ボイスを @code{@{...@}} の中に入れます)、@c
676 それらのボイスを @code{<<...>>} を使って同時進行するよう組み合わせます。@c
677 さらに、各断片は、それぞれが別の断片であることを示すために、@c
678 ダブル バックスラッシュ @code{\\} で区切られなければなりません。@c
679 ダブル バックスラッシュが無ければ、すべての音符は単一のボイスの中に挿入され、@c
681 このテクニックは、大部分が同じ音で、時々短い部分で多声になる楽曲に特に@c
684 以下では、上記の例の和音を 2 つのボイスに分け、経過音とスラーを付け加えています:
686 @lilypond[quote,verbatim,ragged-right]
689 % Voice "1" Voice "2"
690 << { g'4 fis8( g) a4 g } \\ { d4 d d d } >>
694 この例では 2 番目のボイスの符幹が下向きになっていることに気付いてください。
696 今度はもう 1 つ簡単な例を挙げてみます:
698 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
700 % Voice "1" Voice "2"
701 << { r4 g g4. a8 } \\ { d,2 d4 g } >> |
702 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
703 << { a2. r4 } \\ { fis2. s4 } >> |
706 各小節で別々に @code{<< \\ >>} 構造を使用する必要はありません。@c
707 各小節に音符が少ししかないような音楽の場合、@c
708 このレイアウトはコードの可読性を良くするのに役立ちます。@c
709 しかしながら、各小節に多くの音符がある場合、@c
710 以下のようにボイス毎に分離した方が良いかもしれません:
712 @lilypond[quote,verbatim,ragged-right]
715 \relative { % Voice "1"
720 \relative { % Voice "2"
729 @cindex voices, naming (ボイスに名前を付ける)
730 @cindex voices crossing brackets (括弧をまたがるボイス)
731 @cindex slurs crossing brackets (括弧をまたがるスラー)
732 @cindex ties crossing brackest (括弧をまたがるタイ)
734 この例にあるボイスは 2 つだけです。@c
735 しかしながら、これと同じ構成にもっと多くのバック スラッシュを@c
736 付け加えることによって、3 つかそれ以上のボイスを持たせることが可能です。
738 ボイス コンテキストは @code{"1"}, @code{"2"} などの名前を持ちます。@c
739 最初の 2 つのコンテキストは @emph{外側} のボイスをセットして、@c
740 上のボイスはコンテキスト @code{"1"}、下のボイスはコンテキスト @code{"2"}
742 内側のボイスはコンテキスト @code{"3"} と @code{"4"} になります。@c
743 これらの各コンテキストでは、スラー、符幹、タイ、強弱記号などの垂直方向の@c
746 @lilypond[quote,verbatim,fragment]
747 \new Staff \relative {
750 % Voice "1" Voice "2" Voice "3"
751 << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
752 << { d2 e2 } \\ { c8 b16 a b8 g ~ 2 } \\ { s4 b4 c2 } >> |
756 これらのボイスはすべてメインのボイスからは分かれています。@c
757 メインのボイスの音符は@code{<< .. >>} 構造の外にあるからです。@c
758 この @code{<< .. >>} 構造を @emph{同時進行構造} と呼ぶことにしましょう。@c
759 スラーとタイは同じボイス内にある音符だけをつなぎます。@c
760 そのため、スラーとタイは同時進行構造を出たり入ったりすることはありません。@c
761 反対に、同じ譜上にある個々の同時進行構造で、@c
762 平行の位置にあるボイスは同じボイスになります。@c
763 さらに、その他のボイス関連プロパティは同時進行構造をまたがって持ち越されます。@c
764 ここで、上記と同じ例で各ボイスに対して異なる色と符頭を割り当ててみます。@c
765 あるボイスでの変更は他のボイスに影響を与えませんが、@c
766 その後に続く同じボイス (訳者: 平行位置にあるボイス) で@c
767 その変更が維持されることに注意してください。@c
768 さらに、タイでつながれた音符は、同じボイスとなる 2 つの同時進行構造に@c
769 またがって分かれるかもしれないということに注意してください。
771 @lilypond[quote,verbatim]
772 \new Staff \relative {
801 @funindex \voiceOneStyle
802 @funindex \voiceTwoStyle
803 @funindex \voiceThreeStyle
804 @funindex \voiceFourStyle
805 @funindex \voiceNeutralStyle
807 コマンド @code{\voiceXXXStyle} は主にこのマニュアルのような教育目的の@c
808 ドキュメントで使用することを意図したものです。@c
809 このコマンドは、各ボイスが容易に見分けられるように、符頭、符幹、連桁の色、@c
811 ボイス 1 は赤でダイアモンドの符頭を持つようにセットされ、@c
812 ボイス 2 は青で三角形の符頭を、ボイス 3 は緑で×付きの円を、@c
813 ボイス 4 (ここでは使用されていません) はマゼンダの×の符頭を持つように@c
815 @code{\voiceNeutralStyle} (これもここでは使用されていません) は@c
816 符頭のスタイルをデフォルトに戻します。@c
817 後ほど、ユーザがこのようなコマンドを作成するための方法を見ていきます。@c
818 @ref{オブジェクトの可視性と色} と @ref{調整のために変数を使用する}
821 @cindex polyphony and relative note entry (多声と相対音符入力)
822 @cindex relative note entry and polyphony (相対音符入力と多声)
824 多声部は @code{\relative @{ @}} ブロック内の音符の相対関係を変えません。@c
825 各音符は直前の音符あるいは直前の和音の最初の音符との相対関係で計算されます。@c
829 \relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
833 @code{noteB} は @code{noteA} との相対関係で決まり @*
834 @code{noteC} は @code{noteA} ではなく @code{noteB} との相対関係で決まり @*
835 @code{noteD} は @code{noteA} や @code{noteC} ではなく
836 @code{noteC} との相対関係で決まり @*
837 @code{noteE} は @code{noteA} ではなく @code{noteD} との相対関係で決まります。
839 各ボイスの中にある音符の音程がボイスごとに大きく離れている場合、@c
840 各ボイスの始めに @code{\relative} コマンドを置くと明瞭になるかもしれません:
843 \relative c' @{ noteA ... @}
845 \relative c'' @{ < noteB noteC > ... @}
847 \relative g' @{ noteD ... @}
849 \relative c' @{ noteE ... @}
852 最後に、もっと複雑な楽曲の中にあるボイスを分析してみましょう。@c
853 以下は、ショパンの Deux Nocturnes, Op 32 の 2 番の最初の 2 小節です。@c
854 この例は、記譜を行うためのテクニックをいくつか示すために、@c
856 ですから、今はコードの中にある意味不明に見えるものは無視して、@c
857 音楽とボイスだけに注目してください -- 込み入った内容は後ほど説明します。
859 @c The following should appear as music without code
860 @lilypond[quote,ragged-right]
861 \new Staff \relative {
867 % Ignore these for now - they are explained in Ch 4
868 \once \override NoteColumn.ignore-collision = ##t
870 \once \override NoteColumn.force-hshift = #0.5
876 \override NoteColumn.force-hshift = #0
884 符幹の向きはしばしば 2 つの同時進行する旋律ラインのつながりを示すために@c
886 ここでは、一番上の音符の符幹はすべて上向きであり、@c
887 下の方にある音符の符幹はすべて下向きです。@c
888 これは、複数のボイスが必要とされているということを示す最初の兆候です。
890 しかしながら、複数のボイスが実際に必要とされるのは、@c
891 同時に始まる音符が異なる演奏時間を持つ場合です。@c
892 最初の小節の 3 拍目を見てください。@c
893 A フラットは付点 4 分音符であり、F は 4 分音符、D フラットは半音符です。@c
894 これらの音符を和音として記述することはできません。@c
895 なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。@c
896 これらの音符をシーケンシャルな (連続する) 音符として記述することもできません。@c
897 なぜなら、これらの音符は同時に始まらなければならないからです。@c
898 この箇所では 3 つのボイスが必要となり、以下に示すように一般的には@c
899 この小節全体を 3 つのボイスで記述します。@c
900 そこでは、3 つのボイスに対して異なる符頭と色を割り当てています。@c
901 もう一度繰り返しますが、この例のコードのことは後ほど説明しますので、@c
904 @c The following should appear as music without code
905 @c The three voice styles should be defined in -init
906 @lilypond[quote,ragged-right]
907 \new Staff \relative {
916 % Ignore these for now - they are explained in Ch 4
917 \once \override NoteColumn.ignore-collision = ##t
919 \once \override NoteColumn.force-hshift = #0.5
922 \\ % No Voice three (we want stems down)
925 \override NoteColumn.force-hshift = #0
934 この音楽のコードをゼロから記述してみましょう。@c
935 これから見ていくように、いくつかの問題に遭遇します。@c
936 すでに学んだように、最初の小節の音楽を 3 つのボイスに分けて記述するために
937 @code{<< \\ >>} 構造を使用します:
940 @lilypond[quote,verbatim,fragment,ragged-right]
941 \new Staff \relative {
944 { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
950 @cindex stem down (下向きの符幹)
951 @cindex voices and stem directions (ボイスと符幹の向き)
952 @cindex stem directions and voices (符幹の向きとボイス)
953 @cindex stem up (上向きの符幹)
955 符幹の向きは自動的に割り当てられ、奇数番号のボイスが上向きの符幹、@c
956 偶数番号のボイスが下向きの符幹を持ちます。@c
957 ボイス 1 と 2 の符幹は正しいのですが、@c
958 ボイス 3 の符幹はここでは下向きになるべきです。@c
959 ボイス 3 を省略して音楽をボイス 4 に記述することによって修正できます。@c
960 ボイス 3 を省略するには、@code{\\} を 2 つ記述します:
962 @lilypond[quote,verbatim,fragment,ragged-right]
963 \new Staff \relative {
969 \\ % Omit Voice three
978 これにより符幹の向きが修正されました。@c
979 しかしながら、音符の水平方向の配置が望んだとおりになっていません。@c
980 内側の音符の符頭や符幹が外側のボイスと衝突する場合 LilyPond は内側の@c
981 音符の位置をずらしますが、これはピアノ譜では不適切です。@c
982 他の状況でも、LilyPond が音符の位置をずらしても衝突が解決されない場合が@c
984 LilyPond は音符の水平方向の位置を調節するための手段をいくつか提供します。@c
985 しかしながら、我々はまだこの問題を修正するための方法を見ていく準備が@c
986 整っていないので、この問題は後に残しておくことにします
987 -- @ref{Fixing overlapping notation} の @code{force-hshift} プロパティ@c
990 @warning{歌詞、スパナ (スラー、タイ、強弱のヘアピン記号など) をボイスを@c
991 @q{またいで} 作成することはできません。}
998 @node ボイスを明示的にインスタンス化する
999 @subsection ボイスを明示的にインスタンス化する
1000 @translationof Explicitly instantiating voices
1006 @funindex \voiceThree
1007 @funindex voiceThree
1008 @funindex \voiceFour
1012 @funindex \new Voice
1013 @cindex voice contexts, creating (ボイス コンテキストを作成する)
1015 多声部音楽を作成するためにボイス コンテキストを手動で
1016 @code{<< >>} ブロックの中に作成することもできます。@c
1018 @code{\voiceOne} @dots{} @code{\voiceFour} を使用します。@c
1019 この手法は各ボイスを別々にして、より記述的な名前を与えることを可能にするため、@c
1020 長い楽譜ではわかりやすいものになります。
1022 本質的には、前のセクションで使用した構造 @code{<< \\ >>}:
1027 << @{ e'4 f g a @} \\ @{ c,4 d e f @} >>
1037 \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @}
1038 \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @}
1042 上記の両方ともが以下の楽譜を生成します:
1044 @c The following example should not display the code
1045 @lilypond[ragged-right,quote]
1047 \new Voice = "1" { \voiceOne \relative { e'4 f g a } }
1048 \new Voice = "2" { \voiceTwo \relative { c'4 d e f } }
1052 @cindex voices, reverting to single (単一のボイスに戻す)
1053 @cindex reverting to a single voice (単一のボイスに戻す)
1055 @code{\voiceXXX} コマンドは符幹、スラー、タイ、アーティキュレーション、@c
1056 テキストの注釈、付点音符の付点、運指記号の向きをセットします。@c
1057 @code{\voiceOne} と @code{\voiceThree} はこれらのオブジェクトを上向きにし、@c
1058 一方の @code{\voiceTwo} と @code{\voiceFour} は下向きにします。@c
1059 さらに、符頭の衝突を避ける必要がある場合、これらのコマンドは@c
1060 各ボイスに対して水平方向のシフトを発生させます。@c
1061 コマンド @code{\oneVoice} は設定を単一のボイスの場合の通常値に戻します。
1063 いくつかの簡単な例で、@code{\oneVoice}, @code{\voiceOne}, @code{\voiceTwo} が@c
1064 マークアップ、タイ、スラー、強弱記号に与える影響を見ていきましょう:
1066 @lilypond[quote,ragged-right,verbatim]
1068 % Default behavior or behavior after \oneVoice
1069 c'4 d8~ 8 e4( f | g4 a) b-> c |
1073 @lilypond[quote,ragged-right,verbatim]
1076 c'4 d8~ 8 e4( f | g4 a) b-> c |
1078 c,4 d8~ 8 e4( f | g4 a) b-> c |
1082 @lilypond[quote,ragged-right,verbatim]
1085 c'4 d8~ 8 e4( f | g4 a) b-> c |
1087 c,4 d8~ 8 e4( f | g4 a) b-> c |
1091 今度は、前のセクションの例を使って同じ多声部音楽のパッセージを
1092 3 つの異なる方法で表記する例を見ていきます。@c
1095 1 つはメイン ボイスに属する @code{<< >>} の内部に直接表記を記述する方法です
1096 (しかしながら、音符は @code{<< \\ >>} 構造の中に置かれては@strong{いません})。@c
1097 これはメイン ボイスの途中で追加のボイスが現れる場合に有用です。@c
1099 赤のダイアモンド形の音符はメイン メロディが単一のボイス コンテキストに@c
1100 なっていて、その上にフレージング スラーを描くことができるということを@c
1103 @lilypond[quote,ragged-right,verbatim]
1104 \new Staff \relative {
1106 % This section is homophonic
1108 % Start simultaneous section of three voices
1110 % Continue the main voice in parallel
1111 { g4 f e | d2 e) | }
1112 % Initiate second voice
1114 % Set stems, etc., down
1116 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1118 % Initiate third voice
1120 % Set stems, etc, up
1128 @cindex nesting music expressions (音楽表記をネストさせる)
1129 @cindex nesting simultaneous constructs (同時進行構造をネストさせる)
1130 @cindex nesting voices (ボイスをネストさせる)
1131 @cindex voices, temporary (一時的なボイス)
1132 @cindex voices, nesting (ボイスをネストさせる)
1134 @lilypond[quote,ragged-right,verbatim]
1135 \new Staff \relative {
1138 { g4 f e | d2 e) | }
1143 { c8 b16 a b8 g~ 2 | }
1154 @cindex spacing notes (空白音符)
1156 新しいボイスを一時的にネストさせる手法は音楽のほんの一部だけが多声である場合に@c
1158 しかしながら、楽譜全体が多声である場合、@c
1159 一貫して複数のボイスを使用した方がわかりやすくなります。@c
1160 ボイスが無音の場所を飛ばすには以下のように空白音符を使用します:
1162 @lilypond[quote,ragged-right,verbatim]
1163 \new Staff \relative <<
1164 % Initiate first voice
1167 c'16^( d e f g4 f e | d2 e) |
1169 % Initiate second voice
1171 % Set stems, etc, down
1173 s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1175 % Initiate third voice
1177 % Set stems, etc, up
1188 @cindex note column (音符列)
1189 @cindex note collisions (音符の衝突)
1190 @cindex collisions, notes (音符の衝突)
1191 @cindex shift commands (シフト コマンド)
1198 @funindex \shiftOnnn
1201 和音の中で小さな間隔で置かれる音符、@c
1202 あるいは異なるボイスで同時に発生する音符は、@c
1203 符頭が重なるのを避けるために 2 列、時にはそれ以上の列に割り振られます。@c
1205 それぞれのボイスに対して別々の列が存在し、符頭の衝突が起こる場合は@c
1207 これは上の例でも見ることができます。@c
1208 2 小節目でボイス 2 の C はボイス 1 の D との関係で右にシフトされていて、@c
1209 最後の和音でボイス 3 の C も他の音符との関係で右にシフトされています。
1211 @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, それに @code{\shiftOff}
1212 コマンドは、衝突が起こる場合に音符や和音をシフトさせる度合いを指定します。@c
1213 デフォルトでは、外側のボイス (通常はボイス 1 と 2) には @code{\shiftOff} が@c
1214 指定されていて、内側のボイス (ボイス 3 と 4) には @code{\shiftOn} が@c
1216 シフトが適用される場合、ボイス 1 と 3 は右にシフトされ、ボイス 2 と 4は@c
1219 @code{\shiftOnn} と @code{\shiftOnnn} はさらなるシフト レベルを@c
1220 定義するものであり、複雑な状況での衝突を解決するために@c
1222 @ref{実際の音楽からの例} を参照してください。
1224 ある音符列は上向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ、@c
1225 下向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ@c
1227 同じ向きの符幹を持つ 2 つのボイスからの音符が同じ位置に置かれ、両方のボイスに@c
1228 シフトが指定されていない、あるいは同じシフトが指定されている場合、@c
1229 エラー メッセージ @qq{Too many clashing note columns} (音符が多すぎて音符列で@c
1230 衝突が起こっています) が生成されます。
1239 @subsection ボイスとボーカル
1240 @translationof Voices and vocals
1243 2 つの表記 -- 音符と歌詞 -- を組み合わせる必要があります。
1245 @funindex \new Lyrics
1249 @cindex Lyrics context, creating (歌詞コンテキストを作成する)
1250 @cindex lyrics, linking to voice (歌詞をボイスにリンクさせる)
1252 すでに @code{\addlyrics@{@}} コマンドを見てきました。@c
1253 これは簡単な楽譜であればうまく処理できます。@c
1254 しかしながら、この方法では限界があります。@c
1255 より複雑な音楽では、@code{\new Lyrics} を使って歌詞を
1256 @code{Lyrics} コンテキストに取り込み、ボイスに割り当ている名前を使って
1257 @code{\lyricsto@{@}} でその歌詞を明示的に音符にリンクさせます。
1259 @lilypond[quote,verbatim]
1261 \new Voice = "one" {
1265 c''4 b8. a16 | g4. f8 | e4 d | c2 |
1268 \new Lyrics \lyricsto "one" {
1269 No more let | sins and | sor -- rows | grow. |
1274 歌詞は @code{Staff} コンテキスト@emph{ではなく} @code{Voice} コンテキストに@c
1275 リンクさせなければならないということに注意してください。@c
1276 このため、@code{Staff} コンテキストと @code{Voice} コンテキストを@c
1279 @cindex lyrics and beaming (歌詞と連桁)
1280 @cindex beaming and lyrics (連桁と歌詞)
1281 @funindex \autoBeamOff
1282 @funindex autoBeamOff
1284 LilyPond がデフォルトで使用する自動連桁は楽器だけの音楽では@c
1285 うまく機能しますが、歌詞を持つ音楽ではそれほどうまく機能しません。@c
1286 そこでは連桁はまったく必要ないか、歌詞のメリスマ (訳者注: 歌詞の 1 音節に@c
1287 対して複数の音符を割り当てること) を示すために使用されるかのどちらかです。@c
1288 上の例では、自動連桁を Off にするためにコマンド @code{\autoBeamOff} を@c
1291 @funindex \new ChoirStaff
1292 @funindex ChoirStaff
1293 @funindex \lyricmode
1295 @cindex vocal score structure (ボーカル譜構造)
1298 以前使用した Judas Maccabæus からの例を再度使用して、@c
1300 まず、楽譜の内容を変数に振り直し、音楽と歌詞を譜表構造から分離させます。@c
1301 さらに @code{ChoirStaff} ブラケットを導入します。@c
1302 歌詞自体は、音楽ではなく歌詞として解釈されることを保証するために、@c
1303 @code{\lyricsmode} で導入されなければなりません。
1305 @lilypond[quote,verbatim]
1306 global = { \key f \major \time 6/8 \partial 8 }
1308 SopOneMusic = \relative {
1309 c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4
1311 SopOneLyrics = \lyricmode {
1312 Let | flee -- cy flocks the | hills a -- dorn, __
1314 SopTwoMusic = \relative {
1315 r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
1317 SopTwoLyrics = \lyricmode {
1318 Let | flee -- cy flocks the | hills a -- dorn,
1324 \new Voice = "SopOne" {
1328 \new Lyrics \lyricsto "SopOne" {
1333 \new Voice = "SopTwo" {
1337 \new Lyrics \lyricsto "SopTwo" {
1345 これはすべての声楽譜の基本的な構造です。@c
1346 必要に応じてさらに多くの譜が追加されるかもしれませんし、さらに多くのボイスが@c
1347 譜に追加されるかもしれませんし、さらに多くの歌詞 (原文: verse、@c
1348 各ボイスに対する歌詞、あるいは、歌詞の 1 番、2 番のことを指すと思われる) が@c
1350 音楽部分が長くなりすぎた場合は、音楽を保持している変数を容易に別のファイルに@c
1353 @cindex hymn structure (賛美歌構造)
1354 @cindex SATB structure (SATB 構造)
1355 @cindex vocal scores with multiple verses (複数のボーカル譜)
1356 @cindex multiple vocal verses
1357 @cindex verses, multiple vocal
1359 ここで、例として 4 つの歌詞 -- それぞれが SATB (ソプラノ、アルト、テナー、バス)
1360 に対してセットされている -- を持つ賛美歌の最初の 1 行目を取り上げます。@c
1361 この歌の場合、4 つのパートに対する歌詞の言葉は同じです。@c
1362 変数を使用して音楽記譜と歌詞の言葉を譜表構造から分離させている手法に@c
1364 さらに、 @q{keyTime} と呼ぶことにした変数が、2 つの譜で使用される@c
1365 いくつかのコマンドを保持するために、使用されていることにも注意してください。@c
1366 他の例では、この変数はしばしば @q{global} と呼ばれます。
1368 @lilypond[quote,verbatim]
1369 keyTime = { \key c \major \time 4/4 \partial 4 }
1371 SopMusic = \relative { c'4 | e4. e8 g4 g | a4 a g }
1372 AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e }
1373 TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 }
1374 BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 }
1377 \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
1379 \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
1381 \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
1383 \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
1389 \new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
1390 \new Voice = "Alto" { \voiceTwo \AltoMusic }
1391 \new Lyrics \lyricsto "Sop" { \VerseOne }
1392 \new Lyrics \lyricsto "Sop" { \VerseTwo }
1393 \new Lyrics \lyricsto "Sop" { \VerseThree }
1394 \new Lyrics \lyricsto "Sop" { \VerseFour }
1398 \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
1399 \new Voice = "Bass" { \voiceTwo \BassMusic }
1407 記譜法リファレンス: @ruser{Vocal music}
1412 @section コンテキストとエングラーバ
1413 @translationof Contexts and engravers
1415 これまでに、コンテキストとエングラーバについて簡単に言及してきました。@c
1416 ここでは、これらのコンセプトをより詳細に見ていくことにします。@c
1417 なぜなら、これらは LilyPond 出力をうまく調節するのに重要だからです。
1423 * コンテキスト プロパティを変更する::
1424 * エングラーバを追加 / 削除する::
1429 @subsection コンテキストの説明
1430 @translationof Contexts explained
1432 @cindex contexts explained (コンテキストの説明)
1434 音楽が譜刻されるとき、入力ファイルでははっきりとは現れてこない多くの@c
1435 記譜要素を出力に追加しなければなりません。@c
1436 例えば、以下の例で入力と出力を比較してください:
1438 @lilypond[quote,verbatim]
1439 \relative { cis''4 cis2. | a4 a2. | }
1442 この入力は内容がやや乏しいですが、出力では小節線、臨時記号、音部記号、@c
1444 LilyPond が入力を@emph{解釈}するとき、音楽情報は時系列に調べられます。@c
1445 これは楽譜を左から右へ読むのと似ています。@c
1446 入力を読み込んでいる間、プログラムは小節の境目となる場所と明示的な臨時記号を@c
1448 この情報はいくつかのレベルで持続されなければなりません。@c
1449 例えば、臨時記号の効果は単一の譜表に制限されますが、@c
1450 小節線は楽譜全体に亘って同調されなければなりません。
1452 LilyPond 内部では、これらの規則と情報ビットは@emph{コンテキスト}に@c
1454 すでに @code{Voice} コンテキストを見てきました。@c
1455 他にも、@code{Staff} コンテキストと @code{Score} コンテキストがあります。@c
1456 コンテキストは、楽譜の階層構造を反映するために、階層構造になっています。@c
1457 例えば: @code{Staff} コンテキストは多くの @code{Voice} コンテキストを@c
1458 保持することができ、@code{Score} コンテキストは@c
1459 多くの @code{Staff} コンテキストを保持することができます。
1462 @sourceimage{context-example,5cm,,}
1465 各コンテキストは、いくつかの記譜オブジェクトを作成し、関連プロパティを@c
1466 維持しながら、いくつかの記譜規則を施行する責任があります。@c
1467 例えば、@code{Voice} コンテキストは臨時記号を作り出すかもしれず、@c
1468 そうした場合 @code{Staff} コンテキストはその小節の残りの部分で臨時記号を@c
1469 表示したり隠したりするための規則を維持します。
1471 他の例としては、小節線の同調はデフォルトでは @code{Score} コンテキストが@c
1473 しかしながら、いくつかの音楽では小節線を同調させたくない場合もあります --
1474 4/4 拍子と 3/4 拍子の多声の楽譜といった場合です。@c
1475 そのようなケースでは、@code{Score} と @code{Staff} コンテキストの@c
1476 デフォルト設定を変更しなければなりません。
1478 非常にシンプルな楽譜では、コンテキストは暗黙的に作成され、@c
1479 あなたはそれらに気づく必要もありません。@c
1480 複数の譜表を持つようなより大きな楽曲では、あなたが必要としているだけの譜を@c
1481 手に入れられるよう、さらに、それらの譜が正しい順序で並ぶことを保証するために、@c
1482 コンテキストを明示的に作成する必要があります。@c
1483 特殊な記譜法を持つ楽曲を譜刻するには、通常は既存のコンテキストを変更します。@c
1484 あるいは完全に新しいコンテキストを定義することさえあります。
1486 @code{Score}, @code{Staff}, @code{Voice} コンテキストに加えて、@c
1487 @code{PianoStaff} や @code{ChoirStaff} コンテキストといった譜表グループを@c
1488 制御するための、楽譜レベルと譜表レベルの間にあるコンテキストがあります。@c
1489 さらに、代替の譜表コンテキストとボイスコンテキストがあり、歌詞、打楽器、@c
1490 フレットボード (訳者: 弦楽器の一種。フレットでウィキぺディアを参照)、@c
1491 通奏低音 (数字付き低音、原文: figured bass) などのためのコンテキストがあります。
1493 すべてのコンテキスト タイプの名前は 1 つ、あるいは複数の単語からなります。@c
1494 各単語の最初の文字は大文字であり、前の単語のすぐあとに次の単語が続きます。@c
1495 ハイフンやアンダスコアは使いません。@c
1496 つまり @code{GregorianTranscriptionStaff} といった具合です。
1500 記譜法リファレンス: @ruser{Contexts explained}
1505 @subsection コンテキストを作成する
1506 @translationof Creating contexts
1510 @cindex new contexts (新しいコンテキスト)
1511 @cindex creating contexts (コンテキストを作成する)
1512 @cindex contexts, creating (コンテキストを作成する)
1514 入力ファイルの中で、@code{\score} コマンドによって導入される
1515 score ブロックは単一の音楽表記とそれに関連する出力定義
1516 (@code{\layout} ブロックあるいは @code{\midi} ブロック)
1518 通常、@code{Score} コンテキストは省略され、@c
1519 音楽表記の解釈が始まった時点で自動的に作成されます。
1521 ボイスが 1 つだけで、譜も 1 つだけの楽譜では、@c
1522 @code{Voice} と @code{Staff} も省略して、自動的に作成させることができます。@c
1523 コンテキストは自動的に作成されるために放っておかれるかもしれません。@c
1524 しかしながら、より複雑な楽譜ではこれらを手ずから作成する必要があります。@c
1525 これらを作成する最も簡単なコマンドは @code{\new} です。@c
1530 \new @var{type} @var{music-expression}
1535 ここで、@var{type} はコンテキスト名です (@code{Staff} や @code{Voice} など)。@c
1536 このコマンドは新しいコンテキストを作成し、そのコンテキストの中にある
1537 @var{music-expression} の解釈を開始します。
1539 @warning{必須の最上位 @code{Score} コンテキストとして @bs{}@code{new Score}
1541 これは、@bs{}@code{score} ブロックの中にある音楽表記が解釈される時に@c
1543 楽譜全体のコンテキスト プロパティのデフォルト値を変更するには、@c
1544 @bs{}@code{layout} ブロックの中で行います。@c
1545 @ref{コンテキスト プロパティを変更する} を参照してください。}
1547 これまでに、新たに @code{Staff} と @code{Voice} コンテキストを作成する多くの@c
1548 実際的な例を見てきましたが、これらのコマンドが実際にどのように使用されるのかを@c
1549 覚えてもらうために、実際の音楽に注釈を付けた例を挙げます:
1552 @lilypond[quote,verbatim,ragged-right]
1553 \score { % 複合音楽表記の開始点
1556 \new Staff { % create RH staff
1559 \new Voice { % 右手の音符用のボイスを作成します
1560 \relative { % 右手の音符の開始点
1566 \new Staff << % 左手の譜を作成します。2 つの同時進行するボイスを必要とします
1569 \new Voice { % 左手のボイス 1 を作成します
1571 \relative { % 左手のボイス 1 の音符の開始点
1572 g8 <bes d> ees, <g c> |
1573 g8 <bes d> ees, <g c> |
1574 } % 左手のボイス 1 の音符の終了点
1576 \new Voice { % 左手のボイス 2 を作成します
1578 \relative { % 左手のボイス 2 の音符の開始点
1581 } % 左手のボイス 2 の音符の終了点
1584 >> % 同時進行する譜セクションの終了点
1588 (波括弧 @code{@{} や 2 重山括弧 @code{<<} の中でブロックになっているすべての@c
1589 記述には括弧よりもスペースが 2 つ多いインデントを付けられていて、@c
1590 閉じ括弧には括弧の開始行と同じインデントを付けられているということに@c
1592 これは必須ではありませんが、こうしておくと @q{unmatched backet}
1593 (「括弧が一致しない」) エラーを大幅に減らすことができますので、@c
1595 これにより、音楽の構造を簡単に見て取ることができ、@c
1596 一致していない括弧が明瞭になります。@c
1597 さらに、右手の譜はボイスを 1 つだけしか必要としないために波括弧によって@c
1598 囲まれた単一の音楽表記として作成されているのに対して、@c
1599 左手の譜は 2 つのボイスを必要とするために
1600 2 重山括弧を使って作成されていることにも注意してください。)
1602 @cindex contexts, naming (コンテキストを名前を付ける)
1603 @cindex naming contexts (コンテキストを名前を付ける)
1605 また、@code{\new} コマンドはコンテキストに識別名を与えて、そのコンテキストを@c
1606 同じタイプの他のコンテキストと区別することを可能にするかもしれません:
1609 \new @var{type} = @var{id} @var{music-expression}
1612 @code{Staff}, @code{Voice} などといったコンテキスト タイプの名前と@c
1613 そのようなコンテキスト タイプのインスタンスの名前
1614 --これはユーザによって決定され、どのような文字の連なりにもなり得ます
1616 数字とスペースも識別名に使用することができますが、@c
1617 その場合クォートで囲まなければなりません
1618 -- つまり、@code{\new Staff = "MyStaff 1" @var{music-expression}}
1620 識別名はコンテキストのあるインスタンスを参照するために使用されます。@c
1621 このことを歌詞についてのセクションで見てきました。@c
1622 @ref{ボイスとボーカル} を参照してください。
1626 記譜法リファレンス: @ruser{Creating and referencing contexts}
1630 @subsection エングラーバの説明
1631 @translationof Engravers explained
1633 @cindex engravers (エングラーバ)
1635 LilyPond によって作成された楽譜上にあるすべての記号は
1636 @code{Engraver} によって作り出されます。@c
1637 つまり、譜を譜刻するエングラーバがあり、符頭を譜刻するエングラーバ、@c
1638 符幹を譜刻するエングラーバ、連桁を譜刻するエングラーバなどなどです。@c
1639 そのようなエングラーバは 120 以上あります!@c
1640 幸いなことに、たいていの楽譜では数個のエングラーバについて知っていれば良く、@c
1641 簡単な楽譜ではまったく知らなくても大丈夫です。
1643 エングラーバはコンテキストの中に存在し、そこで活動します。@c
1644 @code{Metronome_mark_engraver} などといった楽譜全体に影響を与える@c
1645 エングラーバは最上位のコンテキスト -- @code{Score} コンテキスト -- で@c
1648 @code{Clef_engraver} と @code{Key_engraver} は各 @code{Staff} コンテキストの@c
1649 中で見つかります -- 譜が異なれば音部記号や調号も異なるかもしれないからです。
1651 @code{Note_heads_engraver} と @code{Stem_engraver} は@c
1652 各 @code{Voice} コンテキスト -- 最下位のコンテキスト -- の中にあります。
1654 各エングラーバはそれの機能に関連付けされているある特定のオブジェクトを処理し、@c
1655 機能に関連するプロパティを維持します。@c
1656 コンテキストに関連付けされているプロパティなどのようにこれらのプロパティは、@c
1657 エングラーバの処理を変更するためや、譜刻される楽譜の中にある要素の見た目を@c
1658 変更するために、変更されるかもしれません。
1660 エングラーバはすべてそれらの機能を記述する単語から形成された複合名を持ちます。@c
1661 最初の単語の最初の文字は大文字であり、その後に続く単語はアンダスコアで@c
1663 ですから、@code{Staff_symbol_engraver} には譜表の線を作成する責任があり、@c
1664 @code{Clef_engraver} は音部記号を描くことによってピッチの参照ポイントを@c
1668 ここに、最も一般的なエングラーバをいくつかそれらの機能とともに挙げます。@c
1669 たいていの場合、名前から簡単に機能を推測でき、その逆も成り立つことが@c
1672 @multitable @columnfractions .3 .7
1675 @item Accidental_engraver
1676 @tab 臨時記号 (警告的臨時記号とアドバイス的な臨時記号を含む) を作成します。
1681 @item Completion_heads_engraver
1682 @tab 小節線をまたがる音符を分割します。
1683 @item Dynamic_engraver
1684 @tab 強弱記号 (クレッシェンド、デクレッシェンド) と強弱テキスト (p や f など)
1686 @item Forbid_line_break_engraver
1687 @tab 音楽要素がアクティブなままである場合に改行されることを防ぎます。(訳者:
1691 @item Metronome_mark_engraver
1692 @tab メトロノーム記号を譜刻します。
1693 @item Note_heads_engraver
1697 @item Staff_symbol_engraver
1698 @tab (デフォルトで) 五線の譜表を譜刻します。
1700 @tab 符幹と単一符幹のトレモロを作成します。
1701 @item Time_signature_engraver
1707 後ほど、エングラーバのアクションを変更することによって LilyPond の出力が@c
1712 内部リファレンス: @rinternals{Engravers and Performers}
1715 @node コンテキスト プロパティを変更する
1716 @subsection コンテキスト プロパティを変更する
1717 @translationof Modifying context properties
1719 @cindex context properties (コンテキスト プロパティ)
1720 @cindex context properties, modifying (コンテキスト プロパティを変更する)
1721 @cindex modifying context properties (コンテキスト プロパティを変更する)
1727 コンテキストにはいくつかのコンテキスト プロパティを保持する責任があります。@c
1728 それらプロパティの多くは変更可能であり、変更することで入力の構文解釈に影響を@c
1730 それらプロパティは \set コマンドによって変更されます。@c
1734 \set @emph{ContextName}.@emph{propertyName} = #@emph{value}
1737 @emph{ontextName} には通常、@code{Score}, @code{Staff} or @code{Voice} が@c
1739 これを省略する場合もあり、そのような場合は @code{Voice} であると@c
1742 コンテキスト プロパティの名前はハイフンやアンダスコアを使わずに連結された@c
1743 単語によって形成され、最初の単語を除いて単語の最初の文字は大文字になります。@c
1744 ここで、一般的に使用されるコンテキスト プロパティの例をいくつか挙げます。@c
1745 実際には、コンテキスト プロパティはもっとたくさんあります。
1747 @c attempt to force this onto a new page
1749 @multitable @columnfractions .25 .15 .45 .15
1756 @tab 真の場合、追加のナチュラル記号を臨時記号の前にセットします
1757 @tab @code{#t}, @code{#f}
1758 @item currentBarNumber
1764 @tab 真の場合、音符の上と下の両方にスラーを譜刻します
1765 @tab @code{#t}, @code{#f}
1766 @item instrumentName
1768 @tab 譜表の先頭に表示される名前をセットします
1769 @tab @code{"Cello I"}
1772 @tab フォント サイズを増減させます
1776 @tab 歌詞の先頭に譜刻されるテキストをセットします
1781 ここでのブール値とは真 (@code{#t}) または偽 (@code{#f}) の@c
1782 どちらかであり、整数とは正の整数であり、実数とは正または負の小数点付きの@c
1783 数であり、テキストはダブル アポストロフィで囲まれます。@c
1784 ハッシュ記号 (@code{#}) が 2 つの異なる箇所で出現することに@c
1785 注意してください -- ブール値での @code{t} や @code{f} の前と、@c
1786 @code{@bs{}set} での@emph{値}の前です。@c
1787 そのため、@code{@bs{}set} の値にブール値を挿入する場合、ハッシュ記号が 2 つ@c
1788 必要になります -- つまり @code{##t} です。
1790 @cindex properties operating in contexts (コンテキスト内でのプロパティの操作)
1791 @cindex setting properties within contexts (コンテキスト内部のプロパティを設定する)
1793 これらのプロパティのいずれかをセットする前に、それらが操作するコンテキストは@c
1795 これは明らかな場合もありますが、ややこしい場合もあります。@c
1796 間違ったコンテキストが指定された場合、エラー メッセージは表示されませんが、@c
1798 例えば、@code{instrumentName} は間違いなく @code{Staff} コンテキストの中に@c
1800 なぜなら、このプロパティが名前を付けるのは譜表だからです。@c
1801 以下の例では、最初の譜表には名前が付けられていますが、2 番目の譜表には@c
1803 なぜなら、コンテキスト名を省略しているからです。
1805 @lilypond[quote,verbatim,ragged-right]
1807 \new Staff \relative {
1808 \set Staff.instrumentName = #"Soprano"
1811 \new Staff \relative {
1812 \set instrumentName = #"Alto" % Wrong!
1818 デフォルトのコンテキスト名は @code{Voice} であることを思い出してください。@c
1819 このため、2 番目の @code{@bs{}set} コマンドは @code{Voice} コンテキストの@c
1820 プロパティ @code{instrumentName} を @qq{Alto} にセットしています。@c
1821 しかしながら、LilyPond は @code{Voice} コンテキストでそのようなプロパティを@c
1822 見つけ出さないため、何のアクションも起こしません。@c
1823 これはエラーではなく、ログ ファイルにエラー メッセージは残りません。
1825 同様に、プロパティ名の綴りを間違えた場合もエラー メッセージは表示されず、@c
1827 実際のところ、@code{@bs{}set} コマンドを使って、存在するいかなる@c
1828 コンテキストにでも、いかなる (架空の) @q{プロパティ} を@c
1830 しかしながら、そのプロパティ名を LilyPond が知らない場合、@c
1832 LilyPond 入力ファイルに対する特別なサポートを持つ@c
1833 いくつかのテキスト エディタは、あなたがプロパティ名の上にマウスを@c
1834 持ってくるとバレット (テキストの先頭に付く小丸) 付きのプロパティ名を表示して@c
1835 そのプロパティの裏づけを行い (LilyPondTool を持つ JEdit)、@c
1836 あるいは未知のプロパティ名をハイライトします (ConTEXT)。@c
1837 そのような機能を持つエディタを使用していないのなら、内部リファレンスで@c
1838 プロパティ名をチェックすることを推奨します:
1839 @rinternals{Tunable context properties} や @rinternals{Contexts}
1842 @code{instrumentName} プロパティは @code{Staff} コンテキストの中に@c
1843 セットされた場合にのみ効果を持ちますが、いくつかのプロパティは複数の@c
1844 コンテキストの中にセットすることができます。@c
1845 例えば、プロパティ @code{extraNatural} はすべての譜に対してデフォルトで
1846 @code{##t} (真) にセットされています。@c
1847 ある特定の @code{Staff} コンテキストでこれを @code{##f} (偽) に@c
1848 セットした場合、その譜表の臨時記号にのみ適用されます。@c
1849 これを @code{Score} コンテキストにセットした場合、すべての譜に適用されます。
1851 それでは、ある譜表の追加ナチュラル記号を消してみます:
1853 @lilypond[quote,verbatim,ragged-right]
1855 \new Staff \relative {
1858 \new Staff \relative {
1859 \set Staff.extraNatural = ##f
1866 さらに、すべての譜の追加ナチュラル記号を消します:
1868 @lilypond[quote,verbatim,ragged-right]
1870 \new Staff \relative {
1873 \new Staff \relative {
1874 \set Score.extraNatural = ##f
1880 他の例としては、@code{clefTransposition} が @code{Score} コンテキストに@c
1881 セットされた場合、直ちにすべての譜でのオクターブの値を変更し、すべての譜に@c
1882 適用される新しいデフォルト値をセットします。
1884 逆のことを行うコマンド @code{\unset} はコンテキストからプロパティを@c
1885 削除し、それによりたいていのプロパティはデフォルト値に戻ります。@c
1886 通常、望みのことを達成するために新たな @code{\set} コマンドを@c
1887 用いる場合、@code{\unset} は必要ありません。
1889 @code{\set} と @code{\unset} コマンドは入力ファイルのどこにでも@c
1890 現れる可能性があり、そのコマンドが出現した時点から、楽譜の終わりまたは@c
1891 そのプロパティが再度 @code{\set} や @code{\unset} されるまで効果を@c
1893 フォント サイズを変更してみましょう。@c
1894 それにより (他のものに加えて) 符頭のサイズが何段階か変更されます。@c
1895 変更は直前にセットされた値から行われるのではなく、デフォルト値から行われます。
1898 @lilypond[quote,verbatim,ragged-right]
1905 \set fontSize = #2.5
1913 これまでにいくつかのタイプのプロパティ値をセットする方法を見てきました。@c
1914 整数と番号の前には常にハッシュ記号 @code{#} が付き、真と偽の値は
1915 2 つのハッシュ記号を付けて @code{##t} と @code{##f}
1916 によって指定されてるということに注意してください。@c
1917 テキスト プロパティは上で示したようにダブル クォーテーションによって@c
1919 しかしながら、後ほど、テキストは実際には非常に強力な @code{\markup} コマンドを@c
1920 用いたもっと一般的な方法で指定できるということを見ていきます。
1923 @subsubheading @code{\with} を使ったコンテキスト プロパティの設定
1924 @c Setting context properties with @code{\with}
1928 @cindex context properties, setting with \with (\with でコンテキスト プロパティを設定する)
1930 コンテキスト プロパティはコンテキストが作成されるときに@c
1931 セットされることもあるかもしれません。@c
1932 この設定がコンテキスト全体で保持される場合、この方法でプロパティ値を@c
1934 コンテキストが @code{@bs{}new} コマンドで作成されるとき、その直後に
1935 @code{@bs{}with @{ .. @}} ブロックが続き、その中でプロパティ値が@c
1937 例えば、ある譜表全体で追加のナチュラルの表示を抑制しようとする場合、@c
1941 \new Staff \with @{ extraNatural = ##f @}
1947 @lilypond[quote,verbatim,ragged-right]
1951 gisis'4 gis aeses aes
1954 \new Staff \with { extraNatural = ##f } {
1956 gisis'4 gis aeses aes
1962 この方法でプロパティをセットした場合でも、@code{\set}
1964 @code{\unset} を使ってデフォルト値に戻されたりするかもしれません。
1966 @cindex fontSize, default and setting (fontSize のデフォルトと設定)
1968 @code{fontSize} プロパティの扱いは異なります。@c
1969 これが @code{\with} の中でセットされた場合、フォント サイズの@c
1971 そのあとでフォント サイズが @code{\set} によって変更された場合、@c
1972 @code{\with} でセットされた新しいデフォルト値は
1973 @code{\unset fontSize} コマンドによって元に戻されるかもしれません。
1976 @subsubheading @code{\context} を使ったコンテキスト プロパティの設定
1977 @c Setting context properties with @code{\context}
1979 @cindex context properties, setting with \context (\context でコンテキスト プロパティを設定する)
1983 コンテキスト プロパティの値は単一のコマンドによってある特定のタイプの@c
1984 コンテキスト@emph{すべて} -- すべての @code{Staff} コンテキストなどのように
1985 -- にセットされるかもしれません。@c
1986 プロパティをセットするコンテキストのタイプは、@code{Staff} のような@c
1987 そのコンテキストのタイプ名に接頭辞としてバック スラッシュを付けたもの
1988 -- @code{\Staff} のように -- によって指定されます。@c
1989 プロパティ値をセットするための記述は上で紹介した @code{\with} ブロックの中の@c
1991 この記述は @code{\layout} ブロック内部の @code{\context} ブロックの中に@c
1993 各 @code{\context} ブロックは、その @code{\layout} ブロックが@c
1994 置かれている @code{\score} または @code{\book} ブロック全体を通じて、@c
1995 指定されたタイプのコンテキストすべてに対して効果を持ちます。@c
1996 ここで、記述方法を示すための例を挙げます:
1998 @lilypond[verbatim,quote]
2014 プロパティのオーバライドが score の中にあるどの譜にも適用されない場合:
2016 @lilypond[quote,verbatim]
2021 gisis'4 gis aeses aes
2026 gisis'4 gis aeses aes
2032 \Score extraNatural = ##f
2039 この方法でセットされたコンテキスト プロパティは、@code{\with} ブロックの@c
2040 中の記述によって、さらには、音楽表記の中に埋め込まれた
2041 @code{\set} コマンドによって、ある特定のコンテキスト インスタンスでは@c
2047 @ruser{Changing context default settings},
2048 @ruser{The set command}
2051 @rinternals{Contexts},
2052 @rinternals{Tunable context properties}
2055 @node エングラーバを追加 / 削除する
2056 @subsection エングラーバを追加 / 削除する
2057 @translationof Adding and removing engravers
2059 @cindex engravers, adding (エングラーバを追加する)
2060 @cindex adding engravers (エングラーバを追加する)
2061 @cindex engravers, removing (エングラーバを削除する)
2062 @cindex removing engravers (エングラーバを削除する)
2069 これまでに、コンテキストはそれぞれにいくつかのエングラーバを保持し、@c
2070 それぞれのエングラーバは出力のある特定部分
2071 -- 小節線、譜、符頭、符幹など -- の譜刻に責任を持つということを見てきました。@c
2072 あるエングラーバがコンテキストから削除されると、それはもはや出力を行いません。@c
2073 これは出力を変更するための荒っぽい方法ですが、役に立つ場合もあります。
2075 @subsubheading 単一のコンテキストの変更
2076 @c Changing a single context
2078 あるコンテキストからあるエングラーバを削除するには、前のセクションで@c
2079 見てたきたのと同様に、コンテキスト作成コマンドの直後に置く
2080 @code{\with} コマンドを使用します。
2082 例として、前のセクションで使用した例から譜表線を取り除いてみましょう。@c
2083 譜表線は @code{Staff_symbol_engraver} によって作り出されるということを@c
2087 @lilypond[quote,verbatim,ragged-right]
2089 \remove "Staff_symbol_engraver"
2093 \set fontSize = #-4 % 符頭を小さくします
2095 \set fontSize = #2.5 % 符頭を大きくします
2097 \unset fontSize % デフォルトのサイズに戻します
2102 @cindex ambitus engraver (音域エングラーバ)
2104 さらに、エングラーバは個々のコンテキストに追加されることもあります。@c
2105 エングラーバを追加するコマンドは以下のようなものです:
2107 @code{\consists @var{Engraver_name}},
2110 これを @code{\with} ブロックの中に置きます。@c
2111 いくつかのボーカル譜は、その譜表の中にある音符の範囲を示すために、@c
2112 譜表の開始点に音域 (ambitus) を置きます --
2113 @rglos{ambitus} を参照してください。@c
2114 音域は @code{Ambitus_engraver} によって作成され、普通は、@c
2115 これはどのコンテキストにも含まれません。@c
2116 これを @code{Voice} コンテキストに追加した場合、それはそのボイスのみから@c
2119 @lilypond[quote,verbatim,ragged-right]
2122 \consists "Ambitus_engraver"
2139 しかし、音域エングラーバを @code{Staff} コンテキストに追加した場合、@c
2140 そのエングラーバはその譜表上にあるすべてのボイスの中の音符から音域を計算します:
2142 @lilypond[quote,verbatim,ragged-right]
2144 \consists "Ambitus_engraver"
2162 @subsubheading 同じタイプのコンテキストをすべて変更する
2163 @c Changing all contexts of the same type
2168 上の例では、個々のコンテキストにエングラーバを追加あるいは削除する方法を@c
2170 さらに、そのコマンドを @code{\layout} ブロックの中の適当なコンテキストの@c
2171 中に置くことによって、ある特定のタイプのコンテキストすべてにエングラーバを@c
2172 追加あるいは削除することもできます。@c
2173 例えば、4 つの譜表を持つ楽譜ですべての譜表に音域を表示する場合、@c
2176 @lilypond[quote,verbatim,ragged-right]
2205 \consists "Ambitus_engraver"
2212 また、コンテキスト プロパティの値も、上記と同様に
2213 @code{\context} ブロックの中に @code{\set} を含ませることによって、@c
2214 ある特定のタイプのコンテキストすべてに対してセットすることができます。
2218 記譜法リファレンス: @ruser{Modifying context plug-ins},
2219 @ruser{Changing context default settings}
2220 @c コンテキスト プラグインの変更, コンテキストのデフォルト設定の変更
2223 @code{Stem_engraver} と @code{Beam_engraver} はそれらが描くオブジェクトを@c
2225 @code{Note_heads_engraver} が削除されると、符頭は作られず、@c
2230 @section テンプレートを拡張する
2231 @translationof Extending the templates
2233 あなたはチュートリアルを読み終えました。@c
2234 あなたはどのように楽譜を書くかを知っていて、@c
2235 基礎となるコンセプトを理解しています。@c
2236 しかし、どうやったらあなたはあなたが望む譜を手に入れられるでしょうか?@c
2237 あなたにとって良いスタート地点となるかもしれない多くのテンプレートがあります
2238 (@ref{テンプレート} を参照してください)。@c
2239 しかしながら、あなたの望むものがそこでカバーされていなかったらどうしましょう?@c
2244 * 4 パート SATB ボーカル譜::
2246 * 変数と関数を用いて入力の手間を省く::
2251 @subsection ソプラノとチェロ
2252 @translationof Soprano and cello
2254 @cindex template, modifying (テンプレートを変更する)
2255 @cindex modifying templates (テンプレートを変更する)
2257 あなたが最終的に望むものに最も近いテンプレートから始めてください。@c
2258 ソプラノとチェロのための楽譜を書きたいということにしましょう。@c
2259 ここでは、@q{音符と歌詞} (ソプラノ パート用) から始めることにします。
2262 \version @w{"@version{}"}
2264 melody = \relative @{
2271 text = \lyricmode @{
2277 \new Voice = "one" @{
2281 \new Lyrics \lyricsto "one" \text
2288 これにチェロ パートを追加していきます。@c
2289 @q{音符のみ} のテンプレートを見てみましょう:
2292 \version @w{"@version{}"}
2294 melody = \relative @{
2308 @code{\version} コマンドは 2 つも必要ありません。@c
2309 @code{melody} セクションは必要です。@c
2310 @code{\score} セクションは 2 つも必要ありません
2311 -- @code{\score} が 2 つあると、2 つのパートがばらばらになります。@c
2312 2 つのパートをデュオのように一緒にしたいのです。@c
2313 @code{\score} セクションの中に @code{\layout} や @code{\midi} は 2 つも@c
2316 単に @code{melody} セクションをカット&コピーした場合、@c
2317 @code{melody} 定義が 2 つになります。@c
2319 2 番目の定義が両方の旋律で使われることになります。@c
2320 そのため、2 つの旋律を区別するためにリネームします。@c
2321 ソプラノ用のセクションを @code{sopranoMusic} と呼び、@c
2322 チェロ用のセクションを @code{celloMusic} と呼ぶことにします。@c
2323 リネームするときに、@code{text} を @code{sopranoLyrics} とりネームしましょう。@c
2324 これらのインスタンスをリネームすることも忘れないでください
2325 −- 初期定義 (@code{melody = \relative c' @{ } 部分) とその名前が@c
2326 使われているところ (@code{\score セクションの中}) の両方です。
2328 リネームする際に、チェロ パートの譜も変更しましょう
2329 −- 通常、チェロは低音部を使用します。@c
2333 \version @w{"@version{}"}
2335 sopranoMusic = \relative @{
2342 sopranoLyrics = \lyricmode @{
2346 celloMusic = \relative @{
2355 \new Voice = "one" @{
2359 \new Lyrics \lyricsto "one" \sopranoLyrics
2366 これでうまくいくように見えますが、チェロ パートが楽譜に表示されません
2367 −- チェロ パートを @code{\score} セクションの中で使っていないからです。@c
2368 チェロ パートをソプラノ パートの下に表示させたいのなら、@c
2369 以下をソプラノの譜の下に追加する必要があります:
2372 \new Staff \celloMusic
2376 さらに、音楽を @code{<<} と @code{>>} で囲む必要もあります
2377 −- これは LilyPond に複数のもの (この場合は 2 つの @code{Stave})
2378 が同時に起こるということを知らせます。@c
2379 @code{\score} は以下のようになります:
2381 @c Indentation in this example is deliberately poor
2386 \new Voice = "one" @{
2390 \new Lyrics \lyricsto "one" \sopranoLyrics
2392 \new Staff \celloMusic
2401 インデントがきちんと入っていません。@c
2403 ここで、完成したソプラノとチェロ用のテンプレートを挙げます。
2405 @lilypond[quote,verbatim,ragged-right,addversion]
2406 sopranoMusic = \relative {
2413 sopranoLyrics = \lyricmode {
2417 celloMusic = \relative {
2427 \new Voice = "one" {
2431 \new Lyrics \lyricsto "one" \sopranoLyrics
2433 \new Staff \celloMusic
2442 開始点となるテンプレートは付録 @q{テンプレート} で見つけることができます。@c
2443 @ref{Single staff templates} を参照してください。
2446 @node 4 パート SATB ボーカル譜
2447 @subsection 4 パート SATB ボーカル譜
2448 @translationof Four-part SATB vocal score
2450 @cindex template, SATB (SATB テンプレート)
2451 @cindex SATB template (SATB テンプレート)
2453 Mendelssohn の Elijah や Handel の Messiah などのオーケストラ伴奏付きの
2454 4 パート聖歌隊のために書かれたボーカル譜の多くは 4 つの譜上に@c
2455 音符と歌詞を持ち、それぞれの譜は SATB (ソプラノ、アルト、テナー、バス) のうちの
2456 1 つであり、その下にオーケストラ伴奏のピアノ譜が付きます。@c
2457 ここで、Handel の Messiah から例を挙げます:
2459 @c The following should appear as music without code
2460 @lilypond[quote,ragged-right]
2461 global = { \key d \major \time 4/4 }
2463 sopranoMusic = \relative {
2465 r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2467 sopranoWords = \lyricmode {
2468 Wor -- thy | is the lamb | that was slain |
2471 altoMusic = \relative {
2473 r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 |
2475 altoWords = \sopranoWords
2477 tenorMusic = \relative {
2479 r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2481 tenorWords = \sopranoWords
2483 bassMusic = \relative {
2485 r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2487 bassWords = \sopranoWords
2492 r4 <a' d fis>2 <a e' a>4 |
2493 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2494 <g cis g'>4 <a d fis> <a cis e>2 |
2500 <d, d'>4 <d d'>2 <cis cis'>4 |
2501 <b b'>4. <b' b'>8 <fis fis'>2 |
2502 <e e'>4 <d d'> <a' a'>2 |
2506 << % combine ChoirStaff and PianoStaff in parallel
2508 \new Staff = "sopranos" <<
2509 \set Staff.instrumentName = #"Soprano"
2510 \new Voice = "sopranos" {
2515 \new Lyrics \lyricsto "sopranos" {
2518 \new Staff = "altos" <<
2519 \set Staff.instrumentName = #"Alto"
2520 \new Voice = "altos" {
2525 \new Lyrics \lyricsto "altos" { \altoWords }
2526 \new Staff = "tenors" <<
2527 \set Staff.instrumentName = #"Tenor"
2528 \new Voice = "tenors" {
2533 \new Lyrics \lyricsto "tenors" { \tenorWords }
2534 \new Staff = "basses" <<
2535 \set Staff.instrumentName = #"Bass"
2536 \new Voice = "basses" {
2541 \new Lyrics \lyricsto "basses" {
2546 \set PianoStaff.instrumentName = #"Piano"
2547 \new Staff = "upper" \upper
2548 \new Staff = "lower" \lower
2554 このレイアウトをそのまま提供するテンプレートはありません。@c
2555 最も近いのは @ref{SATB vocal score and automatic piano reduction}
2556 ですが、レイアウトを変更して、ボーカル パートから自動的に生成されたものでは@c
2557 ないピアノ伴奏譜を付け加える必要があります。@c
2558 ボーカル パートのための音楽と歌詞を保持している変数はそのまま使えますが、@c
2559 ピアノ伴奏譜のための変数を付け加える必要があります。
2561 テンプレートの @code{ChoirStaff} の中でコンテキストが出現する順序は上で@c
2562 示したボーカル譜の順序と一致していません。@c
2563 そのため、コンテキストを再配置して、それぞれの歌詞が対応する譜表の@c
2565 すべてのボイスは @code{\voiceOne} -- これがデフォルトです -- に@c
2566 なるべきなので、@code{\voiceXXX} コマンドは削除すべきです。@c
2567 さらに、テノールに対してハ音記号 (中音部記号) を指定する必要があります。@c
2568 テンプレートの中で歌詞を指定する方法はまだ説明していませんので、@c
2569 馴染みのある方法を使用する必要があります。@c
2570 さらに、それぞれの譜に名前を追加すべきです。
2572 以上のことを @code{ChoirStaff} に対して行います:
2576 \new Staff = "sopranos" <<
2577 \set Staff.instrumentName = #"Soprano"
2578 \new Voice = "sopranos" @{
2583 \new Lyrics \lyricsto "sopranos" @{
2586 \new Staff = "altos" <<
2587 \set Staff.instrumentName = #"Alto"
2588 \new Voice = "altos" @{
2593 \new Lyrics \lyricsto "altos" @{
2596 \new Staff = "tenors" <<
2597 \set Staff.instrumentName = #"Tenor"
2598 \new Voice = "tenors" @{
2603 \new Lyrics \lyricsto "tenors" @{
2606 \new Staff = "basses" <<
2607 \set Staff.instrumentName = #"Bass"
2608 \new Voice = "basses" @{
2613 \new Lyrics \lyricsto "basses" @{
2619 次にピアノ パートに取り掛からなければなりません。@c
2620 これは簡単です -- @q{ソロ ピアノ} テンプレートからピアノ パートを@c
2625 \set PianoStaff.instrumentName = #"Piano "
2626 \new Staff = "upper" \upper
2627 \new Staff = "lower" \lower
2631 そして、@code{upper} と @code{lower} に変数定義を付け加えます。
2633 @code{ChoirStaff} を @code{PianoStaff} の上に置きたいので、@c
2634 それらを山括弧を使って組み合わせなければなりません:
2637 << % combine ChoirStaff and PianoStaff one above the other
2639 \new Staff = "sopranos" <<
2640 \new Voice = "sopranos" @{
2645 \new Lyrics \lyricsto "sopranos" @{
2648 \new Staff = "altos" <<
2649 \new Voice = "altos" @{
2654 \new Lyrics \lyricsto "altos" @{
2657 \new Staff = "tenors" <<
2658 \clef "G_8" % tenor clef
2659 \new Voice = "tenors" @{
2664 \new Lyrics \lyricsto "tenors" @{
2667 \new Staff = "basses" <<
2669 \new Voice = "basses" @{
2674 \new Lyrics \lyricsto "basses" @{
2680 \set PianoStaff.instrumentName = #"Piano"
2681 \new Staff = "upper" \upper
2682 \new Staff = "lower" \lower
2687 これらすべてを組み合わせて、上の例の 3 小節分の音楽を付け加えます:
2690 @lilypond[quote,verbatim,ragged-right,addversion]
2691 global = { \key d \major \time 4/4 }
2692 sopranoMusic = \relative {
2694 r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2696 sopranoWords = \lyricmode {
2697 Wor -- thy | is the lamb | that was slain |
2699 altoMusic = \relative {
2701 r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2703 altoWords = \sopranoWords
2704 tenorMusic = \relative {
2706 r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2708 tenorWords = \sopranoWords
2709 bassMusic = \relative {
2711 r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2713 bassWords = \sopranoWords
2717 r4 <a' d fis>2 <a e' a>4 |
2718 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2719 <g cis g'>4 <a d fis> <a cis e>2 |
2724 <d, d'>4 <d d'>2 <cis cis'>4 |
2725 <b b'>4. <b' b'>8 <fis fis'>2 |
2726 <e e'>4 <d d'> <a' a'>2 |
2730 << % ChoirStaff と PianoStaff を並行に組み合わせます
2732 \new Staff = "sopranos" <<
2733 \set Staff.instrumentName = #"Soprano"
2734 \new Voice = "sopranos" {
2739 \new Lyrics \lyricsto "sopranos" {
2742 \new Staff = "altos" <<
2743 \set Staff.instrumentName = #"Alto"
2744 \new Voice = "altos" {
2749 \new Lyrics \lyricsto "altos" {
2752 \new Staff = "tenors" <<
2753 \set Staff.instrumentName = #"Tenor"
2754 \new Voice = "tenors" {
2759 \new Lyrics \lyricsto "tenors" {
2762 \new Staff = "basses" <<
2763 \set Staff.instrumentName = #"Bass"
2764 \new Voice = "basses" {
2769 \new Lyrics \lyricsto "basses" {
2775 \set PianoStaff.instrumentName = #"Piano "
2776 \new Staff = "upper" \upper
2777 \new Staff = "lower" \lower
2785 @subsection ゼロから楽譜を構築する
2786 @translationof Building a score from scratch
2788 @cindex template, writing your own (自分自身のテンプレートを記述する)
2789 @cindex example of writing a score (楽譜の書き方の例)
2790 @cindex writing a score, example (楽譜の書き方の例)
2791 @cindex score, example of writing (楽譜の書き方の例)
2793 LilyPond コードを書くことにある程度熟練した後、あなたはテンプレートの 1 つを@c
2794 変更するよりもゼロから楽譜を構築するほうがより容易であることに@c
2796 さらに、あなたはこの方法であなたの好みのタイプの音楽に適したあなた自身の@c
2798 例として、オルガン前奏曲のための楽譜を作成する手順を見てみましょう。
2801 そこでタイトル、作曲者の名前などを記述し、それから任意の変数を定義し、@c
2802 最後にスコア ブロックに取り掛かります。@c
2803 以上のことを概要から始めて、その後に詳細を詰めていきます。
2805 @emph{Jesu, meine Freude}
2806 -- これは 2 つの鍵盤とペダルを持つオルガンのために書かれたものです
2807 -- をベースとする Bach の前奏曲の最初の 2 小節を使います。@c
2808 このセクションの最後でこの音楽の最初の 2 小節を見ることができます。@c
2809 上段鍵盤パートは 2 つのボイスを持ち、@c
2810 下段鍵盤とペダルはそれぞれ 1 つのボイスを持ちます。@c
2812 拍子記号と調号を定義するための 1 つの音楽定義が必要となります:
2815 \version @w{"@version{}"}
2817 title = "Jesu, meine Freude"
2818 composer = "J S Bach"
2820 keyTime = @{ \key c \minor \time 4/4 @}
2821 ManualOneVoiceOneMusic = @{ s1 @}
2822 ManualOneVoiceTwoMusic = @{ s1 @}
2823 ManualTwoMusic = @{ s1 @}
2824 PedalOrganMusic = @{ s1 @}
2830 ここでは、実際の音楽の代わりに空白音符 @code{s1} を使用しました。@c
2833 次に、スコア ブロックで何をすべきなのかを見ていきましょう。@c
2835 通常、オルガン音楽は 3 つの譜で書かれます
2836 -- 2 つの鍵盤とペダルのための譜です。@c
2837 鍵盤の譜はブレース (譜表の左端の波括弧) でまとめられているべきなので、@c
2838 それらに対して @code{PianoStaff} を使用する必要があります。@c
2839 1 番目の鍵盤パートは 2 つのボイスを必要とし、2 番目の鍵盤パートは 1 つだけ@c
2844 \new Staff = "ManualOne" <<
2846 \ManualOneVoiceOneMusic
2849 \ManualOneVoiceTwoMusic
2851 >> % ManualOne Staff コンテキストの終了
2852 \new Staff = "ManualTwo" <<
2856 >> % ManualTwo Staff コンテキストの終了
2857 >> % PianoStaff コンテキストの終了
2860 次にペダル オルガンのための譜表を付け加える必要があります。@c
2861 これは @code{PianoStaff} の下にきますが、@code{PianoStaff} と@c
2862 同時進行でなければなりませんので、ペダル オルガンのための譜表と
2863 @code{PianoStaff} を山括弧で囲む必要があります。@c
2864 これを忘れるとエラーがログ ファイルに生成されます。@c
2865 このエラーはあなたが早かれ遅かれ遭遇する一般的なミスです!@c
2866 生成されるエラーを確認するために、このセクションの最後にある例をコピーし、@c
2867 この山括弧を削除し、コンパイルしてみてください。
2870 << % PianoStaff と Pedal Staff を同時進行させる必要があります
2872 \new Staff = "ManualOne" <<
2874 \ManualOneVoiceOneMusic
2877 \ManualOneVoiceTwoMusic
2879 >> % ManualOne Staff コンテキストの終了
2880 \new Staff = "ManualTwo" <<
2884 >> % ManualTwo Staff コンテキストの終了
2885 >> % PianoStaff コンテキストの終了
2886 \new Staff = "PedalOrgan" <<
2894 2 番目の鍵盤パートとペダル オルガンの譜表は 1 つだけしか音楽表記を@c
2895 保持しないため、それらに対して同時進行構造 @code{<< .. >>} を使う必要は@c
2897 しかしながら、そうしても害はありませんし、@code{\new Staff} の後に常に@c
2898 山括弧を置くというのは複数のボイスがある場合では推奨される良い習慣です。@c
2899 Voice はこれとは対照的に、あなたの音楽を連続して演奏すべきいくつかの変数に@c
2900 分けてコード化する場合に Voice の後に波括弧 @code{@{ .. @}} を常に置くべきです。
2902 この構造をスコア ブロックに付け加えて、インデントを調整しましょう。@c
2903 さらに、適切な音部記号を付け加え、@code{\voiceOne} と @code{\voiceTwo} を@c
2904 使って上部譜の各ボイスで符幹、タイ、スラーの向きが正しくなるようにし、@c
2905 あらかじめ定義しておいた変数 @code{\keyTime} を使って拍子記号と調号を@c
2910 << % PianoStaff と Pedal Staff を同時進行させる必要があります
2912 \new Staff = "ManualOne" <<
2913 \keyTime % 調号と拍子記号をセットします
2917 \ManualOneVoiceOneMusic
2921 \ManualOneVoiceTwoMusic
2923 >> % ManualOne Staff コンテキストの終了
2924 \new Staff = "ManualTwo" <<
2930 >> % ManualTwo Staff コンテキストの終了
2931 >> % PianoStaff コンテキストの終了
2932 \new Staff = "PedalOrgan" <<
2938 >> % PedalOrgan Staff の終了
2940 @} % Score コンテキストの終了
2943 @cindex stretchability of staves (譜の伸縮性)
2944 @cindex staves, stretchability (譜の伸縮性)
2946 上のオルガン譜のレイアウトはほぼ完璧です。@c
2947 しかしながら、それぞれの譜を見ているだけではわからない、@c
2949 ペダル譜と左手譜の距離は右手譜と左手譜の距離とほぼ等しくなるべきです。@c
2950 詳しく説明すると、@code{PianoStaff} コンテキストの譜の伸縮性は制限される
2951 (制限により、左手譜と右手譜の距離はあまりにも大きくなることはありません)
2952 ので、ペダル譜も同様に制限されるべきです。
2954 @cindex sub-properties (サブ-プロパティ)
2955 @cindex properties, sub-properties (サブ-プロパティ)
2956 @cindex graphical objects (グラフィカル オブジェクト)
2957 @cindex objects, graphical (グラフィカル オブジェクト)
2958 @cindex grobs (グラフィカル オブジェクト)
2960 譜の伸縮性は @q{グラフィカル オブジェクト} @code{VerticalAxisGroup}
2961 の @code{staff-staff-spacing} プロパティで制御することができます。
2962 (LilyPond ドキュメントの中でグラフィカル オブジェクトは @q{grobs}
2964 今、グラフィカル オブジェクトの詳細について知らなくても心配しないでください。@c
2966 興味があるのなら、@ruser{Overview of modifying properties} を見てください。@c
2967 今回は、@code{stretchability} サブ-プロパティを変更する必要があるだけです。@c
2968 さらに興味があるのなら、グラフィカル オブジェクト @code{VerticalAxisGroup}
2969 の定義を調べていくと、ファイル @file{scm/define-grobs.scm} の中に
2970 @code{staff-staff-spacing} プロパティのデフォルト値を見つけることができます。@c
2971 @code{stretchability} の値は、@code{PianoStaff} コンテキスト
2972 (これはファイル @file{ly/engraver-init.ly} の中にあります)
2973 の定義から来ていて、2 つの値は等価です。
2977 << % PianoStaff と Pedal Staff を同時進行させる必要があります
2979 \new Staff = "ManualOne" <<
2980 \keyTime % 調号と拍子記号をセットします
2984 \ManualOneVoiceOneMusic
2988 \ManualOneVoiceTwoMusic
2990 >> % ManualOne Staff コンテキストの終了
2991 \new Staff = "ManualTwo" \with @{
2992 \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
2999 >> % ManualTwo Staff コンテキストの終了
3000 >> % PianoStaff コンテキストの終了
3001 \new Staff = "PedalOrgan" <<
3007 >> % PedalOrgan Staff の終了
3009 @} % Score コンテキストの終了
3013 3 つの譜を持つオルガン譜はいずれも同様の構造を持ちますが、@c
3014 ボイスの数はさまざまになるかもしれません。@c
3015 この後に行うべきことは、音楽を付け加え、各パートを一緒にすることです。
3018 @lilypond[quote,verbatim,ragged-right,addversion]
3020 title = "Jesu, meine Freude"
3021 composer = "J S Bach"
3023 keyTime = { \key c \minor \time 4/4 }
3024 ManualOneVoiceOneMusic = \relative {
3028 ManualOneVoiceTwoMusic = \relative {
3029 ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
3030 8 c4 b8 c8. g16 c b c d |
3032 ManualTwoMusic = \relative {
3033 c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
3034 f16 ees f d g aes g f ees d ees8~ 16 f ees d |
3036 PedalOrganMusic = \relative {
3037 r8 c16 d ees d ees8~ 16 a, b g c b c8 |
3038 r16 g ees f g f g8 c,2 |
3042 << % PianoStaff と Pedal Staff を同時進行させる必要があります
3044 \new Staff = "ManualOne" <<
3045 \keyTime % 調号と拍子記号をセットします
3049 \ManualOneVoiceOneMusic
3053 \ManualOneVoiceTwoMusic
3055 >> % ManualOne Staff コンテキストの終了
3056 \new Staff = "ManualTwo" \with {
3057 \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
3064 >> % ManualTwo Staff コンテキストの終了
3065 >> % PianoStaff コンテキストの終了
3066 \new Staff = "PedalOrgan" <<
3072 >> % PedalOrgan Staff コンテキストの終了
3082 @node 変数と関数を用いて入力の手間を省く
3083 @subsection 変数と関数を用いて入力の手間を省く
3084 @translationof Saving typing with variables and functions
3086 @cindex variables (変数)
3088 これまでに、以下のような記述を見てきました:
3090 @lilypond[quote,verbatim,ragged-right]
3091 hornNotes = \relative { c''4 b dis c }
3100 これは音楽表記を最小化するのに役に立つ可能性があるということに@c
3103 @lilypond[quote,verbatim,ragged-right]
3104 fragmentA = \relative { a'4 a8. b16 }
3105 fragmentB = \relative { a'8. gis16 ees4 }
3107 violin = \new Staff {
3108 \fragmentA \fragmentA |
3109 \fragmentB \fragmentA |
3119 さらに、これらの変数 (変数、マクロ、(ユーザ定義) コマンドなどと呼ばれます)
3122 @c TODO Avoid padtext - not needed with skylining
3123 @lilypond[quote,verbatim,ragged-right]
3124 dolce = \markup { \italic \bold dolce }
3126 padText = { \once \override TextScript.padding = #5.0 }
3128 \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
3131 violin = \relative {
3133 c''4._\dolce b8 a8 g a b |
3135 c4.^"hi there!" d8 e' f g d |
3136 c,4.\fthenp b8 c4 c-. |
3144 \layout { ragged-right = ##t }
3148 これらの変数は明らかに入力の手間を省くのに役立っています。@c
3149 例え 1 回しか使用しない音楽であっても、変数化することを考慮する価値はあります
3151 前の例を変数化しなかったものを見てみましょう。@c
3152 とても読み難く、特に最後の行が読み難いです。
3155 violin = \relative @{
3157 c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
3158 \once \override TextScript.padding = #5.0
3159 c4.^"hi there!" d8 e' f g d |
3161 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
3168 @c TODO Replace the following with a better example -td
3169 @c Skylining handles this correctly without padText
3171 これまでに見てきたのは静的な置き換えです
3172 -- LilyPond は @code{\padText} を見つけると、それを定義した内容
3173 (つまり、@code{padText=} の右側にあるもの) に置き換えます。
3175 LilyPond は非静的な置き換えも処理できます (それらを関数と見なすことができます)。
3177 @lilypond[quote,verbatim,ragged-right]
3179 #(define-music-function
3183 \once \override TextScript.padding = #padding
3187 c'''4^"piu mosso" b a b |
3189 c4^"piu mosso" d e f |
3191 c4^"piu mosso" fis a g |
3195 変数を使うことは、LilyPond 入力構文に変更があった場合の作業を減らす@c
3196 良い方法でもあります (@rprogram{convert-ly を使ってファイルを更新する}
3198 あなたがあなたの入力ファイルすべてに使用する単一の定義
3199 (@code{\dolce} のような) を持っていて、構文が変更された場合、@c
3200 すべての @code{.ly} ファイルを変更する代わりに、@c
3201 @code{@bs{}dolce} 定義をアップデートするだけで済みます。
3202 (@ref{スタイル シート} を参照してください。)
3207 @translationof Scores and parts
3209 オーケストラ音楽では、すべての音符は 2 回譜刻されます。@c
3210 1 回は演奏家のためのパート譜で、1 回は指揮者のための総譜で譜刻されます。@c
3211 変数を使うことで二度手間を避けることができます。@c
3212 音楽は 1 回、変数に入力されます。@c
3213 その変数の内容は、パート譜と総譜の両方を生成するために使用されます。
3215 音符を特別なファイルの中に定義すると便利です。@c
3216 例えば、ファイル @code{horn-music.ly} は@c
3217 以下のホルン/@/バスーン デュオのパートを保持しているとします:
3220 hornNotes = \relative @{
3222 r4 f8 a | cis4 f | e4 d |
3227 個々のパートは、ファイルの中に以下の記述をすることによって作り出されます:
3230 \include "horn-music.ly"
3233 instrument = "Horn in F"
3237 \transpose f c' \hornNotes
3244 \include "horn-music.ly"
3248 は、ファイルの中でその行が置かれている場所で、@c
3249 @file{horn-music.ly} の内容に置き換わり、@c
3250 @code{hornNotes} の定義になります。@c
3251 @code{\transpose f@tie{}c'} は、@c
3252 引数 @code{\hornNotes} は 5 度上へ移調すべきであるということを@c
3254 @code{f} の音は譜面に表記された @code{c'} で表され、@c
3255 これは通常のフレンチ ホルンを F にチューニングすることに相当します。@c
3256 この移調により出力は以下のようになります:
3258 @lilypond[quote,ragged-right]
3259 \transpose f c' \relative {
3261 r4 f8 a | cis4 f | e4 d |
3265 アンサンブルでは、しばしばボイスの 1 つが何小節も演奏されないことがあります。@c
3266 これは特別な休符 -- 複小節休符 -- によって示されます。@c
3267 これは大文字の @code{R} とその後に続く演奏時間
3268 (全音符には @code{1}、半音符には @code{2} などです) で入力されます。@c
3269 この演奏時間に掛け算を行うことによって、@c
3270 さらに長い休符を構築することができます。@c
3271 例えば、以下の休符は 2/4 拍子で 3 小節分の長さになります:
3277 この部分を譜刻するとき、複小節休符を圧縮する必要があります。@c
3278 これは以下のラン-タイム変数を設定することによって行います:
3281 \set Score.skipBars = ##t
3285 このコマンドは @code{Score} コンテキストの中にある@c
3286 プロパティ @code{skipBars} を真 (@code{##t}) にセットします。@c
3287 この休符とオプションを上記の音楽の先頭に追加することによって、@c
3290 @lilypond[quote,ragged-right]
3291 \transpose f c' \relative {
3293 \set Score.skipBars = ##t
3295 r4 f8 a | cis4 f | e4 d |
3299 楽譜はすべての音楽を一緒にすることによって作り出されます。@c
3300 他のボイスはファイル @file{bassoon-music.ly} の中の @code{bassoonNotes} の@c
3301 中にあると仮定すると、楽譜は以下のような記述で作られます:
3304 \include "bassoon-music.ly"
3305 \include "horn-music.ly"
3308 \new Staff \hornNotes
3309 \new Staff \bassoonNotes
3316 @lilypond[quote,ragged-right]
3322 r4 f8 a | cis4 f | e4 d |
3327 r4 d,8 f | gis4 c | b4 bes |
3328 a8 e f4 | g4 d | gis4 f |