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