]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/learning/fundamental.itely
3ae1f860462bd96080fe64421669c25f61d56161
[lilypond.git] / Documentation / ja / learning / fundamental.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: c1b0482f63f881bd3f67845e5f76a3e04675ef2a
5
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..
9 @end ignore
10
11 @c \version "2.19.22"
12
13 @c Translators: Yoshiki Sawada
14 @c Translation status: post-GDP
15
16 @node 基礎となるコンセプト
17 @chapter 基礎となるコンセプト
18 @translationof Fundamental concepts
19
20 チュートリアルではシンプルなテキスト ファイルから美しい楽譜を譜刻する方法を@c
21 見てきました。@c
22 このセクションでは、同じように美しいがより複雑な楽譜を@c
23 作り出すのに必要とされるコンセプトとテクニックについて紹介します。
24
25 @menu
26 * LilyPond 入力ファイルの仕組み::
27 * 音楽を保持するボイス::
28 * コンテキストとエングラーバ::
29 * テンプレートを拡張する::
30 @end menu
31
32
33 @node LilyPond 入力ファイルの仕組み
34 @section LilyPond 入力ファイルの仕組み
35 @translationof How LilyPond input files work
36
37 LilyPond の入力フォーマットは非常に自由な形式であり、@c
38 経験豊富なユーザにとってはファイルを構築する際の自由度が高いです。@c
39 しかしながら、この自由度が新しいユーザにとっては混乱の元になります。@c
40 このセクションではこの入力ファイルの構造についていくつか説明します。@c
41 しかしながら、簡潔さを保つためにいくつかの詳細については@c
42 目をつぶるかもしれません。@c
43 入力フォーマットについての完全な記述は、@ruser{File structure} を@c
44 参照してください。
45
46 @menu
47 * LilyPond ファイル構造の紹介::
48 * Score は (単一の) 複合的な音楽表記::
49 * 音楽表記をネストする::
50 * ネストされない括弧とタイ::
51 @end menu
52
53
54 @node LilyPond ファイル構造の紹介
55 @subsection LilyPond ファイル構造の紹介
56 @translationof Introduction to the LilyPond file structure
57
58 @cindex input format (入力フォーマット)
59 @cindex file structure (ファイル構造)
60
61 LilyPond 入力ファイルの基本例は以下のようなものです:
62
63 @example
64 \version @w{"@version{}"}
65
66 \header @{ @}
67
68 \score @{
69   @var{...複合音楽表記...}                  % すべての音楽がここに入ります!
70   \layout @{ @}
71   \midi @{ @}
72 @}
73 @end example
74
75 @noindent
76 基本パターンは本当にさまざまです。@c
77 しかしながら、この例はスタート地点として役に立ちます。
78
79 @funindex \book
80 @funindex \score
81 @cindex book
82 @cindex score
83
84 これまで、あなたが見てきた例では @code{\score @{@}} コマンドを@c
85 使用していませんでした。@c
86 その理由は、あなたが LilyPond に与えたのが簡単な入力であった場合、@c
87 LilyPond が自動的に追加のコマンドを付け加えるからです。@c
88 LilyPond は以下のような入力:
89
90 @example
91 \relative @{
92   c''4 a d c
93 @}
94 @end example
95
96 @noindent
97 を以下を簡略表記したものとして扱います:
98
99 @example
100 \book @{
101   \score @{
102     \new Staff @{
103       \new Voice @{
104         \relative @{
105           c''4 a b c
106         @}
107       @}
108     @}
109     \layout @{ @}
110   @}
111 @}
112 @end example
113
114 言い換えると、入力が保持しているのが単一の音楽表記である場合、@c
115 LilyPond はまるでその音楽表記が上で示されたコマンドで包まれている@c
116 かのように解釈します。
117
118 @cindex implicit contexts (暗黙のコンテキスト)
119 @cindex contexts, implicit (暗黙のコンテキスト)
120
121 @strong{一言警告!}  LilyPond ドキュメントの中にある多くの例では、
122 @code{\new Staff} と @code{\new Voice} コマンドは暗黙的に作成されるために@c
123 省略されています。@c
124 簡単な例ではそれでうまくいきますが、より複雑な例の場合
125 -- 特に追加のコマンドが使用される場合 --
126 コンテキストの暗黙的な作成は予想外の結果となる可能性があります。@c
127 多分、予期しない余分な譜が作成されるでしょう。@c
128 コンテキストを明示的に作成する方法は @ref{コンテキストとエングラーバ} で@c
129 説明されています。
130
131 @warning{数行以上の音楽を入力する場合、常に譜とボイスを明示的に@c
132 作成したほうが賢明です。}
133
134 今度は最初の例に戻って、@code{\score} コマンドについて検証します。@c
135 他のことはデフォルトのままにしておきます。
136
137 @code{\score} ブロックは常にただ 1 つの音楽表記を@c
138 保持していなければなりません。@c
139 そして、その音楽表記は @code{\score} コマンドのすぐ後に@c
140 置かれなければなりません。@c
141 音楽表記は単一の音符である場合もありますし、以下のような@c
142 巨大な複合表記である場合もあるということを覚えておいてください:
143
144 @example
145 @{
146   \new StaffGroup <<
147     @var{...ワーグナーのオペラの楽譜全体がここに入ります...}
148   >>
149 @}
150 @end example
151
152 @noindent
153 すべては @code{@{ ... @}} の内部にあるため、@c
154 それは 1 つの音楽表記であるとカウントされます。
155
156 以前見てきたように、@code{\score} ブロックは他のものを含む可能性もあります。@c
157 例えば以下のように:
158
159 @example
160 \score @{
161   @{ c'4 a b c' @}
162   \header @{ @}
163   \layout @{ @}
164   \midi @{ @}
165 @}
166 @end example
167
168 @funindex \header
169 @funindex \layout
170 @funindex \midi
171 @cindex header (ヘッダ)
172 @cindex layout (レイアウト)
173 @cindex midi
174
175 @noindent
176 これら 3 つのコマンド -- @code{\header}, @code{\layout}, @code{\midi} -- は@c
177 特別なものであるということに注意してください:
178 バックスラッシュ (@code{@bs{}}) で始まる他の多くのコマンドとは異なり、@c
179 これらは音楽表記 @emph{ではなく}、何らかの音楽表記の一部でもありません。@c
180 そのため、これらは @code{\score} ブロックの中に置くこともできますし、@c
181 外部に置くこともできます。@c
182 実際、これらのコマンドは一般的に @code{\score} ブロックの外側に置かれます
183 -- 例えば、このセクションの最初の例のように @code{\header} は@c
184 しばしば @code{\score} コマンドの上に置かれます。
185
186 以前は見なかった他の 2 つのコマンドは @code{\layout @{ @}} と
187 @code{\midi @{ @}} です。@c
188 それらが上記のように記述された場合、LilyPond はそれぞれ譜刻された楽譜と
189 MIDI 出力を作り出します。@c
190 それらは記譜法リファレンスの @ruser{Score layout} と
191 @ruser{Creating MIDI files} で完全に記述されています。
192
193 @cindex scores, multiple (複数の Score)
194 @cindex book block, implicit (暗黙の book ブロック)
195 @cindex implicit book block (暗黙の book ブロック)
196 @funindex \book
197
198 あなたは複数の @code{\score} ブロックを記述するかもしれません。@c
199 それらはそれぞれ別々の楽譜として扱われますが、それらは結合されて@c
200 単一の出力ファイルに収められます。@c
201 @code{\book} コマンドは必要ありません -- このコマンドは暗黙的に 1 つ@c
202 作成されます。@c
203 しかしながら、あなたが 1 つの @code{.ly} ファイルから別々に分かれた@c
204 出力ファイルを作成しようとするのなら、@c
205 それぞれのセクションを異なる出力ファイルに分けるために @code{\book}
206 コマンドが使用されます:
207 各 @code{\book} ブロックは別々の出力ファイルを作り出します。
208
209 要約:
210
211 各 @code{\book} ブロックは別々の出力ファイル (つまり PDF ファイル) を@c
212 作成します。@c
213 あなたが明示的に @code{\book} コマンドを記述しなかった場合、@c
214 LilyPond は暗黙的に入力コードを @code{\book} ブロックで包み込みます。
215
216 各 @code{\score} ブロックは @code{\book} ブロック内部で@c
217 別々の音楽表記のチャンク (塊) となります。
218
219 @cindex layout block, effect of location (レイアウト ブロックの配置場所による影響)
220
221 各 @code{\layout} ブロックはそのブロックを含んでいる @code{\score} ブロックや
222 @code{\book} ブロックに影響を与えます --
223 つまり、ある @code{\score} ブロックの内部にある @code{\layout} ブロックは@c
224 その @code{\score} ブロックにだけ影響を与え、@code{\score} ブロックの@c
225 外部にある (それゆえ、明示的あるいは暗黙的に @code{\book} ブロックの中に@c
226 ある) @code{\layout} ブロックはその @code{\book} ブロックの@c
227 中にあるすべての @code{\score} に影響を与えます。
228
229 詳細は、@ruser{Multiple scores in a book} を参照してください。
230
231 @cindex variables (変数)
232
233 もう一つの重要な簡略表記は変数を定義することです。@c
234 すべてのテンプレートがこれを使っています:
235
236 @example
237 melody = \relative @{
238   c'4 a b c
239 @}
240
241 \score @{
242   \melody
243 @}
244 @end example
245
246 LilyPond がこのファイルを見ると、@code{melody} の値
247 (イコール記号の後にあるすべて) を記憶し、@c
248 @code{\melody} と記述された箇所すべてにその値を挿入します。@c
249 変数の名前について特別なことは何もありません
250 -- 変数名は @code{melody}, @code{global}, @code{keyTime}, @code{pianorighthand}
251 などとなります。@c
252 変数名はアルファベットだけで構成されていて、LilyPond コマンド名と@c
253 異なっている限りは、ほぼどんな名前でも使用できるということを@c
254 覚えておいてください。@c
255 詳細は、@ref{変数と関数を用いて入力の手間を省く} を参照してください。@c
256 変数名の厳密な制限については、@ruser{File structure} で詳述されています。
257
258
259 @seealso
260 入力フォーマットの完全な定義は、@ruser{File structure} を参照してください。
261
262
263 @node Score は (単一の) 複合的な音楽表記
264 @subsection Score は (単一の) 複合的な音楽表記
265 @translationof Score is a (single) compound musical expression
266
267 @funindex \score
268 @cindex score
269 @cindex contents of a score block (score ブロックの内容)
270 @cindex score block, contents of (score ブロックの内容)
271 @cindex compound music expression (複合音楽表記)
272 @cindex music expression, compound (複合音楽表記)
273
274 前のセクション -- @ref{LilyPond ファイル構造の紹介} -- で
275 LilyPond 入力ファイルの一般的な構造について見てきました。@c
276 しかしながら、我々は最も重要な部分を飛ばしてきたようです:
277 どうやって @code{\score} の後に記述するものを見つけ出すのでしょうか?
278
279 我々はそのことを完全には飛ばしてきませんでした。@c
280 この大きな謎は簡単なことであり、謎でもなんでも@emph{ないのです}。@c
281 以下の行がこの謎についてすべてを説明しています:
282
283 @quotation
284 @emph{@code{\score} ブロックは 1 つの複合音楽表記で始まらなくてはなりません。}
285 @end quotation
286
287 @noindent
288 音楽表記と複合音楽表記が意味しているものを理解するには、チュートリアルの
289 @ref{音楽表記についての説明} を読み返すと役に立つかもしれません。@c
290 そこでは、小さな音楽表記 -- 音符から始めて、それから和音など -- から@c
291 大きな音楽表記を構築する方法を説明しています。@c
292 今度は、大きな音楽表記から始めます。@c
293 話を簡単にするために、例を歌手 1 人とピアノとします。@c
294 このアンサンブルでは @code{StaffGroup} は必要ありません。@c
295 @code{StaffGroup} はいくつかの譜をグループ化して左端に括弧を付けるだけですが、@c
296 我々は歌手 1 人とピアノ用の譜を必要としています。
297
298 @example
299 \score @{
300   <<
301     \new Staff = "singer" <<
302     >>
303     \new PianoStaff = "piano" <<
304     >>
305   >>
306   \layout @{ @}
307 @}
308 @end example
309
310 ここで譜に名前を付けます -- @qq{singer} と @qq{piano} です。
311 ここで名前を付ける必要は必ずしもありませんが、@c
312 一見して各譜が何なのか見て取れるので名前を付けておくべきです。
313
314 @ignore
315 @example
316 \score @{
317   @{ % this brace begins the overall compound music expression
318     % この波括弧は複合音楽表記全体の開始点です
319     \new StaffGroup <<
320       @var{...insert the whole score of a Wagner opera in here...}
321       @var{...ワーグナーのオペラの楽譜全体がここに入ります...}
322     >>
323   @} % this brace ends the overall compound music expression
324     % この波括弧は複合音楽表記全体の終了点です
325   \layout @{ @}
326 @}
327 @end example
328
329 ワーグナーのオペラの長さはこのマニュアルの軽く 2 倍はあります。@c
330 そのため、歌手とピアノだけを加えることにします。@c
331 このアンサンブルでは複数の譜をまとめて左端に波括弧を付ける
332 @code{StaffGroup} は必要ありません。@c
333 そのため、それを削除します。@c
334 しかしながら、歌手とピアノが@emph{必要}です。
335
336 @example
337 \score @{
338   <<
339     \new Staff = "singer" <<
340     >>
341     \new PianoStaff = "piano" <<
342     >>
343   >>
344   \layout @{ @}
345 @}
346 @end example
347 @end ignore
348
349 歌手とピアノが同時進行であることを示すために @code{@{ ... @}} の代わりに
350 @code{<< ... >>} を使用するということを思い出してください。@c
351 こうすることで、ボーカル パートはピアノ パートの上に表示されます。@c
352 上の例で歌手の譜が一続きの音楽表記を保持するだけであるのなら
353 @code{<< ... >>} を使う必要はありませんが、@c
354 譜が同時進行する複数の音楽表記
355 -- 例えば、同時進行する 2 つの声部や、声部と歌詞です
356 -- を保持するのであれば必須となります。@c
357 我々は歌詞を持つ声部にしようとしているので、二重角括弧が必須です。@c
358 実際の音楽は後で付け加えるとして、@c
359 ここではいくつかのダミーの音符と歌詞を配置してみます。@c
360 歌詞の入力の仕方を忘れてしまったのなら、@c
361 @ref{簡単な歌曲を作成する} の @code{\addlyrics} を見直してください。
362
363 @lilypond[verbatim,quote,ragged-right]
364 \score {
365   <<
366     \new Staff = "singer" <<
367       \new Voice = "vocal" { c'1 }
368       \addlyrics { And }
369     >>
370     \new PianoStaff = "piano" <<
371       \new Staff = "upper" { c'1 }
372       \new Staff = "lower" { c'1 }
373     >>
374   >>
375   \layout { }
376 }
377 @end lilypond
378
379 更に詳細を加えていきます。@c
380 歌手の譜は @code{Voice} (LilyPond では、この用語は音符のセットを@c
381 参照するものであり、必ずしもボーカルの音符であるわけではありません
382 -- 例えば、一般にバイオリンは 1 つのボイスを演奏します) と歌詞を保持します。@c
383 さらに、ピアノの譜表は上部譜表(右手) と下部譜 (左手) を保持します。
384
385 この段階で、音符の入力を開始することができます。@c
386 @code{\new Voice = "vocal"} の後の波括弧の中に、以下を書き加えることができます:
387
388 @example
389 \relative @{
390   r4 d''8\noBeam g, c4 r
391 @}
392 @end example
393
394 しかしながら、そのようにすると、@code{\score} セクションは非常に長くなり、@c
395 何が起こるのか理解しにくくなります。@c
396 そのため、直接音符を付け加える代わりに変数を使用しましょう。@c
397 前のセクションで変数についての紹介を行いました。@c
398 覚えていますよね?@c
399 @code{text} 変数の内容が間違いなく歌詞と解釈されるよう、@c
400 内容の前に @code{\lyricmode} を記述します。@c
401 @code{\addlyrics} と同様に、これは入力モードを歌詞に切替間す。@c
402 @code{\lyricmode} を記述しなければ、LilyPond は内容を音符と解釈しようとして@c
403 エラーを引き起こします。
404 (他にもいくつかの入力モードがあります。@ruser{Input modes} を参照してください。)
405
406 では、いくつかの音符を加えて、左手にはヘ音記号を加えます。@c
407 これで、実際の楽譜の一部ができます:
408
409 @lilypond[verbatim,quote,ragged-right]
410 melody = \relative { r4 d''8\noBeam g, c4 r }
411 text   = \lyricmode { And God said, }
412 upper  = \relative { <g' d g,>2~ <g d g,> }
413 lower  = \relative { b,2 e }
414
415 \score {
416   <<
417     \new Staff = "singer" <<
418       \new Voice = "vocal" { \melody }
419       \addlyrics { \text }
420     >>
421     \new PianoStaff = "piano" <<
422       \new Staff = "upper" { \upper }
423       \new Staff = "lower" {
424         \clef "bass"
425         \lower
426       }
427     >>
428   >>
429   \layout { }
430 }
431 @end lilypond
432
433 @code{\score} セクションを書いている (あるいは読んでいる) とき、@c
434 ゆっくりと注意深く進めてください。@c
435 外側のレベルから始めて、それから内部の細かな部分に取り組んでください。@c
436 さらに、きちんとインデントを入れると非常に役に立ちます
437 -- これは、テキスト エディタの中で同じレベルにある各要素は@c
438 同じ水平位置から始まるということを保証します。
439
440
441 @seealso
442 記譜法リファレンス: @ruser{Structure of a score}
443
444
445 @node 音楽表記をネストする
446 @subsection 音楽表記をネストする
447 @translationof Nesting music expressions
448
449 @cindex staves, temporary (一時的な譜)
450 @cindex temporary staves (一時的な譜)
451 @cindex ossias (オッシア)
452
453 すべての譜を開始時に宣言することは必須ではありません。@c
454 譜はどこででも臨時に導入される可能性があります。@c
455 これはオッシアを作成する際に特に有用です -- @rglos{ossia} を参照してください。@c
456 ここで、3 つの音符に対して臨時に新しい譜を導入する方法を示す@c
457 ちょっとした例を挙げます:
458
459 @lilypond[verbatim,quote,ragged-right]
460 \new Staff {
461   \relative {
462     r4 g'8 g c4 c8 d |
463     e4 r8
464     <<
465       { f8 c c }
466       \new Staff {
467         f8 f c
468       }
469     >>
470     r4 |
471   }
472 }
473 @end lilypond
474
475 @noindent
476 音部記号のサイズは音部変更後に譜刻される音部記号のサイズ
477 -- 行の開始点での音部記号よりも少し小さい
478 -- と同じであるということに注意してください。@c
479 これは行の途中で譜刻される音部記号全般に言えることです。
480
481 @cindex staff, positioning (譜表の配置)
482
483 オッシアは以下のように譜の上に置かれるかもしれません:
484
485 @lilypond[verbatim,quote,ragged-right]
486 \new Staff = "main" {
487   \relative {
488     r4 g'8 g c4 c8 d |
489     e4 r8
490     <<
491       { f8 c c }
492       \new Staff \with {
493         alignAboveContext = #"main"
494       } { f8 f c }
495     >>
496     r4 |
497   }
498 }
499 @end lilypond
500
501 この例は後で説明される @code{\with} を使用しています。@c
502 このコマンドは単一の譜のデフォルトの振る舞いを変更することを意味します。@c
503 ここでは、このコマンドは新しい譜をデフォルトの位置 (@qq{main} と@c
504 呼ばれている譜の下) ではなく、上に置くべきであると言っています。
505
506
507 @seealso
508 オッシアはしばしば音部記号や拍子記号無しで描かれ、@c
509 通常は小さなフォントで描かれます。@c
510 これらはまだ紹介されていない追加のコマンドを必要とします。@c
511 @ref{オブジェクトのサイズ} と @ruser{オッシア譜} を参照してください。
512
513
514 @node ネストされない括弧とタイ
515 @subsection ネストされない括弧とタイ
516 @translationof On the un-nestedness of brackets and ties
517
518 @cindex brackets, nesting (括弧をネストする)
519 @cindex bracket types (括弧のタイプ)
520 @cindex brackets, enclosing vs. marking (囲みの括弧 vs. マークの括弧)
521
522 これまでに LilyPond への入力ファイルを書く際に使用する括弧と@c
523 括弧のような構成物にはいくつかの種類があるということを見てきました。@c
524 これらは異なる規則 -- 最初は混乱を引き起こす可能性があります -- に従います。@c
525 規則についての説明を行う前に、@c
526 括弧と括弧のような構成物の種類を再確認してみましょう。
527
528 @c attempt to force this onto a new page
529 @need 50
530 @multitable @columnfractions .3 .7
531 @headitem 括弧のタイプ
532   @tab 機能
533 @item @code{@{ .. @}}
534   @tab 一続きの音楽を囲みます
535 @item @code{< .. >}
536   @tab 和音となる音符を囲みます
537 @item @code{<< .. >>}
538   @tab 同時進行する音楽表記を囲みます
539 @item @code{( .. )}
540   @tab スラーの開始点と終了点を意味します
541 @item @code{\( .. \)}
542   @tab フレージング スラーの開始点と終了点を意味します
543 @item @code{[ .. ]}
544   @tab 手動連桁の開始点と終了点を意味します
545 @end multitable
546
547 こららに対して、音符の間や音符をまたがって線を生成する他の構文を@c
548 付け加えるべきです: タイ (チルド @code{~} によって記述されます)、@c
549 連符 (@code{\times x/y @{..@}} として記述されます)、@c
550 グレイス ノート (@code{\grace@{..@}} として記述されます) です。
551
552 LilyPond 以外では、種類の異なる括弧が適切にネストされること
553 -- @code{[ @{ ( .. ) @} ]} のように --
554 が一般的な使い方であり、@c
555 括弧の終わりの順序は正確に括弧の始まりの順序と逆になります。@c
556 このことは上記の表で @q{囲みます} という言葉で記述されている
557 3 種類の括弧に対しては@strong{必須}となります
558 -- それらは適切にネストされなければなりません。@c
559 しかしながら、残りの括弧のような構成物
560 -- 上記の表で @q{意味します} という言葉で@c
561 記述されいるものと、タイ、連符で使用されるもの --
562 はいかなる括弧ともネストされる必要は @strong{ありません}。@c
563 実際、これらは何かを囲むという意味では括弧ではありません
564 -- それらは単に何かが始まる場所、終わる場所を示すためのマークです。
565
566 そのため、例えばフレージング スラーは手動で挿入される連桁の前に開始して、@c
567 その手動連桁の前に終わる可能性もあります -- たぶん音楽的では@c
568 ないかもしれませんが、可能性はあります:
569
570 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
571  { g8\( a b[ c b\) a] }
572 @end lilypond
573
574 一般に、種類の異なる括弧、括弧のような構成物、@c
575 それに連符、タイ、装飾小音符の囲みは自由に組み合わせることができます。@c
576 以下の例では、連桁は連符の中にまで伸びていて (行 1)、@c
577 スラーは連符の中にまで伸びていて (行 2)、@c
578 連桁とスラーが連符の中にまで伸びていて (行 3)、@c
579 タイが 2 つの連符にまたがっていて、@c
580 さらにフレージング スラーが連符の外にまで伸びています (行 3 と 4)。
581
582 @lilypond[quote,verbatim,ragged-right]
583 \relative {
584   r16[ g' \tuplet 3/2 { r16 e'8] }
585   g,16( a \tuplet 3/2 { b16 d) e }
586   g,8[( a \tuplet 3/2 { b8 d) e~] } |
587   \tuplet 5/4 { e32\( a, b d e } a4.\)
588 }
589 @end lilypond
590
591
592 @node 音楽を保持するボイス
593 @section 音楽を保持するボイス
594 @translationof Voices contain music
595
596 歌手は歌うボイスを必要とし、@c
597 LilyPond も歌う (演奏する) ボイスを必要とします。@c
598 楽譜の中にあるすべての楽器に対する実際の音楽はボイスの中に保持されます
599 -- このことは LilyPond すべてのコンセプトの中での最も基礎的なことです。
600
601 @menu
602 * 私はボイスを聴いている::
603 * ボイスを明示的にインスタンス化する::
604 * ボイスとボーカル::
605 @end menu
606
607
608 @node 私はボイスを聴いている
609 @subsection 私はボイスを聴いている
610 @translationof I'm hearing Voices
611
612 @cindex polyphony (多声)
613 @cindex layers (レイヤ)
614 @cindex multiple voices (複数のボイス)
615 @cindex voices, multiple (複数のボイス)
616 @cindex Voice context (Voice コンテキスト)
617 @cindex context, Voice (Voice コンテキスト)
618 @cindex simultaneous music (同時進行する音楽)
619 @cindex music, simultaneous (同時進行する音楽)
620 @cindex concurrent music (並列な音楽)
621 @cindex music, concurrent (並列な音楽)
622 @cindex voices vs. chords (ボイス vs. 和音)
623 @cindex chords vs. voices (和音 vs. ボイス)
624
625 LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、最も内部にあるレイヤは
626 @q{ボイス コンテキスト} または縮めて単に @q{ボイス} と呼ばれます。@c
627 ボイスはときどき他の記譜法パッケージの中で @q{レイヤ} と呼ばれます。
628
629 実際、ボイス レイヤまたはコンテキストは音楽を保持することができる@c
630 唯一のものです。@c
631 ボイス コンテキストが明示的に宣言されていない場合、この章の始めで@c
632 見てきたようにボイス コンテキストが 1 つ自動的に生成されます。@c
633 オーボエなどといった楽器は同時に 1 つの音符だけを演奏できます。@c
634 そのような楽器のために書かれた楽譜はボイスを 1 つだけを必要とします。@c
635 ピアノのように同時に複数の音符を演奏することができる楽器はしばしば、@c
636 それらが演奏することのできる同時進行の異なる音符やリズムを@c
637 エンコードするために、複数のボイスを必要とします。
638
639 もちろん、単一のボイスは和音の中で多くの音符を保持することができます。@c
640 それでは、複数のボイスが実際に必要とされるのはどんな場合なのでしょうか?@c
641 まずは、4 つの和音を持つ以下の例を見てください:
642
643 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
644 \key g \major
645 <d g>4 <d fis> <d a'> <d g>
646 @end lilypond
647
648 この例は単一の山括弧からなる和音記号 @code{< ... >} を使って@c
649 表記することができ、必要とされるボイスは 1 つだけです。@c
650 しかしながら、F シャープが A に移行する際に、F シャープは実際には
651 8 分音符であり、そのあとに 8 分音符の G が続くとしたらどうでしょうか?@c
652 そのような場合、同時に開始されるが演奏時間が異なる 2 つの音符を@c
653 持つことになります: 4 分音符の D と 8 分音符の F シャープです。@c
654 これらの音符をどのように記述すればよいのでしょうか?@c
655 これらの音符は和音として記述することはできません。@c
656 なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。@c
657 そして、それらの音符は同時に開始しなければならないので、2 つのシーケンシャルな
658 (連続した) 音符として記述することもできません。@c
659 この場合は 2 つのボイスが必要となります。
660
661 上記のことが LilyPond 入力構文でどのように達成されるのかを見てみましょう。
662
663 @funindex << \\ >>
664 @funindex \\
665
666 1 つの譜に複数のボイスがある楽譜を入力する最も簡単な方法は、@c
667 各ボイスをシーケンスに (続けて) 入力し
668 (各ボイスを @code{@{...@}} の中に入れます)、@c
669 それらのボイスを @code{<<...>>} を使って同時進行するよう組み合わせます。@c
670 さらに、各断片は、それぞれが別の断片であることを示すために、@c
671 ダブル バックスラッシュ @code{\\} で区切られなければなりません。@c
672 ダブル バックスラッシュが無ければ、すべての音符は単一のボイスの中に挿入され、@c
673 通常はエラーとなります。@c
674 このテクニックは、大部分が同じ音で、時々短い部分で多声になる楽曲に特に@c
675 適しています。
676
677 以下では、上記の例の和音を 2 つのボイスに分け、経過音とスラーを付け加えています:
678
679 @lilypond[quote,verbatim,ragged-right]
680 \relative {
681   \key g \major
682   %    Voice = "1"             Voice = "2"
683   << { g'4 fis8( g) a4 g } \\ { d4 d d d }  >>
684 }
685 @end lilypond
686
687 この例では 2 番目のボイスの符幹が下向きになっていることに気付いてください。
688
689 今度はもう 1 つ簡単な例を挙げてみます:
690
691 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
692 \key d \minor
693 %    Voice = "1"           Voice = "2"
694 << { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
695 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
696 << { a2. r4 }         \\ { fis2. s4 }       >> |
697 @end lilypond
698
699 各小節で別々に @code{<< \\ >>} 構造を使用する必要はありません。@c
700 各小節に音符が少ししかないような音楽の場合、@c
701 このレイアウトはコードの可読性を良くするのに役立ちます。@c
702 しかしながら、各小節に多くの音符がある場合、@c
703 以下のようにボイス毎に分離した方が良いかもしれません:
704
705 @lilypond[quote,verbatim,ragged-right]
706 <<
707   \key d \minor
708   \relative { % Voice = "1"
709     r4 g' g4. a8 |
710     bes4 bes c bes |
711     a2. r4 |
712   } \\
713   \relative { % Voice = "2"
714     d'2 d4 g |
715     g4 g g8( a) g4 |
716     fis2. s4 |
717   }
718 >>
719 @end lilypond
720
721
722 @cindex voices, naming (ボイスに名前を付ける)
723 @cindex voices crossing brackets (括弧をまたがるボイス)
724 @cindex slurs crossing brackets (括弧をまたがるスラー)
725 @cindex ties crossing brackest (括弧をまたがるタイ)
726
727 この例にあるボイスは 2 つだけです。@c
728 しかしながら、これと同じ構成にもっと多くのバック スラッシュを@c
729 付け加えることによって、3 つかそれ以上のボイスを持たせることが可能です。
730
731 ボイス コンテキストは @code{"1"}, @code{"2"} などの名前を持ちます。@c
732 最初の 2 つのコンテキストは @emph{外側} のボイスをセットして、@c
733 上のボイスはコンテキスト @code{"1"}、下のボイスはコンテキスト @code{"2"}
734 になります。@c
735 内側のボイスはコンテキスト @code{"3"} と @code{"4"} になります。@c
736 これらの各コンテキストでは、スラー、符幹、タイ、強弱記号などの垂直方向の@c
737 向きは適切にセットされます。
738
739 @lilypond[quote,verbatim,fragment]
740 \new Staff \relative {
741   % Main voice
742   c'16 d e f
743   %    Voice = "1"   Voice = "2"               Voice = "3"
744   << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
745   << { d2 e2 }  \\ { c8 b16 a b8 g ~ 2 } \\ { s4 b4 c2 } >> |
746 }
747 @end lilypond
748
749 これらのボイスはすべてメインのボイスからは分かれています。@c
750 メインのボイスの音符は@code{<< .. >>} 構造の外にあるからです。@c
751 この @code{<< .. >>} 構造を @emph{同時進行構造} と呼ぶことにしましょう。@c
752 スラーとタイは同じボイス内にある音符だけをつなぎます。@c
753 そのため、スラーとタイは同時進行構造を出たり入ったりすることはありません。@c
754 反対に、同じ譜上にある個々の同時進行構造で、@c
755 平行の位置にあるボイスは同じボイスになります。@c
756 さらに、その他のボイス関連プロパティは同時進行構造をまたがって持ち越されます。@c
757 ここで、上記と同じ例で各ボイスに対して異なる色と符頭を割り当ててみます。@c
758 あるボイスでの変更は他のボイスに影響を与えませんが、@c
759 その後に続く同じボイス (訳者: 平行位置にあるボイス) で@c
760 その変更が維持されることに注意してください。@c
761 さらに、タイでつながれた音符は、同じボイスとなる 2 つの同時進行構造に@c
762 またがって分かれるかもしれないということに注意してください。
763
764 @lilypond[quote,verbatim]
765 \new Staff \relative {
766   % Main voice
767   c'16 d e f
768   <<  % Bar 1
769     {
770       \voiceOneStyle
771       g4 f e
772     }
773   \\
774     {
775       \voiceTwoStyle
776       r8 e4 d c8~
777     }
778   >> |
779   <<  % Bar 2
780      % Voice 1 continues
781     { d2 e }
782   \\
783      % Voice 2 continues
784     { c8 b16 a b8 g~ 2 }
785   \\
786     {
787       \voiceThreeStyle
788       s4 b c2
789     }
790   >> |
791 }
792 @end lilypond
793
794 @funindex \voiceOneStyle
795 @funindex \voiceTwoStyle
796 @funindex \voiceThreeStyle
797 @funindex \voiceFourStyle
798 @funindex \voiceNeutralStyle
799
800 コマンド @code{\voiceXXXStyle} は主にこのマニュアルのような教育目的の@c
801 ドキュメントで使用することを意図したものです。@c
802 このコマンドは、各ボイスが容易に見分けられるように、符頭、符幹、連桁の色、@c
803 それに符頭のスタイルを変更します。@c
804 ボイス 1 は赤でダイアモンドの符頭を持つようにセットされ、@c
805 ボイス 2 は青で三角形の符頭を、ボイス 3 は緑で×付きの円を、@c
806 ボイス 4 (ここでは使用されていません) はマゼンダの×の符頭を持つように@c
807 セットされます。@c
808 @code{\voiceNeutralStyle} (これもここでは使用されていません) は@c
809 符頭のスタイルをデフォルトに戻します。@c
810 後ほど、ユーザがこのようなコマンドを作成するための方法を見ていきます。@c
811 @ref{オブジェクトの可視性と色} と @ref{調整のために変数を使用する}
812 を参照してください。
813
814 @cindex polyphony and relative note entry (多声と相対音符入力)
815 @cindex relative note entry and polyphony (相対音符入力と多声)
816
817 多声部は @code{\relative @{ @}} ブロック内の音符の相対関係を変えません。@c
818 各音符は直前の音符あるいは直前の和音の最初の音符との相対関係で計算されます。@c
819 そのため、以下の例では
820
821 @example
822 \relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
823 @end example
824
825 @noindent
826 @code{noteB} は @code{noteA} との相対関係で決まり                         @*
827 @code{noteC} は @code{noteA} ではなく @code{noteB} との相対関係で決まり  @*
828 @code{noteD} は @code{noteA} や @code{noteC} ではなく
829 @code{noteC} との相対関係で決まり                                           @*
830 @code{noteE} は @code{noteA} ではなく @code{noteD} との相対関係で決まります。
831
832 各ボイスの中にある音符の音程がボイスごとに大きく離れている場合、@c
833 各ボイスの始めに @code{\relative} コマンドを置くと明瞭になるかもしれません:
834
835 @example
836 \relative c' @{ noteA ... @}
837 <<
838   \relative c'' @{ < noteB noteC > ... @}
839 @bs{}@bs{}
840   \relative g' @{ noteD ... @}
841 >>
842 \relative c' @{ noteE ... @}
843 @end example
844
845 最後に、もっと複雑な楽曲の中にあるボイスを分析してみましょう。@c
846 以下は、ショパンの Deux Nocturnes, Op 32 の 2 番の最初の 2 小節です。@c
847 この例は、記譜を行うためのテクニックをいくつか示すために、@c
848 本章の後の方と次の章で使用されます。@c
849 ですから、今はコードの中にある意味不明に見えるものは無視して、@c
850 音楽とボイスだけに注目してください -- 込み入った内容は後ほど説明します。
851
852 @c The following should appear as music without code
853 @lilypond[quote,ragged-right]
854 \new Staff \relative {
855   \key aes \major
856   <<  % Voice one
857     { c''2 aes4. bes8 }
858   \\  % Voice two
859     {
860       % Ignore these for now - they are explained in Ch 4
861       \once \override NoteColumn.ignore-collision = ##t
862       <ees, c>2
863       \once \override NoteColumn.force-hshift = #0.5
864       des2
865     }
866   \\  % No voice three
867   \\  % Voice four
868     {
869       \override NoteColumn.force-hshift = #0
870       aes'2 f4 fes
871     }
872   >> |
873   <c ees aes c>1 |
874 }
875 @end lilypond
876
877 符幹の向きはしばしば 2 つの同時進行する旋律ラインのつながりを示すために@c
878 使用されます。@c
879 ここでは、一番上の音符の符幹はすべて上向きであり、@c
880 下の方にある音符の符幹はすべて下向きです。@c
881 これは、複数のボイスが必要とされているということを示す最初の兆候です。
882
883 しかしながら、複数のボイスが実際に必要とされるのは、@c
884 同時に始まる音符が異なる演奏時間を持つ場合です。@c
885 最初の小節の 3 拍目を見てください。@c
886 A フラットは付点 4 分音符であり、F は 4 分音符、D フラットは半音符です。@c
887 これらの音符を和音として記述することはできません。@c
888 なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。@c
889 これらの音符をシーケンシャルな (連続する) 音符として記述することもできません。@c
890 なぜなら、これらの音符は同時に始まらなければならないからです。@c
891 この箇所では 3 つのボイスが必要となり、以下に示すように一般的には@c
892 この小節全体を 3 つのボイスで記述します。@c
893 そこでは、3 つのボイスに対して異なる符頭と色を割り当てています。@c
894 もう一度繰り返しますが、この例のコードのことは後ほど説明しますので、@c
895 理解できないことは無視してください。
896
897 @c The following should appear as music without code
898 @c The three voice styles should be defined in -init
899 @lilypond[quote,ragged-right]
900 \new Staff \relative {
901   \key aes \major
902   <<
903     { % Voice one
904       \voiceOneStyle
905       c''2 aes4. bes8
906     }
907   \\  % Voice two
908     { \voiceTwoStyle
909       % Ignore these for now - they are explained in Ch 4
910       \once \override NoteColumn.ignore-collision = ##t
911       <ees, c>2
912       \once \override NoteColumn.force-hshift = #0.5
913       des2
914     }
915   \\  % No Voice three (we want stems down)
916   \\  % Voice four
917     { \voiceThreeStyle
918       \override NoteColumn.force-hshift = #0
919       aes'2 f4 fes
920     }
921   >> |
922   <c ees aes c>1 |
923 }
924 @end lilypond
925
926
927 この音楽のコードをゼロから記述してみましょう。@c
928 これから見ていくように、いくつかの問題に遭遇します。@c
929 すでに学んだように、最初の小節の音楽を 3 つのボイスに分けて記述するために
930 @code{<< \\  >>} 構造を使用します:
931
932 @c ignore
933 @lilypond[quote,verbatim,fragment,ragged-right]
934 \new Staff \relative {
935   \key aes \major
936   <<
937     { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
938   >>
939   <c ees aes c>1
940 }
941 @end lilypond
942
943 @cindex stem down (下向きの符幹)
944 @cindex voices and stem directions (ボイスと符幹の向き)
945 @cindex stem directions and voices (符幹の向きとボイス)
946 @cindex stem up (上向きの符幹)
947
948 符幹の向きは自動的に割り当てられ、奇数番号のボイスが上向きの符幹、@c
949 偶数番号のボイスが下向きの符幹を持ちます。@c
950 ボイス 1 と 2 の符幹は正しいのですが、@c
951 ボイス 3 の符幹はここでは下向きになるべきです。@c
952 ボイス 3 を省略して音楽をボイス 4 に記述することによって修正できます。@c
953 ボイス 3 を省略するには、@code{\\} を 2 つ記述します:
954
955 @lilypond[quote,verbatim,fragment,ragged-right]
956 \new Staff \relative {
957   \key aes \major
958   << % Voice one
959     { c''2 aes4. bes8 }
960   \\ % Voice two
961     { <ees, c>2 des }
962   \\ % Omit Voice three
963   \\ % Voice four
964     { aes'2 f4 fes }
965   >> |
966   <c ees aes c>1 |
967 }
968 @end lilypond
969
970 @noindent
971 これにより符幹の向きが修正されました。@c
972 しかしながら、音符の水平方向の配置が望んだとおりになっていません。@c
973 内側の音符の符頭や符幹が外側のボイスと衝突する場合 LilyPond は内側の@c
974 音符の位置をずらしますが、これはピアノ譜では不適切です。@c
975 他の状況でも、LilyPond が音符の位置をずらしても衝突が解決されない場合が@c
976 あります。@c
977 LilyPond は音符の水平方向の位置を調節するための手段をいくつか提供します。@c
978 しかしながら、我々はまだこの問題を修正するための方法を見ていく準備が@c
979 整っていないので、この問題は後に残しておくことにします
980 -- @ref{Fixing overlapping notation} の @code{force-hshift} プロパティ@c
981 を参照してください。
982
983 @warning{歌詞、スパナ (スラー、タイ、強弱のヘアピン記号など) をボイスを@c
984 @q{またいで} 作成することはできません。}
985
986 @seealso
987 記譜法リファレンス:
988 @ruser{複数のボイス}
989
990
991 @node ボイスを明示的にインスタンス化する
992 @subsection ボイスを明示的にインスタンス化する
993 @translationof Explicitly instantiating voices
994
995 @funindex \voiceOne
996 @funindex \voiceTwo
997 @funindex \voiceThree
998 @funindex \voiceFour
999 @funindex \oneVoice
1000 @funindex \new Voice
1001 @cindex voice contexts, creating (ボイス コンテキストを作成する)
1002
1003 多声部音楽を作成するためにボイス コンテキストを手動で
1004 @code{<< >>} ブロックの中に作成することもできます。@c
1005 符幹、スラーなどの向きを示すために
1006 @code{\voiceOne} @dots{} @code{\voiceFour} を使用します。@c
1007 この手法は各ボイスを別々にして、より記述的な名前を与えることを可能にするため、@c
1008 長い楽譜ではわかりやすいものになります。
1009
1010 本質的には、前のセクションで使用した構造 @code{<< \\ >>}:
1011
1012 @example
1013 \new Staff @{
1014   \relative @{
1015     << @{ e'4 f g a @} \\ @{ c,4 d e f @} >>
1016   @}
1017 @}
1018 @end example
1019
1020 @noindent
1021 は以下と等価です:
1022
1023 @example
1024 \new Staff <<
1025   \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @}
1026   \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @}
1027 >>
1028 @end example
1029
1030 上記の両方ともが以下の楽譜を生成します:
1031
1032 @c The following example should not display the code
1033 @lilypond[ragged-right,quote]
1034 \new Staff <<
1035   \new Voice = "1" { \voiceOne \relative { e'4 f g a } }
1036   \new Voice = "2" { \voiceTwo \relative { c'4 d e f } }
1037 >>
1038 @end lilypond
1039
1040 @cindex voices, reverting to single (単一のボイスに戻す)
1041 @cindex reverting to a single voice (単一のボイスに戻す)
1042
1043 @code{\voiceXXX} コマンドは符幹、スラー、タイ、アーティキュレーション、@c
1044 テキストの注釈、付点音符の付点、運指記号の向きをセットします。@c
1045 @code{\voiceOne} と @code{\voiceThree} はこれらのオブジェクトを上向きにし、@c
1046 一方の @code{\voiceTwo} と @code{\voiceFour} は下向きにします。@c
1047 さらに、符頭の衝突を避ける必要がある場合、これらのコマンドは@c
1048 各ボイスに対して水平方向のシフトを発生させます。@c
1049 コマンド @code{\oneVoice} は設定を単一のボイスの場合の通常値に戻します。
1050
1051 いくつかの簡単な例で、@code{\oneVoice}, @code{\voiceOne}, @code{\voiceTwo} が@c
1052 マークアップ、タイ、スラー、強弱記号に与える影響を見ていきましょう:
1053
1054 @lilypond[quote,ragged-right,verbatim]
1055 \relative {
1056   % Default behavior or behavior after \oneVoice
1057   c'4 d8~ 8 e4( f | g4 a) b-> c |
1058 }
1059 @end lilypond
1060
1061 @lilypond[quote,ragged-right,verbatim]
1062 \relative {
1063   \voiceOne
1064   c'4 d8~ 8 e4( f | g4 a) b-> c |
1065   \oneVoice
1066   c,4 d8~ 8 e4( f | g4 a) b-> c |
1067 }
1068 @end lilypond
1069
1070 @lilypond[quote,ragged-right,verbatim]
1071 \relative {
1072   \voiceTwo
1073   c'4 d8~ 8 e4( f | g4 a) b-> c |
1074   \oneVoice
1075   c,4 d8~ 8 e4( f | g4 a) b-> c |
1076 }
1077 @end lilypond
1078
1079 今度は、前のセクションの例を使って同じ多声部音楽のパッセージを
1080 3 つの異なる方法で表記する例を見ていきます。@c
1081 それぞれ異なる状況で利点があります。
1082
1083 1 つはメイン ボイスに属する @code{<< >>} の内部に直接表記を記述する方法です
1084 (しかしながら、音符は @code{<< \\ >>} 構造の中に置かれては@strong{いません})。@c
1085 これはメイン ボイスの途中で追加のボイスが現れる場合に有用です。@c
1086 ここでは例にさらに調整を加えます。@c
1087 赤のダイアモンド形の音符はメイン メロディが単一のボイス コンテキストに@c
1088 なっていて、その上にフレージング スラーを描くことができるということを@c
1089 示しています。
1090
1091 @lilypond[quote,ragged-right,verbatim]
1092 \new Staff \relative {
1093   \voiceOneStyle
1094   % This section is homophonic
1095   c'16^( d e f
1096   % Start simultaneous section of three voices
1097   <<
1098     % Continue the main voice in parallel
1099     { g4 f e | d2 e) | }
1100     % Initiate second voice
1101     \new Voice {
1102       % Set stems, etc., down
1103       \voiceTwo
1104       r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1105     }
1106     % Initiate third voice
1107     \new Voice {
1108       % Set stems, etc, up
1109       \voiceThree
1110       s2. | s4 b c2 |
1111     }
1112   >>
1113 }
1114 @end lilypond
1115
1116 @cindex nesting music expressions (音楽表記をネストさせる)
1117 @cindex nesting simultaneous constructs (同時進行構造をネストさせる)
1118 @cindex nesting voices (ボイスをネストさせる)
1119 @cindex voices, temporary (一時的なボイス)
1120 @cindex voices, nesting (ボイスをネストさせる)
1121
1122 @lilypond[quote,ragged-right,verbatim]
1123 \new Staff \relative {
1124   c'16^( d e f
1125   <<
1126     { g4 f e | d2 e) | }
1127     \new Voice {
1128       \voiceTwo
1129       r8 e4 d c8~ |
1130       <<
1131         { c8 b16 a b8 g~ 2 | }
1132         \new Voice {
1133           \voiceThree
1134           s4 b c2 |
1135         }
1136       >>
1137     }
1138   >>
1139 }
1140 @end lilypond
1141
1142 @cindex spacing notes (空白音符)
1143
1144 新しいボイスを一時的にネストさせる手法は音楽のほんの一部だけが多声である場合に@c
1145 有用です。@c
1146 しかしながら、楽譜全体が多声である場合、@c
1147 一貫して複数のボイスを使用した方がわかりやすくなります。@c
1148 ボイスが無音の場所を飛ばすには以下のように空白音符を使用します:
1149
1150 @lilypond[quote,ragged-right,verbatim]
1151 \new Staff \relative <<
1152   % Initiate first voice
1153   \new Voice {
1154     \voiceOne
1155     c'16^( d e f g4 f e | d2 e) |
1156   }
1157   % Initiate second voice
1158   \new Voice {
1159     % Set stems, etc, down
1160     \voiceTwo
1161     s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1162   }
1163   % Initiate third voice
1164   \new Voice {
1165     % Set stems, etc, up
1166     \voiceThree
1167     s1 | s4 b c2 |
1168   }
1169 >>
1170 @end lilypond
1171
1172
1173 @subsubheading 音符列
1174 @c Note columns
1175
1176 @cindex note column (音符列)
1177 @cindex note collisions (音符の衝突)
1178 @cindex collisions, notes (音符の衝突)
1179 @cindex shift commands (シフト コマンド)
1180 @funindex \shiftOff
1181 @funindex \shiftOn
1182 @funindex \shiftOnn
1183 @funindex \shiftOnnn
1184
1185 和音の中で小さな間隔で置かれる音符、@c
1186 あるいは異なるボイスで同時に発生する音符は、@c
1187 符頭が重なるのを避けるために 2 列、時にはそれ以上の列に割り振られます。@c
1188 これらの列は音符列と呼ばれます。@c
1189 それぞれのボイスに対して別々の列が存在し、符頭の衝突が起こる場合は@c
1190 ボイスごとのシフトが適用されます。@c
1191 これは上の例でも見ることができます。@c
1192 2 小節目でボイス 2 の C はボイス 1 の D との関係で右にシフトされていて、@c
1193 最後の和音でボイス 3 の C も他の音符との関係で右にシフトされています。
1194
1195 @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, それに @code{\shiftOff}
1196 コマンドは、衝突が起こる場合に音符や和音をシフトさせる度合いを指定します。@c
1197 デフォルトでは、外側のボイス (通常はボイス 1 と 2) には @code{\shiftOff} が@c
1198 指定されていて、内側のボイス (ボイス 3 と 4) には @code{\shiftOn} が@c
1199 指定されています。@c
1200 シフトが適用される場合、ボイス 1 と 3 は右にシフトされ、ボイス 2 と 4は@c
1201 左にシフトされます。
1202
1203 @code{\shiftOnn} と @code{\shiftOnnn} はさらなるシフト レベルを@c
1204 定義するものであり、複雑な状況での衝突を解決するために@c
1205 一時的に指定されるかもしれません --
1206 @ref{実際の音楽からの例} を参照してください。
1207
1208 ある音符列は上向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ、@c
1209 下向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ@c
1210 保持することができます。@c
1211 同じ向きの符幹を持つ 2 つのボイスからの音符が同じ位置に置かれ、両方のボイスに@c
1212 シフトが指定されていない、あるいは同じシフトが指定されている場合、@c
1213 エラー メッセージ @qq{Too many clashing note columns} (音符が多すぎて音符列で@c
1214 衝突が起こっています) が生成されます。
1215
1216
1217 @seealso
1218 記譜法リファレンス:
1219 @ruser{複数のボイス}
1220
1221
1222 @node ボイスとボーカル
1223 @subsection ボイスとボーカル
1224 @translationof Voices and vocals
1225
1226 声楽には特別な困難があります:
1227 2 つの表記 -- 音符と歌詞 -- を組み合わせる必要があります。
1228
1229 @funindex \new Lyrics
1230 @funindex \lyricsto
1231 @funindex Lyrics
1232 @cindex Lyrics context, creating (歌詞コンテキストを作成する)
1233 @cindex lyrics, linking to voice (歌詞をボイスにリンクさせる)
1234
1235 すでに @code{\addlyrics@{@}} コマンドを見てきました。@c
1236 これは簡単な楽譜であればうまく処理できます。@c
1237 しかしながら、この方法では限界があります。@c
1238 より複雑な音楽では、@code{\new Lyrics} を使って歌詞を
1239 @code{Lyrics} コンテキストに取り込み、ボイスに割り当ている名前を使って
1240 @code{\lyricsto@{@}} でその歌詞を明示的に音符にリンクさせます。
1241
1242 @lilypond[quote,verbatim]
1243 <<
1244   \new Voice = "one" {
1245     \relative {
1246       \autoBeamOff
1247       \time 2/4
1248       c''4 b8. a16 | g4. f8 | e4 d | c2 |
1249     }
1250   }
1251   \new Lyrics \lyricsto "one" {
1252     No more let | sins and | sor -- rows | grow. |
1253   }
1254 >>
1255 @end lilypond
1256
1257 歌詞は @code{Staff} コンテキスト@emph{ではなく} @code{Voice} コンテキストに@c
1258 リンクさせなければならないということに注意してください。@c
1259 このため、@code{Staff} コンテキストと @code{Voice} コンテキストを@c
1260 明示的に作成する必要があります。
1261
1262 @cindex lyrics and beaming (歌詞と連桁)
1263 @cindex beaming and lyrics (連桁と歌詞)
1264 @funindex \autoBeamOff
1265
1266 LilyPond がデフォルトで使用する自動連桁は楽器だけの音楽では@c
1267 うまく機能しますが、歌詞を持つ音楽ではそれほどうまく機能しません。@c
1268 そこでは連桁はまったく必要ないか、歌詞のメリスマ (訳者注: 歌詞の 1 音節に@c
1269 対して複数の音符を割り当てること) を示すために使用されるかのどちらかです。@c
1270 上の例では、自動連桁を Off にするためにコマンド @code{\autoBeamOff} を@c
1271 使用しています。
1272
1273 @funindex \new ChoirStaff
1274 @funindex ChoirStaff
1275 @funindex \lyricmode
1276 @cindex vocal score structure (ボーカル譜構造)
1277 @cindex choir staff
1278
1279 以前使用した Judas Maccabæus からの例を再度使用して、@c
1280 より自由度の高い方法を示します。@c
1281 まず、楽譜の内容を変数に振り直し、音楽と歌詞を譜表構造から分離させます。@c
1282 さらに @code{ChoirStaff} ブラケットを導入します。@c
1283 歌詞自体は、音楽ではなく歌詞として解釈されることを保証するために、@c
1284 @code{\lyricsmode} で導入されなければなりません。
1285
1286 @lilypond[quote,verbatim]
1287 global = { \key f \major \time 6/8 \partial 8 }
1288
1289 SopOneMusic = \relative {
1290   c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4
1291 }
1292 SopOneLyrics = \lyricmode {
1293   Let | flee -- cy flocks the | hills a -- dorn, __
1294 }
1295 SopTwoMusic = \relative {
1296   r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
1297 }
1298 SopTwoLyrics = \lyricmode {
1299   Let | flee -- cy flocks the | hills a -- dorn,
1300 }
1301
1302 \score {
1303   \new ChoirStaff <<
1304     \new Staff <<
1305       \new Voice = "SopOne" {
1306         \global
1307         \SopOneMusic
1308       }
1309       \new Lyrics \lyricsto "SopOne" {
1310         \SopOneLyrics
1311       }
1312     >>
1313     \new Staff <<
1314       \new Voice = "SopTwo" {
1315         \global
1316         \SopTwoMusic
1317       }
1318       \new Lyrics \lyricsto "SopTwo" {
1319         \SopTwoLyrics
1320       }
1321     >>
1322   >>
1323 }
1324 @end lilypond
1325
1326 これはすべての声楽譜の基本的な構造です。@c
1327 必要に応じてさらに多くの譜が追加されるかもしれませんし、さらに多くのボイスが@c
1328 譜に追加されるかもしれませんし、さらに多くの歌詞 (原文: verse、@c
1329 各ボイスに対する歌詞、あるいは、歌詞の 1 番、2 番のことを指すと思われる) が@c
1330 歌詞に追加されるかもしれません。@c
1331 音楽部分が長くなりすぎた場合は、音楽を保持している変数を容易に別のファイルに@c
1332 置くことができます。
1333
1334 @cindex hymn structure (賛美歌構造)
1335 @cindex SATB structure (SATB 構造)
1336 @cindex vocal scores with multiple verses (複数のボーカル譜)
1337 @cindex multiple vocal verses
1338 @cindex verses, multiple vocal
1339
1340 ここで、例として 4 つの歌詞 -- それぞれが SATB (ソプラノ、アルト、テナー、バス)
1341 に対してセットされている -- を持つ賛美歌の最初の 1 行目を取り上げます。@c
1342 この歌の場合、4 つのパートに対する歌詞の言葉は同じです。@c
1343 変数を使用して音楽記譜と歌詞の言葉を譜表構造から分離させている手法に@c
1344 注意してください。@c
1345 さらに、 @q{keyTime} と呼ぶことにした変数が、2 つの譜で使用される@c
1346 いくつかのコマンドを保持するために、使用されていることにも注意してください。@c
1347 他の例では、この変数はしばしば @q{global} と呼ばれます。
1348
1349 @lilypond[quote,verbatim]
1350 keyTime = { \key c \major \time 4/4 \partial 4 }
1351
1352 SopMusic   = \relative { c'4 | e4. e8 g4  g    | a4   a   g  }
1353 AltoMusic  = \relative { c'4 | c4. c8 e4  e    | f4   f   e  }
1354 TenorMusic = \relative  { e4 | g4. g8 c4.   b8 | a8 b c d e4 }
1355 BassMusic  = \relative  { c4 | c4. c8 c4  c    | f8 g a b c4 }
1356
1357 VerseOne =
1358   \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
1359 VerseTwo   =
1360   \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
1361 VerseThree =
1362   \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
1363 VerseFour  =
1364   \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
1365
1366 \score {
1367   \new ChoirStaff <<
1368     \new Staff <<
1369       \clef "treble"
1370       \new Voice = "Sop"  { \voiceOne \keyTime \SopMusic }
1371       \new Voice = "Alto" { \voiceTwo \AltoMusic }
1372       \new Lyrics \lyricsto "Sop" { \VerseOne   }
1373       \new Lyrics \lyricsto "Sop" { \VerseTwo   }
1374       \new Lyrics \lyricsto "Sop" { \VerseThree }
1375       \new Lyrics \lyricsto "Sop" { \VerseFour  }
1376     >>
1377     \new Staff <<
1378       \clef "bass"
1379       \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
1380       \new Voice = "Bass"  { \voiceTwo \BassMusic }
1381     >>
1382   >>
1383 }
1384 @end lilypond
1385
1386
1387 @seealso
1388 記譜法リファレンス: @ruser{Vocal music}
1389 @c 声楽
1390
1391
1392 @node コンテキストとエングラーバ
1393 @section コンテキストとエングラーバ
1394 @translationof Contexts and engravers
1395
1396 これまでに、コンテキストとエングラーバについて簡単に言及してきました。@c
1397 ここでは、これらのコンセプトをより詳細に見ていくことにします。@c
1398 なぜなら、これらは LilyPond 出力をうまく調節するのに重要だからです。
1399
1400 @menu
1401 * コンテキストの説明::
1402 * コンテキストを作成する::
1403 * エングラーバの説明::
1404 * コンテキスト プロパティを変更する::
1405 * エングラーバを追加 / 削除する::
1406 @end menu
1407
1408
1409 @node コンテキストの説明
1410 @subsection コンテキストの説明
1411 @translationof Contexts explained
1412
1413 @cindex contexts explained (コンテキストの説明)
1414
1415 音楽が譜刻されるとき、入力ファイルでははっきりとは現れてこない多くの@c
1416 記譜要素を出力に追加しなければなりません。@c
1417 例えば、以下の例で入力と出力を比較してください:
1418
1419 @lilypond[quote,verbatim]
1420 \relative { cis''4 cis2. | a4 a2. | }
1421 @end lilypond
1422
1423 この入力は内容がやや乏しいですが、出力では小節線、臨時記号、音部記号、@c
1424 拍子記号が追加されています。@c
1425 LilyPond が入力を@emph{解釈}するとき、音楽情報は時系列に調べられます。@c
1426 これは楽譜を左から右へ読むのと似ています。@c
1427 入力を読み込んでいる間、プログラムは小節の境目となる場所と明示的な臨時記号を@c
1428 必要とするピッチを覚えています。@c
1429 この情報はいくつかのレベルで持続されなければなりません。@c
1430 例えば、臨時記号の効果は単一の譜表に制限されますが、@c
1431 小節線は楽譜全体に亘って同調されなければなりません。
1432
1433 LilyPond 内部では、これらの規則と情報ビットは@emph{コンテキスト}に@c
1434 グループ化されます。@c
1435 すでに @code{Voice} コンテキストを見てきました。@c
1436 他にも、@code{Staff} コンテキストと @code{Score} コンテキストがあります。@c
1437 コンテキストは、楽譜の階層構造を反映するために、階層構造になっています。@c
1438 例えば: @code{Staff} コンテキストは多くの @code{Voice} コンテキストを@c
1439 保持することができ、@code{Score} コンテキストは@c
1440 多くの @code{Staff} コンテキストを保持することができます。
1441
1442 @quotation
1443 @sourceimage{context-example,5cm,,}
1444 @end quotation
1445
1446 各コンテキストは、いくつかの記譜オブジェクトを作成し、関連プロパティを@c
1447 維持しながら、いくつかの記譜規則を施行する責任があります。@c
1448 例えば、@code{Voice} コンテキストは臨時記号を作り出すかもしれず、@c
1449 そうした場合 @code{Staff} コンテキストはその小節の残りの部分で臨時記号を@c
1450 表示したり隠したりするための規則を維持します。
1451
1452 他の例としては、小節線の同調はデフォルトでは @code{Score} コンテキストが@c
1453 扱います。@c
1454 しかしながら、いくつかの音楽では小節線を同調させたくない場合もあります --
1455 4/4 拍子と 3/4 拍子の多声の楽譜といった場合です。@c
1456 そのようなケースでは、@code{Score} と @code{Staff} コンテキストの@c
1457 デフォルト設定を変更しなければなりません。
1458
1459 非常にシンプルな楽譜では、コンテキストは暗黙的に作成され、@c
1460 あなたはそれらに気づく必要もありません。@c
1461 複数の譜表を持つようなより大きな楽曲では、あなたが必要としているだけの譜を@c
1462 手に入れられるよう、さらに、それらの譜が正しい順序で並ぶことを保証するために、@c
1463 コンテキストを明示的に作成する必要があります。@c
1464 特殊な記譜法を持つ楽曲を譜刻するには、通常は既存のコンテキストを変更します。@c
1465 あるいは完全に新しいコンテキストを定義することさえあります。
1466
1467 @code{Score}, @code{Staff}, @code{Voice} コンテキストに加えて、@c
1468 @code{PianoStaff} や @code{ChoirStaff} コンテキストといった譜表グループを@c
1469 制御するための、楽譜レベルと譜表レベルの間にあるコンテキストがあります。@c
1470 さらに、代替の譜表コンテキストとボイスコンテキストがあり、歌詞、打楽器、@c
1471 フレットボード (訳者: 弦楽器の一種。フレットでウィキぺディアを参照)、@c
1472 通奏低音 (数字付き低音、原文: figured bass) などのためのコンテキストがあります。
1473
1474 すべてのコンテキスト タイプの名前は 1 つ、あるいは複数の単語からなります。@c
1475 各単語の最初の文字は大文字であり、前の単語のすぐあとに次の単語が続きます。@c
1476 ハイフンやアンダスコアは使いません。@c
1477 つまり @code{GregorianTranscriptionStaff} といった具合です。
1478
1479
1480 @seealso
1481 記譜法リファレンス: @ruser{Contexts explained}
1482 @c コンテキストの説明
1483
1484
1485 @node コンテキストを作成する
1486 @subsection コンテキストを作成する
1487 @translationof Creating contexts
1488
1489 @funindex \new
1490 @cindex new contexts (新しいコンテキスト)
1491 @cindex creating contexts (コンテキストを作成する)
1492 @cindex contexts, creating (コンテキストを作成する)
1493
1494 入力ファイルの中で、@code{\score} コマンドによって導入される
1495 score ブロックは単一の音楽表記とそれに関連する出力定義
1496 (@code{\layout} ブロックあるいは @code{\midi} ブロック)
1497 を保持します。@c
1498 通常、@code{Score} コンテキストは省略され、@c
1499 音楽表記の解釈が始まった時点で自動的に作成されます。
1500
1501 ボイスが 1 つだけで、譜も 1 つだけの楽譜では、@c
1502 @code{Voice} と @code{Staff} も省略して、自動的に作成させることができます。@c
1503 コンテキストは自動的に作成されるために放っておかれるかもしれません。@c
1504 しかしながら、より複雑な楽譜ではこれらを手ずから作成する必要があります。@c
1505 これらを作成する最も簡単なコマンドは @code{\new} です。@c
1506 これは音楽表記の前に置きます。@c
1507 例を挙げます:
1508
1509 @example
1510 \new @var{type} @var{music-expression}
1511 @end example
1512
1513 @noindent
1514
1515 ここで、@var{type} はコンテキスト名です (@code{Staff} や @code{Voice} など)。@c
1516 このコマンドは新しいコンテキストを作成し、そのコンテキストの中にある
1517 @var{music-expression} の解釈を開始します。
1518
1519 @warning{必須の最上位 @code{Score} コンテキストとして @bs{}@code{new Score}
1520 を使わないでください。@c
1521 これは、@bs{}@code{score} ブロックの中にある音楽表記が解釈される時に@c
1522 自動的に作成されます。@c
1523 楽譜全体のコンテキスト プロパティのデフォルト値を変更するには、@c
1524 @bs{}@code{layout} ブロックの中で行います。@c
1525 @ref{コンテキスト プロパティを変更する} を参照してください。}
1526
1527 これまでに、新たに @code{Staff} と @code{Voice} コンテキストを作成する多くの@c
1528 実際的な例を見てきましたが、これらのコマンドが実際にどのように使用されるのかを@c
1529 覚えてもらうために、実際の音楽に注釈を付けた例を挙げます:
1530
1531 @c KEEP LY
1532 @lilypond[quote,verbatim,ragged-right]
1533 \score {  % 複合音楽表記の開始点
1534   <<  % 同時進行する譜の開始点
1535     \time 2/4
1536     \new Staff {  % create RH staff
1537       \clef "treble"
1538       \key g \minor
1539       \new Voice {  % 右手の音符用のボイスを作成します
1540         \relative {  % 右手の音符の開始点
1541           d''4 ees16 c8. |
1542           d4 ees16 c8. |
1543         }  % 右手の音符の終了点
1544       }  % 右手のボイスの終了点
1545     }  % 右手の譜の終了点
1546     \new Staff <<  % 左手の譜を作成します。2 つの同時進行するボイスを必要とします
1547       \clef "bass"
1548       \key g \minor
1549       \new Voice {  % 左手のボイス 1 を作成します
1550         \voiceOne
1551         \relative {  % 左手のボイス 1 の音符の開始点
1552           g8 <bes d> ees, <g c> |
1553           g8 <bes d> ees, <g c> |
1554         }  % 左手のボイス 1 の音符の終了点
1555       }  % 左手のボイス 1 の終了点
1556       \new Voice {  % 左手のボイス 2 を作成します
1557         \voiceTwo
1558         \relative {  % 左手のボイス 2 の音符の開始点
1559           g4 ees |
1560           g4 ees |
1561         }  % 左手のボイス 2 の音符の終了点
1562       }  % 左手のボイス 2 の終了点
1563     >>  % 左手の譜の終了点
1564   >>  % 同時進行する譜セクションの終了点
1565 }  % 複合音楽表記の終了点
1566 @end lilypond
1567
1568 (波括弧 @code{@{} や 2 重山括弧 @code{<<} の中でブロックになっているすべての@c
1569 記述には括弧よりもスペースが 2 つ多いインデントを付けられていて、@c
1570 閉じ括弧には括弧の開始行と同じインデントを付けられているということに@c
1571 注意してください。@c
1572 これは必須ではありませんが、こうしておくと @q{unmatched backet}
1573 (「括弧が一致しない」) エラーを大幅に減らすことができますので、@c
1574 強く推奨します。@c
1575 これにより、音楽の構造を簡単に見て取ることができ、@c
1576 一致していない括弧が明瞭になります。@c
1577 さらに、右手の譜はボイスを 1 つだけしか必要としないために波括弧によって@c
1578 囲まれた単一の音楽表記として作成されているのに対して、@c
1579 左手の譜は 2 つのボイスを必要とするために
1580 2 重山括弧を使って作成されていることにも注意してください。)
1581
1582 @cindex contexts, naming (コンテキストを名前を付ける)
1583 @cindex naming contexts (コンテキストを名前を付ける)
1584
1585 また、@code{\new} コマンドはコンテキストに識別名を与えて、そのコンテキストを@c
1586 同じタイプの他のコンテキストと区別することを可能にするかもしれません:
1587
1588 @example
1589 \new @var{type} = @var{id} @var{music-expression}
1590 @end example
1591
1592 @code{Staff}, @code{Voice} などといったコンテキスト タイプの名前と@c
1593 そのようなコンテキスト タイプのインスタンスの名前
1594 --これはユーザによって決定され、どのような文字の連なりにもなり得ます
1595 -- の違いに注意してください。@c
1596 数字とスペースも識別名に使用することができますが、@c
1597 その場合クォートで囲まなければなりません
1598 -- つまり、@code{\new Staff = "MyStaff 1" @var{music-expression}}
1599 のようになります。@c
1600 識別名はコンテキストのあるインスタンスを参照するために使用されます。@c
1601 このことを歌詞についてのセクションで見てきました。@c
1602 @ref{ボイスとボーカル} を参照してください。
1603
1604
1605 @seealso
1606 記譜法リファレンス: @ruser{Creating and referencing contexts}
1607
1608
1609 @node エングラーバの説明
1610 @subsection エングラーバの説明
1611 @translationof Engravers explained
1612
1613 @cindex engravers (エングラーバ)
1614
1615 LilyPond によって作成された楽譜上にあるすべての記号は
1616 @code{Engraver} によって作り出されます。@c
1617 つまり、譜を譜刻するエングラーバがあり、符頭を譜刻するエングラーバ、@c
1618 符幹を譜刻するエングラーバ、連桁を譜刻するエングラーバなどなどです。@c
1619 そのようなエングラーバは 120 以上あります!@c
1620 幸いなことに、たいていの楽譜では数個のエングラーバについて知っていれば良く、@c
1621 簡単な楽譜ではまったく知らなくても大丈夫です。
1622
1623 エングラーバはコンテキストの中に存在し、そこで活動します。@c
1624 @code{Metronome_mark_engraver} などといった楽譜全体に影響を与える@c
1625 エングラーバは最上位のコンテキスト -- @code{Score} コンテキスト -- で@c
1626 活動します。
1627
1628 @code{Clef_engraver} と @code{Key_engraver} は各 @code{Staff} コンテキストの@c
1629 中で見つかります -- 譜が異なれば音部記号や調号も異なるかもしれないからです。
1630
1631 @code{Note_heads_engraver} と @code{Stem_engraver} は@c
1632 各 @code{Voice} コンテキスト -- 最下位のコンテキスト -- の中にあります。
1633
1634 各エングラーバはそれの機能に関連付けされているある特定のオブジェクトを処理し、@c
1635 機能に関連するプロパティを維持します。@c
1636 コンテキストに関連付けされているプロパティなどのようにこれらのプロパティは、@c
1637 エングラーバの処理を変更するためや、譜刻される楽譜の中にある要素の見た目を@c
1638 変更するために、変更されるかもしれません。
1639
1640 エングラーバはすべてそれらの機能を記述する単語から形成された複合名を持ちます。@c
1641 最初の単語の最初の文字は大文字であり、その後に続く単語はアンダスコアで@c
1642 連結されます。@c
1643 ですから、@code{Staff_symbol_engraver} には譜表の線を作成する責任があり、@c
1644 @code{Clef_engraver} は音部記号を描くことによってピッチの参照ポイントを@c
1645 決定、セットします。
1646
1647
1648 ここに、最も一般的なエングラーバをいくつかそれらの機能とともに挙げます。@c
1649 たいていの場合、名前から簡単に機能を推測でき、その逆も成り立つことが@c
1650 わかるでしょう。
1651
1652 @multitable @columnfractions .3 .7
1653 @headitem エングラーバ
1654   @tab 機能
1655 @item Accidental_engraver
1656   @tab 臨時記号 (警告的臨時記号とアドバイス的な臨時記号を含む) を作成します。
1657 @item Beam_engraver
1658   @tab 連桁を譜刻します。
1659 @item Clef_engraver
1660   @tab 音部記号を譜刻します。
1661 @item Completion_heads_engraver
1662   @tab 小節線をまたがる音符を分割します。
1663 @item Dynamic_engraver
1664   @tab 強弱記号 (クレッシェンド、デクレッシェンド) と強弱テキスト (p や f など)
1665 を作成します。
1666 @item Forbid_line_break_engraver
1667   @tab 音楽要素がアクティブなままである場合に改行されることを防ぎます。(訳者:
1668 いわゆる禁則処理)
1669 @item Key_engraver
1670   @tab 調号を作成します。
1671 @item Metronome_mark_engraver
1672   @tab メトロノーム記号を譜刻します。
1673 @item Note_heads_engraver
1674   @tab 符頭を譜刻します。
1675 @item Rest_engraver
1676   @tab 休符を譜刻します。
1677 @item Staff_symbol_engraver
1678   @tab (デフォルトで) 五線の譜表を譜刻します。
1679 @item Stem_engraver
1680   @tab 符幹と単一符幹のトレモロを作成します。
1681 @item Time_signature_engraver
1682   @tab 拍子記号を作成します。
1683 @end multitable
1684
1685 @smallspace
1686
1687 後ほど、エングラーバのアクションを変更することによって LilyPond の出力が@c
1688 どのように変わるのかを見ていきます。
1689
1690
1691 @seealso
1692 内部リファレンス: @rinternals{Engravers and Performers}
1693
1694
1695 @node コンテキスト プロパティを変更する
1696 @subsection コンテキスト プロパティを変更する
1697 @translationof Modifying context properties
1698
1699 @cindex context properties (コンテキスト プロパティ)
1700 @cindex context properties, modifying (コンテキスト プロパティを変更する)
1701 @cindex modifying context properties (コンテキスト プロパティを変更する)
1702 @funindex \set
1703 @funindex \unset
1704
1705 コンテキストにはいくつかのコンテキスト プロパティを保持する責任があります。@c
1706 それらプロパティの多くは変更可能であり、変更することで入力の構文解釈に影響を@c
1707 与えて出力の見た目を変化させます。@c
1708 それらプロパティは \set コマンドによって変更されます。@c
1709 これは以下のような形で行います:
1710
1711 @example
1712 \set @emph{ContextName}.@emph{propertyName} = #@emph{value}
1713 @end example
1714
1715 @emph{ontextName} には通常、@code{Score}, @code{Staff} or @code{Voice} が@c
1716 入ります。@c
1717 これを省略する場合もあり、そのような場合は @code{Voice} であると@c
1718 見なされます。
1719
1720 コンテキスト プロパティの名前はハイフンやアンダスコアを使わずに連結された@c
1721 単語によって形成され、最初の単語を除いて単語の最初の文字は大文字になります。@c
1722 ここで、一般的に使用されるコンテキスト プロパティの例をいくつか挙げます。@c
1723 実際には、コンテキスト プロパティはもっとたくさんあります。
1724
1725 @c attempt to force this onto a new page
1726 @need 50
1727 @multitable @columnfractions .25 .15 .45 .15
1728 @headitem プロパティ名
1729   @tab タイプ
1730   @tab 機能
1731   @tab 実際の値の例
1732 @item extraNatural
1733   @tab ブール値
1734   @tab 真の場合、追加のナチュラル記号を臨時記号の前にセットします
1735   @tab @code{#t}, @code{#f}
1736 @item currentBarNumber
1737   @tab 整数
1738   @tab 小節番号をセットします
1739   @tab @code{50}
1740 @item doubleSlurs
1741   @tab ブール値
1742   @tab 真の場合、音符の上と下の両方にスラーを譜刻します
1743   @tab @code{#t}, @code{#f}
1744 @item instrumentName
1745   @tab テキスト
1746   @tab 譜表の先頭に表示される名前をセットします
1747   @tab @code{"Cello I"}
1748 @item fontSize
1749   @tab 実数
1750   @tab フォント サイズを増減させます
1751   @tab @code{2.4}
1752 @item stanza
1753   @tab テキスト
1754   @tab 歌詞の先頭に譜刻されるテキストをセットします
1755   @tab @code{"2"}
1756 @end multitable
1757
1758 @noindent
1759 ここでのブール値とは真 (@code{#t}) または偽 (@code{#f}) の@c
1760 どちらかであり、整数とは正の整数であり、実数とは正または負の小数点付きの@c
1761 数であり、テキストはダブル アポストロフィで囲まれます。@c
1762 ハッシュ記号 (@code{#}) が 2 つの異なる箇所で出現することに@c
1763 注意してください -- ブール値での @code{t} や @code{f} の前と、@c
1764 @code{@bs{}set} での@emph{値}の前です。@c
1765 そのため、@code{@bs{}set} の値にブール値を挿入する場合、ハッシュ記号が 2 つ@c
1766 必要になります -- つまり @code{##t} です。
1767
1768 @cindex properties operating in contexts (コンテキスト内でのプロパティの操作)
1769 @cindex setting properties within contexts (コンテキスト内部のプロパティを設定する)
1770
1771 これらのプロパティのいずれかをセットする前に、それらが操作するコンテキストは@c
1772 どれなのかを知る必要があります。@c
1773 これは明らかな場合もありますが、ややこしい場合もあります。@c
1774 間違ったコンテキストが指定された場合、エラー メッセージは表示されませんが、@c
1775 予期したアクションが起こりません。@c
1776 例えば、@code{instrumentName} は間違いなく @code{Staff} コンテキストの中に@c
1777 きます。@c
1778 なぜなら、このプロパティが名前を付けるのは譜表だからです。@c
1779 以下の例では、最初の譜表には名前が付けられていますが、2 番目の譜表には@c
1780 付けられていません。@c
1781 なぜなら、コンテキスト名を省略しているからです。
1782
1783 @lilypond[quote,verbatim,ragged-right]
1784 <<
1785   \new Staff \relative {
1786     \set Staff.instrumentName = #"Soprano"
1787     c''2 c
1788   }
1789   \new Staff \relative {
1790     \set instrumentName = #"Alto"  % Wrong!
1791     d'2 d
1792   }
1793 >>
1794 @end lilypond
1795
1796 デフォルトのコンテキスト名は @code{Voice} であることを思い出してください。@c
1797 このため、2 番目の @code{@bs{}set} コマンドは @code{Voice} コンテキストの@c
1798 プロパティ @code{instrumentName} を @qq{Alto} にセットしています。@c
1799 しかしながら、LilyPond は @code{Voice} コンテキストでそのようなプロパティを@c
1800 見つけ出さないため、何のアクションも起こしません。@c
1801 これはエラーではなく、ログ ファイルにエラー メッセージは残りません。
1802
1803 同様に、プロパティ名の綴りを間違えた場合もエラー メッセージは表示されず、@c
1804 予期したアクションが起こりません。@c
1805 実際のところ、@code{@bs{}set} コマンドを使って、存在するいかなる@c
1806 コンテキストにでも、いかなる (架空の) @q{プロパティ} を@c
1807 セットすることができます。@c
1808 しかしながら、そのプロパティ名を LilyPond が知らない場合、@c
1809 何のアクションも起こしません。@c
1810 LilyPond 入力ファイルに対する特別なサポートを持つ@c
1811 いくつかのテキスト エディタは、あなたがプロパティ名の上にマウスを@c
1812 持ってくるとバレット (テキストの先頭に付く小丸) 付きのプロパティ名を表示して@c
1813 そのプロパティの裏づけを行い (LilyPondTool を持つ JEdit)、@c
1814 あるいは未知のプロパティ名をハイライトします (ConTEXT)。@c
1815 そのような機能を持つエディタを使用していないのなら、内部リファレンスで@c
1816 プロパティ名をチェックすることを推奨します:
1817 @rinternals{Tunable context properties} や @rinternals{Contexts}
1818 を参照してください。
1819
1820 @code{instrumentName} プロパティは @code{Staff} コンテキストの中に@c
1821 セットされた場合にのみ効果を持ちますが、いくつかのプロパティは複数の@c
1822 コンテキストの中にセットすることができます。@c
1823 例えば、プロパティ @code{extraNatural} はすべての譜に対してデフォルトで
1824 @code{##t} (真) にセットされています。@c
1825 ある特定の @code{Staff} コンテキストでこれを @code{##f} (偽) に@c
1826 セットした場合、その譜表の臨時記号にのみ適用されます。@c
1827 これを @code{Score} コンテキストにセットした場合、すべての譜に適用されます。
1828
1829 それでは、ある譜表の追加ナチュラル記号を消してみます:
1830
1831 @lilypond[quote,verbatim,ragged-right]
1832 <<
1833   \new Staff \relative {
1834     aeses'2 aes
1835   }
1836   \new Staff \relative {
1837     \set Staff.extraNatural = ##f
1838     aeses'2 aes
1839   }
1840 >>
1841 @end lilypond
1842
1843 @noindent
1844 さらに、すべての譜の追加ナチュラル記号を消します:
1845
1846 @lilypond[quote,verbatim,ragged-right]
1847 <<
1848   \new Staff \relative {
1849     aeses'2 aes
1850   }
1851   \new Staff \relative {
1852     \set Score.extraNatural = ##f
1853     aeses'2 aes
1854   }
1855 >>
1856 @end lilypond
1857
1858 他の例としては、@code{clefTransposition} が @code{Score} コンテキストに@c
1859 セットされた場合、直ちにすべての譜でのオクターブの値を変更し、すべての譜に@c
1860 適用される新しいデフォルト値をセットします。
1861
1862 逆のことを行うコマンド @code{\unset} はコンテキストからプロパティを@c
1863 削除し、それによりたいていのプロパティはデフォルト値に戻ります。@c
1864 通常、望みのことを達成するために新たな @code{\set} コマンドを@c
1865 用いる場合、@code{\unset} は必要ありません。
1866
1867 @code{\set} と @code{\unset} コマンドは入力ファイルのどこにでも@c
1868 現れる可能性があり、そのコマンドが出現した時点から、楽譜の終わりまたは@c
1869 そのプロパティが再度 @code{\set} や @code{\unset} されるまで効果を@c
1870 持ちます。@c
1871 フォント サイズを変更してみましょう。@c
1872 それにより (他のものに加えて) 符頭のサイズが何段階か変更されます。@c
1873 変更は直前にセットされた値から行われるのではなく、デフォルト値から行われます。
1874
1875 @c KEEP LY
1876 @lilypond[quote,verbatim,ragged-right]
1877 \relative {
1878   c'4 d
1879   % 符頭を小さくします
1880   \set fontSize = #-4
1881   e4 f |
1882   % 符頭を大きくします
1883   \set fontSize = #2.5
1884   g4 a
1885   % デフォルトのサイズに戻します
1886   \unset fontSize
1887   b4 c |
1888 }
1889 @end lilypond
1890
1891 これまでにいくつかのタイプのプロパティ値をセットする方法を見てきました。@c
1892 整数と番号の前には常にハッシュ記号 @code{#} が付き、真と偽の値は
1893 2 つのハッシュ記号を付けて @code{##t} と @code{##f}
1894 によって指定されてるということに注意してください。@c
1895 テキスト プロパティは上で示したようにダブル クォーテーションによって@c
1896 囲まれます。@c
1897 しかしながら、後ほど、テキストは実際には非常に強力な @code{\markup} コマンドを@c
1898 用いたもっと一般的な方法で指定できるということを見ていきます。
1899
1900
1901 @subsubheading @code{\with} を使ったコンテキスト プロパティの設定
1902 @c Setting context properties with @code{\with}
1903
1904 @funindex \with
1905 @cindex context properties, setting with \with (\with でコンテキスト プロパティを設定する)
1906
1907 コンテキスト プロパティはコンテキストが作成されるときに@c
1908 セットされることもあるかもしれません。@c
1909 この設定がコンテキスト全体で保持される場合、この方法でプロパティ値を@c
1910 指定すると明瞭になります。@c
1911 コンテキストが @code{@bs{}new} コマンドで作成されるとき、その直後に
1912 @code{@bs{}with @{ .. @}} ブロックが続き、その中でプロパティ値が@c
1913 セットされるかもしれません。@c
1914 例えば、ある譜表全体で追加のナチュラルの表示を抑制しようとする場合、@c
1915 以下のように書きます:
1916
1917 @example
1918 \new Staff \with @{ extraNatural = ##f @}
1919 @end example
1920
1921 @noindent
1922 like this:
1923
1924 @lilypond[quote,verbatim,ragged-right]
1925 <<
1926   \new Staff {
1927     \relative {
1928       gisis'4 gis aeses aes
1929     }
1930   }
1931   \new Staff \with { extraNatural = ##f } {
1932     \relative {
1933       gisis'4 gis aeses aes
1934     }
1935   }
1936 >>
1937 @end lilypond
1938
1939 この方法でプロパティをセットした場合でも、@code{\set}
1940 を使って動的に変更されたり、@c
1941 @code{\unset} を使ってデフォルト値に戻されたりするかもしれません。
1942
1943 @cindex fontSize, default and setting (fontSize のデフォルトと設定)
1944
1945 @code{fontSize} プロパティの扱いは異なります。@c
1946 これが @code{\with} の中でセットされた場合、フォント サイズの@c
1947 デフォルト値をセットし直します。@c
1948 そのあとでフォント サイズが @code{\set} によって変更された場合、@c
1949 @code{\with} でセットされた新しいデフォルト値は
1950 @code{\unset fontSize} コマンドによって元に戻されるかもしれません。
1951
1952
1953 @subsubheading @code{\context} を使ったコンテキスト プロパティの設定
1954 @c Setting context properties with @code{\context}
1955
1956 @cindex context properties, setting with \context (\context でコンテキスト プロパティを設定する)
1957 @funindex \context
1958
1959 コンテキスト プロパティの値は単一のコマンドによってある特定のタイプの@c
1960 コンテキスト@emph{すべて} -- すべての @code{Staff} コンテキストなどのように
1961 -- にセットされるかもしれません。@c
1962 プロパティをセットするコンテキストのタイプは、@code{Staff} のような@c
1963 そのコンテキストのタイプ名に接頭辞としてバック スラッシュを付けたもの
1964 -- @code{\Staff} のように -- によって指定されます。@c
1965 プロパティ値をセットするための記述は上で紹介した @code{\with} ブロックの中の@c
1966 記述と同じです。@c
1967 この記述は @code{\layout} ブロック内部の @code{\context} ブロックの中に@c
1968 置かれます。@c
1969 各 @code{\context} ブロックは、その @code{\layout} ブロックが@c
1970 置かれている @code{\score} または @code{\book} ブロック全体を通じて、@c
1971 指定されたタイプのコンテキストすべてに対して効果を持ちます。@c
1972 ここで、記述方法を示すための例を挙げます:
1973
1974 @lilypond[verbatim,quote]
1975 \score {
1976   \new Staff {
1977     \relative {
1978       cisis''4 e d cis
1979     }
1980   }
1981   \layout {
1982     \context {
1983       \Staff
1984       extraNatural = ##t
1985     }
1986   }
1987 }
1988 @end lilypond
1989
1990 プロパティのオーバライドが score の中にあるどの譜にも適用されない場合:
1991
1992 @lilypond[quote,verbatim]
1993 \score {
1994   <<
1995     \new Staff {
1996       \relative {
1997         gisis'4 gis aeses aes
1998       }
1999     }
2000     \new Staff {
2001       \relative {
2002         gisis'4 gis aeses aes
2003       }
2004     }
2005   >>
2006   \layout {
2007     \context {
2008       \Score extraNatural = ##f
2009     }
2010   }
2011 }
2012 @end lilypond
2013
2014 @noindent
2015 この方法でセットされたコンテキスト プロパティは、@code{\with} ブロックの@c
2016 中の記述によって、さらには、音楽表記の中に埋め込まれた
2017 @code{\set} コマンドによって、ある特定のコンテキスト インスタンスでは@c
2018 上書きされるかもしれません。
2019
2020
2021 @seealso
2022 記譜法リファレンス:
2023 @ruser{Changing context default settings},
2024 @ruser{The set command}
2025
2026 内部リファレンス:
2027 @rinternals{Contexts},
2028 @rinternals{Tunable context properties}
2029
2030
2031 @node エングラーバを追加 / 削除する
2032 @subsection エングラーバを追加 / 削除する
2033 @translationof Adding and removing engravers
2034
2035 @cindex engravers, adding (エングラーバを追加する)
2036 @cindex adding engravers (エングラーバを追加する)
2037 @cindex engravers, removing (エングラーバを削除する)
2038 @cindex removing engravers (エングラーバを削除する)
2039
2040 @funindex \consists
2041 @funindex \remove
2042
2043 これまでに、コンテキストはそれぞれにいくつかのエングラーバを保持し、@c
2044 それぞれのエングラーバは出力のある特定部分
2045 -- 小節線、譜、符頭、符幹など -- の譜刻に責任を持つということを見てきました。@c
2046 あるエングラーバがコンテキストから削除されると、それはもはや出力を行いません。@c
2047 これは出力を変更するための荒っぽい方法ですが、役に立つ場合もあります。
2048
2049 @subsubheading 単一のコンテキストの変更
2050 @c Changing a single context
2051
2052 あるコンテキストからあるエングラーバを削除するには、前のセクションで@c
2053 見てたきたのと同様に、コンテキスト作成コマンドの直後に置く
2054 @code{\with} コマンドを使用します。
2055
2056 例として、前のセクションで使用した例から譜表線を取り除いてみましょう。@c
2057 譜表線は @code{Staff_symbol_engraver} によって作り出されるということを@c
2058 思い出してください。
2059
2060 @c KEEP LY
2061 @lilypond[quote,verbatim,ragged-right]
2062 \new Staff \with {
2063   \remove "Staff_symbol_engraver"
2064 }
2065 \relative {
2066   c'4 d
2067   \set fontSize = #-4  % 符頭を小さくします
2068   e4 f |
2069   \set fontSize = #2.5  % 符頭を大きくします
2070   g4 a
2071   \unset fontSize  % デフォルトのサイズに戻します
2072   b4 c |
2073 }
2074 @end lilypond
2075
2076 @cindex ambitus engraver (音域エングラーバ)
2077
2078 さらに、エングラーバは個々のコンテキストに追加されることもあります。@c
2079 エングラーバを追加するコマンドは以下のようなものです:
2080
2081 @code{\consists @var{Engraver_name}},
2082
2083 @noindent
2084 これを @code{\with} ブロックの中に置きます。@c
2085 いくつかのボーカル譜は、その譜表の中にある音符の範囲を示すために、@c
2086 譜表の開始点に音域 (ambitus) を置きます --
2087 @rglos{ambitus} を参照してください。@c
2088 音域は @code{Ambitus_engraver} によって作成され、普通は、@c
2089 これはどのコンテキストにも含まれません。@c
2090 これを @code{Voice} コンテキストに追加した場合、それはそのボイスのみから@c
2091 音域を計算します:
2092
2093 @lilypond[quote,verbatim,ragged-right]
2094 \new Staff <<
2095   \new Voice \with {
2096     \consists "Ambitus_engraver"
2097   } {
2098     \relative {
2099       \voiceOne
2100       c''4 a b g
2101     }
2102   }
2103   \new Voice {
2104     \relative {
2105       \voiceTwo
2106       c'4 e d f
2107     }
2108   }
2109 >>
2110 @end lilypond
2111
2112 @noindent
2113 しかし、音域エングラーバを @code{Staff} コンテキストに追加した場合、@c
2114 そのエングラーバはその譜表上にあるすべてのボイスの中の音符から音域を計算します:
2115
2116 @lilypond[quote,verbatim,ragged-right]
2117 \new Staff \with {
2118   \consists "Ambitus_engraver"
2119 }
2120 <<
2121   \new Voice {
2122     \relative {
2123       \voiceOne
2124       c''4 a b g
2125     }
2126   }
2127   \new Voice {
2128     \relative {
2129       \voiceTwo
2130       c'4 e d f
2131     }
2132   }
2133 >>
2134 @end lilypond
2135
2136 @subsubheading 同じタイプのコンテキストをすべて変更する
2137 @c Changing all contexts of the same type
2138
2139 @funindex \layout
2140
2141 上の例では、個々のコンテキストにエングラーバを追加あるいは削除する方法を@c
2142 示しました。@c
2143 さらに、そのコマンドを @code{\layout} ブロックの中の適当なコンテキストの@c
2144 中に置くことによって、ある特定のタイプのコンテキストすべてにエングラーバを@c
2145 追加あるいは削除することもできます。@c
2146 例えば、4 つの譜表を持つ楽譜ですべての譜表に音域を表示する場合、@c
2147 以下のように記述します:
2148
2149 @lilypond[quote,verbatim,ragged-right]
2150 \score {
2151   <<
2152     \new Staff {
2153       \relative {
2154         c''4 a b g
2155       }
2156     }
2157     \new Staff {
2158       \relative {
2159         c'4 a b g
2160       }
2161     }
2162     \new Staff {
2163       \clef "G_8"
2164       \relative {
2165         c'4 a b g
2166       }
2167     }
2168     \new Staff {
2169       \clef "bass"
2170       \relative {
2171         c4 a b g
2172       }
2173     }
2174   >>
2175   \layout {
2176     \context {
2177       \Staff
2178       \consists "Ambitus_engraver"
2179     }
2180   }
2181 }
2182 @end lilypond
2183
2184 @noindent
2185 また、コンテキスト プロパティの値も、上記と同様に
2186 @code{\context} ブロックの中に @code{\set} を含ませることによって、@c
2187 ある特定のタイプのコンテキストすべてに対してセットすることができます。
2188
2189
2190 @seealso
2191 記譜法リファレンス: @ruser{Modifying context plug-ins},
2192 @ruser{Changing context default settings}
2193 @c コンテキスト プラグインの変更, コンテキストのデフォルト設定の変更
2194
2195 @knownissues
2196 @code{Stem_engraver} と @code{Beam_engraver} はそれらが描くオブジェクトを@c
2197 符頭にくっつけます。@c
2198 @code{Note_heads_engraver} が削除されると、符頭は作られず、@c
2199 それゆえ符幹も連桁も作られません。
2200
2201
2202 @node テンプレートを拡張する
2203 @section テンプレートを拡張する
2204 @translationof Extending the templates
2205
2206 あなたはチュートリアルを読み終えました。@c
2207 あなたはどのように楽譜を書くかを知っていて、@c
2208 基礎となるコンセプトを理解しています。@c
2209 しかし、どうやったらあなたはあなたが望む譜を手に入れられるでしょうか?@c
2210 あなたにとって良いスタート地点となるかもしれない多くのテンプレートがあります
2211 (@ref{テンプレート} を参照してください)。@c
2212 しかしながら、あなたの望むものがそこでカバーされていなかったらどうしましょう?@c
2213 続きを読んでください。
2214
2215 @menu
2216 * ソプラノとチェロ::
2217 * 4 パート SATB ボーカル譜::
2218 * ゼロから楽譜を構築する::
2219 * 変数と関数を用いて入力の手間を省く::
2220 * 楽譜とパート::
2221 @end menu
2222
2223 @node ソプラノとチェロ
2224 @subsection ソプラノとチェロ
2225 @translationof Soprano and cello
2226
2227 @cindex template, modifying (テンプレートを変更する)
2228 @cindex modifying templates (テンプレートを変更する)
2229
2230 あなたが最終的に望むものに最も近いテンプレートから始めてください。@c
2231 ソプラノとチェロのための楽譜を書きたいということにしましょう。@c
2232 ここでは、@q{音符と歌詞} (ソプラノ パート用) から始めることにします。
2233
2234 @example
2235 \version @w{"@version{}"}
2236
2237 melody = \relative @{
2238   \clef "treble"
2239   \key c \major
2240   \time 4/4
2241   a4 b c d
2242 @}
2243
2244 text = \lyricmode @{
2245   Aaa Bee Cee Dee
2246 @}
2247
2248 \score @{
2249   <<
2250     \new Voice = "one" @{
2251       \autoBeamOff
2252       \melody
2253     @}
2254     \new Lyrics \lyricsto "one" \text
2255   >>
2256   \layout @{ @}
2257   \midi @{ @}
2258 @}
2259 @end example
2260
2261 これにチェロ パートを追加していきます。@c
2262 @q{音符のみ} のテンプレートを見てみましょう:
2263
2264 @example
2265 \version @w{"@version{}"}
2266
2267 melody = \relative @{
2268   \clef "treble"
2269   \key c \major
2270   \time 4/4
2271   a4 b c d
2272 @}
2273
2274 \score @{
2275   \new Staff \melody
2276   \layout @{ @}
2277   \midi @{ @}
2278 @}
2279 @end example
2280
2281 @code{\version} コマンドは 2 つも必要ありません。@c
2282 @code{melody} セクションは必要です。@c
2283 @code{\score} セクションは 2 つも必要ありません
2284 -- @code{\score} が 2 つあると、2 つのパートがばらばらになります。@c
2285 2 つのパートをデュオのように一緒にしたいのです。@c
2286 @code{\score} セクションの中に @code{\layout} や @code{\midi} は 2 つも@c
2287 必要ありません。
2288
2289 単に @code{melody} セクションをカット&コピーした場合、@c
2290 @code{melody} 定義が 2 つになります。@c
2291 これはエラーにはなりませんが、@
2292 2 番目の定義が両方の旋律で使われることになります。@c
2293 そのため、2 つの旋律を区別するためにリネームします。@c
2294 ソプラノ用のセクションを @code{sopranoMusic} と呼び、@c
2295 チェロ用のセクションを @code{celloMusic} と呼ぶことにします。@c
2296 リネームするときに、@code{text} を @code{sopranoLyrics} とりネームしましょう。@c
2297 これらのインスタンスをリネームすることも忘れないでください
2298 −- 初期定義 (@code{melody = \relative c' @{ } 部分) とその名前が@c
2299 使われているところ (@code{\score セクションの中}) の両方です。
2300
2301 リネームする際に、チェロ パートの譜も変更しましょう
2302 −- 通常、チェロは低音部を使用します。@c
2303 さらに、チェロの音符を変えてみます。
2304
2305 @example
2306 \version @w{"@version{}"}
2307
2308 sopranoMusic = \relative @{
2309   \clef "treble"
2310   \key c \major
2311   \time 4/4
2312   a4 b c d
2313 @}
2314
2315 sopranoLyrics = \lyricmode @{
2316   Aaa Bee Cee Dee
2317 @}
2318
2319 celloMusic = \relative @{
2320   \clef "bass"
2321   \key c \major
2322   \time 4/4
2323   d4 g fis8 e d4
2324 @}
2325
2326 \score @{
2327   <<
2328     \new Voice = "one" @{
2329       \autoBeamOff
2330       \sopranoMusic
2331     @}
2332     \new Lyrics \lyricsto "one" \sopranoLyrics
2333   >>
2334   \layout @{ @}
2335   \midi @{ @}
2336 @}
2337 @end example
2338
2339 これでうまくいくように見えますが、チェロ パートが楽譜に表示されません
2340 −- チェロ パートを @code{\score} セクションの中で使っていないからです。@c
2341 チェロ パートをソプラノ パートの下に表示させたいのなら、@c
2342 以下をソプラノの譜の下に追加する必要があります:
2343
2344 @example
2345 \new Staff \celloMusic
2346 @end example
2347
2348 @noindent
2349 さらに、音楽を @code{<<} と @code{>>} で囲む必要もあります
2350 −- これは LilyPond に複数のもの (この場合は 2 つの @code{Stave})
2351  が同時に起こるということを知らせます。@c
2352 @code{\score} は以下のようになります:
2353
2354 @c Indentation in this example is deliberately poor
2355 @example
2356 \score @{
2357   <<
2358   <<
2359     \new Voice = "one" @{
2360       \autoBeamOff
2361       \sopranoMusic
2362     @}
2363     \new Lyrics \lyricsto "one" \sopranoLyrics
2364   >>
2365   \new Staff \celloMusic
2366   >>
2367   \layout @{ @}
2368   \midi @{ @}
2369 @}
2370 @end example
2371
2372 @noindent
2373 これは少し見にくいです。@c
2374 インデントがきちんと入っていません。@c
2375 これは簡単に修正できます。@c
2376 ここで、完成したソプラノとチェロ用のテンプレートを挙げます。
2377
2378 @lilypond[quote,verbatim,ragged-right,addversion]
2379 sopranoMusic = \relative {
2380   \clef "treble"
2381   \key c \major
2382   \time 4/4
2383   a4 b c d
2384 }
2385
2386 sopranoLyrics = \lyricmode {
2387   Aaa Bee Cee Dee
2388 }
2389
2390 celloMusic = \relative {
2391   \clef "bass"
2392   \key c \major
2393   \time 4/4
2394   d4 g fis8 e d4
2395 }
2396
2397 \score {
2398   <<
2399     <<
2400       \new Voice = "one" {
2401         \autoBeamOff
2402         \sopranoMusic
2403       }
2404       \new Lyrics \lyricsto "one" \sopranoLyrics
2405     >>
2406     \new Staff \celloMusic
2407   >>
2408   \layout { }
2409   \midi { }
2410 }
2411 @end lilypond
2412
2413
2414 @seealso
2415 開始点となるテンプレートは付録 @q{テンプレート} で見つけることができます。@c
2416 @ref{Single staff templates} を参照してください。
2417
2418
2419 @node 4 パート SATB ボーカル譜
2420 @subsection 4 パート SATB ボーカル譜
2421 @translationof Four-part SATB vocal score
2422
2423 @cindex template, SATB (SATB テンプレート)
2424 @cindex SATB template (SATB テンプレート)
2425
2426 Mendelssohn の Elijah や Handel の Messiah などのオーケストラ伴奏付きの
2427 4 パート聖歌隊のために書かれたボーカル譜の多くは 4 つの譜上に@c
2428 音符と歌詞を持ち、それぞれの譜は SATB (ソプラノ、アルト、テナー、バス) のうちの
2429 1 つであり、その下にオーケストラ伴奏のピアノ譜が付きます。@c
2430 ここで、Handel の Messiah から例を挙げます:
2431
2432 @c The following should appear as music without code
2433 @lilypond[quote,ragged-right]
2434 global = { \key d \major \time 4/4 }
2435
2436 sopranoMusic = \relative {
2437   \clef "treble"
2438   r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2439 }
2440 sopranoWords = \lyricmode {
2441   Wor -- thy | is the lamb | that was slain |
2442 }
2443
2444 altoMusic = \relative {
2445   \clef "treble"
2446   r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 |
2447 }
2448 altoWords = \sopranoWords
2449
2450 tenorMusic = \relative {
2451   \clef "G_8"
2452   r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2453 }
2454 tenorWords = \sopranoWords
2455
2456 bassMusic = \relative {
2457   \clef "bass"
2458   r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2459 }
2460 bassWords = \sopranoWords
2461
2462 upper = \relative {
2463   \clef "treble"
2464   \global
2465   r4 <a' d fis>2 <a e' a>4 |
2466   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2467   <g cis g'>4 <a d fis> <a cis e>2 |
2468 }
2469
2470 lower = \relative {
2471   \clef "bass"
2472   \global
2473   <d, d'>4 <d d'>2 <cis cis'>4 |
2474   <b b'>4. <b' b'>8 <fis fis'>2 |
2475   <e e'>4 <d d'> <a' a'>2 |
2476 }
2477
2478 \score {
2479   <<  % combine ChoirStaff and PianoStaff in parallel
2480     \new ChoirStaff <<
2481       \new Staff = "sopranos" <<
2482         \set Staff.instrumentName = #"Soprano"
2483         \new Voice = "sopranos" {
2484           \global
2485           \sopranoMusic
2486         }
2487       >>
2488       \new Lyrics \lyricsto "sopranos" {
2489         \sopranoWords
2490       }
2491       \new Staff = "altos" <<
2492         \set Staff.instrumentName = #"Alto"
2493         \new Voice = "altos" {
2494           \global
2495           \altoMusic
2496         }
2497       >>
2498       \new Lyrics \lyricsto "altos" { \altoWords }
2499       \new Staff = "tenors" <<
2500         \set Staff.instrumentName = #"Tenor"
2501         \new Voice = "tenors" {
2502           \global
2503           \tenorMusic
2504         }
2505       >>
2506       \new Lyrics \lyricsto "tenors" { \tenorWords }
2507       \new Staff = "basses" <<
2508         \set Staff.instrumentName = #"Bass"
2509         \new Voice = "basses" {
2510           \global
2511           \bassMusic
2512         }
2513       >>
2514       \new Lyrics \lyricsto "basses" {
2515         \bassWords
2516       }
2517     >>  % end ChoirStaff
2518     \new PianoStaff <<
2519       \set PianoStaff.instrumentName = #"Piano"
2520       \new Staff = "upper" \upper
2521       \new Staff = "lower" \lower
2522     >>
2523   >>
2524 }
2525 @end lilypond
2526
2527 このレイアウトをそのまま提供するテンプレートはありません。@c
2528 最も近いのは @ref{SATB vocal score and automatic piano reduction}
2529 ですが、レイアウトを変更して、ボーカル パートから自動的に生成されたものでは@c
2530 ないピアノ伴奏譜を付け加える必要があります。@c
2531 ボーカル パートのための音楽と歌詞を保持している変数はそのまま使えますが、@c
2532 ピアノ伴奏譜のための変数を付け加える必要があります。
2533
2534 テンプレートの @code{ChoirStaff} の中でコンテキストが出現する順序は上で@c
2535 示したボーカル譜の順序と一致していません。@c
2536 そのため、コンテキストを再配置して、それぞれの歌詞が対応する譜表の@c
2537 すぐ下にくるようにします。@c
2538 すべてのボイスは @code{\voiceOne} -- これがデフォルトです -- に@c
2539 なるべきなので、@code{\voiceXXX} コマンドは削除すべきです。@c
2540 さらに、テノールに対してハ音記号 (中音部記号) を指定する必要があります。@c
2541 テンプレートの中で歌詞を指定する方法はまだ説明していませんので、@c
2542 馴染みのある方法を使用する必要があります。@c
2543 さらに、それぞれの譜に名前を追加すべきです。
2544
2545 以上のことを @code{ChoirStaff} に対して行います:
2546
2547 @example
2548 \new ChoirStaff <<
2549   \new Staff = "sopranos" <<
2550     \set Staff.instrumentName = #"Soprano"
2551     \new Voice = "sopranos" @{
2552       \global
2553       \sopranoMusic
2554     @}
2555   >>
2556   \new Lyrics \lyricsto "sopranos" @{
2557     \sopranoWords
2558   @}
2559   \new Staff = "altos" <<
2560     \set Staff.instrumentName = #"Alto"
2561     \new Voice = "altos" @{
2562       \global
2563       \altoMusic
2564     @}
2565   >>
2566   \new Lyrics \lyricsto "altos" @{
2567     \altoWords
2568   @}
2569   \new Staff = "tenors" <<
2570     \set Staff.instrumentName = #"Tenor"
2571     \new Voice = "tenors" @{
2572       \global
2573       \tenorMusic
2574     @}
2575   >>
2576   \new Lyrics \lyricsto "tenors" @{
2577     \tenorWords
2578   @}
2579   \new Staff = "basses" <<
2580     \set Staff.instrumentName = #"Bass"
2581     \new Voice = "basses" @{
2582       \global
2583       \bassMusic
2584     @}
2585   >>
2586   \new Lyrics \lyricsto "basses" @{
2587     \bassWords
2588   @}
2589 >>  % end ChoirStaff
2590 @end example
2591
2592 次にピアノ パートに取り掛からなければなりません。@c
2593 これは簡単です -- @q{ソロ ピアノ} テンプレートからピアノ パートを@c
2594 引き抜いてくるだけです:
2595
2596 @example
2597 \new PianoStaff <<
2598   \set PianoStaff.instrumentName = #"Piano  "
2599   \new Staff = "upper" \upper
2600   \new Staff = "lower" \lower
2601 >>
2602 @end example
2603
2604 そして、@code{upper} と @code{lower} に変数定義を付け加えます。
2605
2606 @code{ChoirStaff} を @code{PianoStaff} の上に置きたいので、@c
2607 それらを山括弧を使って組み合わせなければなりません:
2608
2609 @example
2610 <<  % combine ChoirStaff and PianoStaff one above the other
2611   \new ChoirStaff <<
2612     \new Staff = "sopranos" <<
2613       \new Voice = "sopranos" @{
2614         \global
2615         \sopranoMusic
2616       @}
2617     >>
2618     \new Lyrics \lyricsto "sopranos" @{
2619       \sopranoWords
2620      @}
2621     \new Staff = "altos" <<
2622       \new Voice = "altos" @{
2623         \global
2624         \altoMusic
2625       @}
2626     >>
2627     \new Lyrics \lyricsto "altos" @{
2628       \altoWords
2629     @}
2630     \new Staff = "tenors" <<
2631       \clef "G_8"  % tenor clef
2632       \new Voice = "tenors" @{
2633         \global
2634         \tenorMusic
2635       @}
2636     >>
2637     \new Lyrics \lyricsto "tenors" @{
2638       \tenorWords
2639     @}
2640     \new Staff = "basses" <<
2641       \clef "bass"
2642       \new Voice = "basses" @{
2643         \global
2644         \bassMusic
2645       @}
2646     >>
2647     \new Lyrics \lyricsto "basses" @{
2648       \bassWords
2649     @}
2650   >>  % end ChoirStaff
2651
2652   \new PianoStaff <<
2653     \set PianoStaff.instrumentName = #"Piano"
2654     \new Staff = "upper" \upper
2655     \new Staff = "lower" \lower
2656   >>
2657 >>
2658 @end example
2659
2660 これらすべてを組み合わせて、上の例の 3 小節分の音楽を付け加えます:
2661
2662 @c KEEP LY
2663 @lilypond[quote,verbatim,ragged-right,addversion]
2664 global = { \key d \major \time 4/4 }
2665 sopranoMusic = \relative {
2666   \clef "treble"
2667   r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2668 }
2669 sopranoWords = \lyricmode {
2670   Wor -- thy | is the lamb | that was slain |
2671 }
2672 altoMusic = \relative {
2673   \clef "treble"
2674   r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2675 }
2676 altoWords = \sopranoWords
2677 tenorMusic = \relative {
2678   \clef "G_8"
2679   r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2680 }
2681 tenorWords = \sopranoWords
2682 bassMusic = \relative {
2683   \clef "bass"
2684   r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2685 }
2686 bassWords = \sopranoWords
2687 upper = \relative {
2688   \clef "treble"
2689   \global
2690   r4 <a' d fis>2 <a e' a>4 |
2691   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2692   <g cis g'>4 <a d fis> <a cis e>2 |
2693 }
2694 lower = \relative {
2695   \clef "bass"
2696   \global
2697   <d, d'>4 <d d'>2 <cis cis'>4 |
2698   <b b'>4. <b' b'>8 <fis fis'>2 |
2699   <e e'>4 <d d'> <a' a'>2 |
2700 }
2701
2702 \score {
2703   <<  % ChoirStaff と PianoStaff を並行に組み合わせます
2704     \new ChoirStaff <<
2705       \new Staff = "sopranos" <<
2706         \set Staff.instrumentName = #"Soprano"
2707         \new Voice = "sopranos" {
2708           \global
2709           \sopranoMusic
2710         }
2711       >>
2712       \new Lyrics \lyricsto "sopranos" {
2713         \sopranoWords
2714       }
2715       \new Staff = "altos" <<
2716         \set Staff.instrumentName = #"Alto"
2717         \new Voice = "altos" {
2718           \global
2719           \altoMusic
2720         }
2721       >>
2722       \new Lyrics \lyricsto "altos" {
2723         \altoWords
2724       }
2725       \new Staff = "tenors" <<
2726         \set Staff.instrumentName = #"Tenor"
2727         \new Voice = "tenors" {
2728           \global
2729           \tenorMusic
2730         }
2731       >>
2732       \new Lyrics \lyricsto "tenors" {
2733         \tenorWords
2734       }
2735       \new Staff = "basses" <<
2736         \set Staff.instrumentName = #"Bass"
2737         \new Voice = "basses" {
2738           \global
2739           \bassMusic
2740         }
2741       >>
2742       \new Lyrics \lyricsto "basses" {
2743         \bassWords
2744       }
2745     >>  % ChoirStaff の終了
2746
2747     \new PianoStaff <<
2748       \set PianoStaff.instrumentName = #"Piano  "
2749       \new Staff = "upper" \upper
2750       \new Staff = "lower" \lower
2751     >>
2752   >>
2753 }
2754 @end lilypond
2755
2756
2757 @node ゼロから楽譜を構築する
2758 @subsection ゼロから楽譜を構築する
2759 @translationof Building a score from scratch
2760
2761 @cindex template, writing your own (自分自身のテンプレートを記述する)
2762 @cindex example of writing a score (楽譜の書き方の例)
2763 @cindex writing a score, example (楽譜の書き方の例)
2764 @cindex score, example of writing (楽譜の書き方の例)
2765
2766 LilyPond コードを書くことにある程度熟練した後、あなたはテンプレートの 1 つを@c
2767 変更するよりもゼロから楽譜を構築するほうがより容易であることに@c
2768 気づくかもしれません。@c
2769 さらに、あなたはこの方法であなたの好みのタイプの音楽に適したあなた自身の@c
2770 スタイルを開発することもできます。@c
2771 例として、オルガン前奏曲のための楽譜を作成する手順を見てみましょう。
2772
2773 ヘッダ セクションから始めます。@c
2774 そこでタイトル、作曲者の名前などを記述し、それから任意の変数を定義し、@c
2775 最後にスコア ブロックに取り掛かります。@c
2776 以上のことを概要から始めて、その後に詳細を詰めていきます。
2777
2778 @emph{Jesu, meine Freude}
2779 -- これは 2 つの鍵盤とペダルを持つオルガンのために書かれたものです
2780 -- をベースとする Bach の前奏曲の最初の 2 小節を使います。@c
2781 このセクションの最後でこの音楽の最初の 2 小節を見ることができます。@c
2782 上段鍵盤パートは 2 つのボイスを持ち、@c
2783 下段鍵盤とペダルはそれぞれ 1 つのボイスを持ちます。@c
2784 そのため、4 つの音楽定義と、@c
2785 拍子記号と調号を定義するための 1 つの音楽定義が必要となります:
2786
2787 @example
2788 \version @w{"@version{}"}
2789 \header @{
2790   title = "Jesu, meine Freude"
2791   composer = "J S Bach"
2792 @}
2793 keyTime = @{ \key c \minor \time 4/4 @}
2794 ManualOneVoiceOneMusic = @{ s1 @}
2795 ManualOneVoiceTwoMusic = @{ s1 @}
2796 ManualTwoMusic = @{ s1 @}
2797 PedalOrganMusic = @{ s1 @}
2798
2799 \score @{
2800 @}
2801 @end example
2802
2803 ここでは、実際の音楽の代わりに空白音符 @code{s1} を使用しました。@c
2804 実際の音楽は後で付け加えます。
2805
2806 次に、スコア ブロックで何をすべきなのかを見ていきましょう。@c
2807 単純に望む譜表構造を反映させます。@c
2808 通常、オルガン音楽は 3 つの譜で書かれます
2809 -- 2 つの鍵盤とペダルのための譜です。@c
2810 鍵盤の譜はブレース (譜表の左端の波括弧) でまとめられているべきなので、@c
2811 それらに対して @code{PianoStaff} を使用する必要があります。@c
2812 1 番目の鍵盤パートは 2 つのボイスを必要とし、2 番目の鍵盤パートは 1 つだけ@c
2813 ボイスを必要とします。
2814
2815 @example
2816 \new PianoStaff <<
2817   \new Staff = "ManualOne" <<
2818     \new Voice @{
2819       \ManualOneVoiceOneMusic
2820     @}
2821     \new Voice @{
2822       \ManualOneVoiceTwoMusic
2823     @}
2824   >>  % ManualOne Staff コンテキストの終了
2825   \new Staff = "ManualTwo" <<
2826     \new Voice @{
2827       \ManualTwoMusic
2828     @}
2829   >>  % ManualTwo Staff コンテキストの終了
2830 >>  % PianoStaff コンテキストの終了
2831 @end example
2832
2833 次にペダル オルガンのための譜表を付け加える必要があります。@c
2834 これは @code{PianoStaff} の下にきますが、@code{PianoStaff} と@c
2835 同時進行でなければなりませんので、ペダル オルガンのための譜表と
2836 @code{PianoStaff} を山括弧で囲む必要があります。@c
2837 これを忘れるとエラーがログ ファイルに生成されます。@c
2838 このエラーはあなたが早かれ遅かれ遭遇する一般的なミスです!@c
2839 生成されるエラーを確認するために、このセクションの最後にある例をコピーし、@c
2840 この山括弧を削除し、コンパイルしてみてください。
2841
2842 @example
2843 <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
2844   \new PianoStaff <<
2845     \new Staff = "ManualOne" <<
2846       \new Voice @{
2847         \ManualOneVoiceOneMusic
2848       @}
2849       \new Voice @{
2850         \ManualOneVoiceTwoMusic
2851       @}
2852     >>  % ManualOne Staff コンテキストの終了
2853     \new Staff = "ManualTwo" <<
2854       \new Voice @{
2855         \ManualTwoMusic
2856       @}
2857     >>  % ManualTwo Staff コンテキストの終了
2858   >>  % PianoStaff コンテキストの終了
2859   \new Staff = "PedalOrgan" <<
2860     \new Voice @{
2861       \PedalOrganMusic
2862     @}
2863   >>
2864 >>
2865 @end example
2866
2867 2 番目の鍵盤パートとペダル オルガンの譜表は 1 つだけしか音楽表記を@c
2868 保持しないため、それらに対して同時進行構造 @code{<< .. >>} を使う必要は@c
2869 必ずしもありません。@c
2870 しかしながら、そうしても害はありませんし、@code{\new Staff} の後に常に@c
2871 山括弧を置くというのは複数のボイスがある場合では推奨される良い習慣です。@c
2872 Voice はこれとは対照的に、あなたの音楽を連続して演奏すべきいくつかの変数に@c
2873 分けてコード化する場合に Voice の後に波括弧 @code{@{ .. @}} を常に置くべきです。
2874
2875 この構造をスコア ブロックに付け加えて、インデントを調整しましょう。@c
2876 さらに、適切な音部記号を付け加え、@code{\voiceOne} と @code{\voiceTwo} を@c
2877 使って上部譜の各ボイスで符幹、タイ、スラーの向きが正しくなるようにし、@c
2878 あらかじめ定義しておいた変数 @code{\keyTime} を使って拍子記号と調号を@c
2879 各譜に挿入します。
2880
2881 @example
2882 \score @{
2883   <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
2884     \new PianoStaff <<
2885       \new Staff = "ManualOne" <<
2886         \keyTime  % 調号と拍子記号をセットします
2887         \clef "treble"
2888         \new Voice @{
2889           \voiceOne
2890           \ManualOneVoiceOneMusic
2891         @}
2892         \new Voice @{
2893           \voiceTwo
2894           \ManualOneVoiceTwoMusic
2895         @}
2896       >>  % ManualOne Staff コンテキストの終了
2897       \new Staff = "ManualTwo" <<
2898         \keyTime
2899         \clef "bass"
2900         \new Voice @{
2901           \ManualTwoMusic
2902         @}
2903       >>  % ManualTwo Staff コンテキストの終了
2904     >>  % PianoStaff コンテキストの終了
2905     \new Staff = "PedalOrgan" <<
2906       \keyTime
2907       \clef "bass"
2908       \new Voice @{
2909         \PedalOrganMusic
2910       @}
2911     >>  % PedalOrgan Staff の終了
2912   >>
2913 @}  % Score コンテキストの終了
2914 @end example
2915
2916 @cindex stretchability of staves (譜の伸縮性)
2917 @cindex staves, stretchability (譜の伸縮性)
2918
2919 上のオルガン譜のレイアウトはほぼ完璧です。@c
2920 しかしながら、それぞれの譜を見ているだけではわからない、@c
2921 ちょっとした欠陥があります。@c
2922 ペダル譜と左手譜の距離は右手譜と左手譜の距離とほぼ等しくなるべきです。@c
2923 詳しく説明すると、@code{PianoStaff} コンテキストの譜の伸縮性は制限される
2924 (制限により、左手譜と右手譜の距離はあまりにも大きくなることはありません)
2925 ので、ペダル譜も同様に制限されるべきです。
2926
2927 @cindex sub-properties (サブ-プロパティ)
2928 @cindex properties, sub-properties (サブ-プロパティ)
2929 @cindex graphical objects (グラフィカル オブジェクト)
2930 @cindex objects, graphical (グラフィカル オブジェクト)
2931 @cindex grobs (グラフィカル オブジェクト)
2932
2933 譜の伸縮性は @q{グラフィカル オブジェクト} @code{VerticalAxisGroup}
2934 の @code{staff-staff-spacing} プロパティで制御することができます。
2935 (LilyPond ドキュメントの中でグラフィカル オブジェクトは @q{grobs}
2936 と呼ばれることが多いです。)
2937 今、グラフィカル オブジェクトの詳細について知らなくても心配しないでください。@c
2938 後で詳しく説明します。@c
2939 興味があるのなら、@ruser{Overview of modifying properties} を見てください。@c
2940 今回は、@code{stretchability} サブ-プロパティを変更する必要があるだけです。@c
2941 さらに興味があるのなら、グラフィカル オブジェクト @code{VerticalAxisGroup}
2942 の定義を調べていくと、ファイル @file{scm/define-grobs.scm} の中に
2943 @code{staff-staff-spacing} プロパティのデフォルト値を見つけることができます。@c
2944 @code{stretchability} の値は、@code{PianoStaff} コンテキスト
2945 (これはファイル @file{ly/engraver-init.ly} の中にあります)
2946 の定義から来ていて、2 つの値は等価です。
2947
2948 @example
2949 \score @{
2950   <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
2951     \new PianoStaff <<
2952       \new Staff = "ManualOne" <<
2953         \keyTime  % 調号と拍子記号をセットします
2954         \clef "treble"
2955         \new Voice @{
2956           \voiceOne
2957           \ManualOneVoiceOneMusic
2958         @}
2959         \new Voice @{
2960           \voiceTwo
2961           \ManualOneVoiceTwoMusic
2962         @}
2963       >>  % ManualOne Staff コンテキストの終了
2964       \new Staff = "ManualTwo" \with @{
2965         \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
2966       @} <<
2967         \keyTime
2968         \clef "bass"
2969         \new Voice @{
2970           \ManualTwoMusic
2971         @}
2972       >>  % ManualTwo Staff コンテキストの終了
2973     >>  % PianoStaff コンテキストの終了
2974     \new Staff = "PedalOrgan" <<
2975       \keyTime
2976       \clef "bass"
2977       \new Voice @{
2978         \PedalOrganMusic
2979       @}
2980     >>  % PedalOrgan Staff の終了
2981   >>
2982 @}  % Score コンテキストの終了
2983 @end example
2984
2985 これでこの構造は完成です。@c
2986 3 つの譜を持つオルガン譜はいずれも同様の構造を持ちますが、@c
2987 ボイスの数はさまざまになるかもしれません。@c
2988 この後に行うべきことは、音楽を付け加え、各パートを一緒にすることです。
2989
2990 @c KEEP LY
2991 @lilypond[quote,verbatim,ragged-right,addversion]
2992 \header {
2993   title = "Jesu, meine Freude"
2994   composer = "J S Bach"
2995 }
2996 keyTime = { \key c \minor \time 4/4 }
2997 ManualOneVoiceOneMusic = \relative {
2998   g'4 g f ees |
2999   d2 c |
3000 }
3001 ManualOneVoiceTwoMusic = \relative {
3002   ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
3003   8 c4 b8 c8. g16 c b c d |
3004 }
3005 ManualTwoMusic = \relative {
3006   c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
3007   f16 ees f d g aes g f ees d ees8~ 16 f ees d |
3008 }
3009 PedalOrganMusic = \relative {
3010   r8 c16 d ees d ees8~ 16 a, b g c b c8 |
3011   r16 g ees f g f g8 c,2 |
3012 }
3013
3014 \score {
3015   <<  % PianoStaff と Pedal Staff を同時進行させる必要があります
3016     \new PianoStaff <<
3017       \new Staff = "ManualOne" <<
3018         \keyTime  % 調号と拍子記号をセットします
3019         \clef "treble"
3020         \new Voice {
3021           \voiceOne
3022           \ManualOneVoiceOneMusic
3023         }
3024         \new Voice {
3025           \voiceTwo
3026           \ManualOneVoiceTwoMusic
3027         }
3028       >>  % ManualOne Staff コンテキストの終了
3029       \new Staff = "ManualTwo" \with {
3030         \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
3031       } <<
3032         \keyTime
3033         \clef "bass"
3034         \new Voice {
3035           \ManualTwoMusic
3036         }
3037       >>  % ManualTwo Staff コンテキストの終了
3038     >>  % PianoStaff コンテキストの終了
3039     \new Staff = "PedalOrgan" <<
3040       \keyTime
3041       \clef "bass"
3042       \new Voice {
3043         \PedalOrganMusic
3044       }
3045     >>  % PedalOrgan Staff コンテキストの終了
3046   >>
3047 }  % Score コンテキストの終了
3048 @end lilypond
3049
3050 @seealso
3051 音楽用語集:
3052 @rglos{system}
3053
3054
3055 @node 変数と関数を用いて入力の手間を省く
3056 @subsection 変数と関数を用いて入力の手間を省く
3057 @translationof Saving typing with variables and functions
3058
3059 @cindex variables (変数)
3060
3061 これまでに、以下のような記述を見てきました:
3062
3063 @lilypond[quote,verbatim,ragged-right]
3064 hornNotes = \relative { c''4 b dis c }
3065
3066 \score {
3067   {
3068     \hornNotes
3069   }
3070 }
3071 @end lilypond
3072
3073 これは音楽表記を最小化するのに役に立つ可能性があるということに@c
3074 気付くかもしれません:
3075
3076 @lilypond[quote,verbatim,ragged-right]
3077 fragmentA = \relative { a'4 a8. b16 }
3078 fragmentB = \relative { a'8. gis16 ees4 }
3079
3080 violin = \new Staff {
3081   \fragmentA \fragmentA |
3082   \fragmentB \fragmentA |
3083 }
3084
3085 \score {
3086   {
3087     \violin
3088   }
3089 }
3090 @end lilypond
3091
3092 さらに、これらの変数 (変数、マクロ、(ユーザ定義) コマンドなどと呼ばれます)
3093 を調整のために使うこともできます:
3094
3095 @c TODO Avoid padtext - not needed with skylining
3096 @lilypond[quote,verbatim,ragged-right]
3097 dolce = \markup { \italic \bold dolce }
3098
3099 padText = { \once \override TextScript.padding = #5.0 }
3100 fthenp =_\markup {
3101   \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
3102 }
3103
3104 violin = \relative {
3105   \repeat volta 2 {
3106     c''4._\dolce b8 a8 g a b |
3107     \padText
3108     c4.^"hi there!" d8 e' f g d |
3109     c,4.\fthenp b8 c4 c-. |
3110   }
3111 }
3112
3113 \score {
3114   {
3115     \violin
3116   }
3117   \layout { ragged-right = ##t }
3118 }
3119 @end lilypond
3120
3121 これらの変数は明らかに入力の手間を省くのに役立っています。@c
3122 例え 1 回しか使用しない音楽であっても、変数化することを考慮する価値はあります
3123 -- 変数化は複雑さを減らします。@c
3124 前の例を変数化しなかったものを見てみましょう。@c
3125 とても読み難く、特に最後の行が読み難いです。
3126
3127 @example
3128 violin = \relative @{
3129   \repeat volta 2 @{
3130     c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
3131     \once \override TextScript.padding = #5.0
3132     c4.^"hi there!" d8 e' f g d |
3133     c,4.\markup @{
3134       \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
3135     @}
3136     b8 c4 c-. |
3137   @}
3138 @}
3139 @end example
3140
3141 @c TODO Replace the following with a better example  -td
3142 @c Skylining handles this correctly without padText
3143
3144 これまでに見てきたのは静的な置き換えです
3145 -- LilyPond は @code{\padText} を見つけると、それを定義した内容
3146 (つまり、@code{padText=} の右側にあるもの) に置き換えます。
3147
3148 LilyPond は非静的な置き換えも処理できます (それらを関数と見なすことができます)。
3149
3150 @lilypond[quote,verbatim,ragged-right]
3151 padText =
3152 #(define-music-function
3153      (padding)
3154      (number?)
3155    #{
3156      \once \override TextScript.padding = #padding
3157    #})
3158
3159 \relative {
3160   c'''4^"piu mosso" b a b |
3161   \padText #1.8
3162   c4^"piu mosso" d e f |
3163   \padText #2.6
3164   c4^"piu mosso" fis a g |
3165 }
3166 @end lilypond
3167
3168 変数を使うことは、LilyPond 入力構文に変更があった場合の作業を減らす@c
3169 良い方法でもあります (@rprogram{convert-ly を使ってファイルを更新する}
3170 を参照してください)。@c
3171 あなたがあなたの入力ファイルすべてに使用する単一の定義
3172 (@code{\dolce} のような) を持っていて、構文が変更された場合、@c
3173 すべての @code{.ly} ファイルを変更する代わりに、@c
3174 @code{@bs{}dolce} 定義をアップデートするだけで済みます。
3175 (@ref{スタイル シート} を参照してください。)
3176
3177
3178 @node 楽譜とパート
3179 @subsection 楽譜とパート
3180 @translationof Scores and parts
3181
3182 オーケストラ音楽では、すべての音符は 2 回譜刻されます。@c
3183 1 回は演奏家のためのパート譜で、1 回は指揮者のための総譜で譜刻されます。@c
3184 変数を使うことで二度手間を避けることができます。@c
3185 音楽は 1 回、変数に入力されます。@c
3186 その変数の内容は、パート譜と総譜の両方を生成するために使用されます。
3187
3188 音符を特別なファイルの中に定義すると便利です。@c
3189 例えば、ファイル @code{horn-music.ly} は@c
3190 以下のホルン/@/バスーン デュオのパートを保持しているとします:
3191
3192 @example
3193 hornNotes = \relative @{
3194   \time 2/4
3195   r4 f8 a | cis4 f | e4 d |
3196 @}
3197 @end example
3198
3199 @noindent
3200 個々のパートは、ファイルの中に以下の記述をすることによって作り出されます:
3201
3202 @example
3203 \include "horn-music.ly"
3204
3205 \header @{
3206   instrument = "Horn in F"
3207 @}
3208
3209 @{
3210  \transpose f c' \hornNotes
3211 @}
3212 @end example
3213
3214 以下の行:
3215
3216 @example
3217 \include "horn-music.ly"
3218 @end example
3219
3220 @noindent
3221 は、ファイルの中でその行が置かれている場所で、@c
3222 @file{horn-music.ly} の内容に置き換わり、@c
3223 @code{hornNotes} の定義になります。@c
3224 @code{\transpose f@tie{}c'} は、@c
3225 引数 @code{\hornNotes} は 5 度上へ移調すべきであるということを@c
3226 示しています。@c
3227 @code{f} の音は譜面に表記された @code{c'} で表され、@c
3228 これは通常のフレンチ ホルンを F にチューニングすることに相当します。@c
3229 この移調により出力は以下のようになります:
3230
3231 @lilypond[quote,ragged-right]
3232 \transpose f c' \relative {
3233   \time 2/4
3234   r4 f8 a | cis4 f | e4 d |
3235 }
3236 @end lilypond
3237
3238 アンサンブルでは、しばしばボイスの 1 つが何小節も演奏されないことがあります。@c
3239 これは特別な休符 -- 複小節休符 -- によって示されます。@c
3240 これは大文字の @code{R} とその後に続く演奏時間
3241 (全音符には @code{1}、半音符には @code{2} などです) で入力されます。@c
3242 この演奏時間に掛け算を行うことによって、@c
3243 さらに長い休符を構築することができます。@c
3244 例えば、以下の休符は 2/4 拍子で 3 小節分の長さになります:
3245
3246 @example
3247 R2*3
3248 @end example
3249
3250 この部分を譜刻するとき、複小節休符を圧縮する必要があります。@c
3251 これは以下のラン-タイム変数を設定することによって行います:
3252
3253 @example
3254 \set Score.skipBars = ##t
3255 @end example
3256
3257 @noindent
3258 このコマンドは @code{Score} コンテキストの中にある@c
3259 プロパティ @code{skipBars} を真 (@code{##t}) にセットします。@c
3260 この休符とオプションを上記の音楽の先頭に追加することによって、@c
3261 以下のような結果になります:
3262
3263 @lilypond[quote,ragged-right]
3264 \transpose f c' \relative {
3265   \time 2/4
3266   \set Score.skipBars = ##t
3267   R2*3 |
3268   r4 f8 a | cis4 f | e4 d |
3269 }
3270 @end lilypond
3271
3272 楽譜はすべての音楽を一緒にすることによって作り出されます。@c
3273 他のボイスはファイル @file{bassoon-music.ly} の中の @code{bassoonNotes} の@c
3274 中にあると仮定すると、楽譜は以下のような記述で作られます:
3275
3276 @example
3277 \include "bassoon-music.ly"
3278 \include "horn-music.ly"
3279
3280 <<
3281   \new Staff \hornNotes
3282   \new Staff \bassoonNotes
3283 >>
3284 @end example
3285
3286 @noindent
3287 そして、以下のような楽譜になります:
3288
3289 @lilypond[quote,ragged-right]
3290 \relative <<
3291   \new Staff {
3292     \clef "treble"
3293     \time 2/4
3294     R2*3 |
3295     r4 f8 a | cis4 f | e4 d |
3296   }
3297   \new Staff {
3298     \clef "bass"
3299     \time 2/4
3300     r4 d,8 f | gis4 c | b4 bes |
3301     a8 e f4 | g4 d | gis4 f |
3302   }
3303 >>
3304 @end lilypond
3305