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