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