]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/notation/input.itely
Merge branch 'footnote' into HEAD
[lilypond.git] / Documentation / ja / notation / input.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2 @ignore
3     Translation of GIT committish: ebe492ca408fb0d9abf80b94c56197eef8dc2f09
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  For details, see the Contributors'
7     Guide, node Updating translation committishes..
8 @end ignore
9
10 @c \version "2.15.39"
11
12
13 @c Translators: Yoshiki Sawada
14 @c Translation status: post-GDP
15
16
17 @node 入出力全般
18 @chapter 入出力全般
19 @translationof General input and output
20
21 このセクションでは、特定の記譜法ではなく、@c
22 LilyPond の一般的な入出力の問題について扱います。
23
24 @menu
25 * 入力の構造::
26 * タイトルとヘッダ::
27 * 入力ファイルに取り組む::
28 * 出力を制御する::
29 * MIDI 出力::
30 * 音楽情報を抽出する::
31 @end menu
32
33
34 @node 入力の構造
35 @section 入力の構造
36 @translationof Input structure
37
38 LilyPond の入力の主となるフォーマットはテキスト ファイルです。@c
39 習慣として、それらのファイルの最後には @file{.ly} を付けます。
40
41 @menu
42 * score の構造::
43 * book の中にある複数の score::
44 * 1 つの入力ファイルから複数の出力ファイルを生成する::
45 * 出力ファイル名::
46 * ファイル構造::
47 @end menu
48
49
50 @node score の構造
51 @subsection score の構造
52 @translationof Structure of a score
53
54 @funindex \score
55
56 @code{\score} ブロックは、波括弧で囲まれた単一の音楽表記を@c
57 含んでいなければなりません:
58
59 @example
60 \score @{
61 ...
62 @}
63 @end example
64
65 @warning{@code{\score} ブロックの中には、@c
66 最上位の音楽表記が @strong{1 つだけ} 存在していなければならず、@c
67 その音楽表記は波括弧で囲まれていなければ@strong{なりません}。}
68
69 この単一の音楽表記は任意のサイズになり得ます。@c
70 そして、それは他の音楽表記を保持して任意の複雑さを持ち得ます。@c
71 以下の例はすべて音楽表記です:
72
73 @example
74 @{ c'4 c' c' c' @}
75 @end example
76
77 @lilypond[verbatim,quote]
78 {
79   { c'4 c' c' c' }
80   { d'4 d' d' d' }
81 }
82 @end lilypond
83
84 @lilypond[verbatim,quote]
85 <<
86   \new Staff { c'4 c' c' c' }
87   \new Staff { d'4 d' d' d' }
88 >>
89 @end lilypond
90
91 @example
92 @{
93   \new GrandStaff <<
94     \new StaffGroup <<
95       \new Staff @{ \flute @}
96       \new Staff @{ \oboe @}
97     >>
98     \new StaffGroup <<
99       \new Staff @{ \violinI @}
100       \new Staff @{ \violinII @}
101     >>
102   >>
103 @}
104 @end example
105
106 この一般規則の例外の 1 つにコメントがあります。@c
107 (他の例外は、@ref{ファイル構造} を参照してください。)@c
108 単一行コメントと複数行コメント (@code{%@{ .. %@}} で囲まれます) は@c
109 どちらも入力ファイルの任意の場所に配置することができます。@c
110 コメントは @code{\score} ブロックの内側あるいは外側に@c
111 配置することができ、@code{\score} ブロックの中にある単一の音楽表記の@c
112 内側あるいは外側に配置することができます。
113
114 たとえ @code{\score} ブロックだけを保持しているファイルであっても、@c
115 暗黙的に @code{\book} ブロックで囲まれるということを覚えておいてください。@c
116 ソース ファイルの中にある @code{\book} は少なくとも 1 つの@c
117 出力ファイルを作り出し、@c
118 デフォルトでは出力ファイル名は入力ファイル名から派生します。@c
119 @file{fandangoforelephants.ly} は @file{fandangoforelephants.pdf} を@c
120 作り出します。
121
122 (@code{\book} ブロックについての詳細は、@c
123 @ref{book の中にある複数の score}、@c
124 @ref{1 つの入力ファイルから複数の出力ファイルを生成する}、@c
125 @ref{ファイル構造} を参照してください。)
126
127 @seealso
128 学習マニュアル:
129 @rlearning{入力ファイルに取り組む},
130 @rlearning{音楽表記についての説明},
131 @rlearning{Score は (単一の) 複合的な音楽表記}
132
133
134 @node book の中にある複数の score
135 @subsection book の中にある複数の score
136 @translationof Multiple scores in a book
137
138 @funindex \book
139 @cindex movements, multiple (複数の楽章)
140
141 ドキュメントは複数の楽曲とテキストを含むことができます。@c
142 そのようなドキュメントの例には練習曲集や、@c
143 複数の楽章を持つオーケストラのパート譜があります。@c
144 楽章はそれぞれ @code{\score} ブロックで入力され、
145
146 @example
147 \score @{
148   @var{..music..}
149 @}
150 @end example
151
152 テキストは @code{\markup} ブロックで入力されます。
153
154 @example
155 \markup @{
156   @var{..text..}
157 @}
158 @end example
159
160 @funindex \book
161
162 同じ @file{.ly} ファイルの中にあるすべての楽章とテキストは、@c
163 通常、単一の出力ファイルとして譜刻されます。
164
165 @example
166 \score @{
167   @var{..}
168 @}
169 \markup @{
170   @var{..}
171 @}
172 \score @{
173   @var{..}
174 @}
175 @end example
176
177 重要な例外として lilypond-book ドキュメントがあります。@c
178 lilypond-book ドキュメントでは、明示的に @code{\book} ブロックを追加する@c
179 必要があります。@c
180 さもなければ、最初の @code{\score} あるいは @code{\markup} だけが出力に@c
181 表示されます。
182
183 音楽の各節のヘッダはその節の @code{\score} ブロックの中に置くことができます。@c
184 そのヘッダからの @code{piece} 名がそれぞれの楽章の前に譜刻されます。@c
185 book 全体のタイトルは @code{\book} の中に置くことができます。@c
186 しかしながら、@code{\book} が存在しない場合は、@code{\header} を@c
187 入力ファイルの先頭に挿入します。
188
189 @example
190 \header @{
191   title = "Eight miniatures"
192   composer = "Igor Stravinsky"
193 @}
194 \score @{
195   @dots{}
196   \header @{ piece = "Romanze" @}
197 @}
198 \markup @{
199    ..text of second verse..
200 @}
201 \markup @{
202    ..text of third verse..
203 @}
204 \score @{
205   @dots{}
206   \header @{ piece = "Menuetto" @}
207 @}
208 @end example
209
210 @funindex \bookpart
211
212 @code{\bookpart} ブロックを用いて、
213 複数の楽曲を book のパートとしてグループ化することができます。
214
215 book パートは改ページで区切られ、book 自体と同様に
216 @code{\header} ブロックによりタイトルを持つことができます。
217
218 @example
219 \bookpart @{
220   \header @{
221     title = "Book title"
222     subtitle = "First part"
223   @}
224   \score @{ @dots{} @}
225   @dots{}
226 @}
227 \bookpart @{
228   \header @{
229     subtitle = "Second part"
230   @}
231   \score @{ @dots{} @}
232   @dots{}
233 @}
234 @end example
235
236
237 @node 1 つの入力ファイルから複数の出力ファイルを生成する
238 @subsection 1 つの入力ファイルから複数の出力ファイルを生成する
239 @translationof Multiple output files from one input file
240
241 1 つの @file{.ly} ファイルから複数の出力ファイルを得たいのであれば、@c
242 @file{.ly} ファイルに複数の @code{\book} ブロックを記述します。@c
243 各 @code{\book} ブロックが個々に出力ファイルになります。@c
244 入力ファイルで @code{\book} ブロックを記述しなければ、@c
245 LilyPond は暗黙的にファイル全体を単一の @code{\book} として扱います。@c
246 @ref{ファイル構造} を参照してください。
247
248 単一のソース ファイルから複数のファイルを作り出す時、@c
249 LilyPond は、@code{\book} ブロックが作り出す出力ファイルが@c
250 同じ入力ファイル内にある他の @code{\book} ブロックが作り出した出力ファイルを@c
251 上書きしないことを保証します。
252
253 入力ファイルから派生するデフォルトの出力ファイル名に
254 @code{\book} 毎の接尾辞を付け加えることによって上書きされないことを保証します。
255
256 出力が上書きされないよう、@c
257 デフォルトでは出力ファイル名にバージョン番号の接尾辞を付け加えます。@c
258 ソース ファイル @file{eightminiatures.ly} 内の以下の記述
259
260 @example
261 \book @{
262   \score @{ @dots{} @}
263   \layout @{ @dots{} @}
264 @}
265 \book @{
266   \score @{ @dots{} @}
267   \layout @{ @dots{} @}
268 @}
269 \book @{
270   \score @{ @dots{} @}
271   \layout @{ @dots{} @}
272 @}
273 @end example
274
275 は、下記の出力ファイルを作り出します。
276
277 @itemize
278 @item
279 @file{eightminiatures.pdf},
280 @item
281 @file{eightminiatures-1.pdf} and
282 @item
283 @file{eightminiatures-2.pdf}.
284 @end itemize
285
286
287 @node 出力ファイル名
288 @subsection 出力ファイル名
289 @translationof Output file names
290
291 @funindex \bookOutputSuffix
292 @funindex \bookOutputName
293
294 LilyPond は、@c
295 出力ファイルを作り出す時に出力ファイル名を制御するための様々な機能を提供します。
296
297 前のセクションでは、@c
298 LilyPond がどのように単一のソース ファイルから作り出される複数の出力ファイルが@c
299 上書きされることを防ぐかを見てきました。@c
300 @code{\book} ブロック毎の出力ファイル名に付け加えられる接尾辞を@c
301 指定することもできます。@c
302 各 @code{\book} ブロックの内部に @code{\bookOutputSuffix} 宣言を@c
303 記述することにより、例えば
304 @file{eightminiatures-Romanze.pdf}, @file{eightminiatures-Menuetto.pdf}
305 それに @file{eightminiatures-Nocturne.pdf} といった名前の出力ファイルを@c
306 作り出すことができます。
307
308 @example
309 \book @{
310   \bookOutputSuffix "Romanze"
311   \score @{ @dots{} @}
312   \layout @{ @dots{} @}
313 @}
314 \book @{
315   \bookOutputSuffix "Menuetto"
316   \score @{ @dots{} @}
317   \layout @{ @dots{} @}
318 @}
319 \book @{
320   \bookOutputSuffix "Nocturne"
321   \score @{ @dots{} @}
322   \layout @{ @dots{} @}
323 @}
324 @end example
325
326 @code{\bookOutputName} 宣言を用いることにより、@c
327 @code{\book} ブロックに入力ファイル名とは異なる出力ファイル名を@c
328 指定することもできます。
329
330 @example
331 \book @{
332   \bookOutputName "Romanze"
333   \score @{ @dots{} @}
334   \layout @{ @dots{} @}
335 @}
336 \book @{
337   \bookOutputName "Menuetto"
338   \score @{ @dots{} @}
339   \layout @{ @dots{} @}
340 @}
341 \book @{
342   \bookOutputName "Nocturne"
343   \score @{ @dots{} @}
344   \layout @{ @dots{} @}
345 @}
346 @end example
347
348 上記のファイルは下記の出力ファイルを作り出します:
349
350 @itemize
351 @item
352 @file{Romanze.pdf}
353 @item
354 @file{Menuetto.pdf}
355 @item
356 @file{Nocturne.pdf}
357 @end itemize
358
359
360 @node ファイル構造
361 @subsection ファイル構造
362 @translationof File structure
363
364 @funindex \paper
365 @funindex \midi
366 @funindex \layout
367 @funindex \header
368 @funindex \score
369 @funindex \book
370 @funindex \bookpart
371
372 @file{.ly} ファイルは最上位の表記を任意の数だけ保持することができます
373 -- ここで、最上位の表記とは以下の中の 1 つです:
374
375 @itemize @bullet
376 @item
377 @code{\paper}, @code{\midi}, @code{\layout} などの出力定義。@c
378 最上位にある出力定義はブック全体のデフォルト設定を変更します。@c
379 最上位に同じタイプの出力定義が複数ある場合、@c
380 後ろの方にある出力定義が優先されます。
381
382 @item
383 @code{#(set-default-paper-size "a7" 'landscape)} や
384 @code{#(ly:set-option 'point-and-click #f)} などの Scheme 表記。
385
386 @item
387 @code{\header} ブロック。これはグローバル ヘッダ ブロックになります。@c
388 このブロックは、作曲者、曲名などのブック全体の設定定義を保持します。
389
390 @item
391 @code{\score} ブロック。@c
392 この score は他の最上位の score とともに単一の @code{\book} にまとめられます。@c
393 この振る舞いは、@c
394 変数 @code{toplevel-score-handler} を最上位の階層で設定することによって、@c
395 変更することができます。@c
396 デフォルトのハンドラは@c
397 初期化ファイル @file{../scm/lily.scm} で定義されています。
398
399 @item
400 @code{\book} ブロックは複数の楽章 (すなわち、複数の @code{\score} ブロック) を@c
401 論理的に 1 つのドキュメントにまとめます。@c
402 複数の @code{\score} が存在する場合、@c
403 それぞれの @code{\book} ブロックに対して 1 つずつ出力ファイルが作成され、@c
404 それぞれの出力ファイルの中では該当するすべての楽章が連結されます。@c
405 @file{.ly} ファイルの中で明示的に @code{\book} ブロックを@c
406 指定する必要があるケースはただ 1 つ、@c
407 単一の入力ファイルから複数の出力ファイルを作成することを望む場合です。@c
408 例外の 1 つに lilypond-book ドキュメントがあります
409 -- そこでは、同じ例の中に複数の @code{\socre} あるいは @code{\markup} を@c
410 配置したければ、明示的に @code{\book} ブロックを追加する必要があります。@c
411 この振る舞いは、@c
412 変数 @code{toplevel-score-handler} を最上位の階層で設定することによって、@c
413 変更することができます。@c
414 デフォルトのハンドラは@c
415 初期化ファイル @file{../scm/lily.scm} で定義されています。
416
417 @item
418 @code{\bookpart} ブロック。@c
419 改ページを簡単にするため、@c
420 あるいは異なるパートで別々の @code{\paper} 設定を使用するために、@c
421 book は
422 -- @code{\bookpart} を用いて --
423 いくつかのパートに分割される可能性があります。
424
425 @item
426 以下のような複合音楽表記:
427 @example
428 @{ c'4 d' e'2 @}
429 @end example
430
431 これは楽節を @code{\score} に付け加え、@c
432 その楽節を他のすべての最上位 @code{\score} や音楽表記とともに@c
433 単一のブックにフォーマットにします。@c
434 言い換えると、上記の音楽表記だけを保持しているファイルは@c
435 以下のように翻訳されます:
436
437 @example
438 \book @{
439   \score @{
440     \new Staff @{
441       \new Voice @{
442         @{ c'4 d' e'2 @}
443       @}
444     @}
445     \layout @{ @}
446   @}
447   \paper @{ @}
448   \header @{ @}
449 @}
450 @end example
451
452 この振る舞いは、@c
453 変数 @code{toplevel-score-handler} を最上位の階層で設定することによって、@c
454 変更することができます。@c
455 デフォルトのハンドラは@c
456 初期化ファイル @file{../scm/lily.scm} で定義されています。
457
458 @item
459 マークアップ テキスト。@c
460 例として以下の歌詞を挙げます:
461 @example
462 \markup @{
463    2.  The first line verse two.
464 @}
465 @end example
466
467 マークアップ テキストは、それが出現した場所で、@c
468 score あるいは音楽表記の上、間、あるいは下に描かれます。
469
470 @cindex variables (変数)
471
472 @item
473 以下のような変数:
474 @example
475 foo = @{ c4 d e d @}
476 @end example
477
478 これは後で使用することができます。@c
479 使用するには、入力ファイルの中で @code{\foo} と入力します。@c
480 変数の名前はアルファベットだけで構成すべきです。@c
481 数字、アンダスコアあるいはダッシュを使うことができません。
482
483 @end itemize
484
485 以下の例は最上位の階層で入力される可能性がある 3 つのものを示しています:
486
487 @example
488 \layout @{
489   % Don't justify the output
490   ragged-right = ##t
491 @}
492
493 \header @{
494    title = "Do-re-mi"
495 @}
496
497 @{ c'4 d' e2 @}
498 @end example
499
500
501 ファイルの任意の場所で、以下の編集指示のいずれかが入力される可能性があります:
502
503 @itemize
504 @item @code{\version}
505 @item @code{\include}
506 @item @code{\sourcefilename}
507 @item @code{\sourcefileline}
508 @item
509 @code{%} 記号で始まる単一行コメント。
510
511 @item
512 @code{%@{ .. %@}} で囲まれる複数行コメント。
513
514 @end itemize
515
516 @cindex whitespace
517
518 通常、入力の要素間にある空白は無視され、@c
519 可読性を良くするために自由に削除あるいは追加することができます。@c
520 しかしながら、以下の状況ではエラーを避けるために空白を挿入する必要があります:
521
522 @itemize
523 @item 波括弧の前後。
524 @item コマンドあるいは変数 -- すなわち、@code{\} 記号で始まる要素 -- の後。
525 @item Scheme 表記として解釈される要素
526 -- すなわち、@code{#} 記号で始まる要素 -- の後。
527 @item Scheme 表記要素を区切る空白。
528 @item @code{lyricmode} モードの @code{\override} と @code{\set} コマンドの@c
529 中にある単語を区切る空白。@c
530 特に、@code{\override Score . LyricText #'font-size = #5} のように、@c
531 コマンドの中のドットとイコール記号の前後、コマンド全体の前後に@c
532 空白を挿入することを忘れないで下さい。
533
534 @end itemize
535
536 @seealso
537 学習マニュアル:
538 @rlearning{LilyPond 入力ファイルの仕組み}
539
540
541 @node タイトルとヘッダ
542 @section タイトルとヘッダ
543 @translationof Titles and headers
544
545 ほとんどすべての楽譜にはタイトルと作曲者名が含まれます。@c
546 楽譜の中にはさらに多くの情報を含むものもあります。
547
548 @menu
549 * タイトル、ヘッダ、フッタを作成する::
550 * カスタム ヘッダ、フッタ、タイトル::
551 * 脚注を作成する::
552 * ページ番号の参照::
553 * 目次::
554 @end menu
555
556
557 @node タイトル、ヘッダ、フッタを作成する
558 @subsection タイトル、ヘッダ、フッタを作成する
559 @translationof Creating titles headers and footers
560
561 @menu
562 * タイトル ブロックの説明::
563 * book と score のタイトル ブロックのデフォルト レイアウト::
564 * ヘッダとフッタのデフォルト レウアウト::
565 @end menu
566
567 @node タイトル ブロックの説明
568 @unnumberedsubsubsec タイトル ブロックの説明
569 @translationof Title blocks explained
570
571 @c TODO: figure out how \bookpart titles work
572
573 タイトル ブロックには 2 つのタイプがあります:
574 book の最初の @code{\score} の上に表示されるメインのタイトル ブロックと、@c
575 各 @code{\score} ブロック内に表示される個々のタイトル ブロックです。@c
576 両タイプのテキスト フィールドは @code{\header} ブロックを用いて挿入します。
577
578 book が単一の score しか持たない場合、@c
579 @code{\header} ブロックを配置する場所は @code{\score} ブロックの内側でも@c
580 外側でも構いません。
581
582 @warning{@bs{}@code{score} ブロックの内側に @bs{}@code{header} ブロックを@c
583 追加する場合、@c
584 @bs{}@code{header} ブロックの前に音楽表記を配置する必要があります。}
585
586 @lilypond[papersize=a5,quote,verbatim,noragged-right]
587 \header {
588   title = "SUITE I."
589   composer = "J. S. Bach."
590 }
591
592 \score {
593   \new Staff \relative g, {
594     \clef bass
595     \key g \major
596     \repeat unfold 2 { g16( d' b') a b d, b' d, } |
597     \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
598   }
599   \header {
600     piece = "Prélude."
601   }
602 }
603
604 \score {
605   \new Staff \relative b {
606     \clef bass
607     \key g \major
608     \partial 16 b16 |
609     <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
610     d16( b g fis) g( e d c) b(c d e) fis( g a b) |
611   }
612   \header {
613     piece = "Allemande."
614   }
615 }
616 @end lilypond
617
618 book のメイン タイトル ブロックのテキスト フィールドはすべての @code{\score}
619 ブロックに表示させることができ、手動で表示を抑制することもできます:
620
621 @c KEEP LY
622 @lilypond[papersize=a5,quote,verbatim,noragged-right]
623 \book {
624   \paper {
625     print-all-headers = ##t
626   }
627   \header {
628     title = "DAS WOHLTEMPERIRTE CLAVIER"
629     subtitle = "TEIL I"
630     % この book では tagline を表示しません
631     tagline = ##f
632   }
633   \markup { \vspace #1 }
634   \score {
635     \new PianoStaff <<
636       \new Staff { s1 }
637       \new Staff { \clef "bass" s1 }
638     >>
639     \header {
640       title = "PRAELUDIUM I"
641       opus = "BWV 846"
642       % この score では subtitle を表示しません
643       subtitle = ##f
644     }
645   }
646   \score {
647     \new PianoStaff <<
648       \new Staff { s1 }
649       \new Staff { \clef "bass" s1 }
650     >>
651     \header {
652       title = "FUGA I"
653       subsubtitle = "A 4 VOCI"
654       opus = "BWV 846"
655       % この score では subtitle を表示しません
656       subtitle = ##f
657     }
658   }
659 }
660 @end lilypond
661
662 @seealso
663 記譜法リファレンス:
664 @ref{ファイル構造},
665 @ref{タイトル ブロックのカスタム レイアウト}
666
667
668 @node book と score のタイトル ブロックのデフォルト レイアウト
669 @unnumberedsubsubsec book と score のタイトル ブロックのデフォルト レイアウト
670 @translationof Default layout of book and score title blocks
671
672 タイトル ブロックのレイアウトとフォーマットは 2 つの @code{\paper}
673 変数によって制御されます。@c
674 メインの @code{\header} タイトル ブロックのための @code{bookTitleMarkup} と、@c
675 @code{\score} 内部の個々の @code{\header} ブロックのための
676 @code{scoreTitleMarkup} です。
677
678 @c KEEP LY
679 @lilypond[papersize=a6,quote,verbatim,noragged-right]
680 \header {
681   % 以下のフィールドは中央揃えされます。
682   dedication = "Dedication"
683   title = "Title"
684   subtitle = "Subtitle"
685   subsubtitle = "Subsubtitle"
686   instrument = "Instrument"
687
688   % 以下のフィールドは左端に左揃えされます。
689   poet = "Poet"
690   meter = "Meter"
691
692   % 以下のフィールドは右端に右揃えされます。
693   composer = "Composer"
694   arranger = "Arranger"
695 }
696
697 \score {
698   { s1 }
699   \header {
700     % 以下のフィールドは同一行の両端に配置されます。
701     piece = "Piece"
702     opus = "Opus"
703   }
704 }
705 @end lilypond
706
707 @c Is the bit about \null markups true? -mp
708
709 @code{\header} ブロックでセットされなかったテキスト フィールドには@c
710 @code{\null} マークアップがセットされ、スペースを無駄にしません。
711
712 デフォルト設定では、@code{scoreTitleMarkup} は
713 @code{piece} テキスト フィールドと @code{opus} テキスト フィールドを@c
714 同一行の両端に配置します。
715
716 @cindex breakbefore
717
718 最上位の @code{\header} ブロックのタイトルを最初のページに配置して、@c
719 @code{\score} ブロックで定義される楽譜を次のページから始めるするには、@c
720 @code{\score} ブロックの中にある @code{\header} ブロック内で@c
721 @code{breakbefore} 変数を使用します。
722
723 @lilypond[papersize=a8landscape,verbatim,noragged-right]
724 \book {
725   \header {
726     title = "This is my Title"
727     subtitle = "This is my Subtitle"
728     copyright = "This is the bottom of the first page"
729   }
730   \score {
731     \repeat unfold 4 { e'' e'' e'' e'' }
732     \header {
733       piece = "This is the Music"
734       breakbefore = ##t
735     }
736   }
737 }
738 @end lilypond
739
740 @seealso
741 学習マニュアル:
742 @rlearning{LilyPond 入力ファイルの仕組み}
743
744 記譜法リファレンス:
745 @ref{ファイル構造}
746
747 インストールされているファイル:
748 @file{ly/titling-init.ly}
749
750
751 @node ヘッダとフッタのデフォルト レウアウト
752 @unnumberedsubsubsec ヘッダとフッタのデフォルト レウアウト
753 @translationof Default layout of headers and footers
754
755 @emph{ヘッダ} と @emph{フッタ} は、book のテキストとは別の、@c
756 ページの最初と最後に表示されるテキスト行です。@c
757 ヘッダとフッタは以下の @code{\paper} 変数によって制御されます:
758
759 @itemize
760 @item @code{oddHeaderMarkup}
761 @item @code{evenHeaderMarkup}
762 @item @code{oddFooterMarkup}
763 @item @code{evenFooterMarkup}
764 @end itemize
765
766 これらのマークアップ変数は、最上位の @code{\header} ブロック
767 (これは book のすべての score に適用されます) から、@c
768 テキスト フィールドのみにアクセスすることができ、@c
769 @file{ly/titling-init.ly} で定義されています。@c
770 デフォルトでは以下のようになっています:
771
772 @itemize
773
774 @item
775 ページ番号は、2 ページ目から、ページ最上段の左端 (偶数ページの場合)
776 または右端 (奇数ページの場合) に自動的に配置されます。
777
778 @item
779 @code{instrument} テキスト フィールドは、2 ページ目から、@c
780 各ページの中央に配置されます。
781
782 @item
783 @code{copyright} テキストは最初のページの最下段中央に配置されます。
784
785 @item
786 @code{tagline} は最後のページの最下段中央に配置されます。@c
787 1 ページしかない場合は @code{copyright} の下に配置されます。
788
789 @end itemize
790
791 @lilypond[papersize=a8landscape]
792 \book {
793   \score {
794     \relative c' {
795       c4 d e f
796     }
797   }
798 }
799 @end lilypond
800
801 最上位の @code{\header} ブロックの中に @code{tagline} を追加することで、@c
802 デフォルトのタグラインを変更することができます。
803
804 @lilypond[papersize=a8landscape,verbatim]
805 \book {
806   \header {
807     tagline = "... music notation for Everyone"
808   }
809   \score {
810     \relative c' {
811       c4 d e f
812     }
813   }
814 }
815 @end lilypond
816
817 タグラインを削除するには、@code{tagline}  に @code{##f} をセットします。
818
819
820 @node カスタム ヘッダ、フッタ、タイトル
821 @subsection カスタム ヘッダ、フッタ、タイトル
822 @translationof Custom headers footers and titles
823
824 @c TODO: somewhere put a link to header spacing info
825 @c       (you'll have to explain it more in NR 4).
826
827 @menu
828 * タイトル ブロックのカスタム テキスト フォーマット::
829 * タイトル ブロックのカスタム レイアウト::
830 * ヘッダとフッタのカスタム レイアウト::
831 @end menu
832
833 @node タイトル ブロックのカスタム テキスト フォーマット
834 @unnumberedsubsubsec タイトル ブロックのカスタム テキスト フォーマット
835 @translationof Custom text formatting for title blocks
836
837 標準の @code{\markup} コマンドを使って @code{\header} ブロックの中にある@c
838 ヘッダ、フッタ、それにタイトル テキストをカスタマイズすることができます。
839
840 @lilypond[quote,verbatim,noragged-right]
841 \score {
842   { s1 }
843   \header {
844     piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
845     subtitle = \markup { \italic "(Excerpt)" }
846   }
847 }
848 @end lilypond
849
850 @seealso
851 記譜法リファレンス:
852 @ref{テキストをフォーマットする}
853
854
855 @node タイトル ブロックのカスタム レイアウト
856 @unnumberedsubsubsec タイトル ブロックのカスタム レイアウト
857 @translationof Custom layout for title blocks
858
859 @code{\header} ブロックの中に @code{\markup} コマンドを配置することにより、@c
860 シンプルなテキストをフォーマットすることができます。@c
861 しかしながら、タイトルの配置を精密に制御することはできません。@c
862 テキスト フィールドの配置をカスタマイズするために、@c
863 以下の @code{\paper} 変数のどちらか、あるいは両方を使用します:
864
865 @itemize
866 @item @code{bookTitleMarkup}
867 @item @code{scoreTitleMarkup}
868 @end itemize
869
870 これらのマークアップ変数は
871 @ref{book と score のタイトル ブロックのデフォルト レイアウト}
872 で説明しています。
873
874 @file{ly/titling-init.ly} で定義されている @code{scoreTitleMarkup}
875 のデフォルト設定は以下のとおりです:
876
877 @example
878 scoreTitleMarkup = \markup @{ \column @{
879   \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
880   \fill-line @{
881     \fromproperty #'header:piece
882     \fromproperty #'header:opus
883   @}
884 @}
885 @}
886 @end example
887
888 これは、@code{piece} テキスト フィールドと @code{opus} テキスト フィールドを@c
889 同一行の両端に配置します:
890
891 @lilypond[quote,verbatim,noragged-right]
892 \score {
893   { s1 }
894   \header {
895     piece = "PRAELUDIUM I"
896     opus = "BWV 846"
897   }
898 }
899 @end lilypond
900
901 以下の例では、@code{scoreTitleMarkup} を再定義することにより、@c
902 @code{piece} テキスト フィールドを中央に配置して、フォントを大きく、@c
903 太字にしています。
904
905 @lilypond[papersize=a5,quote,verbatim,noragged-right]
906 \book {
907   \paper {
908     indent = 0\mm
909     scoreTitleMarkup = \markup {
910       \fill-line {
911         \null
912         \fontsize #4 \bold \fromproperty #'header:piece
913         \fromproperty #'header:opus
914       }
915     }
916   }
917   \header { tagline = ##f }
918   \score {
919     { s1 }
920     \header {
921       piece = "PRAELUDIUM I"
922       opus = "BWV 846"
923     }
924   }
925 }
926 @end lilypond
927
928 @code{print-all-headers} を @code{\paper} ブロックの中に配置することにより、@c
929 メイン タイトル ブロックのテキスト フィールドを個々の score タイトル ブロック@c
930 に表示させることができます。@c
931 この方法の欠点は、個々の @code{\score} ブロックで、@c
932 最上位の @code{\header} ブロックだけに表示させるテキスト フィールドを@c
933 手動で抑制する必要があることです。@c
934 @ref{タイトル ブロックの説明} を参照してください。
935
936 この欠点を回避するには、個々の @code{\score} ブロックに表示させたい@c
937 テキスト フィールドを @code{scoreTitleMarkup} 定義に追加します。@c
938 以下の例では、@code{composer} テキスト フィールド
939 (通常、これは @code{bookTitleMarkup} に関連付けされています)
940 を @code{scoreTitleMarkup} に追加することにより、@c
941 各 score は異なる作曲者を表示しています:
942
943 @lilypond[papersize=a5,quote,verbatim,noragged-right]
944 \book {
945   \paper {
946     indent = 0\mm
947     scoreTitleMarkup = \markup {
948       \fill-line {
949         \null
950         \fontsize #4 \bold \fromproperty #'header:piece
951         \fromproperty #'header:composer
952       }
953     }
954   }
955   \header { tagline = ##f }
956   \score {
957     { s1 }
958     \header {
959       piece = "MENUET"
960       composer = "Christian Petzold"
961     }
962   }
963   \score {
964     { s1 }
965     \header {
966       piece = "RONDEAU"
967       composer = "François Couperin"
968     }
969   }
970 }
971 @end lilypond
972
973 あなた自身のカスタム テキスト フィールドを作成して、@c
974 それをマークアップ定義で参照することもできます。
975
976 @lilypond[papersize=a5,quote,verbatim,noragged-right]
977 \book {
978   \paper {
979     indent = 0\mm
980     scoreTitleMarkup = \markup {
981       \fill-line {
982         \null
983         \override #`(direction . ,UP) {
984           \dir-column {
985             \center-align \fontsize #-1 \bold
986               \fromproperty #'header:mycustomtext %% User-defined field
987             \center-align \fontsize #4 \bold
988               \fromproperty #'header:piece
989           }
990         }
991         \fromproperty #'header:opus
992       }
993     }
994   }
995   \header { tagline = ##f }
996   \score {
997     { s1 }
998     \header {
999       piece = "FUGA I"
1000       mycustomtext = "A 4 VOCI" %% User-defined field
1001       opus = "BWV 846"
1002     }
1003   }
1004 }
1005 @end lilypond
1006
1007 @seealso
1008 記譜法リファレンス:
1009 @ref{タイトル ブロックの説明}
1010
1011
1012 @node ヘッダとフッタのカスタム レイアウト
1013 @unnumberedsubsubsec ヘッダとフッタのカスタム レイアウト
1014 @translationof Custom layout for headers and footers
1015
1016 @c can make-header and make-footer be removed from
1017 @c paper-defaults-init.ly? -mp
1018
1019 @code{\header} ブロックの中に @code{\markup} コマンドを配置することにより、@c
1020 シンプルなテキストをフォーマットすることができます。@c
1021 しかしながら、ヘッダとフッタの配置を精密に制御することはできません。@c
1022 テキスト フィールドの配置をカスタマイズするために、@c
1023 以下の @code{\paper} 変数のいずれか、あるいはいくつかを使用します:
1024
1025 @itemize
1026 @item @code{oddHeaderMarkup}
1027 @item @code{evenHeaderMarkup}
1028 @item @code{oddFooterMarkup}
1029 @item @code{evenFooterMarkup}
1030 @end itemize
1031
1032 以下の例では、ページ番号を各ページの最下段中央に配置しています。@c
1033 まず、@code{oddHeaderMarkup} と @code{evenHeaderMarkup} に
1034 @emph{null} を定義することにより、デフォルト設定を削除します。@c
1035 次に、@code{oddFooterMarkup} に中央に配置されたページ番号を再定義します。@c
1036 最後に、@code{evenFooterMarkup} に @code{oddFooterMarkup} を@c
1037 定義することにより、同じレイアウトにします:
1038
1039 @lilypond[papersize=a8,quote,verbatim,noragged-right]
1040 \book {
1041   \paper {
1042     print-page-number = ##t
1043     print-first-page-number = ##t
1044     oddHeaderMarkup = \markup \null
1045     evenHeaderMarkup = \markup \null
1046     oddFooterMarkup = \markup {
1047       \fill-line {
1048         \on-the-fly #print-page-number-check-first
1049         \fromproperty #'page:page-number-string
1050       }
1051     }
1052     evenFooterMarkup = \oddFooterMarkup
1053   }
1054   \score {
1055     \new Staff { s1 \break s1 \break s1 }
1056   }
1057 }
1058 @end lilypond
1059
1060 @seealso
1061 記譜法リファレンス:
1062 @ref{タイトル ブロックの説明},
1063 @ref{book と score のタイトル ブロックのデフォルト レイアウト}
1064
1065
1066 @node 脚注を作成する
1067 @subsection 脚注を作成する
1068 @translationof Creating footnotes
1069
1070 作成できる脚注には 2 つのタイプがあります。@c
1071 自動脚注と手動脚注です。
1072
1073 @menu
1074 * 脚注の概要::
1075 * 自動脚注::
1076 * 手動脚注::
1077 @end menu
1078
1079 @node 脚注の概要
1080 @unnumberedsubsubsec 脚注の概要
1081 @translationof Footnotes overview
1082
1083 自動脚注は繰り上がっていく数字の脚注を作り出し、@c
1084 手動脚注は脚注の印をカスタマイズすることができます。@c
1085 すべてのグラフィカル オブジェクト、最上位の @code{\markup}、@c
1086 それに和音に脚注を付けることができます。
1087
1088 各グラフィカル オブジェクトに付けられた脚注の順番は、
1089 そのグラフィカル オブジェクトが描かれる順番によって決定されます。@c
1090 このため、脚注はコンパイルの最中に作成されます。
1091
1092
1093 @node 自動脚注
1094 @unnumberedsubsubsec 自動脚注
1095 @translationof Automatic footnotes
1096
1097 自動脚注は 3 つの引数を取ります:
1098 脚注を付ける @var{レイアウト オブジェクト}、@c
1099 脚注の位置 @samp{(x . y)}、@c
1100 それにページ下部の脚注に表示される @code{\markup} です。
1101
1102 コマンド @code{\footnote} は脚注を付けるグラフィカル オブジェクトの
1103 @emph{前に} 配置する必要があります:
1104
1105 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1106 \book {
1107   \header { tagline = ##f }
1108   \relative c' {
1109     <>\footnote #'(0.5 . -2) #'NoteHead
1110       \markup { The first note }
1111     a'4 b8
1112     <>\footnote #'(0.5 . 1) #'NoteHead
1113       \markup { The third note }
1114     e c4 d4
1115   }
1116 }
1117 @end lilypond
1118
1119 和音に脚注を付ける場合、@c
1120 @code{\footnote} を脚注を付ける音符の @emph{後に}
1121 @code{TextScript} として配置する必要があります:
1122
1123 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1124 \book {
1125   \header { tagline = ##f }
1126   \relative c' {
1127     <
1128     c\footnote #'(1 . -1.25) "Here is a C"
1129     es\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
1130     g\footnote #'(2 . 3) \markup { \bold "This is a G" }
1131     >1
1132   }
1133 }
1134 @end lilypond
1135
1136 @warning {
1137 脚注の垂直方向の位置が同じになる場合、下方向に並べられます。@c
1138 高い位置にある脚注は、リストでも上に来ます。
1139 }
1140
1141 ここで、グラフィカル オブジェクト動脚注を付ける例をいくつか挙げ、@c
1142 さらに脚注とタグラインやコピーライトとの位置関係を示します。
1143
1144 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1145 \book {
1146   \header { copyright = \markup { "Copyright 1970" } }
1147   \relative c' {
1148     <>\footnote #'(-3 . 0) #'DynamicText
1149       \markup { \bold Forte }
1150
1151     <>\footnote #'(0 . 1.5) #'Slur
1152       \markup { A slur }
1153     a'4\f(
1154
1155     <>\footnote #'(0 . -2) #'Beam
1156       \markup { Beam }
1157     b8)[ e]
1158
1159     <>\footnote #'(1 . -1) #'Stem
1160       \markup  { \teeny { This is a stem } }
1161     c4
1162
1163     <>\footnote #'(0 . 0.5) #'AccidentalCautionary
1164       \markup \italic { A cautionary accidental }
1165
1166     <>\footnote #'(0.5 . -0.5) #'TextScript
1167       \markup \italic { Slow Down }
1168     dis?4_"rit."
1169   }
1170 }
1171 @end lilypond
1172
1173 最上位の @code{\markup} に脚注を付ける場合、@c
1174 @code{\auto-footnote} コマンドを使う必要があります:
1175
1176 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1177 \book {
1178   \header { tagline = ##f }
1179   \markup { \auto-footnote "A simple tune" \italic "By me" }
1180   \relative c' {
1181     a'4 b8 e c4 d
1182   }
1183 }
1184 @end lilypond
1185
1186
1187 @node 手動脚注
1188 @unnumberedsubsubsec 手動脚注
1189 @translationof Manual footnotes
1190
1191 手動脚注は 4 つの引数を取ります:
1192 脚注を付ける @var{レイアウト オブジェクト}、@c
1193 脚注の位置 @samp{(x . y)}、@c
1194 それに 2 つの @code{\markup} コマンドです。@c
1195 2 つの @code{\markup} コマンドのうち、@c
1196 最初のコマンドは音符やグラフィカル オブジェクトに付ける脚注の印で、@c
1197 次のコマンドはページ下部の脚注です。
1198
1199 自動脚注と同様に、手動脚注 @code{\footnote} コマンドは@c
1200 脚注を付けるグラフィカル オブジェクトの
1201 @emph{後に} @code{TextScript} として配置する必要があります:
1202
1203 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1204 \book {
1205   \header { tagline = ##f }
1206   \relative c' {
1207     a'4\footnote
1208           "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
1209     b8
1210     e\footnote
1211           \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
1212     c4
1213     d\p\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
1214   }
1215 }
1216 @end lilypond
1217
1218 和音に手動脚注を付ける場合、以下のようにします:
1219
1220 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1221 \book {
1222   \header { tagline = ##f }
1223   \relative c' {
1224     <
1225     c\footnote "1" #'(1 . -1.25) "1. C"
1226     es\footnote
1227        \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
1228     g\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
1229     >1
1230   }
1231 }
1232 @end lilypond
1233
1234 @warning {
1235 脚注の垂直方向の位置が同じになる場合、下方向に並べられます。@c
1236 高い位置にある脚注は、リストでも上に来ます。
1237 }
1238
1239 ここで、グラフィカル オブジェクトに手動脚注を付ける例をいくつか挙げ、@c
1240 脚注とタグラインやコピーライトとの位置関係を示します。
1241
1242 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1243 \book {
1244   \header { tagline = ##f }
1245   \relative c' {
1246     <>\footnote
1247       \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
1248       \markup { 1. \bold Forte }
1249
1250     <>\footnote
1251       \markup { \teeny b } #'(0 . 1.5) #'Slur
1252       \markup { b. A slur }
1253     a'4\f(
1254
1255     <>\footnote
1256       \markup { \teeny 3 } #'(0 . -2) #'Beam
1257       \markup { 3. Beam }
1258     b8)[ e]
1259
1260     <>\footnote
1261       \markup { 4 } #'(1 . -1) #'Stem
1262       \markup  { \bold 4. { This is a stem } }
1263     c4
1264
1265     <>\footnote
1266       \markup \concat \teeny { "sharp (v)" }
1267           #'(0 . 0.5) #'AccidentalCautionary
1268       \markup \italic { v. A cautionary accidental }
1269
1270     <>\footnote
1271       \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
1272       \markup \italic { a. Slow Down }
1273     dis?4_"rit."
1274
1275     \breathe
1276     <>\footnote
1277       \markup { \teeny \musicglyph #"rests.4" }
1278           #'(1.5 . -0.25) #'BreathingSign
1279       \markup { \null }
1280   }
1281 }
1282 @end lilypond
1283
1284 最上位の @code{\markup} に脚注を付ける場合、下記のようにします:
1285
1286 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1287 \book {
1288   \header { tagline = ##f }
1289   \markup { "A simple tune" \footnote "*" \italic "* By me" }
1290   \relative c' {
1291     a'4 b8 e c4 d4
1292   }
1293 }
1294 @end lilypond
1295
1296 @seealso
1297 学習マニュアル:
1298 @rlearning{オブジェクトとインタフェイス}
1299
1300 記譜法リファレンス:
1301 @ref{バルーン ヘルプ},
1302 @ref{ページ レイアウト},
1303 @ref{テキスト マーク},
1304 @ref{テキスト スクリプト},
1305 @ref{タイトルとヘッダ}
1306
1307 内部リファレンス:
1308 @rinternals{FootnoteEvent},
1309 @rinternals{FootnoteItem},
1310 @rinternals{FootnoteSpanner},
1311 @rinternals{Footnote_engraver}
1312
1313 @knownissues
1314 同じページにある複数の脚注は上下にしか配置できません。@c
1315 ある脚注が他の脚注の上に配置され、同じ行に配置することはできません。@c
1316 @code{MultiMeasureRests} に脚注を付けることはできず、@c
1317 @code{Staff}、@code{\markup} オブジェクト、それに他の @code{footnote} と@c
1318 衝突する可能性があります。@c
1319 手動の @code{footnote} コマンドを使う場合、@c
1320 containing @code{footnote-auto-number = ##f} を保持している
1321 @code{\paper} ブロックが必要です。
1322
1323
1324 @ignore
1325 @node カスタム タイトル
1326 @subsection カスタム タイトル
1327 @translationof Custom titles
1328
1329 さらに高度なオプションとして、@c
1330 @code{\paper} ブロックの中にある以下の変数の定義を変更することができます。@c
1331 初期化ファイル @file{../ly/titling-init.ly} が@c
1332 デフォルトのレイアウトの設定リストです。
1333
1334 @table @code
1335 @funindex bookTitleMarkup
1336 @item bookTitleMarkup
1337   これは出力ドキュメントの先頭に付け加えられるタイトルです。@c
1338 通常、ここには作品の作曲者名とタイトルが含まれます。
1339
1340 @funindex scoreTitleMarkup
1341 @item scoreTitleMarkup
1342   これは @code{\score} ブロックの上に配置されるタイトルです。@c
1343 通常、ここには楽章の名前 (@code{piece} フィールド) が含まれます。
1344
1345 @funindex oddHeaderMarkup
1346 @item oddHeaderMarkup
1347   これは奇数番号ページのヘッダです。
1348
1349 @funindex evenHeaderMarkup
1350 @item evenHeaderMarkup
1351   これは偶数番号ページのヘッダです。@c
1352 これが指定されていない場合は、奇数番号ページのヘッダが代わりに使用されます。
1353
1354   デフォルトのヘッダ定義は、ページ番号は端に配置し、@c
1355 楽器名は中央に配置するようになっています。
1356
1357 @funindex oddFooterMarkup
1358 @item oddFooterMarkup
1359   これは奇数番号ページのフッタです。
1360
1361 @funindex evenFooterMarkup
1362 @item evenFooterMarkup
1363   これは偶数番号ページのフッタです。@c
1364 これが指定されていない場合は、偶数番号ページのフッタが代わりに使用されます。
1365
1366   デフォルトでは、最初のページのフッタには著作権についての注意書きが含まれ、@c
1367 最後のページのフッタにはタグ行が含まれます。
1368 @end table
1369
1370
1371 @cindex \paper
1372 @cindex header (ヘッダ)
1373 @cindex footer (フッタ)
1374 @cindex page layout (ページ レイアウト)
1375 @cindex titles (タイトル)
1376
1377 以下の定義では、タイトルはページの左側に配置され、@c
1378 作曲者名は同じ行の右側に配置されます。
1379
1380 @verbatim
1381 \paper {
1382   bookTitleMarkup = \markup {
1383    \fill-line {
1384      \fromproperty #'header:title
1385      \fromproperty #'header:composer
1386    }
1387   }
1388 }
1389 @end verbatim
1390 @end ignore
1391
1392 @node ページ番号の参照
1393 @subsection ページ番号の参照
1394 @translationof Reference to page numbers
1395
1396 @code{\label} コマンドを用いて、楽譜のある特定の場所
1397 -- 楽譜の最上位あるいは内部 --
1398 に印をつけることができます。@c
1399 このラベルをマークアップの中で参照することできます。@c
1400 ラベルを付けられた場所のページ番号を取得するには、@c
1401 @code{\page-ref} マークアップ コマンドを使います。
1402
1403 @lilypond[verbatim]
1404 \header { tagline = ##f }
1405 \book {
1406   \label #'firstScore
1407   \score {
1408     {
1409       c'1
1410       \pageBreak \mark A \label #'markA
1411       c'1
1412     }
1413   }
1414   \markup { The first score begins on page \page-ref #'firstScore "0" "?" }
1415   \markup { Mark A is on page \page-ref #'markA "0" "?" }
1416 }
1417 @end lilypond
1418
1419 @code{\page-ref} マークアップ コマンドは 3 つの引数をとります:
1420 @enumerate
1421 @item ラベル。@c
1422 これは Scheme シンボルです -- 例: @code{#'firstScore}。
1423 @item マークアップ。@c
1424 これはマークアップの大きさを推定するためのゲージです。
1425 @item マークアップ。@c
1426 これは、ラベルが不明な場合にページ番号として用いられます。
1427 @end enumerate
1428
1429 ゲージが必要な理由は、@c
1430 マークアップが解釈されているときに改ページはまだ行われておらず、@c
1431 ページ番号はまだわからないからです。@c
1432 この問題を回避するために、@c
1433 実際のマークアップ解釈はもっと後に延期されます。@c
1434 しかしながら、マークアップの大きさは事前に判明している必要があるため、@c
1435 ゲージを使ってマークアップの大きさを決定します。@c
1436 book のページ数が 10 から 99 までの範囲であるのなら、ゲージを "00"
1437 -- つまり、2 桁の数 -- にします。
1438
1439
1440 @predefined
1441 @funindex \label
1442 @code{\label},
1443 @funindex \page-ref
1444 @code{\page-ref}
1445 @endpredefined
1446
1447
1448 @node 目次
1449 @subsection 目次
1450 @translationof Table of contents
1451
1452 目次は @code{\markuplist \table-of-contents} コマンドを用いて挿入します。@c
1453 目次に表示すべき要素は @code{\tocItem} コマンドで挿入されます
1454 -- このコマンドは最上位あるいは音楽表記の内部で使用します。
1455
1456 @verbatim
1457 \markuplist \table-of-contents
1458 \pageBreak
1459
1460 \tocItem \markup "First score"
1461 \score {
1462   {
1463     c'4  % ...
1464     \tocItem \markup "Some particular point in the first score"
1465     d'4  % ...
1466   }
1467 }
1468
1469 \tocItem \markup "Second score"
1470 \score {
1471   {
1472     e'4 % ...
1473   }
1474 }
1475 @end verbatim
1476
1477 目次を構成するために使用するマークアップは
1478 @code{\paper} ブロックの中で定義します。@c
1479 デフォルトのマークアップは、@c
1480 目次のタイトルを構成する @code{tocTitleMarkup} と、@c
1481 目次の要素 -- 要素のタイトルとページ番号 -- を構成する
1482 @code{tocItemMarkup} です。@c
1483 これらの変数はユーザによって変更することができます:
1484
1485 @c KEEP LY
1486 @verbatim
1487 \paper {
1488   %% 目次タイトルをフランス語に翻訳します:
1489   tocTitleMarkup = \markup \huge \column {
1490     \fill-line { \null "Table des matières" \null }
1491     \hspace #1
1492   }
1493   %% より大きなフォント サイズを使用します
1494   tocItemMarkup = \markup \large \fill-line {
1495     \fromproperty #'toc:text \fromproperty #'toc:page
1496   }
1497 }
1498 @end verbatim
1499
1500 @code{tocItemMarkup} 定義の中で目次要素のテキストとページ番号を@c
1501 参照する方法に注目してください。
1502
1503 より手の込んだ目次を構築するために新しいコマンドとマークアップを@c
1504 定義することもできます:
1505 @itemize
1506 @item まず、@code{\paper} ブロックの中で新しいマークアップ変数を定義します
1507 @item それから、このマークアップ変数を用いて、@c
1508 目次要素を付け加えるための音楽関数を定義します。
1509 @end itemize
1510
1511 以下の例では、@c
1512 オペラの目次の中で幕の名前を挿入するために新しい様式を定義しています:
1513
1514 @verbatim
1515 \paper {
1516   tocActMarkup = \markup \large \column {
1517     \hspace #1
1518     \fill-line { \null \italic \fromproperty #'toc:text \null }
1519     \hspace #1
1520   }
1521 }
1522
1523 tocAct =
1524 #(define-music-function (parser location text) (markup?)
1525    (add-toc-item! 'tocActMarkup text))
1526 @end verbatim
1527
1528 @lilypond[line-width=11.0\cm]
1529 \header { tagline = ##f }
1530 \paper {
1531   tocActMarkup = \markup \large \column {
1532     \hspace #1
1533     \fill-line { \null \italic \fromproperty #'toc:text \null }
1534     \hspace #1
1535   }
1536 }
1537
1538 tocAct =
1539 #(define-music-function (parser location text) (markup?)
1540    (add-toc-item! 'tocActMarkup text))
1541
1542 \book {
1543   \markuplist \table-of-contents
1544   \tocAct \markup { Atto Primo }
1545   \tocItem \markup { Coro. Viva il nostro Alcide }
1546   \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
1547   \tocAct \markup { Atto Secondo }
1548   \tocItem \markup { Sinfonia }
1549   \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
1550   \markup \null
1551 }
1552 @end lilypond
1553
1554 要素とページ番号の間をドットで埋めることができます:
1555
1556 @lilypond[verbatim,quote]
1557 \header { tagline = ##f }
1558 \paper {
1559   tocItemMarkup = \tocItemWithDotsMarkup
1560 }
1561
1562 \book {
1563   \markuplist \table-of-contents
1564   \tocItem \markup { Allegro }
1565   \tocItem \markup { Largo }
1566   \markup \null
1567 }
1568 @end lilypond
1569
1570
1571 @seealso
1572 初期化ファイル: @file{../ly/toc-init.ly}
1573
1574
1575 @predefined
1576 @funindex \table-of-contents
1577 @code{\table-of-contents},
1578 @funindex \tocItem
1579 @code{\tocItem}.
1580 @endpredefined
1581
1582
1583 @node 入力ファイルに取り組む
1584 @section 入力ファイルに取り組む
1585 @translationof Working with input files
1586
1587 @menu
1588 * LilyPond ファイルをインクルードする::
1589 * 1 つのソースから異なる版を生成する::
1590 * 特殊文字::
1591 @end menu
1592
1593
1594 @node LilyPond ファイルをインクルードする
1595 @subsection LilyPond ファイルをインクルードする
1596 @translationof Including LilyPond files
1597
1598 @funindex \include
1599 @cindex including files (ファイルをインクルードする)
1600
1601 大きなプロジェクトは別々のファイルに分割することができます。@c
1602 他のファイルを参照するには、以下のようにします:
1603
1604 @example
1605 \include "otherfile.ly"
1606 @end example
1607
1608 @code{\include "otherfile.ly"} という行は、@c
1609 @file{otherfile.ly} の内容をカレント ファイルの @code{\include}
1610 がある場所に貼り付けるのと等価です。@c
1611 例えば、大きなプロジェクトでは、個々の楽器パートを別々のファイルで記述し、@c
1612 個々の楽器ファイルをまとめる @qq{総譜} ファイルを作成することができます。@c
1613 通常、インクルードされるファイルはいくつかの変数を定義し、@c
1614 それらの変数は総譜ファイルの中で使用されます。@c
1615 インクルードされるファイルの中でタグ付きセクションにマークを付けて、@c
1616 それを楽譜の他の場所で使うことができます
1617 -- @ref{1 つのソースから異なる版を生成する} を参照してください。
1618
1619 カレントのワーキング ディレクトリの中にあるファイルは
1620 @code{\include} コマンドに後にファイル名を指定するだけで@c
1621 参照することができます。@c
1622 他の場所にあるファイルはフル パス参照か相対パス参照
1623 (ディレクトリ区切りとして、UNIX ではスラッシュ / を使用しますが、@c
1624 DOS/Windows ではバックスラッシュ \ を使用します) によって@c
1625 参照することができます。@c
1626 例えば、@file{stuff.ly} がカレントのワーキング ディレクトリよりも
1627 1 つ上のディレクトリの中にある場合、以下のようにインクルードします:
1628
1629 @example
1630 \include "../stuff.ly"
1631 @end example
1632
1633 @noindent
1634 あるいは、インクルードされるオーケストラのすべてのパート ファイルが、@c
1635 カレント ディレクトリ内部の @file{parts} というサブディレクトリの中に@c
1636 配置されている場合、以下のようにインクルードします:
1637
1638 @example
1639 \include "parts/VI.ly"
1640 \include "parts/VII.ly"
1641 ... etc
1642 @end example
1643
1644 インクルードされるファイルも @code{\include} 文を持つことができます。@c
1645 それら第 2 レベルの @code{\include} 文はそのファイルがメイン ファイルに@c
1646 組み込まれるまで解釈されません。@c
1647 そのため、第 2 レベルの @code{\include} 文で指定するファイル名は@c
1648 すべてメイン ファイルを保持しているディレクトリからの相対参照で@c
1649 指定しなければなりません
1650 -- インクルード ファイルを保持しているディレクトリからではありません。@c
1651 しかしながら、この振る舞いは、オプション @option{-drelative-includes} を@c
1652 コマンド ラインで渡すことによって
1653 (あるいは、メイン入力ファイルの先頭に
1654 @code{#(ly:set-option 'relative-includes #t)} を付け加えることによって)
1655 変更することができます。@c
1656 @code{relative-includes} をセットすることで、@c
1657 各 @code{\include} コマンドのパスは@c
1658 そのコマンドを保持しているファイルからの相対参照になります。@c
1659 この振る舞いを使用することが推奨されていて、@c
1660 lilypond の将来のバージョンではこの振る舞いがデフォルトになります。
1661
1662 コマンド ラインから LilyPond を呼び出すときにオプションとして指定した@c
1663 サーチ パスに含まれるディレクトリから@c
1664 ファイルをインクルードすることもできます。@c
1665 サーチ パスを指定した場合、@c
1666 インクルードされるファイルはファイル名だけで指定されます。@c
1667 例えば、サーチ パスで指定する @file{parts} というサブディレクトリの中にある@c
1668 ファイルをインクルードする @file{main.ly} をコンパイルするには、@c
1669 @file{main.ly} を保持しているディレクトリに cd して、以下を入力します:
1670
1671 @example
1672 lilypond --include=parts main.ly
1673 @end example
1674
1675 @file{main.ly} の中には以下を記述しておきます:
1676
1677 @example
1678 \include "VI.ly"
1679 \include "VII.ly"
1680 ... etc
1681 @end example
1682
1683 いくつもの楽譜でインクルードされるファイルは
1684 LilyPond ディレクトリ @file{../ly} の中に置くことになるかもしれません
1685 (このディレクトリが存在する場所はインストールの仕方に依存します
1686 -- @rlearning{その他の情報源} を参照してください)。@c
1687 このディレクトリの中にあるファイルは、@code{\include} 文で@c
1688 ファイル名を指定するだけでインクルードすることができます。@c
1689 この方法で @file{english.ly} のような言語依存のファイルを@c
1690 インクルードしています。
1691
1692 LilyPond は、実行開始時に、デフォルトで@c
1693 いくつかのファイルをインクルードします。@c
1694 このインクルードはユーザには明らかにされませんが、@c
1695 コマンド ラインから @code{lilypond --verbose} を実行することによって@c
1696 インクルードされるファイルを明らかにすることができます。@c
1697 @code{--verbose} オプションは、他の多くの情報とともに、@c
1698 LilyPond が使用するパスとファイルのリストを表示します。@c
1699 また、デフォルトでインクルードされるファイルのうち、@c
1700 より重要なファイルについて @rlearning{その他の情報源} で議論されています。@c
1701 これらのファイルを編集することができますが、@c
1702 これらのファイルに加えられた変更は@c
1703 新しいバージョンの LilyPond をインストールすると失われます。
1704
1705 @code{\include} を使用している簡単な例がいくつか
1706 @rlearning{楽譜とパート} で示されています。
1707
1708
1709 @seealso
1710 学習マニュアル:
1711 @rlearning{その他の情報源},
1712 @rlearning{楽譜とパート}
1713
1714
1715 @knownissues
1716
1717 インクルードされるファイルに LilyPond のインストール ファイルと同じ名前が@c
1718 与えられている場合、LilyPond のインストール ファイルが優先されます。
1719
1720
1721
1722 @node 1 つのソースから異なる版を生成する
1723 @subsection 1 つのソースから異なる版を生成する
1724 @translationof Different editions from one source
1725
1726 同じ音楽ソースから異なるバージョンの楽譜を容易に生成できるようにするために、@c
1727 いくつかの方法が用意されています。@c
1728 長い音楽や注記のセクションをさまざまなやり方で組み合わせる場合には、@c
1729 おそらく変数が最も役に立つでしょう。@c
1730 差し替え用の短い音楽セクションの中から 1 つを選択する場合にはタグが役に立ち、@c
1731 楽曲の一部をいろいろな箇所で組み合わせることもできます。
1732
1733 どのような方法をとるにしても、楽譜構造から音楽表記を分離しておくと、@c
1734 音楽表記に手を触れずに楽譜構造を変更することが簡単に行えます。
1735
1736 @menu
1737 * 変数を使用する::
1738 * タグを使用する::
1739 * グローバル設定を使用する::
1740 @end menu
1741
1742 @node 変数を使用する
1743 @unnumberedsubsubsec 変数を使用する
1744 @translationof Using variables
1745
1746 @cindex variables, use of (変数を使用する)
1747
1748 音楽のセクションが変数の中で定義されている場合、@c
1749 そのセクションを楽譜の異なる部分で再利用することができます
1750 -- @rlearning{変数を用いて楽曲を編成する} を参照してください。@c
1751 例えば、@notation{アカペラ} のボーカル譜はリハーサル目的で@c
1752 すべてのパートをまとめたピアノ譜を持つことがよくあります。@c
1753 これは声楽全般で言えることです。@c
1754 その場合、音楽を入力する必要があるのは 1 回だけです。@c
1755 2 つの変数からの音楽を 1 つの譜に組み込むことができます
1756 -- @ref{自動パート結合} を参照してください。@c
1757 ここに例を挙げます:
1758
1759 @lilypond[verbatim,quote]
1760 sopranoMusic = \relative c'' { a4 b c b8( a) }
1761 altoMusic = \relative g' { e4 e e f }
1762 tenorMusic = \relative c' { c4 b e d8( c) }
1763 bassMusic = \relative c' { a4 gis a d, }
1764 allLyrics = \lyricmode {King of glo -- ry }
1765 <<
1766   \new Staff = "Soprano" \sopranoMusic
1767   \new Lyrics \allLyrics
1768   \new Staff = "Alto" \altoMusic
1769   \new Lyrics \allLyrics
1770   \new Staff = "Tenor" {
1771     \clef "treble_8"
1772     \tenorMusic
1773   }
1774   \new Lyrics \allLyrics
1775   \new Staff = "Bass" {
1776     \clef "bass"
1777     \bassMusic
1778   }
1779   \new Lyrics \allLyrics
1780   \new PianoStaff <<
1781     \new Staff = "RH" {
1782       \set Staff.printPartCombineTexts = ##f
1783       \partcombine
1784       \sopranoMusic
1785       \altoMusic
1786     }
1787     \new Staff = "LH" {
1788       \set Staff.printPartCombineTexts = ##f
1789       \clef "bass"
1790       \partcombine
1791       \tenorMusic
1792       \bassMusic
1793     }
1794   >>
1795 >>
1796 @end lilypond
1797
1798 音楽表記には変更を加えずに、楽譜構造の文を変えるだけで、@c
1799 ボーカル パートだけあるいはピアノ パートだけの楽譜を作り出すことができます。
1800
1801 長い楽譜では、変数定義をそれぞれ別々のファイルの中に置いて、@c
1802 それらのファイルをインクルードすることになるかもしれません
1803 -- @ref{LilyPond ファイルをインクルードする} を参照してください。
1804
1805 @node タグを使用する
1806 @unnumberedsubsubsec タグを使用する
1807 @translationof Using tags
1808
1809 @funindex \tag
1810 @funindex \keepWithTag
1811 @funindex \removeWithTag
1812 @funindex \pushToTag
1813 @funindex \appendToTag
1814 @cindex tag (タグ)
1815 @cindex keep tagged music (タグの付いた音楽を保持する)
1816 @cindex remove tagged music (タグの付いた音楽を排除する)
1817 @cindex splice into tagged music (タグの付いた音楽を組み合わせる)
1818
1819 @code{\tag #'@var{partA}} コマンドは音楽表記に
1820 @var{partA} という名前を付けます。@c
1821 この方法でタグを付けられた表記は、後で @code{\keepWithTag #'@var{name}} と
1822 @code{\removeWithTag #'@var{name}} のどちらかを用いて、@c
1823 名前によって選択あるいは排除することができます。@c
1824 タグの付いた音楽にそのようなフィルタを適用した結果は以下のようになります:
1825
1826 @multitable @columnfractions .5 .5
1827 @headitem フィルタ
1828   @tab 結果
1829 @item
1830 @code{\keepWithTag #'@var{name}} が前に付くタグ付きの音楽
1831   @tab タグの付いていない音楽と @var{name} というタグの付いた音楽が@c
1832 インクルードされます。@c
1833 他のタグ名を持つタグ付き音楽は排除されます。
1834 @item
1835 @code{\removeWithTag #'@var{name}} が前に付くタグ付きの音楽
1836   @tab タグの付いていない音楽と @var{name} 以外のタグを持つ音楽が@c
1837 インクルードされます。@c
1838 @var{name} というタグの付いた音楽は排除されます。
1839 @item
1840 @code{\keepWithTag} と @code{\removeWithTag} のどちらも@c
1841 前に付かないタグ付きの音楽
1842   @tab タグの付いた音楽とタグの付いていない音楽すべてがインクルードされます。
1843 @end multitable
1844
1845 @code{\tag}、@code{\keepWithTag} それに @code{\removeWithTag} コマンドの引数は@c
1846 シンボル (@code{#'score} や @code{#'part} など) とその後に続けて@c
1847 音楽表記であるべきです。
1848
1849 以下の例では、楽曲を 2 つのバージョンで示しています。@c
1850 1 つはトリルを通常の記譜法で示していて、@c
1851 もう 1 つはトリルを明示的に展開しています:
1852
1853 @lilypond[verbatim,quote]
1854 music = \relative g' {
1855   g8. c32 d
1856   \tag #'trills {d8.\trill }
1857   \tag #'expand {\repeat unfold 3 {e32 d} }
1858   c32 d
1859  }
1860
1861 \score {
1862   \keepWithTag #'trills \music
1863 }
1864 \score {
1865   \keepWithTag #'expand \music
1866 }
1867 @end lilypond
1868
1869 @noindent
1870 @code{\keepWithTag} を使う代わりに、@c
1871 音楽セクションを排除する方が楽な場合もあります:
1872
1873 @lilypond[verbatim,quote]
1874 music = \relative g' {
1875   g8. c32 d
1876   \tag #'trills {d8.\trill }
1877   \tag #'expand {\repeat unfold 3 {e32 d} }
1878   c32 d
1879  }
1880
1881 \score {
1882   \removeWithTag #'expand
1883   \music
1884 }
1885 \score {
1886   \removeWithTag #'trills
1887   \music
1888 }
1889 @end lilypond
1890
1891 タグ フィルタリングはアーティキュレーション、テキストなどにも@c
1892 適用することができます。@c
1893 フィルタリングを行うにはアーティキュレーションの前に
1894
1895 @example
1896 -\tag #'@var{your-tag}
1897 @end example
1898
1899 を置きます。@c
1900 例えば、以下は条件付の運指指示を持つ音符と条件付注記を持つ音符を定義しています:
1901
1902 @example
1903 c1-\tag #'finger ^4
1904 c1-\tag #'warn ^"Watch!"
1905 @end example
1906
1907 複数の @code{\tag} エントリで、表記に複数のタグを付ける場合もあります:
1908
1909 @lilypond[quote,verbatim]
1910 music = \relative c'' {
1911   \tag #'a \tag #'both { a4 a a a }
1912   \tag #'b \tag #'both { b4 b b b }
1913 }
1914 <<
1915 \keepWithTag #'a \music
1916 \keepWithTag #'b \music
1917 \keepWithTag #'both \music
1918 >>
1919 @end lilypond
1920
1921 単一の音楽表記に複数の @code{\removeWithTag} フィルタを適用することによって、@c
1922 いくつかの異なる名前のタグが付いたセクションを排除することができます:
1923
1924 @lilypond[verbatim,quote]
1925 music = \relative c'' {
1926 \tag #'A { a4 a a a }
1927 \tag #'B { b4 b b b }
1928 \tag #'C { c4 c c c }
1929 \tag #'D { d4 d d d }
1930 }
1931 {
1932 \removeWithTag #'B
1933 \removeWithTag #'C
1934 \music
1935 }
1936 @end lilypond
1937
1938 単一の音楽表記に複数の @code{\keepWithTag} フィルタを適用すると、@c
1939 タグ付きセクションは @emph{すべて} 排除されます。@c
1940 なぜなら、最初のフィルタはあるタグ名以外を持つセクションを排除し、@c
1941 2 番目のフィルタがそのタグ名を持つセクションを排除するからです。
1942
1943 既存の音楽表記のある特定の場所にいくつか音を組み込みたいことがあります。@c
1944 @code{\pushToTag} と @code{\appendToTag} を使って、@c
1945 既存の音楽構造の @code{要素} の前または後に素材を追加することができます。@c
1946 すべての音楽構造が @code{要素} を持つわけではありませんが、@c
1947 連続するか同時進行する音楽構造はまず間違いなく @code{要素} を持ちます:
1948
1949 @lilypond[verbatim,quote]
1950 test = { \tag #'here { \tag #'here <<c''>> } }
1951
1952 {
1953   \pushToTag #'here c'
1954   \pushToTag #'here e'
1955   \pushToTag #'here g' \test
1956   \appendToTag #'here c'
1957   \appendToTag #'here e'
1958   \appendToTag #'here g' \test
1959 }
1960 @end lilypond
1961
1962 どちらのコマンドもタグ、組み込む素材、それにタグ付けされた音楽表記を
1963 取り、タグが出現するたびに素材を組み込みます。@c
1964 これらのコマンドは変更するものを全てコピーするので、@c
1965 オリジナルの @code{\test} が元の意味を保持し続けることを保証します。
1966
1967
1968 @seealso
1969 学習マニュアル:
1970 @rlearning{変数を用いて楽曲を編成する}
1971
1972 記譜法リファレンス:
1973 @ref{自動パート結合},
1974 @ref{LilyPond ファイルをインクルードする}
1975
1976 @ignore
1977 @c This warning is more general than this placement implies.
1978 @c Rests are not merged whether or not they come from tagged sections.
1979 @c Should be deleted?  -td
1980
1981 @knownissues
1982
1983 Multiple rests are not merged if you create a score with more
1984 than one tagged section at the same place.
1985
1986 複数のタグ付きセクションからを生成した場合、@c
1987 同じ場所にある複数の休符はマージされません。
1988 @end ignore
1989
1990
1991 @node グローバル設定を使用する
1992 @unnumberedsubsubsec グローバル設定を使用する
1993 @translationof Using global settings
1994
1995 @cindex include-settings
1996
1997 別のファイルからグローバル設定をインクルードすることができます:
1998
1999 @example
2000 lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly
2001 @end example
2002
2003 ページ サイズ、フォント、書体などのような設定のグループを別々のファイルに@c
2004 保存することができます。@c
2005 こうすることにより、適当な設定ファイルを指定するだけで、@c
2006 同じ楽譜から異なる版を作り出すことができます。
2007
2008 このテクニックはスタイル シートでも使えます。@c
2009 @rlearning{スタイル シート} を参照してください。
2010
2011 @seealso
2012 学習マニュアル:
2013 @rlearning{変数を用いて楽曲を編成する},
2014 @rlearning{スタイル シート}.
2015
2016 記譜法リファレンス:
2017 @ref{LilyPond ファイルをインクルードする}
2018
2019
2020 @node 特殊文字
2021 @subsection 特殊文字
2022 @translationof Special characters
2023
2024 @cindex special characters (特殊文字)
2025 @cindex non-ASCII characters (非 ASCII 文字)
2026
2027 @menu
2028 * テキスト エンコーディング::
2029 * Unicode::
2030 * ASCII エイリアス::
2031 @end menu
2032
2033
2034 @node テキスト エンコーディング
2035 @unnumberedsubsubsec テキスト エンコーディング
2036 @translationof Text encoding
2037
2038 @cindex UTF-8
2039
2040 LilyPond は Unicode 協会と ISO/IEC 10646 によって定義された@c
2041 文字レパートリを使用します。@c
2042 この文字レパートリは、ほとんどすべての現代言語と他の多くの言語で@c
2043 使用される文字セットに対して、固有の名前とコード位置を定義しています。@c
2044 Unicode はいくつかの異なるエンコーディングを用いて実装することができます。@c
2045 LilyPond は UTF-8 エンコーディング
2046 (UTF は Unicode Transformation Format を意味します) を使用します
2047 -- UTF-8 はすべての共通ラテン文字を 1 バイトで表し、@c
2048 他の文字を可変バイト長形式 (最大 4 ビット) で表します。
2049
2050 文字の実際の見た目は利用可能なある特定のフォントの中にあるグリフ (図柄)
2051 によって決定されます
2052 -- フォントはグリフを指す Unicode コードのサブセット (部分集合) の写像を@c
2053 定義しています。@c
2054 LilyPond は多言語テキストを、Pango ライブラリを用いて、@c
2055 レイアウトして描画します。
2056
2057 Lilypond は入力のエンコーディング変換をまったく行いません。@c
2058 これは非 ASCII 文字を含むすべてのテキスト
2059  -- タイトル、歌詞テキストあるいは演奏指示 --
2060 を UTF-8 でエンコードして入力する必要があるということを意味します。@c
2061 そのようなテキストを入力する最も容易な方法は Unicode を認識するエディタを@c
2062 用いて、ファイルを UTF-8 で保存することです。@c
2063 人気のある現代的なエディタのほとんどが UTF-8 をサポートします
2064  -- 例えば、vim, Emacs, jEdit, GEdit です。@c
2065 NT より後の MS Windows システムはすべて@c
2066 ネイティブ キャラクタ エンコーディングとして Unicode を使用します。@c
2067 そのため、Notepad でさえ UTF-8 フォーマットのファイルを@c
2068 編集して保存することができます。@c
2069 Windows 用のもっと機能的なエディタに BabelPad があります。
2070
2071 非 ASCII 文字を保持している LilyPond 入力ファイルが UTF-8 フォーマットで@c
2072 保存されていない場合、エラー メッセージ
2073
2074 @example
2075 FT_Get_Glyph_Name () error: invalid argument
2076 @end example
2077
2078 が表示されます。
2079
2080 ここでキリル文字、ヘブライ文字、ポルトガル語のテキストを表示する例を挙げます:
2081
2082 @c KEEP LY
2083 @lilypond[quote]
2084 %c No verbatim here as the code does not display correctly in PDF
2085 % キリル文字
2086 bulgarian = \lyricmode {
2087   Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
2088 }
2089
2090 % ヘブライ文字
2091 hebrew = \lyricmode {
2092   זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
2093 }
2094
2095 % ポルトガル語
2096 portuguese = \lyricmode {
2097   à vo -- cê uma can -- ção legal
2098 }
2099
2100 \relative  {
2101   c2 d e f g f e
2102 }
2103 \addlyrics { \bulgarian }
2104 \addlyrics { \hebrew }
2105 \addlyrics { \portuguese }
2106 @end lilypond
2107
2108
2109 @node Unicode
2110 @unnumberedsubsubsec Unicode
2111 @translationof Unicode
2112
2113 @cindex Unicode (ユニコード)
2114
2115 単一の文字 -- その文字に対する Unicode コード ポイントを知っているが、@c
2116 使用しているエディタではその文字を使用できない -- を入力するには、@c
2117 @code{\markup} ブロック内部で @code{\char ##xhhhh} あるいは
2118 @code{\char ##dddd} を使用します
2119 -- ここで @code{hhhh} はその文字に対する 16 進コードであり、@c
2120 @code{dddd} はそれに対応する 10 進数値です。@c
2121 先頭の 0 は省略可能ですが、16 進表記では 4 文字で指定する方法が一般的です。@c
2122 (@code{\char} の後に UTF-8 エンコーディングのコード ポイントを使うべきでは@c
2123 ありません。@c
2124 なぜなら、UTF-8 エンコーディングはバイト数を表すための余分なビットを@c
2125 保持しているからです。)
2126 任意の文字に対する 16 進のコード ポイントを調べるための、@c
2127 Unicode コード表と文字名インデックスは Unicode コンソーシアム Web サイト
2128 @uref{http://www.unicode.org/} にあります。
2129
2130
2131 例えば、@code{\char ##x03BE} と @code{\char #958} はどちらも
2132 Unicode U+03BE の文字を入力します
2133 -- この文字は Unicode 名 @qq{Greek Small Letter Xi}
2134 (ギリシャ小文字クシー) です。@c
2135
2136 この方法で任意の Unicode コード ポイントを入力することができます。@c
2137 すべての特殊文字がこの方法で入力されている場合、@c
2138 入力ファイルを UTF-8 フォーマットで保存する必要はありません。@c
2139 もちろん、入力された文字を保持しているフォントがすべて@c
2140 インストールされていて、LilyPond で利用可能になっている必要があります。
2141
2142 以下の例は UTF-8 コード化された文字を 4 箇所
2143 -- リハーサル記号の中、アーティキュレーション テキストとして、歌詞の中、@c
2144 楽譜の下にある独立したテキストの中 --
2145 で使用しています:
2146
2147 @lilypond[quote,verbatim]
2148 \score {
2149   \relative c'' {
2150     c1 \mark \markup { \char ##x03EE }
2151     c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
2152   }
2153   \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
2154 }
2155 \markup { "Copyright 2008--2012" \char ##x00A9 }
2156 @end lilypond
2157
2158 @cindex copyright sign (著作権記号)
2159
2160 著作権についての注意書きの中で著作権記号を入力するには、以下のようにします:
2161
2162 @example
2163 \header @{
2164   copyright = \markup @{ \char ##x00A9 "2008" @}
2165 @}
2166 @end example
2167
2168
2169 @node ASCII エイリアス
2170 @unnumberedsubsubsec ASCII エイリアス
2171 @translationof ASCII aliases
2172
2173 特殊文字の ASCII エイリアスのリストを含めることができます:
2174
2175 @c KEEP LY
2176 @lilypond[quote,verbatim]
2177 \paper {
2178   #(include-special-characters)
2179 }
2180
2181 \markup "&flqq; &ndash; &OE;uvre incomplète&hellip; &frqq;"
2182
2183 \score {
2184   \new Staff { \repeat unfold 9 a'4 }
2185   \addlyrics {
2186     This is al -- so wor -- kin'~in ly -- rics: &ndash;_&OE;&hellip;
2187   }
2188 }
2189
2190 \markup \column {
2191   "特殊文字への置換を無効にすることができます:"
2192   "&ndash; &OE; &hellip;"
2193   \override #'(replacement-alist . ()) "&ndash; &OE; &hellip;"
2194 }
2195 @end lilypond
2196
2197 また、エイリアスを作ることもできます。@c
2198 グローバルに作るか:
2199
2200 @lilypond[quote,verbatim]
2201 \paper {
2202   #(add-text-replacements!
2203     '(("100" . "hundred")
2204       ("dpi" . "dots per inch")))
2205 }
2206 \markup "A 100 dpi."
2207 @end lilypond
2208
2209 ローカルで作ります:
2210
2211 @lilypond[quote,verbatim]
2212 \markup \replace #'(("100" . "hundred")
2213                     ("dpi" . "dots per inch")) "A 100 dpi."
2214 @end lilypond
2215
2216 @seealso
2217 記譜法リファレンス:
2218 @ref{List of special characters}
2219
2220 インストールされているファイル:
2221 @file{ly/text-replacements.ly}
2222
2223
2224
2225 @node 出力を制御する
2226 @section 出力を制御する
2227 @translationof Controlling output
2228
2229 @menu
2230 * 音楽の断片を抽出する::
2231 * 校正済みの音楽をスキップする::
2232 * 他の出力フォーマット::
2233 * 記譜フォントを置換する::
2234 @end menu
2235
2236 @node 音楽の断片を抽出する
2237 @subsection 音楽の断片を抽出する
2238 @translationof Extracting fragments of music
2239
2240 大きな楽譜の中の小さな範囲を、出力から直接引用することができます。@c
2241 これは紙の楽譜の一部をはさみで切り抜くことに相当します。
2242
2243 これは切り抜く小節を定義することによって実行されます。@c
2244 例えば、以下の定義は、
2245
2246
2247 @verbatim
2248 \layout {
2249   clip-regions
2250   = #(list
2251       (cons
2252        (make-rhythmic-location 5 1 2)
2253        (make-rhythmic-location 7 3 4)))
2254 }
2255 @end verbatim
2256
2257 @noindent
2258 第 5 小節の中間から第 7 小節までを抽出します。@c
2259 @code{5 1 2} は第 5 小節の先頭から 1/2 音符の位置を意味し、@c
2260 @code{7 3 4} は第 7 小節の先頭から 4 分音符 3 つ分の位置を意味します。
2261
2262 リズムによる位置のペアをリストに追加することによって、@c
2263 更に多くの切り抜き範囲を定義することができます。
2264
2265 この機能を使用するには、@c
2266 LilyPond を @option{-dclip-systems} を付けて呼び出す必要があります。@c
2267 切り抜きは EPS ファイルとして出力され、@c
2268 更にフォーマットが指定されている場合には PDF や PNG に変換されます。
2269
2270 出力フォーマットについての更なる情報は、@c
2271 @rprogram{lilypond を呼び出す} を参照してください。
2272
2273 @node 校正済みの音楽をスキップする
2274 @subsection 校正済みの音楽をスキップする
2275 @translationof Skipping corrected music
2276
2277 @funindex skipTypesetting
2278 @funindex showFirstLength
2279 @funindex showLastLength
2280
2281 音楽を入力あるいはコピーしているとき、@c
2282 閲覧、校正する必要があるのは、たいてい終わり近くの音楽
2283 (そこに音符を追加している場所) だけです。@c
2284 校正プロセスを速めるために、@c
2285 最後の数小節以外の譜刻をスキップすることができます。@c
2286 これはソース ファイルの中に以下を置くことによって実現できます:
2287
2288 @verbatim
2289 showLastLength = R1*5
2290 \score { ... }
2291 @end verbatim
2292
2293 @noindent
2294 これは入力ファイルの中にあるそれぞれの @code{\score} の最後の 5 小節だけを@c
2295 描画します (4/4 拍子と仮定して)。@c
2296 長い楽曲の場合、小さな部分だけを描画するのにかかる時間は@c
2297 楽曲をすべて描画するのにかかる時間よりも非常に短くなります。@c
2298 すでに譜刻済みの楽譜の開始部分に取り掛かる (例えば、新しいパートを追加する)
2299 ときには、@code{showFirstLength} プロパティも役に立つかもしれません。
2300
2301 楽譜の中のいくつかのパートをスキップは、プロパティ @code{Score.skipTypesetting}
2302 を用いたより細かなやり方で制御することができます。@c
2303 このプロパティがセットされていると、譜刻はまったく行われません。
2304
2305 このプロパティは MIDI ファイルへの出力を制御するためにも用いられます。@c
2306 このプロパティはすべてのイベント -- テンポの変更や楽器の変更を含む -- を@c
2307 スキップするということに注意してください。@c
2308 くれぐれも注意してください。
2309
2310 @lilypond[quote,relative=2,ragged-right,verbatim]
2311 c8 d
2312 \set Score.skipTypesetting = ##t
2313 e8 e e e e e e e
2314 \set Score.skipTypesetting = ##f
2315 c8 d b bes a g c2
2316 @end lilypond
2317
2318 多声の音楽では、@code{Score.skipTypesetting} はすべてのボイスと譜に@c
2319 影響を与えて、より多くの時間を節約します。
2320
2321
2322 @node 他の出力フォーマット
2323 @subsection 他の出力フォーマット
2324 @translationof Alternative output formats
2325
2326 @cindex scalable vector graphics output (SVG 出力)
2327 @cindex SVG output (SVG 出力)
2328 @cindex encapsulated postscript output (EPS 出力)
2329 @cindex EPS output (EPS 出力)
2330
2331 譜刻される楽譜のデフォルト出力フォーマットは、@c
2332 Portable Document Format (PDF) と PostScript (PS) です。@c
2333 コマンド ライン オプションを指定することにより、@c
2334 Scalable Vector Graphics (SVG), Encapsulated PostScript (EPS) それに
2335 Portable Network Graphics (PNG) 出力フォーマットが利用可能です。@c
2336 @rprogram{Basic command line options for LilyPond} を参照してください。
2337
2338
2339 @node 記譜フォントを置換する
2340 @subsection 記譜フォントを置換する
2341 @translationof Replacing the notation font
2342
2343 LilyPond で使用される Feta フォントの代わりに Gonville に使うことができます。@c
2344 Gonville は以下からダウンロードできます:
2345 @example
2346 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
2347 @end example
2348
2349 Gonville のサンプル小節です:
2350
2351 @c NOTE: these images are a bit big, but that's important
2352 @c       for the font comparison.  -gp
2353 @sourceimage{Gonville_after,,,}
2354
2355 LilyPond の Feta フォントのサンプル小節です:
2356
2357 @sourceimage{Gonville_before,,,}
2358
2359 @subsubheading MacOS でのインストール手順
2360
2361 ZIP ファイルをダウンロードして、伸張します。@c
2362 @code{lilyfonts} ディレクトリを @file{@var{SHARE_DIR}/lilypond/current} に@c
2363 コピーします
2364 -- 更なる情報は、@rlearning{その他の情報源} を参照してください。@c
2365 既存の @code{fonts} ディレクトリを @code{fonts_orig} にリネームして、@c
2366 @code{lilyfonts} ディレクトリを @code{fonts} にリネームします。@c
2367 Feta フォントに戻すには、@code{fonts_orig} を @code{fonts} に戻します。
2368
2369 @seealso
2370 学習マニュアル: @rlearning{その他の情報源}
2371
2372 @knownissues
2373
2374 Gonville では @q{古代の音楽} を記譜することはできません。@c
2375 Gonville フォント ファミリーでは、@c
2376 これからリリースされる LilyPond の新しい図柄は提供されないかもしれません。@c
2377 ライセンス条件等を含む Gonville の更なる情報は、@c
2378 製作者の Web サイトを参照してください。
2379
2380
2381 @node MIDI 出力
2382 @section MIDI 出力
2383 @translationof MIDI output
2384
2385 @cindex Sound (サウンド)
2386 @cindex MIDI
2387
2388 MIDI (Musical Instrument Digital Interface) はデジタル楽器接続 / 制御の@c
2389 標準インタフェイスです。@c
2390 MIDI ファイルはいくつかのトラックの中にある音符の連なりです。@c
2391 MIDI ファイルは実際はサウンド ファイルではありません。@c
2392 音符の連なりと実際のサウンドの翻訳を行うには専用のソフトウェアが必要になります。
2393
2394 LilyPond で記述した音楽は MIDI ファイルに変換することができ、@c
2395 入力されたものを聴くことができます。@c
2396 これは音楽をチェックするのに便利です。オクターブの外れや臨時記号の付け間違いは
2397 MIDI 出力を聴いたときに際立ちます。
2398
2399 標準 MIDI 出力には粗雑さがあります。@c
2400 オプションで @ref{奏法スクリプト} を用いることにより、@c
2401 強化されたリアルな MIDI 出力を得ることができます。
2402
2403 MIDI 出力は譜毎に 1 つのチャンネルを割り当て、@c
2404 ドラムのためにチャンネル 10 を予約します。@c
2405 デバイス 1 つにつき MIDI チャンネルは 16 しかないため、@c
2406 楽譜が 16 以上の譜を保持している場合、MIDI チャンネルは再利用されます。
2407
2408 @menu
2409 * MIDI ファイルを作り出す::
2410 * MIDI ブロック::
2411 * 何が MIDI に出力されるのか?::
2412 * MIDI での繰り返し::
2413 * MIDI での音の強弱を制御する::
2414 * MIDI での打楽器::
2415 * 奏法スクリプト::
2416 @end menu
2417
2418 @node MIDI ファイルを作り出す
2419 @subsection MIDI ファイルを作り出す
2420 @translationof Creating MIDI files
2421
2422 LilyPond 入力ファイルから MIDI ファイルを作り出すには、@c
2423 score に @code{\midi} ブロックを付け加えます。@c
2424 例えば、以下のように:
2425
2426 @example
2427 \score @{
2428   @var{...music...}
2429   \midi @{ @}
2430 @}
2431 @end example
2432
2433 @code{\layout} ブロックを持たない @code{\score} の中に
2434 @code{\midi} ブロックがある場合、MIDI 出力だけが生成されます。@c
2435 楽譜も必要な場合は、@code{\layout} ブロックも存在している必要があります。
2436
2437 @example
2438 \score @{
2439   @var{...music...}
2440   \midi @{ @}
2441   \layout @{ @}
2442 @}
2443 @end example
2444
2445 ピッチ、リズム、タイ、強弱記号、テンポの変更は解釈されて@c
2446 正確に MIDI 出力に翻訳されます。@c
2447 強弱記号、クレッシェンド、デクレッシェンドは MIDI ボリューム レベルに@c
2448 翻訳されます。@c
2449 強弱記号は利用可能な MIDI ボリューム レンジ内のある固定値に翻訳されます。@c
2450 クレッシェンドとデクレッシェンドはそれらの開始点と終了点の間でボリュームを@c
2451 線形に変化させます。@c
2452 MIDI 出力における強弱記号の効果を完全に削除することができます
2453  -- @ref{MIDI ブロック} を参照してください。
2454
2455 初期のテンポと後のテンポ変化は、音楽記譜内部の @code{\tempo} コマンドで@c
2456 指定することができます。@c
2457 通常このコマンドはメトロノーム記号を表示させますが、@c
2458 表示を抑制することができます
2459 -- @ref{メトロノーム記号} を参照してください。@c
2460 初期 MIDI テンポあるいは MIDI 全体のテンポを指定するための代替手段が@c
2461 この後で記述されています -- @ref{MIDI ブロック} を参照してください。
2462
2463 Windows の制限により、Windows での MIDI ファイルのデフォルトの拡張子は
2464 @code{.mid} です。@c
2465 他の OS では、拡張子は @code{.midi} となります。@c
2466 他の拡張子を使いたいのであれば、入力ファイルの最上位で、@c
2467 @code{\book} ブロック, @code{\bookpart} ブロック、それに @code{\score}
2468 ブロックの前に以下の行を挿入します:
2469
2470 @example
2471 #(ly:set-option 'midi-extension "midi")
2472 @end example
2473
2474 上記の行は、MIDI ファイルのデフォルトの拡張子を @code{.midi} にします。
2475
2476 上記の方法の代わりとして、@c
2477 コマンド ラインで以下のオプションを与える方法があります:
2478
2479 @example
2480 lilypond … -dmidi-extension=midi lilyFile.ly
2481 @end example
2482
2483
2484 @unnumberedsubsubsec 楽器名
2485 @c @unnumberedsubsubsec Instrument names
2486
2487 @cindex instrument names (楽器名)
2488 @funindex Staff.midiInstrument
2489
2490 @code{Staff.midiInstrument} プロパティに楽器名を設定することで、@c
2491 使用する MIDI 楽器が指定されます。@c
2492 楽器名は @ref{MIDI instruments} にあるリストから選択しなければなりません。
2493
2494 @example
2495 \new Staff @{
2496   \set Staff.midiInstrument = #"glockenspiel"
2497   @var{...notes...}
2498 @}
2499 @end example
2500
2501 @example
2502 \new Staff \with @{midiInstrument = #"cello"@} @{
2503   @var{...notes...}
2504 @}
2505 @end example
2506
2507 選択された楽器が MIDI 楽器のリストにある楽器に一致しない場合、@c
2508 グランド ピアノ (@code{"acoustic grand"}) 楽器が使用されます。
2509
2510
2511 @snippets
2512
2513 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
2514 {changing-midi-output-to-one-channel-per-voice.ly}
2515
2516 @knownissues
2517
2518 @c In 2.11 the following no longer seems to be a problem -td
2519 @ignore
2520 Unterminated (de)crescendos will not render properly in the midi file,
2521 resulting in silent passages of music.  The workaround is to explicitly
2522 terminate the (de)crescendo.  For example,
2523
2524 終端の無い(デ)クレッシェンドは適切に MIDI ファイルを作り出しません。@c
2525 結果として無音の音楽パッセージとなります。@c
2526 回避方法として、明示的に(デ)クレッシェンドを終了させます。@c
2527 例えば、
2528
2529 @example
2530 @{ a\< b c d\f @}
2531 @end example
2532
2533 @noindent
2534 will not work properly but
2535 これは正しく機能しませんが、
2536
2537 @example
2538 @{ a\< b c d\!\f @}
2539 @end example
2540
2541 @noindent
2542 will.
2543 これは正しく機能します。
2544 @end ignore
2545
2546 MIDI ボリュームの変化は音符の開始点でのみ起こります。@c
2547 そのため、クレッシェンドとデクレッシェンドは@c
2548 単一の音符のボリューム変化には効果を持ちません。
2549
2550 すべての MIDI プレイヤが MIDI 出力の中にあるテンポ変化を@c
2551 正しく処理するわけではありません。@c
2552 正しく機能するプレイヤとして知られているものには MS Windows の Media Player や
2553 @uref{http://@/timidity@/.sourceforge@/.net/,timidity} があります。
2554
2555 @node MIDI ブロック
2556 @subsection MIDI ブロック
2557 @translationof MIDI block
2558
2559 @cindex MIDI block (MIDI ブロック)
2560
2561 MIDI 出力が必要な場合、@c
2562 score 内部に @code{\midi} ブロックを置く必要があります。@c
2563 MIDI ブロックはレイアウト ブロックに似ていますが、それよりも単純です。@c
2564 しばしば、@code{\midi} ブロックは空のままですが、コンテキストの再編成
2565 -- 新しいコンテキスト定義やプロパティの値を設定するためのコード --
2566 を保持することもできます。@c
2567 例えば以下の例は、テンポ指示を譜刻することなしに、@c
2568 MIDI ファイルの初期テンポを設定します:
2569
2570 @example
2571 \score @{
2572   @var{...music...}
2573   \midi @{
2574     \tempo 4 = 72
2575   @}
2576 @}
2577 @end example
2578
2579 この例では、テンポは 1 分間あたり 72 個の 4 分音符にセットされています。@c
2580 この種のテンポ指定では引数として付点音符の長さをとることはできません。@c
2581 付点音符の長さを指定する必要がある場合、@c
2582 その付点音符をより小さな単位に分解します。@c
2583 例えば、1 分間に 90 個の付点 4 分音符のテンポは、@c
2584 1 分間に 270 個の 8 分音符として指定することができます:
2585
2586 @example
2587 tempoWholesPerMinute = #(ly:make-moment 270 8)
2588 @end example
2589
2590 @cindex MIDI context definitions (MIDI コンテキスト定義)
2591
2592 @code{\midi} ブロック内部でのコンテキスト定義は、@c
2593 @code{\layout} ブロック内部でのコンテキスト定義の構文とまったく同じです。@c
2594 サウンドのモジュールへの翻訳は performer と呼ばれます。@c
2595 MIDI 出力のためのコンテキストは
2596 @file{../ly/performer-init.ly} で定義されています
2597 -- @rlearning{その他の情報源} を参照してください。@c
2598 例えば、MIDI 出力から強弱記号の効果を削除するには、@c
2599 @code{\midi@{ @}} ブロックの中に以下のコードを挿入します。
2600
2601 @example
2602 \midi @{
2603   ...
2604   \context @{
2605     \Voice
2606     \remove "Dynamic_performer"
2607   @}
2608 @}
2609 @end example
2610
2611 MIDI 出力は、@code{\score} コマンドで定義された score ブロック内部に
2612 @code{\midi} ブロックが存在する場合にのみ生成されます。
2613
2614 @ignore
2615 @code{\midi} ブロックが明示的にインスタンス化された score コンテキストの中
2616 (例えば、@code{\new Score} ブロックの中) に配置された場合、@c
2617 その LilyPond ファイルはエラーになります。@c
2618 これを解決するには、@code{\new Score} と @code{\midi} コマンドを
2619 @code{\score} ブロックの中に置きます。
2620 @end ignore
2621
2622 @example
2623 \score @{
2624   @{ @dots{}notes@dots{} @}
2625   \midi @{ @}
2626 @}
2627 @end example
2628
2629
2630 @node 何が MIDI に出力されるのか?
2631 @subsection 何が MIDI に出力されるのか?
2632 @translationof What goes into the MIDI output?
2633
2634 @c TODO Check grace notes - timing is suspect?
2635
2636 @unnumberedsubsubsec MIDI でサポートされるもの
2637 @c @unnumberedsubsubsec Supported in MIDI
2638
2639 @cindex Pitches in MIDI (MIDI でのピッチ)
2640 @cindex MIDI, Pitches (MIDI でのピッチ)
2641 @cindex Quarter tones in MIDI (MIDI での4 分音)
2642 @cindex MIDI, quarter tones (MIDI での4 分音)
2643 @cindex Microtones in MIDI (MIDI での微分音)
2644 @cindex MIDI, microtones (MIDI での微分音)
2645 @cindex Chord names in MIDI (MIDI でのコード ネーム)
2646 @cindex MIDI, chord names (MIDI でのコード ネーム)
2647 @cindex Rhythms in MIDI (MIDI でのリズム)
2648 @cindex MIDI, Rhythms (MIDI でのリズム)
2649 @cindex Articlulate scripts (奏法スクリプト)
2650 @cindex MIDI, articulations (MIDI での奏法)
2651 @cindex articulations in MIDI (MIDI での奏法)
2652 @cindex trills in MIDI (MIDI でのトリル)
2653 @cindex turns in MIDI (MIDI でのターン)
2654 @cindex rallentando in MIDI (MIDI でのラレンタンド)
2655 @cindex accelerando in MIDI (MIDI でのアッチェレランド)
2656 @c TODO etc
2657
2658 以下の記譜要素が MIDI 出力に反映されます:
2659
2660 @itemize
2661 @item ピッチ
2662 @item 微分音 (@ref{臨時記号} を参照してください。@c
2663 演奏にはピッチ ベンドをサポートするプレイヤが必要になります。)
2664 @item コード名で入力された和音
2665 @item 音符の演奏時間として入力されたリズム -- 連符を含みます
2666 @item @q{@code{:}[@var{number}]} を使わずに入力されたトレモロ
2667 @item タイ
2668 @item 強弱記号
2669 @item 複数の音符にかかるクレッシェンド、デクレッシェンド
2670 @item テンポ記号で入力されたテンポ変化
2671 @item 歌詞
2672 @end itemize
2673
2674 @ref{奏法スクリプト} を用いることで、@c
2675 上記のリストにいくつかの要素が追加されます:
2676
2677 @itemize
2678 @item アーティキュレーション (スラー、スタッカート等)
2679 @item トリル、ターン
2680 @item ラレンタンドとアッチェレランド
2681 @end itemize
2682
2683 @unnumberedsubsubsec MIDI でサポートされないもの
2684 @c @unnumberedsubsubsec Unsupported in MIDI
2685
2686 @c TODO index as above
2687
2688 以下の記譜要素は MIDI 出力に影響を与えません:
2689
2690 @itemize
2691 @item 注記 -- 例えば swing -- として入力されたリズム
2692 @item テンポ記号を使わずに注記として入力されたテンポ変化
2693 @item スタッカートと他のアーティキュレーションや装飾
2694 @item スラーとフレージング スラー
2695 @item 単一の音符に付けられたクレッシェンド、デクレッシェンド
2696 @item @q{@code{:}[@var{number}]} を使って入力されたトレモロ
2697 @item 通奏低音
2698 @item 微分音の和音
2699 @end itemize
2700
2701
2702 @node MIDI での繰り返し
2703 @subsection MIDI での繰り返し
2704 @translationof Repeats in MIDI
2705
2706 @cindex repeats in MIDI (MIDI での繰り返し)
2707 @funindex \unfoldRepeats
2708
2709 ちょっとした追加で、@c
2710 すべてのタイプの繰り返しを MIDI 出力に反映させることができます。@c
2711 これは @code{\unfoldRepeats} 音楽関数を適用することによって@c
2712 達成することができます。@c
2713 この関数はすべての繰り返しを展開します。
2714
2715 @lilypond[quote,verbatim]
2716 \unfoldRepeats {
2717   \repeat tremolo 8 { c'32 e' }
2718   \repeat percent 2 { c''8 d'' }
2719   \repeat volta 2 { c'4 d' e' f' }
2720   \alternative {
2721     { g' a' a' g' }
2722     { f' e' d' c' }
2723   }
2724 }
2725 \bar "|."
2726 @end lilypond
2727
2728 複数のボイスを持つ score で、繰り返しを正しく MIDI 出力に展開するには、@c
2729 @emph{各ボイス} の繰り返し指示が完全に記譜されている必要があります。
2730
2731 MIDI のために @code{\unfoldRepeats} を使用する楽譜ファイルを作成する場合、@c
2732 2 つの @code{\score} ブロックが必要になります:
2733 1 つは MIDI のため (繰り返しを展開します) で、@c
2734 もう 1 つは楽譜のため
2735 (差し替え、トレモロ、パーセント記号の繰り返しを使用します) です。@c
2736 例えば、以下のようにします:
2737
2738 @example
2739 \score @{
2740   @var{..music..}
2741   \layout @{ .. @}
2742 @}
2743 \score @{
2744   \unfoldRepeats @var{..music..}
2745   \midi @{ .. @}
2746 @}
2747 @end example
2748
2749 @node MIDI での音の強弱を制御する
2750 @subsection MIDI での音の強弱を制御する
2751 @translationof Controlling MIDI dynamics
2752
2753 @c MIDI dynamics: MIDI での音の強弱?
2754 MIDI での音の強弱は @code{Dynamic_performer}
2755 -- これはデフォルトでは Voice コンテキストの中に存在します --
2756 によって実装されます。@c
2757 MIDI 全体のボリューム、強弱記号による相対ボリューム、@c
2758 楽器間の相対ボリュームを制御することができます。
2759
2760 @unnumberedsubsubsec 強弱記号
2761 @c @unnumberedsubsubsec Dynamic marks
2762
2763 強弱記号は利用可能な MIDI ボリューム レンジ内のある固定の分数に翻訳されます。@c
2764 デフォルトでの分数の範囲は、@notation{ppppp} に対する 0.25 から、@c
2765 @notation{fffff} に対する 0.95 までです。@c
2766 強弱記号とそれに対応する分数のセットを @file{../scm/midi.scm} で@c
2767 調べることができます
2768 -- @rlearning{その他の情報源} を参照してください。@c
2769 引数として強弱記号をとり、それに対する分数を返す関数を作成し、@c
2770 その関数を @code{Score.dynamicAbsoluteVolumeFunction} に@c
2771 セットすることによって、分数のセットを変更あるいは拡張することができます。
2772
2773 例えば、@notation{リンフォルツァンド} 強弱記号 -- @code{\rfz} -- を@c
2774 使う必要がある場合、@c
2775 この強弱記号はデフォルト セットの中に含まれていないため、@c
2776 MIDI ボリュームに影響を与えません。@c
2777 同様に @code{make-dynamic-script} で新しい強弱記号を定義した場合、@c
2778 その強弱記号もデフォルト セットには含まれません。@c
2779 以下の例は、そのような強弱記号に対する MIDI ボリュームを追加する方法を@c
2780 示しています。@c
2781 以下の Scheme 関数は、rfz の強弱記号があった場合は分数に 0.9 をセットし、@c
2782 そうでない場合はデフォルトの関数を呼び出します。
2783
2784 @lilypond[verbatim,quote]
2785 #(define (myDynamics dynamic)
2786     (if (equal? dynamic "rfz")
2787       0.9
2788       (default-dynamic-absolute-volume dynamic)))
2789
2790 \score {
2791   \new Staff {
2792     \set Staff.midiInstrument = #"cello"
2793     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
2794     \new Voice {
2795       \relative c'' {
2796         a4\pp b c-\rfz
2797       }
2798     }
2799   }
2800   \layout {}
2801   \midi {}
2802 }
2803 @end lilypond
2804
2805 分数テーブル全体を再定義する必要がある場合、@c
2806 上記の方法の代わりに @file{../scm/midi.scm} の中にある
2807 @notation{default-dynamic-absolute-volume} プロシージャと@c
2808 そのモデルとなる関連テーブルを使用する方が良いでしょう。@c
2809 このセクションの最後の例で、その方法を示しています。
2810
2811 @unnumberedsubsubsec MIDI 全体でのボリューム
2812 @c @unnumberedsubsubsec Overall MIDI volume
2813
2814 強弱記号に対する MIDI 全体の最小ボリュームと最大ボリュームは
2815 @code{Score} レベルでプロパティ @code{midiMinimumVolume} と
2816 @code{midiMaximumVolume} を設定することで制御できます。@c
2817 これらのプロパティは強弱記号に対してのみ効果を発揮します。@c
2818 そのため、楽譜の開始からそれらのプロパティを適用するには、@c
2819 楽譜の開始点に強弱記号を置く必要があります。@c
2820 各強弱記号に対応する分数は以下の式で算出されます:
2821
2822 @example
2823 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
2824 @end example
2825
2826 以下の例では、MIDI 全体のボリュームの範囲は 0.2 - 0.5 の範囲に制限されています。
2827
2828 @lilypond[verbatim,quote]
2829 \score {
2830   <<
2831     \new Staff {
2832       \key g \major
2833       \time 2/2
2834       \set Staff.midiInstrument = #"flute"
2835       \new Voice \relative c''' {
2836         r2 g\mp g fis~
2837         fis4 g8 fis e2~
2838         e4 d8 cis d2
2839       }
2840     }
2841     \new Staff {
2842       \key g \major
2843       \set Staff.midiInstrument = #"clarinet"
2844       \new Voice \relative c'' {
2845         b1\p a2. b8 a
2846         g2. fis8 e
2847         fis2 r
2848       }
2849     }
2850   >>
2851   \layout {}
2852   \midi {
2853     \context {
2854       \Score
2855       tempoWholesPerMinute = #(ly:make-moment 72 2)
2856       midiMinimumVolume = #0.2
2857       midiMaximumVolume = #0.5
2858     }
2859   }
2860 }
2861 @end lilypond
2862
2863
2864 @unnumberedsubsubsec 楽器の音の強さを均一化する (i)
2865 @c @unnumberedsubsubsec Equalizing different instruments (i)
2866
2867 @code{Staff} コンテキストの中で最小 MIDI ボリューム プロパティと@c
2868 最大 MIDI ボリューム プロパティが設定されている場合、@c
2869 MIDI 楽器間の相対ボリュームを制御することができます。@c
2870 これは基本的な楽器イコライザであり、@c
2871 MIDI 出力の品質を著しく高めることができます。
2872
2873 以下の例では、クラリネットのボリュームはフルートのボリュームよりも@c
2874 相対的に低く設定されています。@c
2875 これを正しく機能させるには、それぞれの楽器の最初の音符に@c
2876 強弱記号を置く必要があります。
2877
2878 @lilypond[verbatim,quote]
2879 \score {
2880   <<
2881     \new Staff {
2882       \key g \major
2883       \time 2/2
2884       \set Staff.midiInstrument = #"flute"
2885       \set Staff.midiMinimumVolume = #0.7
2886       \set Staff.midiMaximumVolume = #0.9
2887       \new Voice \relative c''' {
2888         r2 g\mp g fis~
2889         fis4 g8 fis e2~
2890         e4 d8 cis d2
2891       }
2892     }
2893     \new Staff {
2894       \key g \major
2895       \set Staff.midiInstrument = #"clarinet"
2896       \set Staff.midiMinimumVolume = #0.3
2897       \set Staff.midiMaximumVolume = #0.6
2898       \new Voice \relative c'' {
2899         b1\p a2. b8 a
2900         g2. fis8 e
2901         fis2 r
2902       }
2903     }
2904   >>
2905   \layout {}
2906   \midi {
2907     \tempo 2 = 72
2908   }
2909 }
2910 @end lilypond
2911
2912 @unnumberedsubsubsec 楽器の音の強さを均一化する (ii)
2913 @c @unnumberedsubsubsec Equalizing different instruments (ii)
2914
2915 MIDI 最小/最大ボリューム プロパティが設定されていない場合、@c
2916 デフォルトでは、LilyPond はいくつかの楽器に軽度の均一化を適用します。@c
2917 適用を受ける楽器とその equalization は @file{../scm/midi.scm} の中にある@c
2918 テーブル @notation{instrument-equalizer-alist} に示されています。
2919
2920 引数として MIDI 楽器名だけを受け入れて、その楽器に適用する@c
2921 最小/最大ボリュームの分数ペアを返す Scheme プロシージャを
2922 @code{Score} コンテキストの中にある
2923 @code{instrumentEqualizer} にセットすることで、@c
2924 この基本的なデフォルト イコライザを置き換えることができます。@c
2925 この置き換えは、このセクションの始めでの
2926 @code{dynamicAbsoluteVolumeFunction}  の再設定の方法とまったく同じです。@c
2927 @file{../scm/midi.scm} の中にあるデフォルト イコライザ
2928 @notation{default-instrument-equalizer} は@c
2929 そのようなプロシージャをどのように記述するのかを示しています。
2930
2931 以下の例は、フルートとクラリネットの相対ボリュームを@c
2932 前の例と同じ値にセットしています。
2933
2934 @lilypond[verbatim,quote]
2935 #(define my-instrument-equalizer-alist '())
2936
2937 #(set! my-instrument-equalizer-alist
2938   (append
2939     '(
2940       ("flute" . (0.7 . 0.9))
2941       ("clarinet" . (0.3 . 0.6)))
2942     my-instrument-equalizer-alist))
2943
2944 #(define (my-instrument-equalizer s)
2945   (let ((entry (assoc s my-instrument-equalizer-alist)))
2946     (if entry
2947       (cdr entry))))
2948
2949 \score {
2950   <<
2951     \new Staff {
2952       \key g \major
2953       \time 2/2
2954       \set Score.instrumentEqualizer = #my-instrument-equalizer
2955       \set Staff.midiInstrument = #"flute"
2956       \new Voice \relative c''' {
2957         r2 g\mp g fis ~
2958         fis4 g8 fis e2 ~
2959         e4 d8 cis d2
2960       }
2961     }
2962     \new Staff {
2963       \key g \major
2964       \set Staff.midiInstrument = #"clarinet"
2965       \new Voice \relative c'' {
2966         b1\p a2. b8 a
2967         g2. fis8 e
2968         fis2 r
2969       }
2970     }
2971   >>
2972   \layout { }
2973   \midi {
2974     \tempo 2 = 72
2975   }
2976 }
2977 @end lilypond
2978
2979 @ignore
2980 @c Delete when satisfied this is adequately covered elsewhere -td
2981
2982 @n ode Microtones in MIDI (MIDI での微分音)
2983 @s ubsection Microtones in MIDI (MIDI での微分音)
2984
2985 @cindex microtones in MIDI (MIDI での微分音)
2986
2987 半シャープと半フラットからなる微分音は MIDI ファイルにエクスポートされ、@c
2988 ピッチ ベンドをサポートする MIDI プレーヤで正しく演奏されます。@c
2989 @ref{他の言語での音符名} を参照してください。@c
2990 以下の例は 1 オクターブの中にあるすべての半シャープと半フラットの音を@c
2991 示しています。@c
2992 この例をコピーしてコンパイルすることで、@c
2993 あなたが持っている MIDI プレイやで微分音をテストすることができます。
2994
2995 @lilypond[verbatim,quote]
2996 \score {
2997   \relative c' {
2998     c cih cis cisih
2999     d dih ees eeh
3000     e eih f fih
3001     fis fisih g gih
3002     gis gisih a aih
3003     bes beh b bih
3004   }
3005   \layout {}
3006   \midi {}
3007 }
3008 @end lilypond
3009 @end ignore
3010
3011
3012 @node MIDI での打楽器
3013 @subsection MIDI での打楽器
3014 @translationof Percussion in MIDI
3015
3016 打楽器は一般的に @code{DrumStaff} コンテキストの中で記譜され、@c
3017 そのように記譜された場合、その打楽器は正しく MIDI チャンネル 10 に@c
3018 出力されます。@c
3019 しかしながら、いくつかのピッチを持つ打楽器
3020 -- ザイロフォン、マリンバ、ビブラフォン、ティンパニなど --
3021 は @qq{通常の} 楽器のように扱われ、正しい MIDI 出力を得るには、@c
3022 それらの楽器のための音楽を@c
3023 通常の @code{Staff} コンテキストに入力する必要があります
3024  -- @code{DrumStaff} には入力しません。
3025
3026
3027 いくつかのピッチを持たない打楽器
3028 -- メロディック トム、太鼓、シンセドラムなど --
3029 のサウンドは一般の MIDI 標準に含まれ、MIDI チャネル@tie{}10 経由では@c
3030 使用できません。@c
3031 そのため、そのような楽器の記譜も適切なピッチを使って@c
3032 通常の @code{Staff} コンテキストに入力すべきです。
3033
3034 多くの打楽器 -- カスタネットなど -- は一般の MIDI 標準には含まれません。@c
3035 そのような楽器のための記述を行っている場合に MIDI 出力を作り出すための@c
3036 最も容易な -- けれども不十分な -- 方法は、@c
3037 標準セットから最も近いサウンドを代わりに用いることです。
3038
3039 @c TODO Expand with examples, and any other issues
3040
3041 @knownissues
3042
3043 一般の MIDI 標準はリム ショットを含まないため、@c
3044 代わりにサイドスティックを用います。
3045
3046 @node 奏法スクリプト
3047 @subsection 奏法スクリプト
3048 @translationof The Articulate script
3049
3050 奏法スクリプトを用いることにより、よりリアルな MIDI 出力を得ることができます。@c
3051 奏法スクリプトは、音符を適切な時間比率の音符とスキップで置き換えることにより、@c
3052 アーティキュレーション (スラー、スタッカート等) を考慮に入れようとします。@c
3053 さらに、トリルやターンを展開しようとし、@c
3054 さらにラレンタンドとアッチェレランドを考慮に入れようとします。
3055
3056 奏法スクリプトを使うには、@c
3057 入力ファイルの先頭で以下をインクルードする必要があります。
3058
3059 @example
3060 \include "articulate.ly"
3061 @end example
3062
3063 さらに、@code{\score} セクションで以下のようにします。
3064
3065 @example
3066 \unfoldRepeats \articulate <<
3067         all the rest of the score...
3068 >>
3069 @end example
3070
3071 この方法で入力ファイルを変更すると、@c
3072 出力される楽譜の見た目は著しく変わってしまいますが、@c
3073 標準の @code{\midi} ブロックはより良い MIDI ファイルを作り出します。
3074
3075 奏法スクリプトを機能させるための必須事項ではありませんが、@c
3076 上記の例のように @code{\unfoldRepeats} コマンドを挿入することにより、@c
3077 @notation{トリル} などの短縮記譜の演奏が可能になります。
3078
3079 @knownissues
3080
3081 @c 未訳
3082 Articulate shortens chords といくつかの音楽 (特にオルガン音楽) の演奏は@c
3083 うまくいかないことがあります。
3084
3085
3086 @node 音楽情報を抽出する
3087 @section 音楽情報を抽出する
3088 @translationof Extracting musical information
3089
3090 グラフィカルな出力と MIDI を作り出すことに加えて、@c
3091 LilyPond は音楽情報をテキストとして表示することができます。
3092
3093 @menu
3094 * LilyPond 記譜法を表示する::
3095 * Scheme 音楽表記を表示する::
3096 * 音楽イベントをファイルに保存する::
3097 @end menu
3098
3099 @node LilyPond 記譜法を表示する
3100 @subsection LilyPond 記譜法を表示する
3101 @translationof Displaying LilyPond notation
3102
3103 @funindex \displayLilyMusic
3104
3105 LilyPond 記譜法で書かれた音楽表記を@c
3106 音楽関数 @code{\displayLilyMusic} で表示することが可能です。@c
3107 出力を見るには、通常、コマンド ラインで LilyPond を実行します。@c
3108 例えば、
3109
3110 @example
3111 @{
3112   \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3113 @}
3114 @end example
3115
3116 は、以下を表示します:
3117
3118 @example
3119 @{ a,4 cis e fis g @}
3120 @end example
3121
3122 デフォルトでは、LilyPond は上記のメッセージを@c
3123 他のすべてのメッセージと一緒にコンソールに表示します。@c
3124 上記のメッセージを分離して @code{\display@{STUFF@}} の結果を保存するには、@c
3125 出力をファイルにリダイレクトします。
3126
3127 @example
3128 lilypond file.ly >display.txt
3129 @end example
3130
3131 @funindex \void
3132
3133 LilyPond は音楽表記を表示するだけでなく、それを解釈します
3134 (なぜなら、@code{\displayLilyMusic} は追加で音楽表記を表示するために@c
3135 返すだけだからです)。@c
3136 既存の音楽に @code{\displayLilyMusic} を挿入するだけで@c
3137 その音楽の情報を得るられるので便利です。@c
3138 本当に LilyPond に音楽を解釈させたくないのであれば、@c
3139 @code{\void} を使ってその音楽を無視させます:
3140
3141 @example
3142 @{
3143   \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3144 @}
3145 @end example
3146
3147
3148 @node Scheme 音楽表記を表示する
3149 @subsection Scheme 音楽表記を表示する
3150 @translationof Displaying scheme music expressions
3151
3152 @rextend{Displaying music expressions} を参照してください。
3153
3154
3155 @node 音楽イベントをファイルに保存する
3156 @subsection 音楽イベントをファイルに保存する
3157 @translationof Saving music events to a file
3158
3159 以下のファイルをインクルードすることにより、@c
3160 音楽イベントをファイルに保存することができます。
3161
3162 @example
3163 \include "event-listener.ly"
3164 @end example
3165
3166 これは譜毎に @file{FILENAME-STAFFNAME.notes} あるいは
3167 @file{FILENAME-unnamed-staff.notes} というファイルを作成します。@c
3168 複数の名前の無い譜がある場合、
3169 すべての譜のイベントが同じファイルに出力されるということに注意してください。@c
3170 出力は以下のようになります:
3171
3172 @example
3173 0.000   note     57       4   p-c 2 12
3174 0.000   dynamic  f
3175 0.250   note     62       4   p-c 7 12
3176 0.500   note     66       8   p-c 9 12
3177 0.625   note     69       8   p-c 14 12
3178 0.750   rest     4
3179 0.750   breathe
3180 @end example
3181
3182 出力はタブ区切り行で、各行には 2 つの固定フィールドがあり、@c
3183 その後にオプション パラメータが続きます。
3184
3185 @example
3186 @var{time}  @var{type}  @var{...params...}
3187 @end example
3188
3189 この情報は、@c
3190 簡単に Python スクリプト等の他のプログラムに読み込ませることができ、@c
3191 LilyPond で音楽分析や録音再生実験を行おうとする研究者にとってとても有用です。
3192
3193
3194 @knownissues
3195
3196 lilypond 音楽イベントすべてが @file{event-listener.ly} で@c
3197 サポートされるわけではありません。@c
3198 @file{event-listener.ly} は、良く作られた @qq{概念実証} を意図しています。
3199
3200 読み取りたい音楽イベントがサポートされていないのであれば、@c
3201 あなたが作業している lilypond ディレクトリに @file{event-listener.ly} を@c
3202 コピーして、編集することで、望みの情報を出力させることができます。