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