]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/user/introduction.itely
lilypond-book robustness: ensure EOL at the end of @verbatim
[lilypond.git] / Documentation / ja / user / introduction.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2 @c This file is part of lilypond-learning.tely
3 @ignore
4     Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.12.0"
11
12 @c Translators: Yoshiki Sawada
13 @c Translation status: post-GDP
14
15 @node Introduction
16 @chapter Introduction
17
18 この章では読者に LilyPond とこのドキュメントについての紹介を行います。
19
20 @menu
21 * Background::
22 * About the documentation::
23 @end menu
24
25
26 @node Background
27 @section Background
28
29 この節は LilyPond の最終目的とアーキテクチャについてカバーします。
30
31 @menu
32 * Engraving::
33 * Automated engraving::
34 * What symbols to engrave?::
35 * Music representation::
36 * Example applications::
37 @end menu
38
39
40 @node Engraving
41 @unnumberedsubsec Engraving
42
43 @cindex engraving
44 @cindex typography, music
45 @cindex music typography
46 @cindex plate engraving
47 @cindex music engraving
48
49 楽譜印刷の技術は@emph{(プレート) 譜刻} (原文: engraving、版画などの印刷のこと@c
50 ) と呼ばれています。この用語は伝統的な楽譜印刷のプロセスに由来します。ほんの@c
51 数十年前まで、楽譜は音楽記号を亜鉛やしろめ (錫と鉛の合金) の版に反転した@c
52 イメージで彫り込んだり、刻印することによって作られていました。版にはインクが@c
53 塗られ、彫り込んだり刻印してくぼんだ部分にはインクが溜まります。版のイメージ@c
54 はその版に紙が押し付けられることによって形になります。刻印と彫刻は完全に手作@c
55 業で行われていました。校正は可能だとしても厄介でした。なぜなら一から刻印と彫@c
56 刻のやり直しだったからです。譜刻は高度に専門的な技術でした。職人はマスター @c
57 エングラーバ (譜刻を行う人) の称号を得るまで 5 年の修行を修めなければなら@c
58 ず、本当に技術を習得するまでにはさらにもう 5 年の経験が必要だったのです。
59
60 今日では、コンピュータによってまったく新しい楽譜が出版されています。これには@c
61 明らかな利点があります。印刷は安く済み、編集したものを email で配ることが可@c
62 能です。不幸なことに、コンピュータが広く使われるようになって楽譜のグラフィカ@c
63 ルな品質は低下しています。コンピュータによって出版された楽譜は味気無く、機械@c
64 的な見た目をしているため、その楽譜で演奏することに喜びを感じられません。
65
66 @c introduce illustrating aspects of engraving, font...
67 以下の図は伝統的な譜刻とコンピュータ出版の違いを描いたものであり、3 番目の図は
68 LilyPond がどれくらい伝統的な見た目を模倣しているのかを示しています。左端の@c
69 スキャンした図はコンピュータ出版の典型的な決定を示しています。縦棒は細く、フ@c
70 ラット記号の太さは細線と一致していて、曲線はまっすぐなレイアウトになっていま@c
71 す。対照的に、ベーレンライター (Barenreiter: ドイツの出版社) のフラットは太@c
72 く、曲線は官能的です。我々のフラットは 2 つのもののうち後者を元にデザインさ@c
73 れています。丸みを帯びていて、太さは縦棒の太さと調和していて、コンピュータに@c
74 よるものよりも線が太くなっています。
75
76 @multitable @columnfractions .125 .25 .25 .25 .125
77 @item @tab
78 @ifnotinfo
79 @iftex
80 @image{henle-flat-gray,,4cm}
81 @end iftex
82 @ifnottex
83 @image{henle-flat-gray,,,png}
84 @end ifnottex
85
86 @tab
87 @iftex
88 @image{baer-flat-gray,,4cm}
89 @end iftex
90 @ifnottex
91 @image{baer-flat-gray,,,png}
92 @end ifnottex
93
94 @tab
95 @iftex
96 @image{lily-flat-bw,,4cm}
97 @end iftex
98 @ifnottex
99 @image{lily-flat-bw,,,png}
100 @end ifnottex
101 @end ifnotinfo
102 @ifinfo
103 @image{lilypond/henle-flat-bw,,,png} @image{lilypond/baer-flat-bw,,,png}
104 @image{lilypond/lily-flat-bw,,,png}
105 @end ifinfo
106
107 @item @tab
108 Henle (2000)
109 @tab
110 Bärenreiter (1950)
111 @tab
112 LilyPond Feta font (2003)
113
114 @end multitable
115
116
117 @cindex musical symbols
118 @cindex font
119 @cindex blackness
120 @cindex balance
121
122 @c introduce illustrating aspects of engraving, spacing...
123 スペースの点では、スペースの配分は音符と音符の間の音の間隔を反映します。しか@c
124 しながら、現代楽譜の多くは数学的な正確さを持った間隔に固執しています。このこ@c
125 とはおもしろくない結果を生み出します。次の例では、2 度楽譜をプリントしていま@c
126 す: 1 度目は正確に数学的なスペースを用いて、2 度目はそれに校正を加えていま@c
127 す。違いを見分けられますか?
128
129 @cindex optical spacing
130 @c file spacing-optical.
131 @c need to include it here,  because we want two images.
132 @lilypond
133 \paper {
134   ragged-right = ##t
135   indent = #0.0
136 }
137
138 music = {
139    c'4 e''4 e'4 b'4 |
140    \stemDown
141    b'8[ e'' a' e'']
142    \stemNeutral
143    e'8[ e'8 e'8 e'8]
144 }
145
146 \score
147 {
148   \music
149   \layout {
150     \context {
151       \Staff
152       \override NoteSpacing #'stem-spacing-correction = #0.6
153     }
154   }
155 }
156 @end lilypond
157
158 @lilypond
159 \paper {
160   ragged-right = ##t
161   indent = #0.0
162 }
163
164 music = {
165    c'4 e''4 e'4 b'4 |
166    \stemDown
167    b'8[ e'' a' e'']
168    \stemNeutral
169    e'8[ e'8 e'8 e'8]
170 }
171 \score
172 {
173   \music
174   \layout {
175     \context {
176       \Staff
177       \override NoteSpacing #'stem-spacing-correction = #0.0
178       \override NoteSpacing #'same-direction-correction = #0.0
179       \override StaffSpacing #'stem-spacing-correction = #0.0
180     }
181   }
182 }
183 @end lilypond
184
185 @cindex regular rhythms
186 @cindex regular spacing
187 @cindex spacing, regular
188
189 各小節には一定のリズムで演奏される音符だけがあります。スペースもそれを反映していま@c
190 す。不幸なことに、我々の目は我々を少し惑わせます。音符の「玉」 (ノート ヘッド) の間@c
191 隔だけでなく、連続した棒 (ステム、音符から突き出る棒) の間隔も考慮します。結果とし@c
192 て、アップ ステム/@/ダウン ステム (玉の上に突き出た棒/@/玉の下に突き出た棒) の組み@c
193 合わせは離すべきであり、ダウン ステム/アップステムの組み合わせは近づけるべきです、す@c
194 べては音符の垂直方向の位置の組み合わせに次第です。上の 2 小節は音符のダウン 
195 ステム/@/アップ ステムの組み合わせを近づけるよう校正を加えたものであり、下の 2 小節@c
196 はこの校正を加えていないものです。
197
198
199 通常、奏者は楽譜の見え方を勉強するよりも演奏をするほうに夢中ですので、印刷上@c
200 の詳細にこだわることは形式尊重のように思えるかもしれません。しかしそうではあ@c
201 りません。単調なリズムがずっと続くような場合、スペースの校正を行うことで各行@c
202 のレイアウトに微妙な変化が加わり、それぞれが異なる視覚的特徴を持つようになり@c
203 ます。この特徴が無ければすべての行は同じに見え、迷路のようになってしまいま@c
204 す。奏者がちょっと目を逸らしたり、集中力を欠くと、それまで見ていた行はページ@c
205 の中に埋もれてしまいます。
206
207 同様に、太い譜線 (音の高さを表す線。五線譜では 5 本) に描かれた太い記号は見@c
208 た目が強く、楽譜から奏者が離れている場合 -- 例えば、楽譜が譜面台にある場合 -- 
209 に良く目立ちます。空白を注意深く配置することで、楽譜は記号が乱雑になることな@c
210 く締まります。結果としてページをめくる回数は最小となり、これは大きな利点にな@c
211 ります。
212
213 これは印刷において共通して言えることですが、レイアウトはこざっぱりとしている@c
214 べきです。これは印刷自体のためであるだけでなく、特にその印刷物を読んでいる読@c
215 み手の助けにもなるからです。楽譜のような演奏用の道具では、このことは 2 重に@c
216 重要性を持ちます: 奏者の注意力には限界があり、奏者が楽譜を読むことに払う注意@c
217 力が少なくて済めば済むほど、その奏者は演奏に集中することができます。言い換え@c
218 ると、良い印刷は良い演奏につながるのです。
219
220 以上で挙げたことは、楽譜の印刷は微妙で複雑な技術であり、楽譜を印刷するには非@c
221 常な熟練 -- これは通常、奏者が持っているものではありません -- が必要であると@c
222 いうことを示しています。LilyPond は、手作業で譜刻された楽譜のすばらしさをコ@c
223 ンピュータ世代に提供しよう、すばらしい楽譜を普通の音楽家にも利用可能にしよう@c
224 という我々の努力なのです。我々は、良く見てみたくなり、演奏したくなるような古@c
225 い楽譜のクオリティに匹敵する楽譜を提供するために、アルゴリズム、フォント デ@c
226 ザイン、プログラム設定を調整してきました。
227
228
229 @node Automated engraving
230 @unnumberedsubsec Automated engraving
231
232 @cindex engraving, automated
233 @cindex automated engraving
234
235 我々はどのように譜刻を実現していくのでしょうか?職人が本当のマスターになるのに
236 10 年以上かかるのなら、単なるハッカーである我々がどうやったら職人の仕事を越@c
237 えるプログラムを書けるのでしょうか?
238
239 その答えは、我々には「できない」です。譜刻は人間的な状況判断に頼っているた@c
240 め、判断を行う人間を完全にコンピュータに置き換えることはできません。しかしな@c
241 がら、退屈な作業の多くを自動化することはできます。もし LilyPond が一般的な@c
242 ケースの大半に対処できるなら、それは既存のソフトウェアよりも大きく前進するこ@c
243 とになります。残りのケースは手作業で調整することができます。年数が経つにつれ@c
244 て、このソフトウェアはより多くのことを自動的に行えるよう洗練されていき、手作@c
245 業による手直しはどんどん必要なくなっていくことでしょう。
246
247 我々が LilyPond の開発を始めたとき、我々は LilyPond プログラム全体を C++ プ@c
248 ログラミング言語で書いていました。プログラムの機能は開発者によってかっちりと@c
249 決められていました。これはいくつかの理由で不満足なものであることがわかりました:
250
251 @itemize
252 @item LilyPond が失敗を犯したとき、ユーザはフォーマット判断 (どのような@c
253 フォーマットにするかの判断) を上書きする必要があります。そのため、ユーザは@c
254 フォーマット エンジンにアクセスしなければなりません。そのため、コンパイル時@c
255 に我々 (開発者) によって規則と設定を固定することは無理があり、実行時 (LilyPond 
256 によって楽譜を作り出すとき) にユーザが規則と設定にアクセスできなければなりま@c
257 せん。
258
259 @item 譜刻は視覚的判断の問題であり、そのために好みがあります。我々には知識が@c
260 ありますが、ユーザは我々の個人的な判断に異を唱える可能性もあります。そのた@c
261 め、譜刻様式の定義もまたユーザがアクセスできるものでなければなりません。
262
263 @item 最後に、我々は継続的にフォーマット アルゴリズムを改良させていくので、@c
264 我々には規則に対する自由度の高いアプローチが必要です。C++ 言語は音楽表記の作@c
265 業とはうまくマッチしない規則分類法を押し付けてきます。
266
267 @end itemize
268
269 @cindex Scheme programming language
270
271 これらの問題に対して、Scheme プログラミング言語のインタプリタを統合し、@c
272 LilyPond の各部分を Scheme で書き直すという処置がとられてきました。現在の@c
273 フォーマット アーキテクチャはグラフィカル オブジェクトという概念で構築されて@c
274 いて、Scheme 変数と関数によって記述されています。このアーキテクチャは、@c
275 フォーマット規則、譜刻スタイル、個々のフォーマットに関する判断を包含していま@c
276 す。ユーザはこれらの制御の大半に直接アクセスする術を持ちます。
277
278 Scheme 変数はレイアウトに関する判断を制御します。例えば、多くのグラフィカル 
279 オブジェクトは上か下か (あるいは左か右か) の選択を決定する方向 (に関する) 変@c
280 数を持ちます。ここで、アクセントとアルペジオを持つ 2 つの和音を見てみます。@c
281 最初の和音では、すべてのグラフィカル オブジェクトは下向き (あるいは左向き) 
282 の方向を持っています。2 番目の和音では、すべてが上向き (あるいは右向き) の方@c
283 向を持っています。
284
285 @lilypond[quote,ragged-right]
286 \new Score \with {
287    \override SpacingSpanner #'spacing-increment = #3
288    \override TimeSignature #'transparent = ##t
289 } \relative c' {
290    \stemDown <e g b>4_>-\arpeggio
291    \override Arpeggio #'direction = #RIGHT
292    \stemUp <e g b>4^>-\arpeggio
293 }
294 @end lilypond
295
296 @cindex score formatting
297 @cindex formatting a score
298 @cindex formatting rules
299
300 @noindent
301 楽譜を形作るプロセスはグラフィカルオブジェクトの変数を読み込んだり、書き込ん@c
302 だりすることからなります。いくつかの変数はプリセット値を持ちます。例えば、多@c
303 くの線の太さ -- 印刷スタイルの特性 -- はプリセット値を持つ変数です。あなたは@c
304 自由にこの値を変更することができ、それによってあなたの楽譜は異なる印象を持つ@c
305 ことになります。
306
307 @lilypond[quote,ragged-right]
308 fragment = {
309    \clef bass f8 as8
310    c'4-~ c'16 as g f e16 g bes c' des'4
311 }
312 <<
313    \new Staff \fragment
314    \new Staff \with {
315       \override Beam #'thickness = #0.3
316       \override Stem #'thickness = #0.5
317       \override Bar #'thickness = #3.6
318       \override Tie #'thickness = #2.2
319       \override StaffSymbol #'thickness = #3.0
320       \override Tie #'extra-offset = #'(0 .  0.3)
321       }
322       \fragment
323 >>
324 @end lilypond
325
326 さらにフォーマット規則もプリセット変数です: 各オブジェクトはプロシージャを保@c
327 持している変数を持ちます。これらのプロシージャが実際のフォーマットを実行し、@c
328 異なるプロシージャを使用することによってオブジェクトの見た目を変えることがで@c
329 きます。以下の例では、音符の玉 (ノート ヘッド) シンボルを印刷するのにどの音@c
330 符の玉オブジェクトを使用するかを決定する規則を楽譜の途中で変更しています。
331
332 @lilypond[quote,ragged-right]
333 #(set-global-staff-size 30)
334
335 #(define (mc-squared grob orig current)
336   (let* ((interfaces (ly:grob-interfaces grob))
337          (pos (ly:grob-property grob 'staff-position)))
338     (if (memq 'note-head-interface interfaces)
339         (begin
340           (ly:grob-set-property! grob 'stencil
341             (grob-interpret-markup grob
342               (make-lower-markup 0.5
343                 (case pos
344                   ((-5) "m")
345                   ((-3) "c ")
346                   ((-2) (make-smaller-markup (make-bold-markup "2")))
347                   (else "bla")))))))))
348
349 \new Voice \relative c' {
350   \stemUp
351   \set autoBeaming = ##f
352   \time 2/4
353   <d f g>4
354   \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
355   \once \override NoteHead #'font-size = #-7
356   \once \override NoteHead #'font-family = #'sans
357   \once \override NoteHead #'font-series = #'bold
358   <d f g>4
359   \once \override NoteHead #'style = #'cross
360   <d f g>4
361   \applyOutput #'Voice #mc-squared
362   <d f g>4
363   <<
364     { d8[ es-( fis^^ g] fis2-) }
365     \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
366   >>
367 }
368 @end lilypond
369
370
371 @node What symbols to engrave?
372 @unnumberedsubsec What symbols to engrave?
373
374 @cindex engraving
375 @cindex typography
376 @cindex engraver
377 @cindex plug-in
378
379
380 フォーマット プロセスはシンボルを置く場所を決定します。しかしながら、@c
381 @emph{どの}シンボルを譜刻すべきかを決定する -- 言い換えると、使用する表記を@c
382 決定する -- と、シンボルを置く場所も決まります。
383
384 一般の音楽表記は音楽を記録するシステムであり、これは過去 1000 年以上にもわ@c
385 たって進化してきました。現在の一般的な形式はルネッサンス前期にまでさかのぼり@c
386 ます。基本的な形式 (すなわち、音符の玉が 5 本線の譜表上にあるというもの) は@c
387 変更されていませんが、細かな点は現代の表記の改革を表現するためにいまだに発展@c
388 が続けられています。したがって、一般的な音楽表記はおよそ500年間の音楽を扱い@c
389 ます。応用範囲は単旋律から大規模なオーケストラのための途方もない対位法にまで@c
390 及びます。
391
392 どうやったら我々はそのような多頭の獣を統率し、制限のあるコンピュータ プログ@c
393 ラムに押し込めることができるでしょうか?我々の解決策は表記の問題 (譜刻とは対@c
394 照的にある、すなわち、活字学) を消化の良いプログラム可能な小さな塊に分解して@c
395 いくことです: それぞれのシンボルのタイプは個々のモジュール -- いわゆるプラグ@c
396 イン -- によって処理されます。各プラグインは完全にモジュール化されて独立して@c
397 いて、それによりそれぞれを別個に開発、改良することができます。そのようなプラ@c
398 グインは音楽的概念をグラフィック シンボルに変換する職人に例えて @code{engraver}
399 (エングラーバ) と呼びます。
400
401 以下の例では、我々が音符の玉のためのプラグイン @code{Note_heads_engraver} か@c
402 ら始めていく様子を見ていきます。
403
404 @lilypond[quote,ragged-right]
405 \include "engraver-example.ily"
406
407 \score {
408   \topVoice
409   \layout {
410     \context {
411       \Voice
412       \remove "Stem_engraver"
413       \remove "Phrasing_slur_engraver"
414       \remove "Slur_engraver"
415       \remove "Script_engraver"
416       \remove "Beam_engraver"
417       \remove "Auto_beam_engraver"
418     }
419     \context {
420       \Staff
421       \remove "Accidental_engraver"
422       \remove "Key_engraver"
423       \remove "Clef_engraver"
424       \remove "Bar_engraver"
425       \remove "Time_signature_engraver"
426       \remove "Staff_symbol_engraver"
427       \consists "Pitch_squash_engraver"
428     }
429   }
430 }
431 @end lilypond
432
433 @noindent
434 それから、@code{Staff_symbol_engraver} が譜表を加え
435
436 @lilypond[quote,ragged-right]
437 \include "engraver-example.ily"
438
439 \score {
440   \topVoice
441   \layout {
442     \context {
443       \Voice
444       \remove "Stem_engraver"
445       \remove "Phrasing_slur_engraver"
446       \remove "Slur_engraver"
447       \remove "Script_engraver"
448       \remove "Beam_engraver"
449       \remove "Auto_beam_engraver"
450     }
451     \context {
452       \Staff
453       \remove "Accidental_engraver"
454       \remove "Key_engraver"
455       \remove "Clef_engraver"
456       \remove "Bar_engraver"
457       \consists "Pitch_squash_engraver"
458       \remove "Time_signature_engraver"
459     }
460   }
461 }
462 @end lilypond
463
464 @noindent
465 @code{Clef_engraver} が譜表の参照位置を定義し
466
467 @lilypond[quote,ragged-right]
468 \include "engraver-example.ily"
469
470 \score {
471   \topVoice
472   \layout {
473     \context {
474       \Voice
475       \remove "Stem_engraver"
476       \remove "Phrasing_slur_engraver"
477       \remove "Slur_engraver"
478       \remove "Script_engraver"
479       \remove "Beam_engraver"
480       \remove "Auto_beam_engraver"
481     }
482     \context {
483       \Staff
484       \remove "Accidental_engraver"
485       \remove "Key_engraver"
486       \remove "Bar_engraver"
487       \remove "Time_signature_engraver"
488     }
489   }
490 }
491 @end lilypond
492
493 @noindent
494 @code{Stem_engraver} が棒 (ステム) を付け加えます。
495
496 @lilypond[quote,ragged-right]
497 \include "engraver-example.ily"
498
499 \score {
500   \topVoice
501   \layout {
502     \context {
503       \Voice
504       \remove "Phrasing_slur_engraver"
505       \remove "Slur_engraver"
506       \remove "Script_engraver"
507       \remove "Beam_engraver"
508       \remove "Auto_beam_engraver"
509     }
510     \context {
511       \Staff
512       \remove "Accidental_engraver"
513       \remove "Key_engraver"
514       \remove "Bar_engraver"
515       \remove "Time_signature_engraver"
516     }
517   }
518 }
519 @end lilypond
520
521 @noindent
522 @code{Stem_engraver} はやって来るすべての音符の玉 (ノート ヘッド) について知@c
523 らされます。1 つの音符の玉 (あるいは和音の場合は複数の音符の玉) が現れるたび@c
524 に、ステム オブジェクトが作成され、音符の玉に接続されます。さらにビーム (ス@c
525 テムとステムをつなぐ横棒)、スラー、アクセント、臨時記号、小節線 (小節と小節@c
526 を区切る縦線)、拍子記号、調号のためのエングラーバを付け加えるによって、我々@c
527 は完全な楽譜を手に入れることができます。
528
529 @lilypond[quote,ragged-right]
530 \include "engraver-example.ily"
531 \score { \topVoice }
532 @end lilypond
533
534 @cindex polyphony
535 @cindex engraving multiple voices
536 @cindex contexts
537
538 このシステムは単旋律の音楽に対してはうまく機能しますが、多声部音楽に対しては@c
539 どうでしょうか?多声部表記では、多くの声部 (ボイス) が 1 つの譜表を共有します。
540
541 @lilypond[quote,ragged-right]
542 \include "engraver-example.ily"
543 \new Staff << \topVoice \\ \botVoice >>
544 @end lilypond
545
546 このような場合、臨時記号と譜表は共有されますが、ステム、スラー、ビームなどは@c
547 各声部が単独で持ちます。そのため、エングラーバはグループ化されるべきです。音@c
548 符の玉、ステム、スラーなどのためのエングラーバは @q{Voice context} (ボイス 
549 コンテキスト) と呼ばれるグループに入れられ、一方の調子、臨時記号、小節線など@c
550 のためのエングラーバは @q{Staff context} (譜表コンテキスト) とグループに入れ@c
551 られます。多声部音楽の場合、単一の譜表コンテキストには複数のボイス コンテキ@c
552 ストが含まれます。同様に、複数の譜表コンテキストは単一の楽譜 (Score) コンテ@c
553 キストになり得ます。楽譜コンテキストは最上位の表記コンテキストです。
554
555
556 @seealso
557 内部リファレンス: @rinternals{Contexts}.
558
559
560 @lilypond[quote,ragged-right]
561 \include "engraver-example.ily"
562 \score {
563    <<
564       \new Staff << \topVoice \\ \botVoice >>
565       \new Staff << \pah \\ \hoom >>
566    >>
567 }
568 @end lilypond
569
570
571 @node Music representation
572 @unnumberedsubsec Music representation
573
574 @cindex syntax
575 @cindex recursive structures
576
577 概念上、高レベル フォーマット システムのための入力フォーマットは内容を抽象的@c
578 に記述するものになります。このケースでは、内容は音楽自体になります。これは手@c
579 に負えない問題に見えます: どうやったら我々は音楽の本質を定義できるでしょう@c
580 か?その答えを見つけようとする代わりに、我々はその問題を逆転させました。我々@c
581 は楽譜を譜刻する能力を持つプログラムを書き、そのフォーマットができる限りすっ@c
582 きりしたものになるよう調整します。これ以上フォーマットを減らすことができない@c
583 という状態になったとき、当然のことながら我々に残されているのは内容自体になり@c
584 ます。我々のプログラムは音楽ドキュメントの形式定義として機能します。
585
586 さらに、構文が LilyPond のユーザ インタフェイスになっているため、
587
588 @example
589 @{
590   c'4 d'8
591 @}
592 @end example
593
594 とタイプだけで、4 分音符の C1 (ミドル C (=ド)) と 8 分音符の D1 (ミドル C の@c
595 上の D (=レ)) になります。
596
597 @lilypond[quote]
598 {
599   c'4 d'8
600 }
601 @end lilypond
602
603 @warning{訳者: C = ド, D = レ, E = ミ, F = ファ, G = ソ, A = ラ, B = シ で@c
604 す。LilyPond では音符を「ドレミ〜」ではなく "CDE~" として捉えることが必須なの@c
605 で、今後は音符をアルファべット表記にします。}
606
607 小さなスケールでは、そのような構文は簡単に使用できます。大きなスケールでは、@c
608 構文はさらに構造を持つ必要があります。そうしなければ、どうやったらあなたはシ@c
609 ンフォニーやオペラのような複雑な楽譜に取り組めるでしょうか?構造は音楽表現法@c
610 というコンセプトによって形成されます: 小さな音楽の断片を組み合わせて大きな音@c
611 楽にすることによって、より複雑な音楽を表すことができるようになります。例を挙@c
612 げます。
613
614 @lilypond[quote,verbatim,fragment,relative=1]
615 f4
616 @end lilypond
617
618 @noindent
619 同時進行の音符はそれらを @code{<<} と @code{>>} で囲むことによって構築できます:
620
621
622 @example
623 <<c4 d4 e4>>
624 @end example
625
626 @lilypond[quote,fragment,relative=1]
627 \new Voice { <<c4 d4 e>> }
628 @end lilypond
629
630 @noindent
631 この音楽表現を中括弧 @code{@{@tie{}@dots{}@tie{}@}} で囲むことによってシークエ@c
632 ンスの中に入れることができます:
633
634 @example
635 @{ f4 <<c4 d4 e4>> @}
636 @end example
637
638 @lilypond[quote,relative=1,fragment]
639 { f4 <<c d e4>> }
640 @end lilypond
641
642 @noindent
643 上記もまた音楽表現の 1 つなので、@code{<<}, @code{@bs{}@bs{}}, and @code{>>} 
644 を使ってそれを再び他の同時進行の音楽表現 (2 分音符) と組み合わせることもでき@c
645 ます:
646
647 @example
648 @code{<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>}
649 @end example
650
651
652 @lilypond[quote,fragment,relative=2]
653 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
654 @end lilypond
655
656 このような再帰的な構造はさっぱりと、かつ、しっかりした形式でコンテキスト フ@c
657 リー文法で記すことができます。コード解析もまたこの文法から生成されます。言い換@c
658 えると、LilyPond の構文ははっきりと明快に定義されます。
659
660 ユーザが LilyPond に取り組むときに、ユーザがその時間の大半で見て、扱うものは@c
661 ユーザ インタフェイスと構文です。それらのある部分は好みの問題であり、多くの議@c
662 論の対象にもなるものです。好みについて議論することは有意義なことですが、それほ@c
663 ど生産的なことではありません。LilyPond という大きな世界の中で、入力構文の重要@c
664 性は小さいのです: さっぱりとした構文をでっちあげることは簡単ですが、見苦しくな@c
665 いフォーマット コードを作成することはとても難しいのです。このことは、それぞれ@c
666 のコンポーネントの行数をカウントすることによっても実証されます: 解析と表記のた@c
667 めのコンポーネントはソース コード全体の 10 % にも達しません。
668
669
670 @node Example applications
671 @unnumberedsubsec Example applications
672
673 @cindex simple examples
674 @cindex examples, simple
675
676 我々はどのように譜刻の技術をコンピュータ プログラムの中に凝縮するかという実験@c
677 として LilyPond を開発してきました。重労働のおかげで、今やこのプログラムは有用@c
678 な働きを行うのに使用できるようになりました。非常に簡単な利用例は音符を譜刻する@c
679 ことです。
680
681 @lilypond[quote,relative=1]
682 {
683   \time 2/4
684   c4 c g'4 g a4 a g2
685 }
686 @end lilypond
687
688 @noindent
689 コード ネームと歌詞を加えることによって、我々はリード譜を得ます。
690
691 @lilypond[quote,ragged-right]
692 <<
693    \chords { c2 c f2 c }
694    \new Staff
695    \relative c' {
696      \time 2/4
697      c4 c g' g a a g2
698    }
699    \addlyrics { twin -- kle twin -- kle lit -- tle star }
700 >>
701 @end lilypond
702
703 さらに、多声部表記とピアノ譜を譜刻することもできます。以下の例はいくつかのより@c
704 風変わりな構成を組み合わせています。
705
706 @lilypond[quote]
707 \header {
708   title = "Screech and boink"
709   subtitle = "Random complex notation"
710   composer = "Han-Wen Nienhuys"
711 }
712
713 \score {
714   \context PianoStaff <<
715     \new Staff = "up" {
716       \time 4/8
717       \key c \minor
718       << {
719         \revert Stem #'direction
720         \change Staff = down
721         \set subdivideBeams = ##t
722         g16.[
723           \change Staff = up
724           c'''32
725           \change Staff = down
726           g32
727           \change Staff = up
728           c'''32
729           \change Staff = down
730           g16]
731         \change Staff = up
732         \stemUp
733         \set followVoice = ##t
734         c'''32([ b''16 a''16 gis''16 g''32)]
735       } \\ {
736         s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
737       } \\ {
738         s4 \autoBeamOff d''8.. f''32
739       } \\ {
740         s4 es''4
741       } >>
742     }
743
744     \new Staff = "down" {
745       \clef bass
746       \key c \minor
747       \set subdivideBeams = ##f
748       \override Stem  #'french-beaming = ##t
749       \override Beam  #'thickness = #0.3
750       \override Stem  #'thickness = #4.0
751       g'16[ b16 fis16 g16]
752       << \makeClusters {
753         as16 <as b>
754         <g b>
755         <g cis>
756       } \\ {
757         \override Staff.Arpeggio  #'arpeggio-direction =#down
758         <cis, e, gis, b, cis>4\arpeggio
759       }
760     >> }
761   >>
762   \midi {
763     \context {
764       \Score
765       tempoWholesPerMinute = #(ly:make-moment 60 8)
766     }
767   }
768   \layout {
769     \context {
770       \Staff
771       \consists Horizontal_bracket_engraver
772     }
773   }
774 }
775 @end lilypond
776
777 上で示した楽譜の断片はすべて手作業で作成されていました。しかしながら、必ずしも@c
778 手作業で行う必要はありません。フォーマット エンジンの大部分は自動化されている@c
779 ため、その出力を音楽を操作する他のプログラムに供することができます。例えば、音@c
780 楽の断片のデータベースをウェブサイトやマルチメディア プレゼンテーションで使用@c
781 する画像に変換するために使用することもできます。
782
783 このマニュアルも利用例です: 入力フォーマットはテキストなので、容易に他のテキスト
784 ベースのフォーマット -- 例えば、@LaTeX{}, HTML, このマニュアルの場合は 
785 Texinfo -- に埋め込むことができます。ある特別なプログラムによって入力断片を音@c
786 楽イメージに置き換えることができ、それによって PDF や HTML の出力ファイルとい@c
787 う結果を得ることができます。これはドキュメントの中で音楽とテキストを混在させる@c
788 ことを容易にします。
789
790
791
792 @node About the documentation
793 @section About the documentation
794
795 この節では、このドキュメントの各部分について説明します。
796
797 @cindex Learning Manual
798 @cindex Music Glossary
799 @cindex Notation Reference
800 @cindex Application Usage
801 @cindex Snippet List
802 @cindex Internals Reference
803
804 @c leave these lines wrapping around.  It's some texinfo 4.12 thing. -gp
805 @c This is actually a limitation of texi2html. -jm
806 @menu
807 * About the Learning Manual::  このマニュアルは表記を作成する方法について丁寧@c
808 な説明をしながら LilyPond についての紹介を行います。
809 * About the Music Glossary::  このマニュアルは音楽用語についての説明を行い、そ@c
810 れらの用語の他の言語への訳語を提供します。
811 * About the Notation Reference::  このマニュアルはこのドキュメントの主要部分で@c
812 す。表記を作成する方法についての詳細な情報を提供します。このマニュアルは読者が@c
813 学習マニュアルでカバーされている基本的な内容を知っていて、音楽用語集に書かれて@c
814 いる英語の音楽用語に馴染んでいるものと仮定しています。
815 * About the Application Usage::  ここでは実際のプログラムとオペレーティング シ@c
816 ステム特有の問題について議論します。
817 * About the Snippet List::  これは短い LilyPond の例のコレクションです。
818 * About the Internals Reference::  このドキュメントは LilyPond の内部構造体に@c
819 ついての参照情報を提供します。調整を行うのに LilyPond の内部構造体についての知@c
820 識が必要です。
821 * Other documentation::  ここにはこのドキュメントの他の部分 -- ニュースやメール 
822 アーカイブなど -- がいくつかあります。
823 @end menu
824
825
826 @node About the Learning Manual
827 @unnumberedsubsec About the Learning Manual
828
829 @cindex Learning Manual
830
831 本書は LilyPond の学習の始め方を説明し、同時にいくつかの鍵となるコンセプトを簡@c
832 単な用語で説明します。あなたは本書を一読すべきです。
833
834 各セクションの最後には@strong{参照}というパラグラフがあり、そこには他のセクシ@c
835 ョンへの参照があります: 初めて本書を読むときはこれらの参照を追うべきではありま@c
836 せん。あなたが学習マニュアルをすべて読み終えたとき、いくつかのセクションを読み@c
837 返し、さらに参照を追おうと思うかもしれません。
838
839 @itemize
840
841 @item
842
843 @ref{Introduction}: LilyPond のバックグランドと最終目標について説明します。
844
845 @item
846
847 @ref{Tutorial}: 音楽を譜刻するためのやさしい入門を提供します。初めて LilyPond 
848 を使うユーザはここから始めるべきです。
849
850 @item
851
852 @ref{Fundamental concepts}: LilyPond ファイル フォーマットについてのいくつかの@c
853 一般的なコンセプトを説明します。あるコマンドを置くべき場所がわからない場合は、@c
854 この章を読んでください!
855
856 @item
857
858 @ref{Tweaking output}: LilyPond が作り出すデフォルトの譜刻を変更する方法を示し@c
859 ます。
860
861 @item
862
863 @ref{Working on LilyPond projects}: LilyPond の実際的な使用といくつかの一般的@c
864 な問題を回避するための方法について議論します。大きなプロジェクトに取り組む前に@c
865 この章を読んでください!
866
867 @end itemize
868
869 さらに、学習マニュアルは付録 -- 一読するのを推奨しない部分 -- も保持していま@c
870 す。それらは後で読み直すときに有用になるかもしれません:
871
872 @itemize
873
874 @item
875
876 @ref{Templates}: コンパイルの準備が整っている LilyPond 入力を示します。ある@c
877 テンプレートをファイルにカット&ペーストし、表記を追加するだけで完了です!
878
879 @item
880
881 @ref{Scheme tutorial}: Scheme の簡単な紹介を提供します。Scheme は音楽関数が使@c
882 用するプログラミング言語です。この付録は高度な調整を行うための資料です。多くの@c
883 ユーザは Scheme に触れる必要はまったくありません。
884
885 @end itemize
886
887 @node About the Music Glossary
888 @unnumberedsubsec About the Music Glossary
889
890 @cindex Music Glossary
891 @cindex idiom
892 @cindex jargon
893 @cindex terminology
894 @cindex foreign languages
895 @cindex language
896
897 @rglosnamed{Top,Music glossary}
898 は音楽用語についての説明を行い、それらの用語のさまざまな言語への訳語を提供しま@c
899 す。あなたが音楽表記や音楽用語に馴れていないのなら (特にあなたが英語圏の人でな@c
900 いのなら)、用語集を引くことはとても役に立ちます。
901
902
903 @node About the Notation Reference
904 @unnumberedsubsec About the Notation Reference
905
906 @cindex Notation Reference
907 @cindex appendices
908 @cindex reference charts
909 @cindex charts, reference
910
911 本書は表記を作り出すすべての LilyPond コマンドについての説明を行います。本書@c
912 は、読者が学習マニュアルを読み終えて、LilyPond のコンセプトに馴染みを持ってい@c
913 るものと仮定しています。
914
915 @itemize
916
917 @item
918
919 @ruser{Musical notation}:
920 は表記概念ごとにグループ化されたテーマについて議論します。このセクションでは、@c
921 ほとんどすべての表記プロジェクトで有用な基本的な表記についての詳細を提供します。
922
923 @item
924
925 @ruser{Specialist notation}:
926 は表記概念ごとにグループ化されたテーマについて議論します。このセクションでは、@c
927 ある特定の楽器 (またはボーカル) グループにとってのみ有用な特別な表記についての@c
928 詳細を提供します。
929
930 @item
931
932 @ruser{General input and output}:
933 は LilyPond 入力ファイルと出力の制御についての一般的な情報について議論します。
934
935 @item
936
937 @ruser{Spacing issues}:
938 は出力全般に影響を与える事柄  -- 用紙サイズの選択や改ページの指定など -- につ@c
939 いて議論します。
940
941 @item
942
943 @ruser{Changing defaults}:
944 LilyPond があなたの望む表記を作り出すように調整する方法について説明します。
945
946 @item
947
948 @ruser{Interfaces for programmers}:
949 Scheme を用いて音楽関数を作成する方法について説明します。
950
951 @end itemize
952
953 表記リファレンスには有用な参照表を持つ付録もあります。
954
955 @itemize
956
957 @item
958
959 @ruser{Literature list}:
960 には、表記や譜刻についてもっと知りたい人たち向けのリファレンス ブックのセット@c
961 があります。
962
963 @item
964
965 @ruser{Notation manual tables}:
966 は、コード名、MIDI 命令、カラー名のリスト、Feta フォントについての表のセットで@c
967 す。
968
969 @item
970
971 @ruser{Cheat sheet}:
972 は最も一般的な LilyPond コマンドの簡易リファレンスです。
973
974 @item
975
976 @ruser{LilyPond command index}:
977 すべての LilyPond @code{@bs{}command} のインデックスです。
978
979 @item
980
981 @ruser{LilyPond index}:
982 すべてを網羅する完全なインデックスです。
983
984 @end itemize
985
986
987 @node About the Application Usage
988 @unnumberedsubsec About the Application Usage
989
990 @cindex Application Usage
991 @cindex integrating LilyPond with other programs
992
993 本書はプログラムを実行する方法、LilyPond 表記を他のプログラムに統合する方法に@c
994 ついて説明します。
995
996 @itemize
997
998 @item
999
1000 @rprogram{Install}:
1001 LilyPond をインストールする方法について、もし望むのならばコンパイルの仕方も含@c
1002 めて、説明します。
1003
1004 @item
1005
1006 @rprogram{Setup}:
1007 あなたのコンピュータを LilyPond の使用に合わせて最適にコンフィグレーションする 
1008 -- ある特定のテキスト エディタによって提供される特別な環境を使用するなど -- 方@c
1009 法について説明します。
1010
1011 @item
1012
1013 @rprogram{Running LilyPond}:
1014 LilyPond とその援助プログラムを実行する方法を示します。さらに、このセクション@c
1015 は入力ファイルを LilyPond の以前のバージョンからアップグレードする方法について@c
1016 説明します。
1017
1018 @item
1019
1020 @rprogram{LilyPond-book}:
1021 このマニュアルのような内部に音楽の例を持つドキュメントを作成する方法についての@c
1022 詳細を説明します。
1023 @c explains the details behind creating documents with in-line music
1024 @c examples, like this manual.
1025
1026 @item
1027
1028 @rprogram{Converting from other formats}:
1029 変換プログラムを実行する方法について説明します。それらのプログラムは LilyPond 
1030 パッケージで提供され、さまざまな音楽フォーマットを @code{.ly} フォーマットに変@c
1031 換します。
1032
1033 @end itemize
1034
1035
1036 @node About the Snippet List
1037 @unnumberedsubsec About the Snippet List
1038
1039 @cindex snippets
1040 @cindex LSR
1041 @cindex Snippet List
1042 @cindex LilyPond Snippet Repository
1043
1044 @rlsrnamed{Top,LilyPond Snippet List}: これは 
1045 @uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}
1046  (LSR) から選んだ LilyPond 断片のセットです。すべての断片はパブリック ドメイン@c
1047 の中にあります。
1048
1049 このドキュメントは LSR のサブセットそのものではないことに注意してください。LSR 
1050 は安定板の LilyPond バージョンを使用するため、開発中の新しい機能を実演する断片は 
1051 LSR とは別に追加されなければなりません。それらは LilyPond ソース ツリーの中の 
1052 @file{input/new/} の中に保存されます。
1053
1054 表記リファレンスの各サブセクションのための断片のリストは @strong{参照}部分から@c
1055 もリンクされています。
1056
1057
1058 @node About the Internals Reference
1059 @unnumberedsubsec About the Internals Reference
1060
1061 @cindex Internals Reference
1062
1063 @rinternalsnamed{Top,Internals Reference}: これは幾重にもリンクし合った HTML 
1064 ページのセットです。本書はすべての LilyPond クラス、オブジェクト、関数について@c
1065 の具体的な詳細をドキュメント化しています。本書はソース コードの中にあるフォー@c
1066 マット定義から直接作り出されます。
1067
1068 内部的に使用されるフォーマット機能はほとんどすべてユーザが直接利用できます。例@c
1069 えば、太さや距離などを制御するたいていの変数は入力ファイルの中で変更することが@c
1070 できます。膨大な数のフォーマット オプションがあり、それらすべてがこのドキュメ@c
1071 ントの中で記述されています。表記リファレンスの各セクションには@b{参照}サブ セ@c
1072 クションがあり、本書を参照しています。HTML ドキュメントでは、@b{参照}サブ セク@c
1073 ションの中にクリック可能なリンクがあります。
1074
1075
1076 @node Other documentation
1077 @unnumberedsubsec Other documentation
1078
1079 とても有益であるかもしれない他の情報源がいくつかあります。
1080
1081 @itemize
1082
1083 @item
1084
1085 @ifhtml
1086 @ifset bigpage
1087 @uref{../topdocs/NEWS.html,News}:
1088 @end ifset
1089 @ifclear bigpage
1090 @uref{../../topdocs/NEWS.html,News}:
1091 @end ifclear
1092 @end ifhtml
1093 @ifnothtml
1094 News:
1095 @end ifnothtml
1096 これは前のバージョンの LilyPond から後に付け加えられた重要な変更と新しい機能に@c
1097 ついての要約です。
1098
1099 @item
1100
1101 @uref{http://lists.gnu.org/archive/html/lilypond-user/, 
1102 lilypond-user メーリングリスト アーカイブ}: これはこれまでにユーザ リストに送@c
1103 られてきた email のコレクションです。多くの質問が何度も繰り返されています。疑@c
1104 問を持った場合、その答えはこのアーカイブの中で見つかるかもしれません。
1105
1106 @item
1107
1108 @uref{http://lists.gnu.org/archive/html/lilypond-devel/, 
1109 lilypond-devel メーリングリスト アーカイブ}: これはこれまでに開発者のリストに@c
1110 送られてきた email のコレクションです。ここでの議論はより専門的です。lilypond 
1111 内部についての高度な疑問を持った場合、その答えはこのアーカイブの中で見つかるか@c
1112 もしれません。
1113
1114 @item
1115
1116 埋め込まれている楽譜の断片: 楽譜の断片を埋め込まれたすべての HTML ドキュメント@c
1117 では、楽譜の画像をクリックすることによって、その画像を作り出すのに使用された 
1118 LilyPond 入力を閲覧することができます。
1119
1120 @item
1121
1122 初期化ファイル: ここで言及しているドキュメント ファイルの置き場所はシステムに@c
1123 よってさまざまです。しばしばこのマニュアルは初期化ファイルと例のファイルを参照@c
1124 します。このマニュアルを通じて、ソース アーカイブのトップ ディレクトリ下にある@c
1125 入力ファイルを参照します。@c
1126 @c Throughout this manual, we refer to input files relative to the top-directory 
1127 @c of the source archive.@c
1128 例えば、@file{input/@/lsr/@/dirname/@/bla@/.ly} はファイル 
1129 @file{lilypond@/2.x.y/@/input/@/lsr/@/dirname/@/bla@/.ly} を参照するかもしれま@c
1130 せん。@c
1131 UNIX プラットフォーム向けのバイナリ パッケージでは、通常、このドキュメントと例は 
1132 @file{/usr/@/share/@/doc/@/lilypond/} 下のどこかで見つかります。初期化ファイル 
1133 -- 例えば、@file{scm/@/lily@/.scm} や @file{ly/@/engraver@/-init@/.ly} -- は、@c
1134 通常、ディレクトリ @file{/usr/@/share/@/lilypond/} の中で見つかります。詳細は 
1135 @ref{Other sources of information} を参照してください。
1136
1137 @end itemize
1138