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