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