1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
3 Translation of GIT committish: ebe492ca408fb0d9abf80b94c56197eef8dc2f09
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..
13 @c Translators: Yoshiki Sawada
14 @c Translation status: post-GDP
19 @translationof General input and output
21 このセクションでは、特定の記譜法ではなく、@c
22 LilyPond の一般的な入出力の問題について扱います。
36 @translationof Input structure
38 LilyPond の入力の主となるフォーマットはテキスト ファイルです。@c
39 習慣として、それらのファイルの最後には @file{.ly} を付けます。
43 * book の中にある複数の score::
44 * 1 つの入力ファイルから複数の出力ファイルを生成する::
52 @translationof Structure of a score
56 @code{\score} ブロックは、波括弧で囲まれた単一の音楽表記を@c
65 @warning{@code{\score} ブロックの中には、@c
66 最上位の音楽表記が @strong{1 つだけ} 存在していなければならず、@c
67 その音楽表記は波括弧で囲まれていなければ@strong{なりません}。}
69 この単一の音楽表記は任意のサイズになり得ます。@c
70 そして、それは他の音楽表記を保持して任意の複雑さを持ち得ます。@c
77 @lilypond[verbatim,quote]
84 @lilypond[verbatim,quote]
86 \new Staff { c'4 c' c' c' }
87 \new Staff { d'4 d' d' d' }
95 \new Staff @{ \flute @}
96 \new Staff @{ \oboe @}
99 \new Staff @{ \violinI @}
100 \new Staff @{ \violinII @}
106 この一般規則の例外の 1 つにコメントがあります。@c
107 (他の例外は、@ref{ファイル構造} を参照してください。)@c
108 単一行コメントと複数行コメント (@code{%@{ .. %@}} で囲まれます) は@c
109 どちらも入力ファイルの任意の場所に配置することができます。@c
110 コメントは @code{\score} ブロックの内側あるいは外側に@c
111 配置することができ、@code{\score} ブロックの中にある単一の音楽表記の@c
112 内側あるいは外側に配置することができます。
114 たとえ @code{\score} ブロックだけを保持しているファイルであっても、@c
115 暗黙的に @code{\book} ブロックで囲まれるということを覚えておいてください。@c
116 ソース ファイルの中にある @code{\book} は少なくとも 1 つの@c
118 デフォルトでは出力ファイル名は入力ファイル名から派生します。@c
119 @file{fandangoforelephants.ly} は @file{fandangoforelephants.pdf} を@c
122 (@code{\book} ブロックについての詳細は、@c
123 @ref{book の中にある複数の score}、@c
124 @ref{1 つの入力ファイルから複数の出力ファイルを生成する}、@c
125 @ref{ファイル構造} を参照してください。)
129 @rlearning{入力ファイルに取り組む},
130 @rlearning{音楽表記についての説明},
131 @rlearning{Score は (単一の) 複合的な音楽表記}
134 @node book の中にある複数の score
135 @subsection book の中にある複数の score
136 @translationof Multiple scores in a book
139 @cindex movements, multiple (複数の楽章)
141 ドキュメントは複数の楽曲とテキストを含むことができます。@c
142 そのようなドキュメントの例には練習曲集や、@c
143 複数の楽章を持つオーケストラのパート譜があります。@c
144 楽章はそれぞれ @code{\score} ブロックで入力され、
152 テキストは @code{\markup} ブロックで入力されます。
162 同じ @file{.ly} ファイルの中にあるすべての楽章とテキストは、@c
163 通常、単一の出力ファイルとして譜刻されます。
177 重要な例外として lilypond-book ドキュメントがあります。@c
178 lilypond-book ドキュメントでは、明示的に @code{\book} ブロックを追加する@c
180 さもなければ、最初の @code{\score} あるいは @code{\markup} だけが出力に@c
183 音楽の各節のヘッダはその節の @code{\score} ブロックの中に置くことができます。@c
184 そのヘッダからの @code{piece} 名がそれぞれの楽章の前に譜刻されます。@c
185 book 全体のタイトルは @code{\book} の中に置くことができます。@c
186 しかしながら、@code{\book} が存在しない場合は、@code{\header} を@c
191 title = "Eight miniatures"
192 composer = "Igor Stravinsky"
196 \header @{ piece = "Romanze" @}
199 ..text of second verse..
202 ..text of third verse..
206 \header @{ piece = "Menuetto" @}
212 @code{\bookpart} ブロックを用いて、
213 複数の楽曲を book のパートとしてグループ化することができます。
215 book パートは改ページで区切られ、book 自体と同様に
216 @code{\header} ブロックによりタイトルを持つことができます。
222 subtitle = "First part"
229 subtitle = "Second part"
237 @node 1 つの入力ファイルから複数の出力ファイルを生成する
238 @subsection 1 つの入力ファイルから複数の出力ファイルを生成する
239 @translationof Multiple output files from one input file
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{ファイル構造} を参照してください。
248 単一のソース ファイルから複数のファイルを作り出す時、@c
249 LilyPond は、@code{\book} ブロックが作り出す出力ファイルが@c
250 同じ入力ファイル内にある他の @code{\book} ブロックが作り出した出力ファイルを@c
253 入力ファイルから派生するデフォルトの出力ファイル名に
254 @code{\book} 毎の接尾辞を付け加えることによって上書きされないことを保証します。
257 デフォルトでは出力ファイル名にバージョン番号の接尾辞を付け加えます。@c
258 ソース ファイル @file{eightminiatures.ly} 内の以下の記述
263 \layout @{ @dots{} @}
267 \layout @{ @dots{} @}
271 \layout @{ @dots{} @}
279 @file{eightminiatures.pdf},
281 @file{eightminiatures-1.pdf} and
283 @file{eightminiatures-2.pdf}.
289 @translationof Output file names
291 @funindex \bookOutputSuffix
292 @funindex \bookOutputName
295 出力ファイルを作り出す時に出力ファイル名を制御するための様々な機能を提供します。
298 LilyPond がどのように単一のソース ファイルから作り出される複数の出力ファイルが@c
299 上書きされることを防ぐかを見てきました。@c
300 @code{\book} ブロック毎の出力ファイル名に付け加えられる接尾辞を@c
302 各 @code{\book} ブロックの内部に @code{\bookOutputSuffix} 宣言を@c
304 @file{eightminiatures-Romanze.pdf}, @file{eightminiatures-Menuetto.pdf}
305 それに @file{eightminiatures-Nocturne.pdf} といった名前の出力ファイルを@c
310 \bookOutputSuffix "Romanze"
312 \layout @{ @dots{} @}
315 \bookOutputSuffix "Menuetto"
317 \layout @{ @dots{} @}
320 \bookOutputSuffix "Nocturne"
322 \layout @{ @dots{} @}
326 @code{\bookOutputName} 宣言を用いることにより、@c
327 @code{\book} ブロックに入力ファイル名とは異なる出力ファイル名を@c
332 \bookOutputName "Romanze"
334 \layout @{ @dots{} @}
337 \bookOutputName "Menuetto"
339 \layout @{ @dots{} @}
342 \bookOutputName "Nocturne"
344 \layout @{ @dots{} @}
348 上記のファイルは下記の出力ファイルを作り出します:
362 @translationof File structure
372 @file{.ly} ファイルは最上位の表記を任意の数だけ保持することができます
373 -- ここで、最上位の表記とは以下の中の 1 つです:
377 @code{\paper}, @code{\midi}, @code{\layout} などの出力定義。@c
378 最上位にある出力定義はブック全体のデフォルト設定を変更します。@c
379 最上位に同じタイプの出力定義が複数ある場合、@c
383 @code{#(set-default-paper-size "a7" 'landscape)} や
384 @code{#(ly:set-option 'point-and-click #f)} などの Scheme 表記。
387 @code{\header} ブロック。これはグローバル ヘッダ ブロックになります。@c
388 このブロックは、作曲者、曲名などのブック全体の設定定義を保持します。
391 @code{\score} ブロック。@c
392 この score は他の最上位の score とともに単一の @code{\book} にまとめられます。@c
394 変数 @code{toplevel-score-handler} を最上位の階層で設定することによって、@c
397 初期化ファイル @file{../scm/lily.scm} で定義されています。
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
412 変数 @code{toplevel-score-handler} を最上位の階層で設定することによって、@c
415 初期化ファイル @file{../scm/lily.scm} で定義されています。
418 @code{\bookpart} ブロック。@c
420 あるいは異なるパートで別々の @code{\paper} 設定を使用するために、@c
422 -- @code{\bookpart} を用いて --
423 いくつかのパートに分割される可能性があります。
431 これは楽節を @code{\score} に付け加え、@c
432 その楽節を他のすべての最上位 @code{\score} や音楽表記とともに@c
434 言い換えると、上記の音楽表記だけを保持しているファイルは@c
453 変数 @code{toplevel-score-handler} を最上位の階層で設定することによって、@c
456 初期化ファイル @file{../scm/lily.scm} で定義されています。
463 2. The first line verse two.
467 マークアップ テキストは、それが出現した場所で、@c
468 score あるいは音楽表記の上、間、あるいは下に描かれます。
470 @cindex variables (変数)
479 使用するには、入力ファイルの中で @code{\foo} と入力します。@c
480 変数の名前はアルファベットだけで構成すべきです。@c
481 数字、アンダスコアあるいはダッシュを使うことができません。
485 以下の例は最上位の階層で入力される可能性がある 3 つのものを示しています:
489 % Don't justify the output
501 ファイルの任意の場所で、以下の編集指示のいずれかが入力される可能性があります:
504 @item @code{\version}
505 @item @code{\include}
506 @item @code{\sourcefilename}
507 @item @code{\sourcefileline}
509 @code{%} 記号で始まる単一行コメント。
512 @code{%@{ .. %@}} で囲まれる複数行コメント。
518 通常、入力の要素間にある空白は無視され、@c
519 可読性を良くするために自由に削除あるいは追加することができます。@c
520 しかしながら、以下の状況ではエラーを避けるために空白を挿入する必要があります:
524 @item コマンドあるいは変数 -- すなわち、@code{\} 記号で始まる要素 -- の後。
525 @item Scheme 表記として解釈される要素
526 -- すなわち、@code{#} 記号で始まる要素 -- の後。
527 @item Scheme 表記要素を区切る空白。
528 @item @code{lyricmode} モードの @code{\override} と @code{\set} コマンドの@c
530 特に、@code{\override Score . LyricText #'font-size = #5} のように、@c
531 コマンドの中のドットとイコール記号の前後、コマンド全体の前後に@c
538 @rlearning{LilyPond 入力ファイルの仕組み}
543 @translationof Titles and headers
545 ほとんどすべての楽譜にはタイトルと作曲者名が含まれます。@c
546 楽譜の中にはさらに多くの情報を含むものもあります。
549 * タイトル、ヘッダ、フッタを作成する::
550 * カスタム ヘッダ、フッタ、タイトル::
557 @node タイトル、ヘッダ、フッタを作成する
558 @subsection タイトル、ヘッダ、フッタを作成する
559 @translationof Creating titles headers and footers
563 * book と score のタイトル ブロックのデフォルト レイアウト::
564 * ヘッダとフッタのデフォルト レウアウト::
568 @unnumberedsubsubsec タイトル ブロックの説明
569 @translationof Title blocks explained
571 @c TODO: figure out how \bookpart titles work
573 タイトル ブロックには 2 つのタイプがあります:
574 book の最初の @code{\score} の上に表示されるメインのタイトル ブロックと、@c
575 各 @code{\score} ブロック内に表示される個々のタイトル ブロックです。@c
576 両タイプのテキスト フィールドは @code{\header} ブロックを用いて挿入します。
578 book が単一の score しか持たない場合、@c
579 @code{\header} ブロックを配置する場所は @code{\score} ブロックの内側でも@c
582 @warning{@bs{}@code{score} ブロックの内側に @bs{}@code{header} ブロックを@c
584 @bs{}@code{header} ブロックの前に音楽表記を配置する必要があります。}
586 @lilypond[papersize=a5,quote,verbatim,noragged-right]
589 composer = "J. S. Bach."
593 \new Staff \relative g, {
596 \repeat unfold 2 { g16( d' b') a b d, b' d, } |
597 \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
605 \new Staff \relative b {
609 <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
610 d16( b g fis) g( e d c) b(c d e) fis( g a b) |
618 book のメイン タイトル ブロックのテキスト フィールドはすべての @code{\score}
619 ブロックに表示させることができ、手動で表示を抑制することもできます:
622 @lilypond[papersize=a5,quote,verbatim,noragged-right]
625 print-all-headers = ##t
628 title = "DAS WOHLTEMPERIRTE CLAVIER"
630 % この book では tagline を表示しません
633 \markup { \vspace #1 }
637 \new Staff { \clef "bass" s1 }
640 title = "PRAELUDIUM I"
642 % この score では subtitle を表示しません
649 \new Staff { \clef "bass" s1 }
653 subsubtitle = "A 4 VOCI"
655 % この score では subtitle を表示しません
665 @ref{タイトル ブロックのカスタム レイアウト}
668 @node book と score のタイトル ブロックのデフォルト レイアウト
669 @unnumberedsubsubsec book と score のタイトル ブロックのデフォルト レイアウト
670 @translationof Default layout of book and score title blocks
672 タイトル ブロックのレイアウトとフォーマットは 2 つの @code{\paper}
674 メインの @code{\header} タイトル ブロックのための @code{bookTitleMarkup} と、@c
675 @code{\score} 内部の個々の @code{\header} ブロックのための
676 @code{scoreTitleMarkup} です。
679 @lilypond[papersize=a6,quote,verbatim,noragged-right]
682 dedication = "Dedication"
684 subtitle = "Subtitle"
685 subsubtitle = "Subsubtitle"
686 instrument = "Instrument"
688 % 以下のフィールドは左端に左揃えされます。
692 % 以下のフィールドは右端に右揃えされます。
693 composer = "Composer"
694 arranger = "Arranger"
700 % 以下のフィールドは同一行の両端に配置されます。
707 @c Is the bit about \null markups true? -mp
709 @code{\header} ブロックでセットされなかったテキスト フィールドには@c
710 @code{\null} マークアップがセットされ、スペースを無駄にしません。
712 デフォルト設定では、@code{scoreTitleMarkup} は
713 @code{piece} テキスト フィールドと @code{opus} テキスト フィールドを@c
718 最上位の @code{\header} ブロックのタイトルを最初のページに配置して、@c
719 @code{\score} ブロックで定義される楽譜を次のページから始めるするには、@c
720 @code{\score} ブロックの中にある @code{\header} ブロック内で@c
721 @code{breakbefore} 変数を使用します。
723 @lilypond[papersize=a8landscape,verbatim,noragged-right]
726 title = "This is my Title"
727 subtitle = "This is my Subtitle"
728 copyright = "This is the bottom of the first page"
731 \repeat unfold 4 { e'' e'' e'' e'' }
733 piece = "This is the Music"
742 @rlearning{LilyPond 入力ファイルの仕組み}
748 @file{ly/titling-init.ly}
751 @node ヘッダとフッタのデフォルト レウアウト
752 @unnumberedsubsubsec ヘッダとフッタのデフォルト レウアウト
753 @translationof Default layout of headers and footers
755 @emph{ヘッダ} と @emph{フッタ} は、book のテキストとは別の、@c
756 ページの最初と最後に表示されるテキスト行です。@c
757 ヘッダとフッタは以下の @code{\paper} 変数によって制御されます:
760 @item @code{oddHeaderMarkup}
761 @item @code{evenHeaderMarkup}
762 @item @code{oddFooterMarkup}
763 @item @code{evenFooterMarkup}
766 これらのマークアップ変数は、最上位の @code{\header} ブロック
767 (これは book のすべての score に適用されます) から、@c
768 テキスト フィールドのみにアクセスすることができ、@c
769 @file{ly/titling-init.ly} で定義されています。@c
775 ページ番号は、2 ページ目から、ページ最上段の左端 (偶数ページの場合)
776 または右端 (奇数ページの場合) に自動的に配置されます。
779 @code{instrument} テキスト フィールドは、2 ページ目から、@c
783 @code{copyright} テキストは最初のページの最下段中央に配置されます。
786 @code{tagline} は最後のページの最下段中央に配置されます。@c
787 1 ページしかない場合は @code{copyright} の下に配置されます。
791 @lilypond[papersize=a8landscape]
801 最上位の @code{\header} ブロックの中に @code{tagline} を追加することで、@c
802 デフォルトのタグラインを変更することができます。
804 @lilypond[papersize=a8landscape,verbatim]
807 tagline = "... music notation for Everyone"
817 タグラインを削除するには、@code{tagline} に @code{##f} をセットします。
820 @node カスタム ヘッダ、フッタ、タイトル
821 @subsection カスタム ヘッダ、フッタ、タイトル
822 @translationof Custom headers footers and titles
824 @c TODO: somewhere put a link to header spacing info
825 @c (you'll have to explain it more in NR 4).
828 * タイトル ブロックのカスタム テキスト フォーマット::
829 * タイトル ブロックのカスタム レイアウト::
830 * ヘッダとフッタのカスタム レイアウト::
833 @node タイトル ブロックのカスタム テキスト フォーマット
834 @unnumberedsubsubsec タイトル ブロックのカスタム テキスト フォーマット
835 @translationof Custom text formatting for title blocks
837 標準の @code{\markup} コマンドを使って @code{\header} ブロックの中にある@c
838 ヘッダ、フッタ、それにタイトル テキストをカスタマイズすることができます。
840 @lilypond[quote,verbatim,noragged-right]
844 piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
845 subtitle = \markup { \italic "(Excerpt)" }
855 @node タイトル ブロックのカスタム レイアウト
856 @unnumberedsubsubsec タイトル ブロックのカスタム レイアウト
857 @translationof Custom layout for title blocks
859 @code{\header} ブロックの中に @code{\markup} コマンドを配置することにより、@c
860 シンプルなテキストをフォーマットすることができます。@c
861 しかしながら、タイトルの配置を精密に制御することはできません。@c
862 テキスト フィールドの配置をカスタマイズするために、@c
863 以下の @code{\paper} 変数のどちらか、あるいは両方を使用します:
866 @item @code{bookTitleMarkup}
867 @item @code{scoreTitleMarkup}
871 @ref{book と score のタイトル ブロックのデフォルト レイアウト}
874 @file{ly/titling-init.ly} で定義されている @code{scoreTitleMarkup}
878 scoreTitleMarkup = \markup @{ \column @{
879 \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
881 \fromproperty #'header:piece
882 \fromproperty #'header:opus
888 これは、@code{piece} テキスト フィールドと @code{opus} テキスト フィールドを@c
891 @lilypond[quote,verbatim,noragged-right]
895 piece = "PRAELUDIUM I"
901 以下の例では、@code{scoreTitleMarkup} を再定義することにより、@c
902 @code{piece} テキスト フィールドを中央に配置して、フォントを大きく、@c
905 @lilypond[papersize=a5,quote,verbatim,noragged-right]
909 scoreTitleMarkup = \markup {
912 \fontsize #4 \bold \fromproperty #'header:piece
913 \fromproperty #'header:opus
917 \header { tagline = ##f }
921 piece = "PRAELUDIUM I"
928 @code{print-all-headers} を @code{\paper} ブロックの中に配置することにより、@c
929 メイン タイトル ブロックのテキスト フィールドを個々の score タイトル ブロック@c
931 この方法の欠点は、個々の @code{\score} ブロックで、@c
932 最上位の @code{\header} ブロックだけに表示させるテキスト フィールドを@c
934 @ref{タイトル ブロックの説明} を参照してください。
936 この欠点を回避するには、個々の @code{\score} ブロックに表示させたい@c
937 テキスト フィールドを @code{scoreTitleMarkup} 定義に追加します。@c
938 以下の例では、@code{composer} テキスト フィールド
939 (通常、これは @code{bookTitleMarkup} に関連付けされています)
940 を @code{scoreTitleMarkup} に追加することにより、@c
941 各 score は異なる作曲者を表示しています:
943 @lilypond[papersize=a5,quote,verbatim,noragged-right]
947 scoreTitleMarkup = \markup {
950 \fontsize #4 \bold \fromproperty #'header:piece
951 \fromproperty #'header:composer
955 \header { tagline = ##f }
960 composer = "Christian Petzold"
967 composer = "François Couperin"
973 あなた自身のカスタム テキスト フィールドを作成して、@c
974 それをマークアップ定義で参照することもできます。
976 @lilypond[papersize=a5,quote,verbatim,noragged-right]
980 scoreTitleMarkup = \markup {
983 \override #`(direction . ,UP) {
985 \center-align \fontsize #-1 \bold
986 \fromproperty #'header:mycustomtext %% User-defined field
987 \center-align \fontsize #4 \bold
988 \fromproperty #'header:piece
991 \fromproperty #'header:opus
995 \header { tagline = ##f }
1000 mycustomtext = "A 4 VOCI" %% User-defined field
1012 @node ヘッダとフッタのカスタム レイアウト
1013 @unnumberedsubsubsec ヘッダとフッタのカスタム レイアウト
1014 @translationof Custom layout for headers and footers
1016 @c can make-header and make-footer be removed from
1017 @c paper-defaults-init.ly? -mp
1019 @code{\header} ブロックの中に @code{\markup} コマンドを配置することにより、@c
1020 シンプルなテキストをフォーマットすることができます。@c
1021 しかしながら、ヘッダとフッタの配置を精密に制御することはできません。@c
1022 テキスト フィールドの配置をカスタマイズするために、@c
1023 以下の @code{\paper} 変数のいずれか、あるいはいくつかを使用します:
1026 @item @code{oddHeaderMarkup}
1027 @item @code{evenHeaderMarkup}
1028 @item @code{oddFooterMarkup}
1029 @item @code{evenFooterMarkup}
1032 以下の例では、ページ番号を各ページの最下段中央に配置しています。@c
1033 まず、@code{oddHeaderMarkup} と @code{evenHeaderMarkup} に
1034 @emph{null} を定義することにより、デフォルト設定を削除します。@c
1035 次に、@code{oddFooterMarkup} に中央に配置されたページ番号を再定義します。@c
1036 最後に、@code{evenFooterMarkup} に @code{oddFooterMarkup} を@c
1037 定義することにより、同じレイアウトにします:
1039 @lilypond[papersize=a8,quote,verbatim,noragged-right]
1042 print-page-number = ##t
1043 print-first-page-number = ##t
1044 oddHeaderMarkup = \markup \null
1045 evenHeaderMarkup = \markup \null
1046 oddFooterMarkup = \markup {
1048 \on-the-fly #print-page-number-check-first
1049 \fromproperty #'page:page-number-string
1052 evenFooterMarkup = \oddFooterMarkup
1055 \new Staff { s1 \break s1 \break s1 }
1063 @ref{book と score のタイトル ブロックのデフォルト レイアウト}
1068 @translationof Creating footnotes
1070 作成できる脚注には 2 つのタイプがあります。@c
1080 @unnumberedsubsubsec 脚注の概要
1081 @translationof Footnotes overview
1083 自動脚注は繰り上がっていく数字の脚注を作り出し、@c
1084 手動脚注は脚注の印をカスタマイズすることができます。@c
1085 すべてのグラフィカル オブジェクト、最上位の @code{\markup}、@c
1086 それに和音に脚注を付けることができます。
1088 各グラフィカル オブジェクトに付けられた脚注の順番は、
1089 そのグラフィカル オブジェクトが描かれる順番によって決定されます。@c
1090 このため、脚注はコンパイルの最中に作成されます。
1094 @unnumberedsubsubsec 自動脚注
1095 @translationof Automatic footnotes
1098 脚注を付ける @var{レイアウト オブジェクト}、@c
1099 脚注の位置 @samp{(x . y)}、@c
1100 それにページ下部の脚注に表示される @code{\markup} です。
1102 コマンド @code{\footnote} は脚注を付けるグラフィカル オブジェクトの
1103 @emph{前に} 配置する必要があります:
1105 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1107 \header { tagline = ##f }
1109 \footnote #'(0.5 . -2) #'NoteHead
1110 \markup { The first note }
1112 \footnote #'(0.5 . 1) #'NoteHead
1113 \markup { The third note }
1120 @code{\footnote} を脚注を付ける音符の @emph{後に}
1121 @code{TextScript} として配置する必要があります:
1123 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1125 \header { tagline = ##f }
1128 c-\footnote #'(1 . -1.25) "Here is a C"
1129 es-\footnote #'(2 . -0.25) \markup { \italic "An E-flat" }
1130 g-\footnote #'(2 . 3) \markup { \bold "This is a G" }
1137 脚注の垂直方向の位置が同じになる場合、下方向に並べられます。@c
1138 高い位置にある脚注は、リストでも上に来ます。
1141 ここで、グラフィカル オブジェクト動脚注を付ける例をいくつか挙げ、@c
1142 さらに脚注とタグラインやコピーライトとの位置関係を示します。
1144 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1146 \header { copyright = \markup { "Copyright 1970" } }
1148 \footnote #'(-3 . 0) #'DynamicText
1149 \markup { \bold Forte }
1151 \footnote #'(0 . 1.5) #'Slur
1155 \footnote #'(0 . -2) #'Beam
1159 \footnote #'(1 . -1) #'Stem
1160 \markup { \teeny { This is a stem } }
1163 \footnote #'(0 . 0.5) #'AccidentalCautionary
1164 \markup \italic { A cautionary accidental }
1166 \footnote #'(0.5 . -0.5) #'TextScript
1167 \markup \italic { Slow Down }
1173 最上位の @code{\markup} に脚注を付ける場合、@c
1174 @code{\auto-footnote} コマンドを使う必要があります:
1176 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1178 \header { tagline = ##f }
1179 \markup { \auto-footnote "A simple tune" \italic "By me" }
1188 @unnumberedsubsubsec 手動脚注
1189 @translationof Manual footnotes
1192 脚注を付ける @var{レイアウト オブジェクト}、@c
1193 脚注の位置 @samp{(x . y)}、@c
1194 それに 2 つの @code{\markup} コマンドです。@c
1195 2 つの @code{\markup} コマンドのうち、@c
1196 最初のコマンドは音符やグラフィカル オブジェクトに付ける脚注の印で、@c
1199 自動脚注と同様に、手動脚注 @code{\footnote} コマンドは@c
1200 脚注を付けるグラフィカル オブジェクトの
1201 @emph{後に} @code{TextScript} として配置する必要があります:
1203 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1205 \header { tagline = ##f }
1208 "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. The first note" }
1211 \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. The second note"
1213 d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
1218 和音に手動脚注を付ける場合、以下のようにします:
1220 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1222 \header { tagline = ##f }
1225 c-\footnote "1" #'(1 . -1.25) "1. C"
1227 \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
1228 g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
1235 脚注の垂直方向の位置が同じになる場合、下方向に並べられます。@c
1236 高い位置にある脚注は、リストでも上に来ます。
1239 ここで、グラフィカル オブジェクトに手動脚注を付ける例をいくつか挙げ、@c
1240 脚注とタグラインやコピーライトとの位置関係を示します。
1242 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1244 \header { tagline = ##f }
1247 \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
1248 \markup { 1. \bold Forte }
1251 \markup { \teeny b } #'(0 . 1.5) #'Slur
1252 \markup { b. A slur }
1256 \markup { \teeny 3 } #'(0 . -2) #'Beam
1261 \markup { 4 } #'(1 . -1) #'Stem
1262 \markup { \bold 4. { This is a stem } }
1266 \markup \concat \teeny { "sharp (v)" }
1267 #'(0 . 0.5) #'AccidentalCautionary
1268 \markup \italic { v. A cautionary accidental }
1271 \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
1272 \markup \italic { a. Slow Down }
1277 \markup { \teeny \musicglyph #"rests.4" }
1278 #'(1.5 . -0.25) #'BreathingSign
1284 最上位の @code{\markup} に脚注を付ける場合、下記のようにします:
1286 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1288 \header { tagline = ##f }
1289 \markup { "A simple tune" \footnote "*" \italic "* By me" }
1298 @rlearning{オブジェクトとインタフェイス}
1308 @rinternals{FootnoteEvent},
1309 @rinternals{FootnoteItem},
1310 @rinternals{FootnoteSpanner},
1311 @rinternals{Footnote_engraver}
1314 同じページにある複数の脚注は上下にしか配置できません。@c
1315 ある脚注が他の脚注の上に配置され、同じ行に配置することはできません。@c
1316 @code{MultiMeasureRests} に脚注を付けることはできず、@c
1317 @code{Staff}、@code{\markup} オブジェクト、それに他の @code{footnote} と@c
1319 手動の @code{footnote} コマンドを使う場合、@c
1320 containing @code{footnote-auto-number = ##f} を保持している
1321 @code{\paper} ブロックが必要です。
1326 @subsection カスタム タイトル
1327 @translationof Custom titles
1330 @code{\paper} ブロックの中にある以下の変数の定義を変更することができます。@c
1331 初期化ファイル @file{../ly/titling-init.ly} が@c
1332 デフォルトのレイアウトの設定リストです。
1335 @funindex bookTitleMarkup
1336 @item bookTitleMarkup
1337 これは出力ドキュメントの先頭に付け加えられるタイトルです。@c
1338 通常、ここには作品の作曲者名とタイトルが含まれます。
1340 @funindex scoreTitleMarkup
1341 @item scoreTitleMarkup
1342 これは @code{\score} ブロックの上に配置されるタイトルです。@c
1343 通常、ここには楽章の名前 (@code{piece} フィールド) が含まれます。
1345 @funindex oddHeaderMarkup
1346 @item oddHeaderMarkup
1349 @funindex evenHeaderMarkup
1350 @item evenHeaderMarkup
1352 これが指定されていない場合は、奇数番号ページのヘッダが代わりに使用されます。
1354 デフォルトのヘッダ定義は、ページ番号は端に配置し、@c
1355 楽器名は中央に配置するようになっています。
1357 @funindex oddFooterMarkup
1358 @item oddFooterMarkup
1361 @funindex evenFooterMarkup
1362 @item evenFooterMarkup
1364 これが指定されていない場合は、偶数番号ページのフッタが代わりに使用されます。
1366 デフォルトでは、最初のページのフッタには著作権についての注意書きが含まれ、@c
1367 最後のページのフッタにはタグ行が含まれます。
1372 @cindex header (ヘッダ)
1373 @cindex footer (フッタ)
1374 @cindex page layout (ページ レイアウト)
1375 @cindex titles (タイトル)
1377 以下の定義では、タイトルはページの左側に配置され、@c
1382 bookTitleMarkup = \markup {
1384 \fromproperty #'header:title
1385 \fromproperty #'header:composer
1393 @subsection ページ番号の参照
1394 @translationof Reference to page numbers
1396 @code{\label} コマンドを用いて、楽譜のある特定の場所
1399 このラベルをマークアップの中で参照することできます。@c
1400 ラベルを付けられた場所のページ番号を取得するには、@c
1401 @code{\page-ref} マークアップ コマンドを使います。
1404 \header { tagline = ##f }
1410 \pageBreak \mark A \label #'markA
1414 \markup { The first score begins on page \page-ref #'firstScore "0" "?" }
1415 \markup { Mark A is on page \page-ref #'markA "0" "?" }
1419 @code{\page-ref} マークアップ コマンドは 3 つの引数をとります:
1422 これは Scheme シンボルです -- 例: @code{#'firstScore}。
1424 これはマークアップの大きさを推定するためのゲージです。
1426 これは、ラベルが不明な場合にページ番号として用いられます。
1430 マークアップが解釈されているときに改ページはまだ行われておらず、@c
1431 ページ番号はまだわからないからです。@c
1433 実際のマークアップ解釈はもっと後に延期されます。@c
1434 しかしながら、マークアップの大きさは事前に判明している必要があるため、@c
1435 ゲージを使ってマークアップの大きさを決定します。@c
1436 book のページ数が 10 から 99 までの範囲であるのなら、ゲージを "00"
1437 -- つまり、2 桁の数 -- にします。
1450 @translationof Table of contents
1452 目次は @code{\markuplist \table-of-contents} コマンドを用いて挿入します。@c
1453 目次に表示すべき要素は @code{\tocItem} コマンドで挿入されます
1454 -- このコマンドは最上位あるいは音楽表記の内部で使用します。
1457 \markuplist \table-of-contents
1460 \tocItem \markup "First score"
1464 \tocItem \markup "Some particular point in the first score"
1469 \tocItem \markup "Second score"
1477 目次を構成するために使用するマークアップは
1478 @code{\paper} ブロックの中で定義します。@c
1480 目次のタイトルを構成する @code{tocTitleMarkup} と、@c
1481 目次の要素 -- 要素のタイトルとページ番号 -- を構成する
1482 @code{tocItemMarkup} です。@c
1483 これらの変数はユーザによって変更することができます:
1488 %% 目次タイトルをフランス語に翻訳します:
1489 tocTitleMarkup = \markup \huge \column {
1490 \fill-line { \null "Table des matières" \null }
1493 %% より大きなフォント サイズを使用します
1494 tocItemMarkup = \markup \large \fill-line {
1495 \fromproperty #'toc:text \fromproperty #'toc:page
1500 @code{tocItemMarkup} 定義の中で目次要素のテキストとページ番号を@c
1503 より手の込んだ目次を構築するために新しいコマンドとマークアップを@c
1506 @item まず、@code{\paper} ブロックの中で新しいマークアップ変数を定義します
1507 @item それから、このマークアップ変数を用いて、@c
1508 目次要素を付け加えるための音楽関数を定義します。
1512 オペラの目次の中で幕の名前を挿入するために新しい様式を定義しています:
1516 tocActMarkup = \markup \large \column {
1518 \fill-line { \null \italic \fromproperty #'toc:text \null }
1524 #(define-music-function (parser location text) (markup?)
1525 (add-toc-item! 'tocActMarkup text))
1528 @lilypond[line-width=11.0\cm]
1529 \header { tagline = ##f }
1531 tocActMarkup = \markup \large \column {
1533 \fill-line { \null \italic \fromproperty #'toc:text \null }
1539 #(define-music-function (parser location text) (markup?)
1540 (add-toc-item! 'tocActMarkup text))
1543 \markuplist \table-of-contents
1544 \tocAct \markup { Atto Primo }
1545 \tocItem \markup { Coro. Viva il nostro Alcide }
1546 \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
1547 \tocAct \markup { Atto Secondo }
1548 \tocItem \markup { Sinfonia }
1549 \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
1554 要素とページ番号の間をドットで埋めることができます:
1556 @lilypond[verbatim,quote]
1557 \header { tagline = ##f }
1559 tocItemMarkup = \tocItemWithDotsMarkup
1563 \markuplist \table-of-contents
1564 \tocItem \markup { Allegro }
1565 \tocItem \markup { Largo }
1572 初期化ファイル: @file{../ly/toc-init.ly}
1576 @funindex \table-of-contents
1577 @code{\table-of-contents},
1584 @section 入力ファイルに取り組む
1585 @translationof Working with input files
1588 * LilyPond ファイルをインクルードする::
1589 * 1 つのソースから異なる版を生成する::
1594 @node LilyPond ファイルをインクルードする
1595 @subsection LilyPond ファイルをインクルードする
1596 @translationof Including LilyPond files
1599 @cindex including files (ファイルをインクルードする)
1601 大きなプロジェクトは別々のファイルに分割することができます。@c
1602 他のファイルを参照するには、以下のようにします:
1605 \include "otherfile.ly"
1608 @code{\include "otherfile.ly"} という行は、@c
1609 @file{otherfile.ly} の内容をカレント ファイルの @code{\include}
1610 がある場所に貼り付けるのと等価です。@c
1611 例えば、大きなプロジェクトでは、個々の楽器パートを別々のファイルで記述し、@c
1612 個々の楽器ファイルをまとめる @qq{総譜} ファイルを作成することができます。@c
1613 通常、インクルードされるファイルはいくつかの変数を定義し、@c
1614 それらの変数は総譜ファイルの中で使用されます。@c
1615 インクルードされるファイルの中でタグ付きセクションにマークを付けて、@c
1616 それを楽譜の他の場所で使うことができます
1617 -- @ref{1 つのソースから異なる版を生成する} を参照してください。
1619 カレントのワーキング ディレクトリの中にあるファイルは
1620 @code{\include} コマンドに後にファイル名を指定するだけで@c
1622 他の場所にあるファイルはフル パス参照か相対パス参照
1623 (ディレクトリ区切りとして、UNIX ではスラッシュ / を使用しますが、@c
1624 DOS/Windows ではバックスラッシュ \ を使用します) によって@c
1626 例えば、@file{stuff.ly} がカレントのワーキング ディレクトリよりも
1627 1 つ上のディレクトリの中にある場合、以下のようにインクルードします:
1630 \include "../stuff.ly"
1634 あるいは、インクルードされるオーケストラのすべてのパート ファイルが、@c
1635 カレント ディレクトリ内部の @file{parts} というサブディレクトリの中に@c
1636 配置されている場合、以下のようにインクルードします:
1639 \include "parts/VI.ly"
1640 \include "parts/VII.ly"
1644 インクルードされるファイルも @code{\include} 文を持つことができます。@c
1645 それら第 2 レベルの @code{\include} 文はそのファイルがメイン ファイルに@c
1647 そのため、第 2 レベルの @code{\include} 文で指定するファイル名は@c
1648 すべてメイン ファイルを保持しているディレクトリからの相対参照で@c
1650 -- インクルード ファイルを保持しているディレクトリからではありません。@c
1651 しかしながら、この振る舞いは、オプション @option{-drelative-includes} を@c
1654 @code{#(ly:set-option 'relative-includes #t)} を付け加えることによって)
1656 @code{relative-includes} をセットすることで、@c
1657 各 @code{\include} コマンドのパスは@c
1658 そのコマンドを保持しているファイルからの相対参照になります。@c
1659 この振る舞いを使用することが推奨されていて、@c
1660 lilypond の将来のバージョンではこの振る舞いがデフォルトになります。
1662 コマンド ラインから LilyPond を呼び出すときにオプションとして指定した@c
1663 サーチ パスに含まれるディレクトリから@c
1664 ファイルをインクルードすることもできます。@c
1666 インクルードされるファイルはファイル名だけで指定されます。@c
1667 例えば、サーチ パスで指定する @file{parts} というサブディレクトリの中にある@c
1668 ファイルをインクルードする @file{main.ly} をコンパイルするには、@c
1669 @file{main.ly} を保持しているディレクトリに cd して、以下を入力します:
1672 lilypond --include=parts main.ly
1675 @file{main.ly} の中には以下を記述しておきます:
1683 いくつもの楽譜でインクルードされるファイルは
1684 LilyPond ディレクトリ @file{../ly} の中に置くことになるかもしれません
1685 (このディレクトリが存在する場所はインストールの仕方に依存します
1686 -- @rlearning{その他の情報源} を参照してください)。@c
1687 このディレクトリの中にあるファイルは、@code{\include} 文で@c
1688 ファイル名を指定するだけでインクルードすることができます。@c
1689 この方法で @file{english.ly} のような言語依存のファイルを@c
1692 LilyPond は、実行開始時に、デフォルトで@c
1693 いくつかのファイルをインクルードします。@c
1694 このインクルードはユーザには明らかにされませんが、@c
1695 コマンド ラインから @code{lilypond --verbose} を実行することによって@c
1696 インクルードされるファイルを明らかにすることができます。@c
1697 @code{--verbose} オプションは、他の多くの情報とともに、@c
1698 LilyPond が使用するパスとファイルのリストを表示します。@c
1699 また、デフォルトでインクルードされるファイルのうち、@c
1700 より重要なファイルについて @rlearning{その他の情報源} で議論されています。@c
1701 これらのファイルを編集することができますが、@c
1703 新しいバージョンの LilyPond をインストールすると失われます。
1705 @code{\include} を使用している簡単な例がいくつか
1706 @rlearning{楽譜とパート} で示されています。
1711 @rlearning{その他の情報源},
1717 インクルードされるファイルに LilyPond のインストール ファイルと同じ名前が@c
1718 与えられている場合、LilyPond のインストール ファイルが優先されます。
1722 @node 1 つのソースから異なる版を生成する
1723 @subsection 1 つのソースから異なる版を生成する
1724 @translationof Different editions from one source
1726 同じ音楽ソースから異なるバージョンの楽譜を容易に生成できるようにするために、@c
1728 長い音楽や注記のセクションをさまざまなやり方で組み合わせる場合には、@c
1729 おそらく変数が最も役に立つでしょう。@c
1730 差し替え用の短い音楽セクションの中から 1 つを選択する場合にはタグが役に立ち、@c
1731 楽曲の一部をいろいろな箇所で組み合わせることもできます。
1733 どのような方法をとるにしても、楽譜構造から音楽表記を分離しておくと、@c
1734 音楽表記に手を触れずに楽譜構造を変更することが簡単に行えます。
1743 @unnumberedsubsubsec 変数を使用する
1744 @translationof Using variables
1746 @cindex variables, use of (変数を使用する)
1748 音楽のセクションが変数の中で定義されている場合、@c
1749 そのセクションを楽譜の異なる部分で再利用することができます
1750 -- @rlearning{変数を用いて楽曲を編成する} を参照してください。@c
1751 例えば、@notation{アカペラ} のボーカル譜はリハーサル目的で@c
1752 すべてのパートをまとめたピアノ譜を持つことがよくあります。@c
1754 その場合、音楽を入力する必要があるのは 1 回だけです。@c
1755 2 つの変数からの音楽を 1 つの譜に組み込むことができます
1756 -- @ref{自動パート結合} を参照してください。@c
1759 @lilypond[verbatim,quote]
1760 sopranoMusic = \relative c'' { a4 b c b8( a) }
1761 altoMusic = \relative g' { e4 e e f }
1762 tenorMusic = \relative c' { c4 b e d8( c) }
1763 bassMusic = \relative c' { a4 gis a d, }
1764 allLyrics = \lyricmode {King of glo -- ry }
1766 \new Staff = "Soprano" \sopranoMusic
1767 \new Lyrics \allLyrics
1768 \new Staff = "Alto" \altoMusic
1769 \new Lyrics \allLyrics
1770 \new Staff = "Tenor" {
1774 \new Lyrics \allLyrics
1775 \new Staff = "Bass" {
1779 \new Lyrics \allLyrics
1782 \set Staff.printPartCombineTexts = ##f
1788 \set Staff.printPartCombineTexts = ##f
1798 音楽表記には変更を加えずに、楽譜構造の文を変えるだけで、@c
1799 ボーカル パートだけあるいはピアノ パートだけの楽譜を作り出すことができます。
1801 長い楽譜では、変数定義をそれぞれ別々のファイルの中に置いて、@c
1802 それらのファイルをインクルードすることになるかもしれません
1803 -- @ref{LilyPond ファイルをインクルードする} を参照してください。
1806 @unnumberedsubsubsec タグを使用する
1807 @translationof Using tags
1810 @funindex \keepWithTag
1811 @funindex \removeWithTag
1812 @funindex \pushToTag
1813 @funindex \appendToTag
1815 @cindex keep tagged music (タグの付いた音楽を保持する)
1816 @cindex remove tagged music (タグの付いた音楽を排除する)
1817 @cindex splice into tagged music (タグの付いた音楽を組み合わせる)
1819 @code{\tag #'@var{partA}} コマンドは音楽表記に
1820 @var{partA} という名前を付けます。@c
1821 この方法でタグを付けられた表記は、後で @code{\keepWithTag #'@var{name}} と
1822 @code{\removeWithTag #'@var{name}} のどちらかを用いて、@c
1823 名前によって選択あるいは排除することができます。@c
1824 タグの付いた音楽にそのようなフィルタを適用した結果は以下のようになります:
1826 @multitable @columnfractions .5 .5
1830 @code{\keepWithTag #'@var{name}} が前に付くタグ付きの音楽
1831 @tab タグの付いていない音楽と @var{name} というタグの付いた音楽が@c
1833 他のタグ名を持つタグ付き音楽は排除されます。
1835 @code{\removeWithTag #'@var{name}} が前に付くタグ付きの音楽
1836 @tab タグの付いていない音楽と @var{name} 以外のタグを持つ音楽が@c
1838 @var{name} というタグの付いた音楽は排除されます。
1840 @code{\keepWithTag} と @code{\removeWithTag} のどちらも@c
1842 @tab タグの付いた音楽とタグの付いていない音楽すべてがインクルードされます。
1845 @code{\tag}、@code{\keepWithTag} それに @code{\removeWithTag} コマンドの引数は@c
1846 シンボル (@code{#'score} や @code{#'part} など) とその後に続けて@c
1849 以下の例では、楽曲を 2 つのバージョンで示しています。@c
1850 1 つはトリルを通常の記譜法で示していて、@c
1851 もう 1 つはトリルを明示的に展開しています:
1853 @lilypond[verbatim,quote]
1854 music = \relative g' {
1856 \tag #'trills {d8.\trill }
1857 \tag #'expand {\repeat unfold 3 {e32 d} }
1862 \keepWithTag #'trills \music
1865 \keepWithTag #'expand \music
1870 @code{\keepWithTag} を使う代わりに、@c
1871 音楽セクションを排除する方が楽な場合もあります:
1873 @lilypond[verbatim,quote]
1874 music = \relative g' {
1876 \tag #'trills {d8.\trill }
1877 \tag #'expand {\repeat unfold 3 {e32 d} }
1882 \removeWithTag #'expand
1886 \removeWithTag #'trills
1891 タグ フィルタリングはアーティキュレーション、テキストなどにも@c
1893 フィルタリングを行うにはアーティキュレーションの前に
1896 -\tag #'@var{your-tag}
1900 例えば、以下は条件付の運指指示を持つ音符と条件付注記を持つ音符を定義しています:
1904 c1-\tag #'warn ^"Watch!"
1907 複数の @code{\tag} エントリで、表記に複数のタグを付ける場合もあります:
1909 @lilypond[quote,verbatim]
1910 music = \relative c'' {
1911 \tag #'a \tag #'both { a4 a a a }
1912 \tag #'b \tag #'both { b4 b b b }
1915 \keepWithTag #'a \music
1916 \keepWithTag #'b \music
1917 \keepWithTag #'both \music
1921 単一の音楽表記に複数の @code{\removeWithTag} フィルタを適用することによって、@c
1922 いくつかの異なる名前のタグが付いたセクションを排除することができます:
1924 @lilypond[verbatim,quote]
1925 music = \relative c'' {
1926 \tag #'A { a4 a a a }
1927 \tag #'B { b4 b b b }
1928 \tag #'C { c4 c c c }
1929 \tag #'D { d4 d d d }
1938 単一の音楽表記に複数の @code{\keepWithTag} フィルタを適用すると、@c
1939 タグ付きセクションは @emph{すべて} 排除されます。@c
1940 なぜなら、最初のフィルタはあるタグ名以外を持つセクションを排除し、@c
1941 2 番目のフィルタがそのタグ名を持つセクションを排除するからです。
1943 既存の音楽表記のある特定の場所にいくつか音を組み込みたいことがあります。@c
1944 @code{\pushToTag} と @code{\appendToTag} を使って、@c
1945 既存の音楽構造の @code{要素} の前または後に素材を追加することができます。@c
1946 すべての音楽構造が @code{要素} を持つわけではありませんが、@c
1947 連続するか同時進行する音楽構造はまず間違いなく @code{要素} を持ちます:
1949 @lilypond[verbatim,quote]
1950 test = { \tag #'here { \tag #'here <<c''>> } }
1953 \pushToTag #'here c'
1954 \pushToTag #'here e'
1955 \pushToTag #'here g' \test
1956 \appendToTag #'here c'
1957 \appendToTag #'here e'
1958 \appendToTag #'here g' \test
1962 どちらのコマンドもタグ、組み込む素材、それにタグ付けされた音楽表記を
1963 取り、タグが出現するたびに素材を組み込みます。@c
1964 これらのコマンドは変更するものを全てコピーするので、@c
1965 オリジナルの @code{\test} が元の意味を保持し続けることを保証します。
1970 @rlearning{変数を用いて楽曲を編成する}
1974 @ref{LilyPond ファイルをインクルードする}
1977 @c This warning is more general than this placement implies.
1978 @c Rests are not merged whether or not they come from tagged sections.
1979 @c Should be deleted? -td
1983 Multiple rests are not merged if you create a score with more
1984 than one tagged section at the same place.
1986 複数のタグ付きセクションからを生成した場合、@c
1987 同じ場所にある複数の休符はマージされません。
1992 @unnumberedsubsubsec グローバル設定を使用する
1993 @translationof Using global settings
1995 @cindex include-settings
1997 別のファイルからグローバル設定をインクルードすることができます:
2000 lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly
2003 ページ サイズ、フォント、書体などのような設定のグループを別々のファイルに@c
2005 こうすることにより、適当な設定ファイルを指定するだけで、@c
2006 同じ楽譜から異なる版を作り出すことができます。
2008 このテクニックはスタイル シートでも使えます。@c
2009 @rlearning{スタイル シート} を参照してください。
2013 @rlearning{変数を用いて楽曲を編成する},
2014 @rlearning{スタイル シート}.
2017 @ref{LilyPond ファイルをインクルードする}
2022 @translationof Special characters
2024 @cindex special characters (特殊文字)
2025 @cindex non-ASCII characters (非 ASCII 文字)
2035 @unnumberedsubsubsec テキスト エンコーディング
2036 @translationof Text encoding
2040 LilyPond は Unicode 協会と ISO/IEC 10646 によって定義された@c
2042 この文字レパートリは、ほとんどすべての現代言語と他の多くの言語で@c
2043 使用される文字セットに対して、固有の名前とコード位置を定義しています。@c
2044 Unicode はいくつかの異なるエンコーディングを用いて実装することができます。@c
2045 LilyPond は UTF-8 エンコーディング
2046 (UTF は Unicode Transformation Format を意味します) を使用します
2047 -- UTF-8 はすべての共通ラテン文字を 1 バイトで表し、@c
2048 他の文字を可変バイト長形式 (最大 4 ビット) で表します。
2050 文字の実際の見た目は利用可能なある特定のフォントの中にあるグリフ (図柄)
2052 -- フォントはグリフを指す Unicode コードのサブセット (部分集合) の写像を@c
2054 LilyPond は多言語テキストを、Pango ライブラリを用いて、@c
2057 Lilypond は入力のエンコーディング変換をまったく行いません。@c
2058 これは非 ASCII 文字を含むすべてのテキスト
2059 -- タイトル、歌詞テキストあるいは演奏指示 --
2060 を UTF-8 でエンコードして入力する必要があるということを意味します。@c
2061 そのようなテキストを入力する最も容易な方法は Unicode を認識するエディタを@c
2062 用いて、ファイルを UTF-8 で保存することです。@c
2063 人気のある現代的なエディタのほとんどが UTF-8 をサポートします
2064 -- 例えば、vim, Emacs, jEdit, GEdit です。@c
2065 NT より後の MS Windows システムはすべて@c
2066 ネイティブ キャラクタ エンコーディングとして Unicode を使用します。@c
2067 そのため、Notepad でさえ UTF-8 フォーマットのファイルを@c
2069 Windows 用のもっと機能的なエディタに BabelPad があります。
2071 非 ASCII 文字を保持している LilyPond 入力ファイルが UTF-8 フォーマットで@c
2072 保存されていない場合、エラー メッセージ
2075 FT_Get_Glyph_Name () error: invalid argument
2080 ここでキリル文字、ヘブライ文字、ポルトガル語のテキストを表示する例を挙げます:
2084 %c No verbatim here as the code does not display correctly in PDF
2086 bulgarian = \lyricmode {
2087 Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
2091 hebrew = \lyricmode {
2092 זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
2096 portuguese = \lyricmode {
2097 à vo -- cê uma can -- ção legal
2103 \addlyrics { \bulgarian }
2104 \addlyrics { \hebrew }
2105 \addlyrics { \portuguese }
2110 @unnumberedsubsubsec Unicode
2111 @translationof Unicode
2113 @cindex Unicode (ユニコード)
2115 単一の文字 -- その文字に対する Unicode コード ポイントを知っているが、@c
2116 使用しているエディタではその文字を使用できない -- を入力するには、@c
2117 @code{\markup} ブロック内部で @code{\char ##xhhhh} あるいは
2118 @code{\char ##dddd} を使用します
2119 -- ここで @code{hhhh} はその文字に対する 16 進コードであり、@c
2120 @code{dddd} はそれに対応する 10 進数値です。@c
2121 先頭の 0 は省略可能ですが、16 進表記では 4 文字で指定する方法が一般的です。@c
2122 (@code{\char} の後に UTF-8 エンコーディングのコード ポイントを使うべきでは@c
2124 なぜなら、UTF-8 エンコーディングはバイト数を表すための余分なビットを@c
2126 任意の文字に対する 16 進のコード ポイントを調べるための、@c
2127 Unicode コード表と文字名インデックスは Unicode コンソーシアム Web サイト
2128 @uref{http://www.unicode.org/} にあります。
2131 例えば、@code{\char ##x03BE} と @code{\char #958} はどちらも
2132 Unicode U+03BE の文字を入力します
2133 -- この文字は Unicode 名 @qq{Greek Small Letter Xi}
2136 この方法で任意の Unicode コード ポイントを入力することができます。@c
2137 すべての特殊文字がこの方法で入力されている場合、@c
2138 入力ファイルを UTF-8 フォーマットで保存する必要はありません。@c
2139 もちろん、入力された文字を保持しているフォントがすべて@c
2140 インストールされていて、LilyPond で利用可能になっている必要があります。
2142 以下の例は UTF-8 コード化された文字を 4 箇所
2143 -- リハーサル記号の中、アーティキュレーション テキストとして、歌詞の中、@c
2144 楽譜の下にある独立したテキストの中 --
2147 @lilypond[quote,verbatim]
2150 c1 \mark \markup { \char ##x03EE }
2151 c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
2153 \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
2155 \markup { "Copyright 2008--2012" \char ##x00A9 }
2158 @cindex copyright sign (著作権記号)
2160 著作権についての注意書きの中で著作権記号を入力するには、以下のようにします:
2164 copyright = \markup @{ \char ##x00A9 "2008" @}
2170 @unnumberedsubsubsec ASCII エイリアス
2171 @translationof ASCII aliases
2173 特殊文字の ASCII エイリアスのリストを含めることができます:
2176 @lilypond[quote,verbatim]
2178 #(include-special-characters)
2181 \markup "&flqq; – &OE;uvre incomplète… &frqq;"
2184 \new Staff { \repeat unfold 9 a'4 }
2186 This is al -- so wor -- kin'~in ly -- rics: –_&OE;…
2191 "特殊文字への置換を無効にすることができます:"
2192 "– &OE; …"
2193 \override #'(replacement-alist . ()) "– &OE; …"
2197 また、エイリアスを作ることもできます。@c
2200 @lilypond[quote,verbatim]
2202 #(add-text-replacements!
2203 '(("100" . "hundred")
2204 ("dpi" . "dots per inch")))
2206 \markup "A 100 dpi."
2211 @lilypond[quote,verbatim]
2212 \markup \replace #'(("100" . "hundred")
2213 ("dpi" . "dots per inch")) "A 100 dpi."
2218 @ref{List of special characters}
2221 @file{ly/text-replacements.ly}
2227 @translationof Controlling output
2237 @subsection 音楽の断片を抽出する
2238 @translationof Extracting fragments of music
2240 大きな楽譜の中の小さな範囲を、出力から直接引用することができます。@c
2241 これは紙の楽譜の一部をはさみで切り抜くことに相当します。
2243 これは切り抜く小節を定義することによって実行されます。@c
2252 (make-rhythmic-location 5 1 2)
2253 (make-rhythmic-location 7 3 4)))
2258 第 5 小節の中間から第 7 小節までを抽出します。@c
2259 @code{5 1 2} は第 5 小節の先頭から 1/2 音符の位置を意味し、@c
2260 @code{7 3 4} は第 7 小節の先頭から 4 分音符 3 つ分の位置を意味します。
2262 リズムによる位置のペアをリストに追加することによって、@c
2263 更に多くの切り抜き範囲を定義することができます。
2266 LilyPond を @option{-dclip-systems} を付けて呼び出す必要があります。@c
2267 切り抜きは EPS ファイルとして出力され、@c
2268 更にフォーマットが指定されている場合には PDF や PNG に変換されます。
2270 出力フォーマットについての更なる情報は、@c
2271 @rprogram{lilypond を呼び出す} を参照してください。
2273 @node 校正済みの音楽をスキップする
2274 @subsection 校正済みの音楽をスキップする
2275 @translationof Skipping corrected music
2277 @funindex skipTypesetting
2278 @funindex showFirstLength
2279 @funindex showLastLength
2281 音楽を入力あるいはコピーしているとき、@c
2282 閲覧、校正する必要があるのは、たいてい終わり近くの音楽
2283 (そこに音符を追加している場所) だけです。@c
2285 最後の数小節以外の譜刻をスキップすることができます。@c
2286 これはソース ファイルの中に以下を置くことによって実現できます:
2289 showLastLength = R1*5
2294 これは入力ファイルの中にあるそれぞれの @code{\score} の最後の 5 小節だけを@c
2295 描画します (4/4 拍子と仮定して)。@c
2296 長い楽曲の場合、小さな部分だけを描画するのにかかる時間は@c
2297 楽曲をすべて描画するのにかかる時間よりも非常に短くなります。@c
2298 すでに譜刻済みの楽譜の開始部分に取り掛かる (例えば、新しいパートを追加する)
2299 ときには、@code{showFirstLength} プロパティも役に立つかもしれません。
2301 楽譜の中のいくつかのパートをスキップは、プロパティ @code{Score.skipTypesetting}
2302 を用いたより細かなやり方で制御することができます。@c
2303 このプロパティがセットされていると、譜刻はまったく行われません。
2305 このプロパティは MIDI ファイルへの出力を制御するためにも用いられます。@c
2306 このプロパティはすべてのイベント -- テンポの変更や楽器の変更を含む -- を@c
2307 スキップするということに注意してください。@c
2310 @lilypond[quote,relative=2,ragged-right,verbatim]
2312 \set Score.skipTypesetting = ##t
2314 \set Score.skipTypesetting = ##f
2318 多声の音楽では、@code{Score.skipTypesetting} はすべてのボイスと譜に@c
2319 影響を与えて、より多くの時間を節約します。
2323 @subsection 他の出力フォーマット
2324 @translationof Alternative output formats
2326 @cindex scalable vector graphics output (SVG 出力)
2327 @cindex SVG output (SVG 出力)
2328 @cindex encapsulated postscript output (EPS 出力)
2329 @cindex EPS output (EPS 出力)
2331 譜刻される楽譜のデフォルト出力フォーマットは、@c
2332 Portable Document Format (PDF) と PostScript (PS) です。@c
2333 コマンド ライン オプションを指定することにより、@c
2334 Scalable Vector Graphics (SVG), Encapsulated PostScript (EPS) それに
2335 Portable Network Graphics (PNG) 出力フォーマットが利用可能です。@c
2336 @rprogram{lilypond のコマンド ライン オプション} を参照してください。
2340 @subsection 記譜フォントを置換する
2341 @translationof Replacing the notation font
2343 LilyPond で使用される Feta フォントの代わりに Gonville に使うことができます。@c
2344 Gonville は以下からダウンロードできます:
2346 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
2351 @c NOTE: these images are a bit big, but that's important
2352 @c for the font comparison. -gp
2353 @sourceimage{Gonville_after,,,}
2355 LilyPond の Feta フォントのサンプル小節です:
2357 @sourceimage{Gonville_before,,,}
2359 @subsubheading MacOS でのインストール手順
2361 ZIP ファイルをダウンロードして、伸張します。@c
2362 @code{lilyfonts} ディレクトリを @file{@var{SHARE_DIR}/lilypond/current} に@c
2364 -- 更なる情報は、@rlearning{その他の情報源} を参照してください。@c
2365 既存の @code{fonts} ディレクトリを @code{fonts_orig} にリネームして、@c
2366 @code{lilyfonts} ディレクトリを @code{fonts} にリネームします。@c
2367 Feta フォントに戻すには、@code{fonts_orig} を @code{fonts} に戻します。
2370 学習マニュアル: @rlearning{その他の情報源}
2374 Gonville では @q{古代の音楽} を記譜することはできません。@c
2375 Gonville フォント ファミリーでは、@c
2376 これからリリースされる LilyPond の新しい図柄は提供されないかもしれません。@c
2377 ライセンス条件等を含む Gonville の更なる情報は、@c
2378 製作者の Web サイトを参照してください。
2383 @translationof MIDI output
2385 @cindex Sound (サウンド)
2388 MIDI (Musical Instrument Digital Interface) はデジタル楽器接続 / 制御の@c
2390 MIDI ファイルはいくつかのトラックの中にある音符の連なりです。@c
2391 MIDI ファイルは実際はサウンド ファイルではありません。@c
2392 音符の連なりと実際のサウンドの翻訳を行うには専用のソフトウェアが必要になります。
2394 LilyPond で記述した音楽は MIDI ファイルに変換することができ、@c
2395 入力されたものを聴くことができます。@c
2396 これは音楽をチェックするのに便利です。オクターブの外れや臨時記号の付け間違いは
2397 MIDI 出力を聴いたときに際立ちます。
2399 標準 MIDI 出力には粗雑さがあります。@c
2400 オプションで @ref{奏法スクリプト} を用いることにより、@c
2401 強化されたリアルな MIDI 出力を得ることができます。
2403 MIDI 出力は譜毎に 1 つのチャンネルを割り当て、@c
2404 ドラムのためにチャンネル 10 を予約します。@c
2405 デバイス 1 つにつき MIDI チャンネルは 16 しかないため、@c
2406 楽譜が 16 以上の譜を保持している場合、MIDI チャンネルは再利用されます。
2411 * 何が MIDI に出力されるのか?::
2413 * MIDI での音の強弱を制御する::
2418 @node MIDI ファイルを作り出す
2419 @subsection MIDI ファイルを作り出す
2420 @translationof Creating MIDI files
2422 LilyPond 入力ファイルから MIDI ファイルを作り出すには、@c
2423 score に @code{\midi} ブロックを付け加えます。@c
2433 @code{\layout} ブロックを持たない @code{\score} の中に
2434 @code{\midi} ブロックがある場合、MIDI 出力だけが生成されます。@c
2435 楽譜も必要な場合は、@code{\layout} ブロックも存在している必要があります。
2445 ピッチ、リズム、タイ、強弱記号、テンポの変更は解釈されて@c
2446 正確に MIDI 出力に翻訳されます。@c
2447 強弱記号、クレッシェンド、デクレッシェンドは MIDI ボリューム レベルに@c
2449 強弱記号は利用可能な MIDI ボリューム レンジ内のある固定値に翻訳されます。@c
2450 クレッシェンドとデクレッシェンドはそれらの開始点と終了点の間でボリュームを@c
2452 MIDI 出力における強弱記号の効果を完全に削除することができます
2453 -- @ref{MIDI ブロック} を参照してください。
2455 初期のテンポと後のテンポ変化は、音楽記譜内部の @code{\tempo} コマンドで@c
2457 通常このコマンドはメトロノーム記号を表示させますが、@c
2459 -- @ref{メトロノーム記号} を参照してください。@c
2460 初期 MIDI テンポあるいは MIDI 全体のテンポを指定するための代替手段が@c
2461 この後で記述されています -- @ref{MIDI ブロック} を参照してください。
2463 Windows の制限により、Windows での MIDI ファイルのデフォルトの拡張子は
2465 他の OS では、拡張子は @code{.midi} となります。@c
2466 他の拡張子を使いたいのであれば、入力ファイルの最上位で、@c
2467 @code{\book} ブロック, @code{\bookpart} ブロック、それに @code{\score}
2471 #(ly:set-option 'midi-extension "midi")
2474 上記の行は、MIDI ファイルのデフォルトの拡張子を @code{.midi} にします。
2477 コマンド ラインで以下のオプションを与える方法があります:
2480 lilypond … -dmidi-extension=midi lilyFile.ly
2484 @unnumberedsubsubsec 楽器名
2485 @c @unnumberedsubsubsec Instrument names
2487 @cindex instrument names (楽器名)
2488 @funindex Staff.midiInstrument
2490 @code{Staff.midiInstrument} プロパティに楽器名を設定することで、@c
2491 使用する MIDI 楽器が指定されます。@c
2492 楽器名は @ref{MIDI instruments} にあるリストから選択しなければなりません。
2496 \set Staff.midiInstrument = #"glockenspiel"
2502 \new Staff \with @{midiInstrument = #"cello"@} @{
2507 選択された楽器が MIDI 楽器のリストにある楽器に一致しない場合、@c
2508 グランド ピアノ (@code{"acoustic grand"}) 楽器が使用されます。
2513 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
2514 {changing-midi-output-to-one-channel-per-voice.ly}
2518 @c In 2.11 the following no longer seems to be a problem -td
2520 Unterminated (de)crescendos will not render properly in the midi file,
2521 resulting in silent passages of music. The workaround is to explicitly
2522 terminate the (de)crescendo. For example,
2524 終端の無い(デ)クレッシェンドは適切に MIDI ファイルを作り出しません。@c
2525 結果として無音の音楽パッセージとなります。@c
2526 回避方法として、明示的に(デ)クレッシェンドを終了させます。@c
2534 will not work properly but
2546 MIDI ボリュームの変化は音符の開始点でのみ起こります。@c
2547 そのため、クレッシェンドとデクレッシェンドは@c
2548 単一の音符のボリューム変化には効果を持ちません。
2550 すべての MIDI プレイヤが MIDI 出力の中にあるテンポ変化を@c
2552 正しく機能するプレイヤとして知られているものには MS Windows の Media Player や
2553 @uref{http://@/timidity@/.sourceforge@/.net/,timidity} があります。
2556 @subsection MIDI ブロック
2557 @translationof MIDI block
2559 @cindex MIDI block (MIDI ブロック)
2562 score 内部に @code{\midi} ブロックを置く必要があります。@c
2563 MIDI ブロックはレイアウト ブロックに似ていますが、それよりも単純です。@c
2564 しばしば、@code{\midi} ブロックは空のままですが、コンテキストの再編成
2565 -- 新しいコンテキスト定義やプロパティの値を設定するためのコード --
2567 例えば以下の例は、テンポ指示を譜刻することなしに、@c
2568 MIDI ファイルの初期テンポを設定します:
2576 tempoWholesPerMinute = #(ly:make-moment 72 4)
2582 この例では、テンポは 1 分間あたり 72 個の 4 分音符にセットされています。@c
2583 この種のテンポ指定では引数として付点音符の長さをとることはできません。@c
2584 付点音符の長さを指定する必要がある場合、@c
2585 その付点音符をより小さな単位に分解します。@c
2586 例えば、1 分間に 90 個の付点 4 分音符のテンポは、@c
2587 1 分間に 270 個の 8 分音符として指定することができます:
2590 tempoWholesPerMinute = #(ly:make-moment 270 8)
2593 @cindex MIDI context definitions (MIDI コンテキスト定義)
2595 @code{\midi} ブロック内部でのコンテキスト定義は、@c
2596 @code{\layout} ブロック内部でのコンテキスト定義の構文とまったく同じです。@c
2597 サウンドのモジュールへの翻訳は performer と呼ばれます。@c
2599 @file{../ly/performer-init.ly} で定義されています
2600 -- @rlearning{その他の情報源} を参照してください。@c
2601 例えば、MIDI 出力から強弱記号の効果を削除するには、@c
2602 @code{\midi@{ @}} ブロックの中に以下のコードを挿入します。
2609 \remove "Dynamic_performer"
2614 MIDI 出力は、@code{\score} コマンドで定義された score ブロック内部に
2615 @code{\midi} ブロックが存在する場合にのみ生成されます。
2618 @code{\midi} ブロックが明示的にインスタンス化された score コンテキストの中
2619 (例えば、@code{\new Score} ブロックの中) に配置された場合、@c
2620 その LilyPond ファイルはエラーになります。@c
2621 これを解決するには、@code{\new Score} と @code{\midi} コマンドを
2622 @code{\score} ブロックの中に置きます。
2627 @{ @dots{}notes@dots{} @}
2633 @node 何が MIDI に出力されるのか?
2634 @subsection 何が MIDI に出力されるのか?
2635 @translationof What goes into the MIDI output?
2637 @c TODO Check grace notes - timing is suspect?
2639 @unnumberedsubsubsec MIDI でサポートされるもの
2640 @c @unnumberedsubsubsec Supported in MIDI
2642 @cindex Pitches in MIDI (MIDI でのピッチ)
2643 @cindex MIDI, Pitches (MIDI でのピッチ)
2644 @cindex Quarter tones in MIDI (MIDI での4 分音)
2645 @cindex MIDI, quarter tones (MIDI での4 分音)
2646 @cindex Microtones in MIDI (MIDI での微分音)
2647 @cindex MIDI, microtones (MIDI での微分音)
2648 @cindex Chord names in MIDI (MIDI でのコード ネーム)
2649 @cindex MIDI, chord names (MIDI でのコード ネーム)
2650 @cindex Rhythms in MIDI (MIDI でのリズム)
2651 @cindex MIDI, Rhythms (MIDI でのリズム)
2652 @cindex Articlulate scripts (奏法スクリプト)
2653 @cindex MIDI, articulations (MIDI での奏法)
2654 @cindex articulations in MIDI (MIDI での奏法)
2655 @cindex trills in MIDI (MIDI でのトリル)
2656 @cindex turns in MIDI (MIDI でのターン)
2657 @cindex rallentando in MIDI (MIDI でのラレンタンド)
2658 @cindex accelerando in MIDI (MIDI でのアッチェレランド)
2661 以下の記譜要素が MIDI 出力に反映されます:
2665 @item 微分音 (@ref{臨時記号} を参照してください。@c
2666 演奏にはピッチ ベンドをサポートするプレイヤが必要になります。)
2668 @item 音符の演奏時間として入力されたリズム -- 連符を含みます
2669 @item @q{@code{:}[@var{number}]} を使わずに入力されたトレモロ
2672 @item 複数の音符にかかるクレッシェンド、デクレッシェンド
2673 @item テンポ記号で入力されたテンポ変化
2677 @ref{奏法スクリプト} を用いることで、@c
2678 上記のリストにいくつかの要素が追加されます:
2681 @item アーティキュレーション (スラー、スタッカート等)
2683 @item ラレンタンドとアッチェレランド
2686 @unnumberedsubsubsec MIDI でサポートされないもの
2687 @c @unnumberedsubsubsec Unsupported in MIDI
2689 @c TODO index as above
2691 以下の記譜要素は MIDI 出力に影響を与えません:
2694 @item 注記 -- 例えば swing -- として入力されたリズム
2695 @item テンポ記号を使わずに注記として入力されたテンポ変化
2696 @item スタッカートと他のアーティキュレーションや装飾
2697 @item スラーとフレージング スラー
2698 @item 単一の音符に付けられたクレッシェンド、デクレッシェンド
2699 @item @q{@code{:}[@var{number}]} を使って入力されたトレモロ
2706 @subsection MIDI での繰り返し
2707 @translationof Repeats in MIDI
2709 @cindex repeats in MIDI (MIDI での繰り返し)
2710 @funindex \unfoldRepeats
2713 すべてのタイプの繰り返しを MIDI 出力に反映させることができます。@c
2714 これは @code{\unfoldRepeats} 音楽関数を適用することによって@c
2716 この関数はすべての繰り返しを展開します。
2718 @lilypond[quote,verbatim]
2720 \repeat tremolo 8 { c'32 e' }
2721 \repeat percent 2 { c''8 d'' }
2722 \repeat volta 2 { c'4 d' e' f' }
2731 複数のボイスを持つ score で、繰り返しを正しく MIDI 出力に展開するには、@c
2732 @emph{各ボイス} の繰り返し指示が完全に記譜されている必要があります。
2734 MIDI のために @code{\unfoldRepeats} を使用する楽譜ファイルを作成する場合、@c
2735 2 つの @code{\score} ブロックが必要になります:
2736 1 つは MIDI のため (繰り返しを展開します) で、@c
2738 (差し替え、トレモロ、パーセント記号の繰り返しを使用します) です。@c
2747 \unfoldRepeats @var{..music..}
2752 @node MIDI での音の強弱を制御する
2753 @subsection MIDI での音の強弱を制御する
2754 @translationof Controlling MIDI dynamics
2756 @c MIDI dynamics: MIDI での音の強弱?
2757 MIDI での音の強弱は @code{Dynamic_performer}
2758 -- これはデフォルトでは Voice コンテキストの中に存在します --
2760 MIDI 全体のボリューム、強弱記号による相対ボリューム、@c
2761 楽器間の相対ボリュームを制御することができます。
2763 @unnumberedsubsubsec 強弱記号
2764 @c @unnumberedsubsubsec Dynamic marks
2766 強弱記号は利用可能な MIDI ボリューム レンジ内のある固定の分数に翻訳されます。@c
2767 デフォルトでの分数の範囲は、@notation{ppppp} に対する 0.25 から、@c
2768 @notation{fffff} に対する 0.95 までです。@c
2769 強弱記号とそれに対応する分数のセットを @file{../scm/midi.scm} で@c
2771 -- @rlearning{その他の情報源} を参照してください。@c
2772 引数として強弱記号をとり、それに対する分数を返す関数を作成し、@c
2773 その関数を @code{Score.dynamicAbsoluteVolumeFunction} に@c
2774 セットすることによって、分数のセットを変更あるいは拡張することができます。
2776 例えば、@notation{リンフォルツァンド} 強弱記号 -- @code{\rfz} -- を@c
2778 この強弱記号はデフォルト セットの中に含まれていないため、@c
2779 MIDI ボリュームに影響を与えません。@c
2780 同様に @code{make-dynamic-script} で新しい強弱記号を定義した場合、@c
2781 その強弱記号もデフォルト セットには含まれません。@c
2782 以下の例は、そのような強弱記号に対する MIDI ボリュームを追加する方法を@c
2784 以下の Scheme 関数は、rfz の強弱記号があった場合は分数に 0.9 をセットし、@c
2785 そうでない場合はデフォルトの関数を呼び出します。
2787 @lilypond[verbatim,quote]
2788 #(define (myDynamics dynamic)
2789 (if (equal? dynamic "rfz")
2791 (default-dynamic-absolute-volume dynamic)))
2795 \set Staff.midiInstrument = #"cello"
2796 \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
2808 分数テーブル全体を再定義する必要がある場合、@c
2809 上記の方法の代わりに @file{../scm/midi.scm} の中にある
2810 @notation{default-dynamic-absolute-volume} プロシージャと@c
2811 そのモデルとなる関連テーブルを使用する方が良いでしょう。@c
2812 このセクションの最後の例で、その方法を示しています。
2814 @unnumberedsubsubsec MIDI 全体でのボリューム
2815 @c @unnumberedsubsubsec Overall MIDI volume
2817 強弱記号に対する MIDI 全体の最小ボリュームと最大ボリュームは
2818 @code{Score} レベルでプロパティ @code{midiMinimumVolume} と
2819 @code{midiMaximumVolume} を設定することで制御できます。@c
2820 これらのプロパティは強弱記号に対してのみ効果を発揮します。@c
2821 そのため、楽譜の開始からそれらのプロパティを適用するには、@c
2822 楽譜の開始点に強弱記号を置く必要があります。@c
2823 各強弱記号に対応する分数は以下の式で算出されます:
2826 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
2829 以下の例では、MIDI 全体のボリュームの範囲は 0.2 - 0.5 の範囲に制限されています。
2831 @lilypond[verbatim,quote]
2837 \set Staff.midiInstrument = #"flute"
2838 \new Voice \relative c''' {
2846 \set Staff.midiInstrument = #"clarinet"
2847 \new Voice \relative c'' {
2858 tempoWholesPerMinute = #(ly:make-moment 72 2)
2859 midiMinimumVolume = #0.2
2860 midiMaximumVolume = #0.5
2867 @unnumberedsubsubsec 楽器の音の強さを均一化する (i)
2868 @c @unnumberedsubsubsec Equalizing different instruments (i)
2870 @code{Staff} コンテキストの中で最小 MIDI ボリューム プロパティと@c
2871 最大 MIDI ボリューム プロパティが設定されている場合、@c
2872 MIDI 楽器間の相対ボリュームを制御することができます。@c
2873 これは基本的な楽器イコライザであり、@c
2874 MIDI 出力の品質を著しく高めることができます。
2876 以下の例では、クラリネットのボリュームはフルートのボリュームよりも@c
2878 これを正しく機能させるには、それぞれの楽器の最初の音符に@c
2881 @lilypond[verbatim,quote]
2887 \set Staff.midiInstrument = #"flute"
2888 \set Staff.midiMinimumVolume = #0.7
2889 \set Staff.midiMaximumVolume = #0.9
2890 \new Voice \relative c''' {
2898 \set Staff.midiInstrument = #"clarinet"
2899 \set Staff.midiMinimumVolume = #0.3
2900 \set Staff.midiMaximumVolume = #0.6
2901 \new Voice \relative c'' {
2912 tempoWholesPerMinute = #(ly:make-moment 72 2)
2918 @unnumberedsubsubsec 楽器の音の強さを均一化する (ii)
2919 @c @unnumberedsubsubsec Equalizing different instruments (ii)
2921 MIDI 最小/最大ボリューム プロパティが設定されていない場合、@c
2922 デフォルトでは、LilyPond はいくつかの楽器に軽度の均一化を適用します。@c
2923 適用を受ける楽器とその equalization は @file{../scm/midi.scm} の中にある@c
2924 テーブル @notation{instrument-equalizer-alist} に示されています。
2926 引数として MIDI 楽器名だけを受け入れて、その楽器に適用する@c
2927 最小/最大ボリュームの分数ペアを返す Scheme プロシージャを
2928 @code{Score} コンテキストの中にある
2929 @code{instrumentEqualizer} にセットすることで、@c
2930 この基本的なデフォルト イコライザを置き換えることができます。@c
2931 この置き換えは、このセクションの始めでの
2932 @code{dynamicAbsoluteVolumeFunction} の再設定の方法とまったく同じです。@c
2933 @file{../scm/midi.scm} の中にあるデフォルト イコライザ
2934 @notation{default-instrument-equalizer} は@c
2935 そのようなプロシージャをどのように記述するのかを示しています。
2937 以下の例は、フルートとクラリネットの相対ボリュームを@c
2940 @lilypond[verbatim,quote]
2941 #(define my-instrument-equalizer-alist '())
2943 #(set! my-instrument-equalizer-alist
2946 ("flute" . (0.7 . 0.9))
2947 ("clarinet" . (0.3 . 0.6)))
2948 my-instrument-equalizer-alist))
2950 #(define (my-instrument-equalizer s)
2951 (let ((entry (assoc s my-instrument-equalizer-alist)))
2960 \set Score.instrumentEqualizer = #my-instrument-equalizer
2961 \set Staff.midiInstrument = #"flute"
2962 \new Voice \relative c''' {
2970 \set Staff.midiInstrument = #"clarinet"
2971 \new Voice \relative c'' {
2982 tempoWholesPerMinute = #(ly:make-moment 72 2)
2989 @c Delete when satisfied this is adequately covered elsewhere -td
2991 @n ode Microtones in MIDI (MIDI での微分音)
2992 @s ubsection Microtones in MIDI (MIDI での微分音)
2994 @cindex microtones in MIDI (MIDI での微分音)
2996 半シャープと半フラットからなる微分音は MIDI ファイルにエクスポートされ、@c
2997 ピッチ ベンドをサポートする MIDI プレーヤで正しく演奏されます。@c
2998 @ref{他の言語での音符名} を参照してください。@c
2999 以下の例は 1 オクターブの中にあるすべての半シャープと半フラットの音を@c
3001 この例をコピーしてコンパイルすることで、@c
3002 あなたが持っている MIDI プレイやで微分音をテストすることができます。
3004 @lilypond[verbatim,quote]
3022 @subsection MIDI での打楽器
3023 @translationof Percussion in MIDI
3025 打楽器は一般的に @code{DrumStaff} コンテキストの中で記譜され、@c
3026 そのように記譜された場合、その打楽器は正しく MIDI チャンネル 10 に@c
3028 しかしながら、いくつかのピッチを持つ打楽器
3029 -- ザイロフォン、マリンバ、ビブラフォン、ティンパニなど --
3030 は @qq{通常の} 楽器のように扱われ、正しい MIDI 出力を得るには、@c
3032 通常の @code{Staff} コンテキストに入力する必要があります
3033 -- @code{DrumStaff} には入力しません。
3037 -- メロディック トム、太鼓、シンセドラムなど --
3038 のサウンドは一般の MIDI 標準に含まれ、MIDI チャネル@tie{}10 経由では@c
3040 そのため、そのような楽器の記譜も適切なピッチを使って@c
3041 通常の @code{Staff} コンテキストに入力すべきです。
3043 多くの打楽器 -- カスタネットなど -- は一般の MIDI 標準には含まれません。@c
3044 そのような楽器のための記述を行っている場合に MIDI 出力を作り出すための@c
3045 最も容易な -- けれども不十分な -- 方法は、@c
3046 標準セットから最も近いサウンドを代わりに用いることです。
3048 @c TODO Expand with examples, and any other issues
3052 一般の MIDI 標準はリム ショットを含まないため、@c
3057 @translationof The Articulate script
3059 奏法スクリプトを用いることにより、よりリアルな MIDI 出力を得ることができます。@c
3060 奏法スクリプトは、音符を適切な時間比率の音符とスキップで置き換えることにより、@c
3061 アーティキュレーション (スラー、スタッカート等) を考慮に入れようとします。@c
3062 さらに、トリルやターンを展開しようとし、@c
3063 さらにラレンタンドとアッチェレランドを考慮に入れようとします。
3066 入力ファイルの先頭で以下をインクルードする必要があります。
3069 \include "articulate.ly"
3072 さらに、@code{\score} セクションで以下のようにします。
3075 \unfoldRepeats \articulate <<
3076 all the rest of the score...
3080 この方法で入力ファイルを変更すると、@c
3081 出力される楽譜の見た目は著しく変わってしまいますが、@c
3082 標準の @code{\midi} ブロックはより良い MIDI ファイルを作り出します。
3084 奏法スクリプトを機能させるための必須事項ではありませんが、@c
3085 上記の例のように @code{\unfoldRepeats} コマンドを挿入することにより、@c
3086 @notation{トリル} などの短縮記譜の演奏が可能になります。
3091 Articulate shortens chords といくつかの音楽 (特にオルガン音楽) の演奏は@c
3097 @translationof Extracting musical information
3099 グラフィカルな出力と MIDI を作り出すことに加えて、@c
3100 LilyPond は音楽情報をテキストとして表示することができます。
3103 * LilyPond 記譜法を表示する::
3104 * Scheme 音楽表記を表示する::
3105 * 音楽イベントをファイルに保存する::
3108 @node LilyPond 記譜法を表示する
3109 @subsection LilyPond 記譜法を表示する
3110 @translationof Displaying LilyPond notation
3112 @funindex \displayLilyMusic
3114 LilyPond 記譜法で書かれた音楽表記を@c
3115 音楽関数 @code{\displayLilyMusic} で表示することが可能です。@c
3116 出力を見るには、通常、コマンド ラインで LilyPond を実行します。@c
3121 \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3128 @{ a,4 cis e fis g @}
3131 デフォルトでは、LilyPond は上記のメッセージを@c
3132 他のすべてのメッセージと一緒にコンソールに表示します。@c
3133 上記のメッセージを分離して @code{\display@{STUFF@}} の結果を保存するには、@c
3137 lilypond file.ly >display.txt
3142 LilyPond は音楽表記を表示するだけでなく、それを解釈します
3143 (なぜなら、@code{\displayLilyMusic} は追加で音楽表記を表示するために@c
3145 既存の音楽に @code{\displayLilyMusic} を挿入するだけで@c
3146 その音楽の情報を得るられるので便利です。@c
3147 本当に LilyPond に音楽を解釈させたくないのであれば、@c
3148 @code{\void} を使ってその音楽を無視させます:
3152 \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3157 @node Scheme 音楽表記を表示する
3158 @subsection Scheme 音楽表記を表示する
3159 @translationof Displaying scheme music expressions
3161 @rextend{Displaying music expressions} を参照してください。
3164 @node 音楽イベントをファイルに保存する
3165 @subsection 音楽イベントをファイルに保存する
3166 @translationof Saving music events to a file
3168 以下のファイルをインクルードすることにより、@c
3169 音楽イベントをファイルに保存することができます。
3172 \include "event-listener.ly"
3175 これは譜毎に @file{FILENAME-STAFFNAME.notes} あるいは
3176 @file{FILENAME-unnamed-staff.notes} というファイルを作成します。@c
3178 すべての譜のイベントが同じファイルに出力されるということに注意してください。@c
3182 0.000 note 57 4 p-c 2 12
3184 0.250 note 62 4 p-c 7 12
3185 0.500 note 66 8 p-c 9 12
3186 0.625 note 69 8 p-c 14 12
3191 出力はタブ区切り行で、各行には 2 つの固定フィールドがあり、@c
3192 その後にオプション パラメータが続きます。
3195 @var{time} @var{type} @var{...params...}
3199 簡単に Python スクリプト等の他のプログラムに読み込ませることができ、@c
3200 LilyPond で音楽分析や録音再生実験を行おうとする研究者にとってとても有用です。
3205 lilypond 音楽イベントすべてが @file{event-listener.ly} で@c
3207 @file{event-listener.ly} は、良く作られた @qq{概念実証} を意図しています。
3209 読み取りたい音楽イベントがサポートされていないのであれば、@c
3210 あなたが作業している lilypond ディレクトリに @file{event-listener.ly} を@c
3211 コピーして、編集することで、望みの情報を出力させることができます。