X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fja%2Flearning%2Ffundamental.itely;h=34897fcf25940430220f906ccdc45fa53f4b407b;hb=0398fdb9df24ac2e22a8cbff1b3c18ca04e9f221;hp=9b8e6e2a22933a1195c0660fc0d923ac88e1a053;hpb=2c6ac487aecd51dfa81449ac99a08e619e8d3bf8;p=lilypond.git diff --git a/Documentation/ja/learning/fundamental.itely b/Documentation/ja/learning/fundamental.itely index 9b8e6e2a22..34897fcf25 100644 --- a/Documentation/ja/learning/fundamental.itely +++ b/Documentation/ja/learning/fundamental.itely @@ -1,13 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*- @ignore - Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421 + Translation of GIT committish: c1b0482f63f881bd3f67845e5f76a3e04675ef2a When revising a translation, copy the HEAD committish of the - version that you are working on. See TRANSLATION for details. + version that you are working on. For details, see the Contributors' + Guide, node Updating translation committishes.. @end ignore -@c \version "2.12.0" +@c \version "2.19.22" @c Translators: Yoshiki Sawada @c Translation status: post-GDP @@ -15,7 +16,6 @@ @node 基礎となるコンセプト @chapter 基礎となるコンセプト @translationof Fundamental concepts -@c 基礎となるコンセプト チュートリアルではシンプルなテキスト ファイルから美しい楽譜を譜刻する方法を@c 見てきました。@c @@ -29,10 +29,10 @@ * テンプレートを拡張する:: @end menu + @node LilyPond 入力ファイルの仕組み @section LilyPond 入力ファイルの仕組み @translationof How LilyPond input files work -@c LilyPond 入力ファイルの仕組み LilyPond の入力フォーマットは非常に自由な形式であり、@c 経験豊富なユーザにとってはファイルを構築する際の自由度が高いです。@c @@ -62,9 +62,10 @@ LilyPond 入力ファイルの基本例は以下のようなものです: @example \version @w{"@version{}"} + \header @{ @} + \score @{ - @var{...compound music expression...} % all the music goes here! @var{...複合音楽表記...} % すべての音楽がここに入ります! \layout @{ @} \midi @{ @} @@ -73,7 +74,7 @@ LilyPond 入力ファイルの基本例は以下のようなものです: @noindent 基本パターンは本当にさまざまです。@c -しかしながら、この例は開始点として役に立ちます。 +しかしながら、この例はスタート地点として役に立ちます。 @funindex \book @funindex book @@ -84,13 +85,13 @@ LilyPond 入力ファイルの基本例は以下のようなものです: これまで、あなたが見てきた例では @code{\score @{@}} コマンドを@c 使用していませんでした。@c -その理由は、あなたが LilyPond に与えたのが簡単な入力であった場合、LilyPond -が自動的に追加のコマンドを付け加えるからです。@c +その理由は、あなたが LilyPond に与えたのが簡単な入力であった場合、@c +LilyPond が自動的に追加のコマンドを付け加えるからです。@c LilyPond は以下のような入力: @example -\relative c'' @{ - c4 a d c +\relative @{ + c''4 a d c @} @end example @@ -102,8 +103,8 @@ LilyPond は以下のような入力: \score @{ \new Staff @{ \new Voice @{ - \relative c'' @{ - c4 a b c + \relative @{ + c''4 a b c @} @} @} @@ -112,8 +113,9 @@ LilyPond は以下のような入力: @} @end example -言い換えると、入力が保持しているのが単一の音楽表記である場合、LilyPond は@c -まるでその音楽表記が上で示されたコマンドで包まれているかのように解釈します。 +言い換えると、入力が保持しているのが単一の音楽表記である場合、@c +LilyPond はまるでその音楽表記が上で示されたコマンドで包まれている@c +かのように解釈します。 @cindex implicit contexts (暗黙のコンテキスト) @cindex contexts, implicit (暗黙のコンテキスト) @@ -121,9 +123,9 @@ LilyPond は以下のような入力: @strong{一言警告!} LilyPond ドキュメントの中にある多くの例では、 @code{\new Staff} と @code{\new Voice} コマンドは暗黙的に作成されるために@c 省略されています。@c -簡単な例ではそれでうまくいきますが、より複雑な例の場合 -- 特に追加の@c -コマンドが使用される場合 -- コンテキストの暗黙的な作成は予想外の結果となる@c -可能性があります。@c +簡単な例ではそれでうまくいきますが、より複雑な例の場合 +-- 特に追加のコマンドが使用される場合 -- +コンテキストの暗黙的な作成は予想外の結果となる可能性があります。@c 多分、予期しない余分な譜が作成されるでしょう。@c コンテキストを明示的に作成する方法は @ref{コンテキストとエングラーバ} で@c 説明されています。 @@ -144,15 +146,14 @@ LilyPond は以下のような入力: @example @{ \new StaffGroup << - @var{...insert the whole score of a Wagner opera in here...} @var{...ワーグナーのオペラの楽譜全体がここに入ります...} >> @} @end example @noindent -すべては @code{@{ ... @}} の内部にあるため、それは 1 つの音楽表記であると@c -カウントされます。 +すべては @code{@{ ... @}} の内部にあるため、@c +それは 1 つの音楽表記であるとカウントされます。 以前見てきたように、@code{\score} ブロックは他のものを含む可能性もあります。@c 例えば以下のように: @@ -178,20 +179,20 @@ LilyPond は以下のような入力: @noindent これら 3 つのコマンド -- @code{\header}, @code{\layout}, @code{\midi} -- は@c -特別なものであるということに注意してください: +特別なものであるということに注意してください: バックスラッシュ (@code{@bs{}}) で始まる他の多くのコマンドとは異なり、@c -これらは音楽表記@emph{ではなく}、何らかの音楽表記の一部でもありません。@c -そのため、これらは @code{\score} ブロックの内部に置かれるかもしれませんし、@c -外部に置かれるかもしれません。@c -実際、これらのコマンドは一般的に @code{\score} ブロックの外側に置かれます -- -例えば、このセクションの最初の例のように @code{\header} は@c +これらは音楽表記 @emph{ではなく}、何らかの音楽表記の一部でもありません。@c +そのため、これらは @code{\score} ブロックの中に置くこともできますし、@c +外部に置くこともできます。@c +実際、これらのコマンドは一般的に @code{\score} ブロックの外側に置かれます +-- 例えば、このセクションの最初の例のように @code{\header} は@c しばしば @code{\score} コマンドの上に置かれます。 -以前は見なかった他の 2 つのコマンドは @code{\layout @{ @}} と +以前は見なかった他の 2 つのコマンドは @code{\layout @{ @}} と @code{\midi @{ @}} です。@c -それらが上記のように記述された場合、LilyPond はそれぞれ譜刻された出力と +それらが上記のように記述された場合、LilyPond はそれぞれ譜刻された楽譜と MIDI 出力を作り出します。@c -それらは記譜法リファレンスの @ruser{Score layout} と +それらは記譜法リファレンスの @ruser{Score layout} と @ruser{Creating MIDI files} で完全に記述されています。 @cindex scores, multiple (複数の Score) @@ -206,24 +207,25 @@ MIDI 出力を作り出します。@c @code{\book} コマンドは必要ありません -- このコマンドは暗黙的に 1 つ@c 作成されます。@c しかしながら、あなたが 1 つの @code{.ly} ファイルから別々に分かれた@c -出力ファイルを作成しようとするのなら、それぞれのセクションを@c -異なる出力ファイルに分けるために @code{\book} コマンドが使用されます: +出力ファイルを作成しようとするのなら、@c +それぞれのセクションを異なる出力ファイルに分けるために @code{\book} +コマンドが使用されます: 各 @code{\book} ブロックは別々の出力ファイルを作り出します。 要約: 各 @code{\book} ブロックは別々の出力ファイル (つまり PDF ファイル) を@c 作成します。@c -あなたが明示的に @code{\book} コマンドを記述しなかった場合、L@c -ilyPond は暗黙的に入力コードを @code{\book} ブロックで包み込みます。 +あなたが明示的に @code{\book} コマンドを記述しなかった場合、@c +LilyPond は暗黙的に入力コードを @code{\book} ブロックで包み込みます。 各 @code{\score} ブロックは @code{\book} ブロック内部で@c 別々の音楽表記のチャンク (塊) となります。 @cindex layout block, effect of location (レイアウト ブロックの配置場所による影響) -各 @code{\layout} ブロックはそのブロックを含んでいる @code{\score} ブロックや -@code{\book} ブロックに影響を与えます -- +各 @code{\layout} ブロックはそのブロックを含んでいる @code{\score} ブロックや +@code{\book} ブロックに影響を与えます -- つまり、ある @code{\score} ブロックの内部にある @code{\layout} ブロックは@c その @code{\score} ブロックにだけ影響を与え、@code{\score} ブロックの@c 外部にある (それゆえ、明示的あるいは暗黙的に @code{\book} ブロックの中に@c @@ -238,8 +240,8 @@ ilyPond は暗黙的に入力コードを @code{\book} ブロックで包み込 すべてのテンプレートがこれを使っています: @example -melody = \relative c' @{ - c4 a b c +melody = \relative @{ + c'4 a b c @} \score @{ @@ -247,16 +249,16 @@ melody = \relative c' @{ @} @end example -LilyPond がこのファイルを見ると、@code{melody} の値 (イコール記号の@c -後にあるすべて) を記憶し、@code{\melody} と記述された箇所すべてに@c -その値を挿入します。@c -変数の名前について特別なことは何もありません -- 変数名は @code{melody}, -@code{global}, @code{TimeKey}, @code{pianorighthand}, @code{foofoobarbaz} など@c -となります。@c -詳細は、@ref{変数と関数を用いて入力の手間を省く} を参照してください。@c +LilyPond がこのファイルを見ると、@code{melody} の値 +(イコール記号の後にあるすべて) を記憶し、@c +@code{\melody} と記述された箇所すべてにその値を挿入します。@c +変数の名前について特別なことは何もありません +-- 変数名は @code{melody}, @code{global}, @code{keyTime}, @code{pianorighthand} +などとなります。@c 変数名はアルファベットだけで構成されていて、LilyPond コマンド名と@c 異なっている限りは、ほぼどんな名前でも使用できるということを@c 覚えておいてください。@c +詳細は、@ref{変数と関数を用いて入力の手間を省く} を参照してください。@c 変数名の厳密な制限については、@ruser{File structure} で詳述されています。 @@ -276,9 +278,9 @@ LilyPond がこのファイルを見ると、@code{melody} の値 (イコール @cindex compound music expression (複合音楽表記) @cindex music expression, compound (複合音楽表記) -前のセクション -- @ref{LilyPond ファイル構造の紹介} -- で +前のセクション -- @ref{LilyPond ファイル構造の紹介} -- で LilyPond 入力ファイルの一般的な構造について見てきました。@c -しかしながら、我々は最も重要な部分を飛ばしてきたようです: +しかしながら、我々は最も重要な部分を飛ばしてきたようです: どうやって @code{\score} の後に記述するものを見つけ出すのでしょうか? 我々はそのことを完全には飛ばしてきませんでした。@c @@ -290,13 +292,33 @@ LilyPond 入力ファイルの一般的な構造について見てきました @end quotation @noindent -音楽表記と複合音楽表記が意味しているものを理解するには、チュートリアルの +音楽表記と複合音楽表記が意味しているものを理解するには、チュートリアルの @ref{音楽表記についての説明} を読み返すと役に立つかもしれません。@c そこでは、小さな音楽表記 -- 音符から始めて、それから和音など -- から@c 大きな音楽表記を構築する方法を説明しています。@c -今度は、大きな音楽表記からはじめて、その複雑さを減らしていきます。 +今度は、大きな音楽表記から始めます。@c +話を簡単にするために、例を歌手 1 人とピアノとします。@c +このアンサンブルでは @code{StaffGroup} は必要ありません。@c +@code{StaffGroup} はいくつかの譜をグループ化して左端に括弧を付けるだけですが、@c +我々は歌手 1 人とピアノ用の譜を必要としています。 +@example +\score @{ + << + \new Staff = "singer" << + >> + \new PianoStaff = "piano" << + >> + >> + \layout @{ @} +@} +@end example + +ここで譜に名前を付けます -- @qq{singer} と @qq{piano} です。 +ここで名前を付ける必要は必ずしもありませんが、@c +一見して各譜が何なのか見て取れるので名前を付けておくべきです。 +@ignore @example \score @{ @{ % this brace begins the overall compound music expression @@ -313,7 +335,7 @@ LilyPond 入力ファイルの一般的な構造について見てきました ワーグナーのオペラの長さはこのマニュアルの軽く 2 倍はあります。@c そのため、歌手とピアノだけを加えることにします。@c -このアンサンブルでは複数の譜をまとめて左端に波括弧を付ける +このアンサンブルでは複数の譜をまとめて左端に波括弧を付ける @code{StaffGroup} は必要ありません。@c そのため、それを削除します。@c しかしながら、歌手とピアノが@emph{必要}です。 @@ -329,17 +351,21 @@ LilyPond 入力ファイルの一般的な構造について見てきました \layout @{ @} @} @end example +@end ignore -歌手とピアノが同時進行であることを示すために @code{@{ ... @}} の代わりに -@code{<< ... >>} を使用するということを覚えておいてください。@c -我々はボーカル パートとピアノパートが同時進行であるということを明確に@c -示したいのであり、どちらかがもう一方の後に演奏されるのではないのです!@c -歌手の譜表は一続きの音楽表記を 1 つだけ保持するため、歌手の譜表に対して -<< ... >> は必ずしも必要ありません。@c -しかしながら、譜表の中の音楽が 2 つの同時進行の音楽表記 -- つまり、@c -2 つの同時進行のボイスであるとか、歌詞付きの歌 -- である場合、@c -波括弧の代わりに @code{<< ... >>} を使う必要があります。@c -後で実際の音楽を加えてみますが、ここではダミーの音符と歌詞を入力してみます。 +歌手とピアノが同時進行であることを示すために @code{@{ ... @}} の代わりに +@code{<< ... >>} を使用するということを思い出してください。@c +こうすることで、ボーカル パートはピアノ パートの上に表示されます。@c +上の例で歌手の譜が一続きの音楽表記を保持するだけであるのなら +@code{<< ... >>} を使う必要はありませんが、@c +譜が同時進行する複数の音楽表記 +-- 例えば、同時進行する 2 つの声部や、声部と歌詞です +-- を保持するのであれば必須となります。@c +我々は歌詞を持つ声部にしようとしているので、二重角括弧が必須です。@c +実際の音楽は後で付け加えるとして、@c +ここではいくつかのダミーの音符と歌詞を配置してみます。@c +歌詞の入力の仕方を忘れてしまったのなら、@c +@ref{簡単な歌曲を作成する} の @code{\addlyrics} を見直してください。 @lilypond[verbatim,quote,ragged-right] \score { @@ -358,17 +384,17 @@ LilyPond 入力ファイルの一般的な構造について見てきました @end lilypond 更に詳細を加えていきます。@c -歌手の譜表は @code{Voice} (LilyPond では、この用語は音符のセットを@c +歌手の譜は @code{Voice} (LilyPond では、この用語は音符のセットを@c 参照するものであり、必ずしもボーカルの音符であるわけではありません -- 例えば、一般にバイオリンは 1 つのボイスを演奏します) と歌詞を保持します。@c -さらに、ピアノの譜表は上部譜表 (右手) と下部譜表 (左手) を保持します。 +さらに、ピアノの譜表は上部譜表(右手) と下部譜 (左手) を保持します。 この段階で、音符の入力を開始することができます。@c @code{\new Voice = "vocal"} の後の波括弧の中に、以下を書き加えることができます: @example -\relative c'' @{ - r4 d8\noBeam g, c4 r +\relative @{ + r4 d''8\noBeam g, c4 r @} @end example @@ -377,13 +403,21 @@ LilyPond 入力ファイルの一般的な構造について見てきました そのため、直接音符を付け加える代わりに変数を使用しましょう。@c 前のセクションで変数についての紹介を行いました。@c 覚えていますよね?@c -では、いくつかの音符を加えて実際の楽譜の一部を作成してみましょう: +@code{text} 変数の内容が間違いなく歌詞と解釈されるよう、@c +内容の前に @code{\lyricmode} を記述します。@c +@code{\addlyrics} と同様に、これは入力モードを歌詞に切替間す。@c +@code{\lyricmode} を記述しなければ、LilyPond は内容を音符と解釈しようとして@c +エラーを引き起こします。 +(他にもいくつかの入力モードがあります。@ruser{Input modes} を参照してください。) + +では、いくつかの音符を加えて、左手にはヘ音記号を加えます。@c +これで、実際の楽譜の一部ができます: @lilypond[verbatim,quote,ragged-right] -melody = \relative c'' { r4 d8\noBeam g, c4 r } +melody = \relative { r4 d''8\noBeam g, c4 r } text = \lyricmode { And God said, } -upper = \relative c'' { 2~ } -lower = \relative c { b2 e2 } +upper = \relative { 2~ } +lower = \relative { b,2 e } \score { << @@ -403,18 +437,12 @@ lower = \relative c { b2 e2 } } @end lilypond -音符 -- これは @code{\relative} の中で導入されたり、音楽表記の中に@c -直接含まれています -- と歌詞 -- これは @code{\lyricmode} で導入されています -- -の違いに気をつけてください。@c -前者は LilyPond に後に続く内容を音楽として解釈するように指示し、@c -後者はテキストとして解釈するように指示します。 - -@code{\score} セクションを書いている (あるいは読んでいる) とき、ゆっくりと@c -注意深く進めてください。@c -外側から始めて、それから内部の細かな部分に取り組んでください。@c -さらに、きちんとインデントを入れると非常に役に立ちます - これは、@c -同じレベルにある各要素はテキスト エディタの中で同じ水平位置から始まる@c -ということを保証します。 +@code{\score} セクションを書いている (あるいは読んでいる) とき、@c +ゆっくりと注意深く進めてください。@c +外側のレベルから始めて、それから内部の細かな部分に取り組んでください。@c +さらに、きちんとインデントを入れると非常に役に立ちます +-- これは、テキスト エディタの中で同じレベルにある各要素は@c +同じ水平位置から始まるということを保証します。 @seealso @@ -429,19 +457,19 @@ lower = \relative c { b2 e2 } @cindex temporary staves (一時的な譜) @cindex ossias (オッシア) -すべての譜をファイルの始めに宣言することは必須ではありません。@c +すべての譜を開始時に宣言することは必須ではありません。@c 譜はどこででも臨時に導入される可能性があります。@c これはオッシアを作成する際に特に有用です -- @rglos{ossia} を参照してください。@c -ここで、3 つの音符に対して臨時に新しい譜表を導入する方法を示す@c +ここで、3 つの音符に対して臨時に新しい譜を導入する方法を示す@c ちょっとした例を挙げます: @lilypond[verbatim,quote,ragged-right] \new Staff { - \relative g' { - r4 g8 g c4 c8 d | + \relative { + r4 g'8 g c4 c8 d | e4 r8 << - { f c c } + { f8 c c } \new Staff { f8 f c } @@ -452,25 +480,25 @@ lower = \relative c { b2 e2 } @end lilypond @noindent -音部記号のサイズは音部変更後に譜刻される音部記号のサイズ -- -行の開始点での音部記号よりも少し小さい -- と同じであるということに@c -注意してください。@c +音部記号のサイズは音部変更後に譜刻される音部記号のサイズ +-- 行の開始点での音部記号よりも少し小さい +-- と同じであるということに注意してください。@c これは行の途中で譜刻される音部記号全般に言えることです。 @cindex staff, positioning (譜表の配置) -オッシアは以下のように譜表の上に置かれるかもしれません: +オッシアは以下のように譜の上に置かれるかもしれません: @lilypond[verbatim,quote,ragged-right] \new Staff = "main" { - \relative g' { - r4 g8 g c4 c8 d | + \relative { + r4 g'8 g c4 c8 d | e4 r8 << - { f c c } + { f8 c c } \new Staff \with { - alignAboveContext = #"main" } - { f8 f c } + alignAboveContext = #"main" + } { f8 f c } >> r4 | } @@ -478,16 +506,16 @@ lower = \relative c { b2 e2 } @end lilypond この例は後で説明される @code{\with} を使用しています。@c -このコマンドは単一の譜表のデフォルトの振る舞いを変更することを意味します。@c -ここでは、このコマンドは新しい譜表をデフォルトの位置 (@qq{main} と@c -呼ばれている譜表の下) ではなく、上に置くべきであると言っています。 +このコマンドは単一の譜のデフォルトの振る舞いを変更することを意味します。@c +ここでは、このコマンドは新しい譜をデフォルトの位置 (@qq{main} と@c +呼ばれている譜の下) ではなく、上に置くべきであると言っています。 @seealso -オッシアはしばしば音部記号や拍子記号無しで描かれ、通常は小さなフォントで@c -描かれます。@c +オッシアはしばしば音部記号や拍子記号無しで描かれ、@c +通常は小さなフォントで描かれます。@c これらはまだ紹介されていない追加のコマンドを必要とします。@c -@ref{オブジェクトのサイズ} と @ruser{Ossia staves} を参照してください。 +@ref{オブジェクトのサイズ} と @ruser{オッシア譜} を参照してください。 @node ネストされない括弧とタイ @@ -498,10 +526,11 @@ lower = \relative c { b2 e2 } @cindex bracket types (括弧のタイプ) @cindex brackets, enclosing vs. marking (囲みの括弧 vs. マークの括弧) -これまでに LilyPond への入力ファイルを書く際に使用する括弧には@c -いくつかの種類があるということを見てきました。@c +これまでに LilyPond への入力ファイルを書く際に使用する括弧と@c +括弧のような構成物にはいくつかの種類があるということを見てきました。@c これらは異なる規則 -- 最初は混乱を引き起こす可能性があります -- に従います。@c -規則についての説明を行う前に、括弧の種類を再確認してみましょう。 +規則についての説明を行う前に、@c +括弧と括弧のような構成物の種類を再確認してみましょう。 @c attempt to force this onto a new page @need 50 @@ -527,17 +556,19 @@ lower = \relative c { b2 e2 } 連符 (@code{\times x/y @{..@}} として記述されます)、@c グレイス ノート (@code{\grace@{..@}} として記述されます) です。 -LilyPond 以外では、種類の異なる括弧が適切にネストされること -- -@code{[ @{ ( .. ) @} ]} のように -- が一般的な使い方であり、@c +LilyPond 以外では、種類の異なる括弧が適切にネストされること +-- @code{[ @{ ( .. ) @} ]} のように -- +が一般的な使い方であり、@c 括弧の終わりの順序は正確に括弧の始まりの順序と逆になります。@c -このことは上記の表で @q{囲みます} という言葉で記述されている -3 種類の括弧に対しては@strong{必須}となります -- それらは適切に@c -ネストされなければなりません。@c -しかしながら、残りの括弧 -- 上記の表で @q{意味します} という言葉で@c -記述されいるものと、タイ、連符で使用されるもの -- はいかなる括弧とも@c -ネストされる必要は@strong{ありません}。@c -実際、これらは何かを囲むという意味では括弧ではありません -- -それらは単に何かが始まる場所、終わる場所を示すためのマークです。 +このことは上記の表で @q{囲みます} という言葉で記述されている +3 種類の括弧に対しては@strong{必須}となります +-- それらは適切にネストされなければなりません。@c +しかしながら、残りの括弧のような構成物 +-- 上記の表で @q{意味します} という言葉で@c +記述されいるものと、タイ、連符で使用されるもの -- +はいかなる括弧ともネストされる必要は @strong{ありません}。@c +実際、これらは何かを囲むという意味では括弧ではありません +-- それらは単に何かが始まる場所、終わる場所を示すためのマークです。 そのため、例えばフレージング スラーは手動で挿入される連桁の前に開始して、@c その手動連桁の前に終わる可能性もあります -- たぶん音楽的では@c @@ -547,19 +578,20 @@ LilyPond 以外では、種類の異なる括弧が適切にネストされる { g8\( a b[ c b\) a] } @end lilypond -一般に、種類の異なる括弧と連符、タイ、装飾小音符に適用される括弧は@c -自由に混ぜ合わせられるかもしれません。@c -以下の例では、連桁は連符の中にまで伸びていて (行 1)、スラーは連符の中にまで@c -伸びていて (行 2)、連桁とスラーが連符の中にまで伸びていて (行 3)、@c -タイが 2 つの連符にまたがっていて、さらにフレージング スラーが連符の外にまで@c -伸びています (行 3 と 4)。 +一般に、種類の異なる括弧、括弧のような構成物、@c +それに連符、タイ、装飾小音符の囲みは自由に組み合わせることができます。@c +以下の例では、連桁は連符の中にまで伸びていて (行 1)、@c +スラーは連符の中にまで伸びていて (行 2)、@c +連桁とスラーが連符の中にまで伸びていて (行 3)、@c +タイが 2 つの連符にまたがっていて、@c +さらにフレージング スラーが連符の外にまで伸びています (行 3 と 4)。 -@lilypond[quote,verbatim,fragment,ragged-right] -{ - r16[ g16 \times 2/3 {r16 e'8] } - g16( a \times 2/3 {b d) e' } - g8[( a \times 2/3 {b d') e'~]} - \times 4/5 {e'32\( a b d' e'} a'4.\) +@lilypond[quote,verbatim,ragged-right] +\relative { + r16[ g' \tuplet 3/2 { r16 e'8] } + g,16( a \tuplet 3/2 { b16 d) e } + g,8[( a \tuplet 3/2 { b8 d) e~] } | + \tuplet 5/4 { e32\( a, b d e } a4.\) } @end lilypond @@ -568,14 +600,14 @@ LilyPond 以外では、種類の異なる括弧が適切にネストされる @section 音楽を保持するボイス @translationof Voices contain music -歌手は歌うボイスを必要とし、それゆえ LilyPond も歌う (演奏する) ボイスを@c -必要とします。@c -楽譜の中にあるすべての楽器に対する実際の音楽はボイスの中に保持されます +歌手は歌うボイスを必要とし、@c +LilyPond も歌う (演奏する) ボイスを必要とします。@c +楽譜の中にあるすべての楽器に対する実際の音楽はボイスの中に保持されます -- このことは LilyPond すべてのコンセプトの中での最も基礎的なことです。 @menu * 私はボイスを聴いている:: -* ボイスの明示的なインスタンス化:: +* ボイスを明示的にインスタンス化する:: * ボイスとボーカル:: @end menu @@ -597,7 +629,7 @@ LilyPond 以外では、種類の異なる括弧が適切にネストされる @cindex voices vs. chords (ボイス vs. 和音) @cindex chords vs. voices (和音 vs. ボイス) -LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、最も内部にあるレイヤは +LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、最も内部にあるレイヤは @q{ボイス コンテキスト} または縮めて単に @q{ボイス} と呼ばれます。@c ボイスはときどき他の記譜法パッケージの中で @q{レイヤ} と呼ばれます。 @@ -606,8 +638,7 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 ボイス コンテキストが明示的に宣言されていない場合、この章の始めで@c 見てきたようにボイス コンテキストが 1 つ自動的に生成されます。@c オーボエなどといった楽器は同時に 1 つの音符だけを演奏できます。@c -そのような楽器のために書かれた音楽は単声であり、ボイスを 1 つだけを@c -必要とします。@c +そのような楽器のために書かれた楽譜はボイスを 1 つだけを必要とします。@c ピアノのように同時に複数の音符を演奏することができる楽器はしばしば、@c それらが演奏することのできる同時進行の異なる音符やリズムを@c エンコードするために、複数のボイスを必要とします。 @@ -621,16 +652,16 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 4 @end lilypond -この例は単一の山括弧からなる和音記号@code{< ... >} を使って@c +この例は単一の山括弧からなる和音記号 @code{< ... >} を使って@c 表記することができ、必要とされるボイスは 1 つだけです。@c -しかしながら、F シャープが A に移行する際に、F シャープは実際には +しかしながら、F シャープが A に移行する際に、F シャープは実際には 8 分音符であり、そのあとに 8 分音符の G が続くとしたらどうでしょうか?@c そのような場合、同時に開始されるが演奏時間が異なる 2 つの音符を@c 持つことになります: 4 分音符の D と 8 分音符の F シャープです。@c これらの音符をどのように記述すればよいのでしょうか?@c これらの音符は和音として記述することはできません。@c なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。@c -そして、それらの音符は同時に開始しなければならないので、2 つのシーケンシャルな +そして、それらの音符は同時に開始しなければならないので、2 つのシーケンシャルな (連続した) 音符として記述することもできません。@c この場合は 2 つのボイスが必要となります。 @@ -639,57 +670,59 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 @funindex << \\ >> @funindex \\ -1 つの譜表に複数のボイスがある音楽断片を入力する最も簡単な方法は、@c -各ボイスをシーケンスに (続けて) 入力し (各ボイスを @code{@{...@}} の中に@c -入れます)、それらのボイスを @code{<<...>>} を使って -同時進行するよう組み合わせます。@c +1 つの譜に複数のボイスがある楽譜を入力する最も簡単な方法は、@c +各ボイスをシーケンスに (続けて) 入力し +(各ボイスを @code{@{...@}} の中に入れます)、@c +それらのボイスを @code{<<...>>} を使って同時進行するよう組み合わせます。@c さらに、各断片は、それぞれが別の断片であることを示すために、@c ダブル バックスラッシュ @code{\\} で区切られなければなりません。@c ダブル バックスラッシュが無ければ、すべての音符は単一のボイスの中に挿入され、@c 通常はエラーとなります。@c -このテクニックは、大部分が単声であり、時々短い部分で多声になる楽曲に@c -特に適しています。 +このテクニックは、大部分が同じ音で、時々短い部分で多声になる楽曲に特に@c +適しています。 以下では、上記の例の和音を 2 つのボイスに分け、経過音とスラーを付け加えています: -@lilypond[quote,verbatim,fragment,ragged-right,relative=2] -\key g \major -% Voice "1" Voice "2" -<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> | +@lilypond[quote,verbatim,ragged-right] +\relative { + \key g \major + % Voice = "1" Voice = "2" + << { g'4 fis8( g) a4 g } \\ { d4 d d d } >> +} @end lilypond -この例では 2 番目のボイスの符幹が下向きになっていることに気づいてください。 +この例では 2 番目のボイスの符幹が下向きになっていることに気付いてください。 今度はもう 1 つ簡単な例を挙げてみます: - @lilypond[quote,verbatim,fragment,ragged-right,relative=2] \key d \minor -% Voice "1" Voice "2" +% Voice = "1" Voice = "2" << { r4 g g4. a8 } \\ { d,2 d4 g } >> | << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> | << { a2. r4 } \\ { fis2. s4 } >> | @end lilypond 各小節で別々に @code{<< \\ >>} 構造を使用する必要はありません。@c -各小節に音符が少ししかないような音楽の場合、このレイアウトはコードの@c -可読性を良くするのに役立ちます。@c -しかしながら、各小節に多くの音符がある場合、以下のように各ボイスを@c -分離した方が良いかもしれません: +各小節に音符が少ししかないような音楽の場合、@c +このレイアウトはコードの可読性を良くするのに役立ちます。@c +しかしながら、各小節に多くの音符がある場合、@c +以下のようにボイス毎に分離した方が良いかもしれません: -@lilypond[quote,verbatim,fragment,ragged-right,relative=2] -\key d \minor -<< { - % Voice "1" - r4 g g4. a8 | - bes4 bes c bes | - a2. r4 | -} \\ { - % Voice "2" - d,2 d4 g | - g4 g g8( a) g4 | - fis2. s4 | -} >> +@lilypond[quote,verbatim,ragged-right] +<< + \key d \minor + \relative { % Voice = "1" + r4 g' g4. a8 | + bes4 bes c bes | + a2. r4 | + } \\ + \relative { % Voice = "2" + d'2 d4 g | + g4 g g8( a) g4 | + fis2. s4 | + } +>> @end lilypond @@ -700,42 +733,46 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 この例にあるボイスは 2 つだけです。@c しかしながら、これと同じ構成にもっと多くのバック スラッシュを@c -付け加えることによって、3 つかそれ以上のボイスを@c -持たせることになるかもしれません。 +付け加えることによって、3 つかそれ以上のボイスを持たせることが可能です。 ボイス コンテキストは @code{"1"}, @code{"2"} などの名前を持ちます。@c -各コンテキストの中では、スラー、符幹、タイ、強弱記号などの@c -垂直方向の向きは適切にセットされます。 +最初の 2 つのコンテキストは @emph{外側} のボイスをセットして、@c +上のボイスはコンテキスト @code{"1"}、下のボイスはコンテキスト @code{"2"} +になります。@c +内側のボイスはコンテキスト @code{"3"} と @code{"4"} になります。@c +これらの各コンテキストでは、スラー、符幹、タイ、強弱記号などの垂直方向の@c +向きは適切にセットされます。 @lilypond[quote,verbatim,fragment] -\new Staff \relative c' { +\new Staff \relative { % Main voice - c16 d e f - % Voice "1" Voice "2" Voice "3" + c'16 d e f + % Voice = "1" Voice = "2" Voice = "3" << { g4 f e } \\ { r8 e4 d c8 ~ } >> | - << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> | + << { d2 e2 } \\ { c8 b16 a b8 g ~ 2 } \\ { s4 b4 c2 } >> | } @end lilypond これらのボイスはすべてメインのボイスからは分かれています。@c メインのボイスの音符は@code{<< .. >>} 構造の外にあるからです。@c -この @code{<< .. >>} 構造を同時進行構造と呼ぶことにしましょう。@c -通常、スラーとタイは同じボイス内にある音符だけをつなぎます。@c +この @code{<< .. >>} 構造を @emph{同時進行構造} と呼ぶことにしましょう。@c +スラーとタイは同じボイス内にある音符だけをつなぎます。@c そのため、スラーとタイは同時進行構造を出たり入ったりすることはありません。@c -反対に、同じ譜表上にある個々の同時進行構造で、平行の位置にあるボイスは@c -同じボイスになります。@c +反対に、同じ譜上にある個々の同時進行構造で、@c +平行の位置にあるボイスは同じボイスになります。@c さらに、その他のボイス関連プロパティは同時進行構造をまたがって持ち越されます。@c ここで、上記と同じ例で各ボイスに対して異なる色と符頭を割り当ててみます。@c -あるボイスでの変更は他のボイスに影響を与えませんが、その後に続く同じボイス -(訳者: 平行位置にあるボイス) でその変更が維持されることに注意してください。@c +あるボイスでの変更は他のボイスに影響を与えませんが、@c +その後に続く同じボイス (訳者: 平行位置にあるボイス) で@c +その変更が維持されることに注意してください。@c さらに、タイでつながれた音符は、同じボイスとなる 2 つの同時進行構造に@c またがって分かれるかもしれないということに注意してください。 @lilypond[quote,verbatim] -\new Staff \relative c' { +\new Staff \relative { % Main voice - c16 d e f - << % Bar 1 + c'16 d e f + << % Bar 1 { \voiceOneStyle g4 f e @@ -743,21 +780,21 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 \\ { \voiceTwoStyle - r8 e4 d c8 ~ + r8 e4 d c8~ } - >> - << % Bar 2 + >> | + << % Bar 2 % Voice 1 continues - { d2 e2 } + { d2 e } \\ % Voice 2 continues - { c8 b16 a b8 g ~ g2 } + { c8 b16 a b8 g~ 2 } \\ { \voiceThreeStyle - s4 b4 c2 + s4 b c2 } - >> + >> | } @end lilypond @@ -778,7 +815,7 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 @code{\voiceNeutralStyle} (これもここでは使用されていません) は@c 符頭のスタイルをデフォルトに戻します。@c 後ほど、ユーザがこのようなコマンドを作成するための方法を見ていきます。@c -@ref{オブジェクトの可視性と色} と @ref{調整のために変数を使用する} +@ref{オブジェクトの可視性と色} と @ref{調整のために変数を使用する} を参照してください。 @cindex polyphony and relative note entry (多声と相対音符入力) @@ -799,8 +836,8 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 @code{noteC} との相対関係で決まり @* @code{noteE} は @code{noteA} ではなく @code{noteD} との相対関係で決まります。 -各ボイスの中にある音符の音程がボイスごとに大きく離れている場合、各ボイスの始めに -@code{\relative} コマンドを置くと明瞭になるかもしれません: +各ボイスの中にある音符の音程がボイスごとに大きく離れている場合、@c +各ボイスの始めに @code{\relative} コマンドを置くと明瞭になるかもしれません: @example \relative c' @{ noteA ... @} @@ -814,28 +851,31 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 最後に、もっと複雑な楽曲の中にあるボイスを分析してみましょう。@c 以下は、ショパンの Deux Nocturnes, Op 32 の 2 番の最初の 2 小節です。@c -この例は、記譜を行うためのテクニックをいくつか示すために、本章の後の方と@c -次の章で使用されます。@c +この例は、記譜を行うためのテクニックをいくつか示すために、@c +本章の後の方と次の章で使用されます。@c ですから、今はコードの中にある意味不明に見えるものは無視して、@c 音楽とボイスだけに注目してください -- 込み入った内容は後ほど説明します。 @c The following should appear as music without code @lilypond[quote,ragged-right] -\new Staff \relative c'' { +\new Staff \relative { \key aes \major - << % Voice one - { c2 aes4. bes8 } - \\ % Voice two - { aes2 f4 fes } - \\ % No voice three - \\ % Voice four + << % Voice one + { c''2 aes4. bes8 } + \\ % Voice two { % Ignore these for now - they are explained in Ch 4 - \once \override NoteColumn #'force-hshift = #0 - 2 - \once \override NoteColumn #'force-hshift = #0.5 + \once \override NoteColumn.ignore-collision = ##t + 2 + \once \override NoteColumn.force-hshift = #0.5 des2 } + \\ % No voice three + \\ % Voice four + { + \override NoteColumn.force-hshift = #0 + aes'2 f4 fes + } >> | 1 | } @@ -843,12 +883,12 @@ LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、 符幹の向きはしばしば 2 つの同時進行する旋律ラインのつながりを示すために@c 使用されます。@c -ここでは、一番上の音符の符幹はすべて上向きであり、下の方にある音符の符幹は@c -すべて下向きです。@c +ここでは、一番上の音符の符幹はすべて上向きであり、@c +下の方にある音符の符幹はすべて下向きです。@c これは、複数のボイスが必要とされているということを示す最初の兆候です。 -しかしながら、複数のボイスが実際に必要とされるのは、同時に始まる音符が@c -異なる演奏時間を持つ場合です。@c +しかしながら、複数のボイスが実際に必要とされるのは、@c +同時に始まる音符が異なる演奏時間を持つ場合です。@c 最初の小節の 3 拍目を見てください。@c A フラットは付点 4 分音符であり、F は 4 分音符、D フラットは半音符です。@c これらの音符を和音として記述することはできません。@c @@ -864,25 +904,26 @@ A フラットは付点 4 分音符であり、F は 4 分音符、D フラッ @c The following should appear as music without code @c The three voice styles should be defined in -init @lilypond[quote,ragged-right] -\new Staff \relative c'' { +\new Staff \relative { \key aes \major << { % Voice one \voiceOneStyle - c2 aes4. bes8 + c''2 aes4. bes8 } \\ % Voice two { \voiceTwoStyle - aes2 f4 fes + % Ignore these for now - they are explained in Ch 4 + \once \override NoteColumn.ignore-collision = ##t + 2 + \once \override NoteColumn.force-hshift = #0.5 + des2 } \\ % No Voice three (we want stems down) \\ % Voice four { \voiceThreeStyle - % Ignore these for now - they are explained in Ch 4 - \once \override NoteColumn #'force-hshift = #0 - 2 - \once \override NoteColumn #'force-hshift = #0.5 - des2 + \override NoteColumn.force-hshift = #0 + aes'2 f4 fes } >> | 1 | @@ -892,15 +933,15 @@ A フラットは付点 4 分音符であり、F は 4 分音符、D フラッ この音楽のコードをゼロから記述してみましょう。@c これから見ていくように、いくつかの問題に遭遇します。@c -すでに学んだように、最初の小節の音楽を 3 つのボイスに分けて記述するために +すでに学んだように、最初の小節の音楽を 3 つのボイスに分けて記述するために @code{<< \\ >>} 構造を使用します: @c ignore @lilypond[quote,verbatim,fragment,ragged-right] -\new Staff \relative c'' { +\new Staff \relative { \key aes \major << - { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { 2 des2 } + { c''2 aes4. bes8 } \\ { 2 des } \\ { aes'2 f4 fes } >> 1 } @@ -913,21 +954,21 @@ A フラットは付点 4 分音符であり、F は 4 分音符、D フラッ 符幹の向きは自動的に割り当てられ、奇数番号のボイスが上向きの符幹、@c 偶数番号のボイスが下向きの符幹を持ちます。@c -ボイス 1 と 2 の符幹は正しいのですが、ボイス 3 の符幹はここでは下向きに@c -なるべきです。@c -これは単純にボイス 3 を省略して、その音楽をボイス 4 に記述することによって@c -修正できます: +ボイス 1 と 2 の符幹は正しいのですが、@c +ボイス 3 の符幹はここでは下向きになるべきです。@c +ボイス 3 を省略して音楽をボイス 4 に記述することによって修正できます。@c +ボイス 3 を省略するには、@code{\\} を 2 つ記述します: @lilypond[quote,verbatim,fragment,ragged-right] -\new Staff \relative c'' { +\new Staff \relative { \key aes \major << % Voice one - { c2 aes4. bes8 } + { c''2 aes4. bes8 } \\ % Voice two - { aes2 f4 fes } + { 2 des } \\ % Omit Voice three \\ % Voice four - { 2 des2 } + { aes'2 f4 fes } >> | 1 | } @@ -935,30 +976,27 @@ A フラットは付点 4 分音符であり、F は 4 分音符、D フラッ @noindent これにより符幹の向きが修正されました。@c -しかしながら、複数のボイスを持つ場合にしばしば発生する問題に@c -遭遇してしまいました -- -あるボイスの中にある音符の符幹が他のボイスの中にある符頭と衝突しています。@c -音符をレイアウトするときに、LilyPond は 2 つのボイスの符幹の向きを@c -反対にすることによって 2 つのボイスの音符や和音が@c -同じ垂直方向の音符列に位置することを可能にします。@c -しかしながら、3 番目や 4 番目のボイスは符頭の衝突を避けるために@c -必要があれば移動させられます。@c -これは普通はうまくいきますが、この例では一番下のボイスの音符は@c -デフォルトの状態では明らかにうまくいっていません。@c -LilyPond は音符の水平方向位置を調節するためにいくつかの手段を提供します。@c -我々はまだこの問題を修正するための方法を見ていく準備が整っていないので、@c -この問題は後に残しておくことにします -- -@ref{表記の重なりを修正する} の @code{force-hshift} プロパティを@c -参照してください。 +しかしながら、音符の水平方向の配置が望んだとおりになっていません。@c +内側の音符の符頭や符幹が外側のボイスと衝突する場合 LilyPond は内側の@c +音符の位置をずらしますが、これはピアノ譜では不適切です。@c +他の状況でも、LilyPond が音符の位置をずらしても衝突が解決されない場合が@c +あります。@c +LilyPond は音符の水平方向の位置を調節するための手段をいくつか提供します。@c +しかしながら、我々はまだこの問題を修正するための方法を見ていく準備が@c +整っていないので、この問題は後に残しておくことにします +-- @ref{Fixing overlapping notation} の @code{force-hshift} プロパティ@c +を参照してください。 +@warning{歌詞、スパナ (スラー、タイ、強弱のヘアピン記号など) をボイスを@c +@q{またいで} 作成することはできません。} @seealso -記譜法リファレンス: @ruser{Multiple voices} -@c 複数のボイス +記譜法リファレンス: +@ruser{複数のボイス} -@node ボイスの明示的なインスタンス化 -@subsection ボイスの明示的なインスタンス化 +@node ボイスを明示的にインスタンス化する +@subsection ボイスを明示的にインスタンス化する @translationof Explicitly instantiating voices @funindex \voiceOne @@ -974,10 +1012,10 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @funindex \new Voice @cindex voice contexts, creating (ボイス コンテキストを作成する) -多声部音楽を作成するためにボイス コンテキストを手動で @code{<< >>} ブロックの@c -中に作成することもできます。@c -符幹、スラーなどの向きを示すために @code{\voiceOne} ... @code{\voiceFour} を@c -使用します。@c +多声部音楽を作成するためにボイス コンテキストを手動で +@code{<< >>} ブロックの中に作成することもできます。@c +符幹、スラーなどの向きを示すために +@code{\voiceOne} @dots{} @code{\voiceFour} を使用します。@c この手法は各ボイスを別々にして、より記述的な名前を与えることを可能にするため、@c 長い楽譜ではわかりやすいものになります。 @@ -985,8 +1023,8 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @example \new Staff @{ - \relative c' @{ - << @{ e4 f g a @} @bs{}@bs{} @{ c,4 d e f @} >> + \relative @{ + << @{ e'4 f g a @} \\ @{ c,4 d e f @} >> @} @} @end example @@ -996,8 +1034,8 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @example \new Staff << - \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @} - \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @} + \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @} + \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @} >> @end example @@ -1006,8 +1044,8 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @c The following example should not display the code @lilypond[ragged-right,quote] \new Staff << - \new Voice = "1" { \voiceOne \relative c' { e4 f g a } } - \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } } + \new Voice = "1" { \voiceOne \relative { e'4 f g a } } + \new Voice = "2" { \voiceTwo \relative { c'4 d e f } } >> @end lilypond @@ -1026,34 +1064,35 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの マークアップ、タイ、スラー、強弱記号に与える影響を見ていきましょう: @lilypond[quote,ragged-right,verbatim] -\relative c'{ +\relative { % Default behavior or behavior after \oneVoice - c d8 ~ d e4 ( f g a ) b-> c + c'4 d8~ 8 e4( f | g4 a) b-> c | } @end lilypond @lilypond[quote,ragged-right,verbatim] -\relative c'{ +\relative { \voiceOne - c d8 ~ d e4 ( f g a ) b-> c + c'4 d8~ 8 e4( f | g4 a) b-> c | \oneVoice - c, d8 ~ d e4 ( f g a ) b-> c + c,4 d8~ 8 e4( f | g4 a) b-> c | } @end lilypond @lilypond[quote,ragged-right,verbatim] -\relative c'{ +\relative { \voiceTwo - c d8 ~ d e4 ( f g a ) b-> c + c'4 d8~ 8 e4( f | g4 a) b-> c | \oneVoice - c, d8 ~ d e4 ( f g a ) b-> c + c,4 d8~ 8 e4( f | g4 a) b-> c | } @end lilypond -今度は、前のセクションの例を使って同じ多声部音楽のパッセージを -3 つの異なる方法で表記する例を見ていきます。それぞれ異なる状況で利点があります。 +今度は、前のセクションの例を使って同じ多声部音楽のパッセージを +3 つの異なる方法で表記する例を見ていきます。@c +それぞれ異なる状況で利点があります。 -1 つはメイン ボイスに属する @code{<< >>} の内部に直接表記を記述する方法です +1 つはメイン ボイスに属する @code{<< >>} の内部に直接表記を記述する方法です (しかしながら、音符は @code{<< \\ >>} 構造の中に置かれては@strong{いません})。@c これはメイン ボイスの途中で追加のボイスが現れる場合に有用です。@c ここでは例にさらに調整を加えます。@c @@ -1062,25 +1101,25 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの 示しています。 @lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { +\new Staff \relative { \voiceOneStyle - % The following notes are monophonic - c16^( d e f + % This section is homophonic + c'16^( d e f % Start simultaneous section of three voices << % Continue the main voice in parallel - { g4 f e | d2 e2) } + { g4 f e | d2 e) | } % Initiate second voice \new Voice { - % Set stems, etc, down + % Set stems, etc., down \voiceTwo - r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 + r8 e4 d c8~ | 8 b16 a b8 g~ 2 | } % Initiate third voice \new Voice { % Set stems, etc, up \voiceThree - s2. | s4 b4 c2 + s2. | s4 b c2 | } >> } @@ -1092,23 +1131,19 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @cindex voices, temporary (一時的なボイス) @cindex voices, nesting (ボイスをネストさせる) -多声部構造をより深くネストさせることが可能であり、追加のボイスが@c -短時間のものであるならば、こちらの方がより自然な音楽表記方法で@c -あるかもしれません: - @lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { - c16^( d e f +\new Staff \relative { + c'16^( d e f << - { g4 f e | d2 e2) } + { g4 f e | d2 e) | } \new Voice { \voiceTwo - r8 e4 d c8 ~ | + r8 e4 d c8~ | << - {c8 b16 a b8 g ~ g2} + { c8 b16 a b8 g~ 2 | } \new Voice { \voiceThree - s4 b4 c2 + s4 b c2 | } >> } @@ -1120,35 +1155,35 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの 新しいボイスを一時的にネストさせる手法は音楽のほんの一部だけが多声である場合に@c 有用です。@c -しかしながら、楽譜全体が多声である場合、一貫して複数のボイスを使用した方が@c -わかりやすくなります。@c +しかしながら、楽譜全体が多声である場合、@c +一貫して複数のボイスを使用した方がわかりやすくなります。@c ボイスが無音の場所を飛ばすには以下のように空白音符を使用します: @lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' << +\new Staff \relative << % Initiate first voice \new Voice { \voiceOne - c16^( d e f g4 f e | d2 e2) | + c'16^( d e f g4 f e | d2 e) | } % Initiate second voice \new Voice { % Set stems, etc, down \voiceTwo - s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 | + s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 | } % Initiate third voice \new Voice { % Set stems, etc, up \voiceThree - s1 | s4 b4 c2 | + s1 | s4 b c2 | } >> @end lilypond -@subsubheading Note columns -@c 音符列 +@subsubheading 音符列 +@c Note columns @cindex note column (音符列) @cindex note collisions (音符の衝突) @@ -1163,9 +1198,9 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @funindex \shiftOnnn @funindex shiftOnnn -和音の中で小さな間隔で置かれる音符、あるいは異なるボイスで同時に発生する@c -音符は、符頭が重なるのを避けるために 2 列、時にはそれ以上の列に@c -割り振られます。@c +和音の中で小さな間隔で置かれる音符、@c +あるいは異なるボイスで同時に発生する音符は、@c +符頭が重なるのを避けるために 2 列、時にはそれ以上の列に割り振られます。@c これらの列は音符列と呼ばれます。@c それぞれのボイスに対して別々の列が存在し、符頭の衝突が起こる場合は@c ボイスごとのシフトが適用されます。@c @@ -1173,7 +1208,7 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの 2 小節目でボイス 2 の C はボイス 1 の D との関係で右にシフトされていて、@c 最後の和音でボイス 3 の C も他の音符との関係で右にシフトされています。 -@code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, それに @code{\shiftOff} +@code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, それに @code{\shiftOff} コマンドは、衝突が起こる場合に音符や和音をシフトさせる度合いを指定します。@c デフォルトでは、外側のボイス (通常はボイス 1 と 2) には @code{\shiftOff} が@c 指定されていて、内側のボイス (ボイス 3 と 4) には @code{\shiftOn} が@c @@ -1183,10 +1218,9 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @code{\shiftOnn} と @code{\shiftOnnn} はさらなるシフト レベルを@c 定義するものであり、複雑な状況での衝突を解決するために@c -一時的に指定されるかもしれません -- +一時的に指定されるかもしれません -- @ref{実際の音楽からの例} を参照してください。 - ある音符列は上向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ、@c 下向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ@c 保持することができます。@c @@ -1197,16 +1231,16 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの @seealso -記譜法リファレンス: @ruser{Multiple voices} -@c 複数のボイス? +記譜法リファレンス: +@ruser{複数のボイス} @node ボイスとボーカル @subsection ボイスとボーカル @translationof Voices and vocals -声楽には特別な困難があります: 2 つの表記 -- 音符と歌詞 -- を@c -組み合わせる必要があります。 +声楽には特別な困難があります: +2 つの表記 -- 音符と歌詞 -- を組み合わせる必要があります。 @funindex \new Lyrics @funindex \lyricsto @@ -1218,19 +1252,21 @@ LilyPond は音符の水平方向位置を調節するためにいくつかの すでに @code{\addlyrics@{@}} コマンドを見てきました。@c これは簡単な楽譜であればうまく処理できます。@c しかしながら、この方法では限界があります。@c -より複雑な音楽では、@code{\new Lyrics} を使って歌詞を -@code{Lyrics} コンテキストに取り込み、ボイスに割り当ている名前を使って +より複雑な音楽では、@code{\new Lyrics} を使って歌詞を +@code{Lyrics} コンテキストに取り込み、ボイスに割り当ている名前を使って @code{\lyricsto@{@}} でその歌詞を明示的に音符にリンクさせます。 -@lilypond[quote,verbatim,fragment] +@lilypond[quote,verbatim] << - \new Voice = "one" \relative c'' { - \autoBeamOff - \time 2/4 - c4 b8. a16 g4. f8 e4 d c2 + \new Voice = "one" { + \relative { + \autoBeamOff + \time 2/4 + c''4 b8. a16 | g4. f8 | e4 d | c2 | + } } \new Lyrics \lyricsto "one" { - No more let sins and sor -- rows grow. + No more let | sins and | sor -- rows | grow. | } >> @end lilypond @@ -1259,23 +1295,28 @@ LilyPond がデフォルトで使用する自動連桁は楽器だけの音楽 @cindex vocal score structure (ボーカル譜構造) @cindex choir staff -以前使用した Judas Maccabæus からの例を再度使用して、より自由度の高い方法を@c -示します。@c +以前使用した Judas Maccabæus からの例を再度使用して、@c +より自由度の高い方法を示します。@c まず、楽譜の内容を変数に振り直し、音楽と歌詞を譜表構造から分離させます。@c さらに @code{ChoirStaff} ブラケットを導入します。@c 歌詞自体は、音楽ではなく歌詞として解釈されることを保証するために、@c @code{\lyricsmode} で導入されなければなりません。 @lilypond[quote,verbatim] -global = { \time 6/8 \partial 8 \key f \major} -SopOneMusic = \relative c'' { - c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 } -SopTwoMusic = \relative c' { - r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' } +global = { \key f \major \time 6/8 \partial 8 } + +SopOneMusic = \relative { + c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4 +} SopOneLyrics = \lyricmode { - Let | flee -- cy flocks the | hills a -- dorn, __ } + Let | flee -- cy flocks the | hills a -- dorn, __ +} +SopTwoMusic = \relative { + r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes' +} SopTwoLyrics = \lyricmode { - Let | flee -- cy flocks the | hills a -- dorn, } + Let | flee -- cy flocks the | hills a -- dorn, +} \score { \new ChoirStaff << @@ -1315,35 +1356,37 @@ SopTwoLyrics = \lyricmode { @cindex multiple vocal verses @cindex verses, multiple vocal -ここで、例として 4 つの歌詞 -- それぞれが SATB (ソプラノ、アルト、テナー、バス) +ここで、例として 4 つの歌詞 -- それぞれが SATB (ソプラノ、アルト、テナー、バス) に対してセットされている -- を持つ賛美歌の最初の 1 行目を取り上げます。@c この歌の場合、4 つのパートに対する歌詞の言葉は同じです。@c 変数を使用して音楽記譜と歌詞の言葉を譜表構造から分離させている手法に@c 注意してください。@c -さらに、 @q{TimeKey} と呼ぶことにした変数が、2 つの譜で使用される@c +さらに、 @q{keyTime} と呼ぶことにした変数が、2 つの譜で使用される@c いくつかのコマンドを保持するために、使用されていることにも注意してください。@c 他の例では、この変数はしばしば @q{global} と呼ばれます。 @lilypond[quote,verbatim] -TimeKey = { \time 4/4 \partial 4 \key c \major} -SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g } -AltoMusic = \relative c' { c4 | c4. c8 e4 e | f f e } -TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 } -BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 } -VerseOne = \lyricmode { - E -- | ter -- nal fa -- ther, | strong to save, } -VerseTwo = \lyricmode { - O | Christ, whose voice the | wa -- ters heard, } -VerseThree = \lyricmode { - O | Ho -- ly Spi -- rit, | who didst brood } -VerseFour = \lyricmode { - O | Tri -- ni -- ty of | love and pow'r } +keyTime = { \key c \major \time 4/4 \partial 4 } + +SopMusic = \relative { c'4 | e4. e8 g4 g | a4 a g } +AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e } +TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 } +BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 } + +VerseOne = + \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, } +VerseTwo = + \lyricmode { O | Christ, whose voice the | wa -- ters heard, } +VerseThree = + \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood } +VerseFour = + \lyricmode { O | Tri -- ni -- ty of | love and pow'r } \score { \new ChoirStaff << \new Staff << \clef "treble" - \new Voice = "Sop" { \voiceOne \TimeKey \SopMusic } + \new Voice = "Sop" { \voiceOne \keyTime \SopMusic } \new Voice = "Alto" { \voiceTwo \AltoMusic } \new Lyrics \lyricsto "Sop" { \VerseOne } \new Lyrics \lyricsto "Sop" { \VerseTwo } @@ -1352,199 +1395,8 @@ VerseFour = \lyricmode { >> \new Staff << \clef "bass" - \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic } - \new Voice = "Bass" { \voiceTwo \BassMusic } - >> - >> -} -@end lilypond - -@cindex verse and refrain (歌詞とリフレイン) - -最後に、2 つの譜の 2 パートのリフレイン (繰り返し) につながる単一の歌詞の節を@c -コードする方法を示す例を挙げます。@c -これを 1 つの楽譜で達成するためのシークエンシャル部分と@c -同時進行部分の配置の仕方は非常にトリッキーです。@c -そのため、説明を注意深く読んでください! - -コーラスの開始点で波括弧を表示させたいので、@c -@code{ChoirStaff} を保持する score ブロックで始めます。@c -通常、すべての譜を並列にするために @code{\new ChoirStaff} の後に山括弧を@c -置く必要があります。@c -山括弧を使用しても害はありませんが、ここではコーラスまで並列化を@c -先延ばししたいので波括弧を使用します。@c -@code{ChoirStaff} の中で、まず最初に歌詞を保持する譜表を置く必要があります。@c -音符と歌詞を並列に並べなければならないので、@code{\new Voice} と -@code{\new Lyrics} を同時に開始させるために山括弧で囲む必要があります: - -@lilypond[quote,verbatim,ragged-right] -versenotes = \relative c'' { - \clef "treble" - \key g \major - \time 3/4 g g g b b b -} -versewords = \lyricmode { - One two three four five six -} -\score { - \new ChoirStaff { - \new Staff << - \new Voice = "verse" { - \versenotes \break - } - \new Lyrics \lyricsto verse { - \versewords - } - >> - } -} -@end lilypond - -これで歌詞の行が与えられました。 - -今度は、refainA を同じ譜表で続けて、それと並列に refrainB のためにもう 1 つ@c -譜表を導入する必要があります。@c -そのため、この並列部分は verse Voice の中の @code{\break} の直後に@c -置かれなければなりません。@c -そうです、verse Voice の@emph{中に}です!@c -ここで並列部分を示します。@c -同じ要領でここにもっと多くの譜を導入することもできます。 - -@example -<< - \refrainnotesA - \new Lyrics \lyricsto verse @{ - \refrainwordsA - @} - \new Staff << - \new Voice = "refrainB" @{ - \refrainnotesB - @} - \new Lyrics \lyricsto "refrainB" @{ - \refrainwordsB - @} - >> ->> -@end example - -ここで最終結果を示します。@c -これはコーラスになっている 2 つの譜を持ち、並列部分がどのように -verse Voice の中に置かれるかを示しています: - -@lilypond[quote,verbatim, ragged-right] -versenotes = \relative c'' { - \clef "treble" - \key g \major - \time 3/4 g g g b b b -} -refrainnotesA = \relative c'' { - \time 2/4 - c c g g \bar "|." -} -refrainnotesB = \relative c { - \clef "bass" - \key g \major - c e d d -} -versewords = \lyricmode { - One two three four five six -} -refrainwordsA = \lyricmode { - la la la la -} -refrainwordsB = \lyricmode { - dum dum dum dum -} -\score { - \new ChoirStaff { - \new Staff << - \new Voice = "verse" { - \versenotes \break - << - \refrainnotesA - \new Lyrics \lyricsto "verse" { - \refrainwordsA - } - \new Staff << - \new Voice = "refrainB" { - \refrainnotesB - } - \new Lyrics \lyricsto "refrainB" { - \refrainwordsB - } - >> - >> - } - \new Lyrics \lyricsto "verse" { - \versewords - } - >> - } -} -@end lilypond - -@cindex book, example of using (book の使用例) -@funindex \book -@funindex book - -これはシークエンシャル ブロックと同時進行ブロックがどのように機能するかを@c -理解するための手助けとしては興味深く有用です。@c -しかしながら、実際にこれをコードする場合は、恐らく以下のように暗黙の -@code{\book} ブロック内部に 2 つの @code{\score} ブロックを@c -置くようにするでしょう: - -@lilypond[quote,verbatim,ragged-right] -versenotes = \relative c'' { - \clef "treble" - \key g \major - \time 3/4 g g g b b b -} -refrainnotesA = \relative c'' { - \time 2/4 - c c g g \bar "|." -} -refrainnotesB = \relative c { - \clef "bass" - \key g \major - c e d d -} -versewords = \lyricmode { - One two three four five six -} -refrainwordsA = \lyricmode { - la la la la -} -refrainwordsB = \lyricmode { - dum dum dum dum -} -\score { - \new Staff << - \new Voice = "verse" { - \versenotes - } - \new Lyrics \lyricsto "verse" { - \versewords - } - >> -} - -\score { - \new ChoirStaff << - \new Staff << - \new Voice = "refrainA" { - \refrainnotesA - } - \new Lyrics \lyricsto "refrainA" { - \refrainwordsA - } - >> - \new Staff << - \new Voice = "refrainB" { - \refrainnotesB - } - \new Lyrics \lyricsto "refrainB" { - \refrainwordsB - } + \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic } + \new Voice = "Bass" { \voiceTwo \BassMusic } >> >> } @@ -1583,8 +1435,8 @@ refrainwordsB = \lyricmode { 記譜要素を出力に追加しなければなりません。@c 例えば、以下の例で入力と出力を比較してください: -@lilypond[quote,verbatim,relative=2,fragment] -cis4 cis2. g4 +@lilypond[quote,verbatim] +\relative { cis''4 cis2. | a4 a2. | } @end lilypond この入力は内容がやや乏しいですが、出力では小節線、臨時記号、音部記号、@c @@ -1618,7 +1470,7 @@ LilyPond 内部では、これらの規則と情報ビットは@emph{コンテ 他の例としては、小節線の同調はデフォルトでは @code{Score} コンテキストが@c 扱います。@c -しかしながら、いくつかの音楽では小節線を同調させたくない場合もあります -- +しかしながら、いくつかの音楽では小節線を同調させたくない場合もあります -- 4/4 拍子と 3/4 拍子の多声の楽譜といった場合です。@c そのようなケースでは、@code{Score} と @code{Staff} コンテキストの@c デフォルト設定を変更しなければなりません。 @@ -1659,13 +1511,17 @@ LilyPond 内部では、これらの規則と情報ビットは@emph{コンテ @cindex creating contexts (コンテキストを作成する) @cindex contexts, creating (コンテキストを作成する) -最上位にあるコンテキストは 1 つだけです: @code{Score} コンテキストです。@c -これは @code{\score} コマンドによって作成されます。@c -また、簡単な楽譜では、これは自動的に作成されます。 +入力ファイルの中で、@code{\score} コマンドによって導入される +score ブロックは単一の音楽表記とそれに関連する出力定義 +(@code{\layout} ブロックあるいは @code{\midi} ブロック) +を保持します。@c +通常、@code{Score} コンテキストは省略され、@c +音楽表記の解釈が始まった時点で自動的に作成されます。 -1 つだけのボイスと 1 つだけの譜表を持つ楽譜では、@code{Voice} と @code{Staff} +ボイスが 1 つだけで、譜も 1 つだけの楽譜では、@c +@code{Voice} と @code{Staff} も省略して、自動的に作成させることができます。@c コンテキストは自動的に作成されるために放っておかれるかもしれません。@c -しかしながら、より複雑な楽譜では、これらを手ずから作成する必要があります。@c +しかしながら、より複雑な楽譜ではこれらを手ずから作成する必要があります。@c これらを作成する最も簡単なコマンドは @code{\new} です。@c これは音楽表記の前に置きます。@c 例を挙げます: @@ -1677,64 +1533,71 @@ LilyPond 内部では、これらの規則と情報ビットは@emph{コンテ @noindent ここで、@var{type} はコンテキスト名です (@code{Staff} や @code{Voice} など)。@c -このコマンドは新しいコンテキストを作成し、そのコンテキストの中にある +このコマンドは新しいコンテキストを作成し、そのコンテキストの中にある @var{music-expression} の解釈を開始します。 -@code{\new Score} というコマンドは無いということに注意してください。@c -単一の最上位 @code{Score} コンテキストは @code{\score} で作成されます。 +@warning{必須の最上位 @code{Score} コンテキストとして @bs{}@code{new Score} +を使わないでください。@c +これは、@bs{}@code{score} ブロックの中にある音楽表記が解釈される時に@c +自動的に作成されます。@c +楽譜全体のコンテキスト プロパティのデフォルト値を変更するには、@c +@bs{}@code{layout} ブロックの中で行います。@c +@ref{コンテキスト プロパティを変更する} を参照してください。} これまでに、新たに @code{Staff} と @code{Voice} コンテキストを作成する多くの@c 実際的な例を見てきましたが、これらのコマンドが実際にどのように使用されるのかを@c 覚えてもらうために、実際の音楽に注釈を付けた例を挙げます: +@c KEEP LY @lilypond[quote,verbatim,ragged-right] -\score { % start of single compound music expression - << % start of simultaneous staves section +\score { % 複合音楽表記の開始点 + << % 同時進行する譜の開始点 \time 2/4 \new Staff { % create RH staff - \key g \minor \clef "treble" - \new Voice { % create voice for RH notes - \relative c'' { % start of RH notes - d4 ees16 c8. | - d4 ees16 c8. | - } % end of RH notes - } % end of RH voice - } % end of RH staff - \new Staff << % create LH staff; needs two simultaneous voices \key g \minor + \new Voice { % 右手の音符用のボイスを作成します + \relative { % 右手の音符の開始点 + d''4 ees16 c8. | + d4 ees16 c8. | + } % 右手の音符の終了点 + } % 右手のボイスの終了点 + } % 右手の譜の終了点 + \new Staff << % 左手の譜を作成します。2 つの同時進行するボイスを必要とします \clef "bass" - \new Voice { % create LH voice one + \key g \minor + \new Voice { % 左手のボイス 1 を作成します \voiceOne - \relative g { % start of LH voice one notes + \relative { % 左手のボイス 1 の音符の開始点 g8 ees, | g8 ees, | - } % end of LH voice one notes - } % end of LH voice one - \new Voice { % create LH voice two + } % 左手のボイス 1 の音符の終了点 + } % 左手のボイス 1 の終了点 + \new Voice { % 左手のボイス 2 を作成します \voiceTwo - \relative g { % start of LH voice two notes + \relative { % 左手のボイス 2 の音符の開始点 g4 ees | g4 ees | - } % end of LH voice two notes - } % end of LH voice two - >> % end of LH staff - >> % end of simultaneous staves section -} % end of single compound music expression + } % 左手のボイス 2 の音符の終了点 + } % 左手のボイス 2 の終了点 + >> % 左手の譜の終了点 + >> % 同時進行する譜セクションの終了点 +} % 複合音楽表記の終了点 @end lilypond (波括弧 @code{@{} や 2 重山括弧 @code{<<} の中でブロックになっているすべての@c 記述には括弧よりもスペースが 2 つ多いインデントを付けられていて、@c 閉じ括弧には括弧の開始行と同じインデントを付けられているということに@c 注意してください。@c -これは必須ではありませんが、こうしておくと @q{unmatched backet} +これは必須ではありませんが、こうしておくと @q{unmatched backet} (「括弧が一致しない」) エラーを大幅に減らすことができますので、@c 強く推奨します。@c -これにより、音楽の構造を簡単に見て取ることができ、一致していない括弧が@c -明瞭になります。@c -さらに、RH 譜表はボイスを 1 つだけしか必要としないために波括弧によって@c -囲まれた単一の音楽表記として作成されているのに対して、LH 譜表は 2 つのボイスを@c -必要とするために 2 重山括弧を使って作成されていることに注意してください。) +これにより、音楽の構造を簡単に見て取ることができ、@c +一致していない括弧が明瞭になります。@c +さらに、右手の譜はボイスを 1 つだけしか必要としないために波括弧によって@c +囲まれた単一の音楽表記として作成されているのに対して、@c +左手の譜は 2 つのボイスを必要とするために +2 重山括弧を使って作成されていることにも注意してください。) @cindex contexts, naming (コンテキストを名前を付ける) @cindex naming contexts (コンテキストを名前を付ける) @@ -1747,19 +1610,20 @@ LilyPond 内部では、これらの規則と情報ビットは@emph{コンテ @end example @code{Staff}, @code{Voice} などといったコンテキスト タイプの名前と@c -そのようなコンテキスト タイプのインスタンスの名前 --これはユーザによって@c -提供され、どのような文字の連なりにもなり得ます -- の違いに注意してください。@c -数字とスペースも識別名に使用することができますが、その場合クォートで@c -囲まなければなりません -- -つまり、@code{\new Staff = "MyStaff 1" @var{music-expression}} のように@c -なります。@c +そのようなコンテキスト タイプのインスタンスの名前 +--これはユーザによって決定され、どのような文字の連なりにもなり得ます +-- の違いに注意してください。@c +数字とスペースも識別名に使用することができますが、@c +その場合クォートで囲まなければなりません +-- つまり、@code{\new Staff = "MyStaff 1" @var{music-expression}} +のようになります。@c 識別名はコンテキストのあるインスタンスを参照するために使用されます。@c このことを歌詞についてのセクションで見てきました。@c @ref{ボイスとボーカル} を参照してください。 @seealso -記譜法リファレンス: @ruser{Creating contexts} +記譜法リファレンス: @ruser{Creating and referencing contexts} @node エングラーバの説明 @@ -1768,8 +1632,8 @@ LilyPond 内部では、これらの規則と情報ビットは@emph{コンテ @cindex engravers (エングラーバ) -LilyPond によって作成された楽譜上にあるすべての記号は @code{Engraver} によって@c -作り出されます。@c +LilyPond によって作成された楽譜上にあるすべての記号は +@code{Engraver} によって作り出されます。@c つまり、譜を譜刻するエングラーバがあり、符頭を譜刻するエングラーバ、@c 符幹を譜刻するエングラーバ、連桁を譜刻するエングラーバなどなどです。@c そのようなエングラーバは 120 以上あります!@c @@ -1816,12 +1680,11 @@ LilyPond によって作成された楽譜上にあるすべての記号は @cod @tab 音部記号を譜刻します。 @item Completion_heads_engraver @tab 小節線をまたがる音符を分割します。 -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver - @tab 強弱記号 (クレッシェンド、デクレッシェンド) と強弱テキスト (p や f など) +@item Dynamic_engraver + @tab 強弱記号 (クレッシェンド、デクレッシェンド) と強弱テキスト (p や f など) を作成します。 @item Forbid_line_break_engraver - @tab 音楽要素がアクティブなままである場合に改行されることを防ぎます。(訳者: + @tab 音楽要素がアクティブなままである場合に改行されることを防ぎます。(訳者: いわゆる禁則処理) @item Key_engraver @tab 調号を作成します。 @@ -1941,14 +1804,14 @@ LilyPond によって作成された楽譜上にあるすべての記号は @cod @lilypond[quote,verbatim,ragged-right] << - \new Staff \relative c'' { + \new Staff \relative { \set Staff.instrumentName = #"Soprano" - c4 c - } - \new Staff \relative c' { - \set instrumentName = #"Alto" % Wrong! - d4 d - } + c''2 c + } + \new Staff \relative { + \set instrumentName = #"Alto" % Wrong! + d'2 d + } >> @end lilypond @@ -1972,14 +1835,14 @@ LilyPond 入力ファイルに対する特別なサポートを持つ@c そのプロパティの裏づけを行い (LilyPondTool を持つ JEdit)、@c あるいは未知のプロパティ名をハイライトします (ConTEXT)。@c そのような機能を持つエディタを使用していないのなら、内部リファレンスで@c -プロパティ名をチェックすることを推奨します: -@rinternals{Tunable context properties} や @rinternals{Contexts} +プロパティ名をチェックすることを推奨します: +@rinternals{Tunable context properties} や @rinternals{Contexts} を参照してください。 @code{instrumentName} プロパティは @code{Staff} コンテキストの中に@c セットされた場合にのみ効果を持ちますが、いくつかのプロパティは複数の@c コンテキストの中にセットすることができます。@c -例えば、プロパティ @code{extraNatural} はすべての譜に対してデフォルトで +例えば、プロパティ @code{extraNatural} はすべての譜に対してデフォルトで @code{##t} (真) にセットされています。@c ある特定の @code{Staff} コンテキストでこれを @code{##f} (偽) に@c セットした場合、その譜表の臨時記号にのみ適用されます。@c @@ -1989,13 +1852,13 @@ LilyPond 入力ファイルに対する特別なサポートを持つ@c @lilypond[quote,verbatim,ragged-right] << - \new Staff \relative c'' { - ais4 aes - } - \new Staff \relative c'' { + \new Staff \relative { + aeses'2 aes + } + \new Staff \relative { \set Staff.extraNatural = ##f - ais4 aes - } + aeses'2 aes + } >> @end lilypond @@ -2004,58 +1867,61 @@ LilyPond 入力ファイルに対する特別なサポートを持つ@c @lilypond[quote,verbatim,ragged-right] << - \new Staff \relative c'' { - ais4 aes - } - \new Staff \relative c'' { + \new Staff \relative { + aeses'2 aes + } + \new Staff \relative { \set Score.extraNatural = ##f - ais4 aes - } + aeses'2 aes + } >> @end lilypond -他の例としては、@code{clefOctavation} が @code{Score} コンテキストに@c +他の例としては、@code{clefTransposition} が @code{Score} コンテキストに@c セットされた場合、直ちにすべての譜でのオクターブの値を変更し、すべての譜に@c 適用される新しいデフォルト値をセットします。 -逆のことを行うコマンド @code{@bs{}unset} はコンテキストからプロパティを@c +逆のことを行うコマンド @code{\unset} はコンテキストからプロパティを@c 削除し、それによりたいていのプロパティはデフォルト値に戻ります。@c -通常、望みのことを達成するために新たな @code{@bs{}set} コマンドを@c -用いる場合、@code{@bs{}unset} は必要ありません。 +通常、望みのことを達成するために新たな @code{\set} コマンドを@c +用いる場合、@code{\unset} は必要ありません。 -@code{@bs{}set} と @code{@bs{}unset} コマンドは入力ファイルのどこにでも@c +@code{\set} と @code{\unset} コマンドは入力ファイルのどこにでも@c 現れる可能性があり、そのコマンドが出現した時点から、楽譜の終わりまたは@c -そのプロパティが再度 @code{@bs{}set} や @code{@bs{}unset} されるまで効果を@c +そのプロパティが再度 @code{\set} や @code{\unset} されるまで効果を@c 持ちます。@c フォント サイズを変更してみましょう。@c それにより (他のものに加えて) 符頭のサイズが何段階か変更されます。@c 変更は直前にセットされた値から行われるのではなく、デフォルト値から行われます。 -@lilypond[quote,verbatim,ragged-right,relative=1,fragment] -c4 -% make note heads smaller -\set fontSize = #-4 -d e -% make note heads larger -\set fontSize = #2.5 -f g -% return to default size -\unset fontSize -a b +@c KEEP LY +@lilypond[quote,verbatim,ragged-right] +\relative { + c'4 d + % 符頭を小さくします + \set fontSize = #-4 + e4 f | + % 符頭を大きくします + \set fontSize = #2.5 + g4 a + % デフォルトのサイズに戻します + \unset fontSize + b4 c | +} @end lilypond これまでにいくつかのタイプのプロパティ値をセットする方法を見てきました。@c -整数と番号の前には常にハッシュ記号 @code{#} が付き、真と偽の値は -2 つのハッシュ記号を付けて @code{##t} と @code{##f} +整数と番号の前には常にハッシュ記号 @code{#} が付き、真と偽の値は +2 つのハッシュ記号を付けて @code{##t} と @code{##f} によって指定されてるということに注意してください。@c テキスト プロパティは上で示したようにダブル クォーテーションによって@c 囲まれます。@c -しかしながら、後ほど、テキストは実際には非常に強力な @code{markup} コマンドを@c +しかしながら、後ほど、テキストは実際には非常に強力な @code{\markup} コマンドを@c 用いたもっと一般的な方法で指定できるということを見ていきます。 -@subsubheading Setting context properties with @code{\with} -@c \with を使ったコンテキスト プロパティの設定 +@subsubheading @code{\with} を使ったコンテキスト プロパティの設定 +@c Setting context properties with @code{\with} @funindex \with @funindex with @@ -2065,7 +1931,7 @@ a b セットされることもあるかもしれません。@c この設定がコンテキスト全体で保持される場合、この方法でプロパティ値を@c 指定すると明瞭になります。@c -コンテキストが @code{@bs{}new} コマンドで作成されるとき、その直後に +コンテキストが @code{@bs{}new} コマンドで作成されるとき、その直後に @code{@bs{}with @{ .. @}} ブロックが続き、その中でプロパティ値が@c セットされるかもしれません。@c 例えば、ある譜表全体で追加のナチュラルの表示を抑制しようとする場合、@c @@ -2076,62 +1942,64 @@ a b @end example @noindent -そして、以下のように使用します: +like this: @lilypond[quote,verbatim,ragged-right] << - \new Staff - \relative c'' { - gis ges aes ais + \new Staff { + \relative { + gisis'4 gis aeses aes + } } - \new Staff \with { extraNatural = ##f } - \relative c'' { - gis ges aes ais + \new Staff \with { extraNatural = ##f } { + \relative { + gisis'4 gis aeses aes + } } >> @end lilypond -この方法でプロパティをセットした場合でも、@code{@bs{}set} を使って動的に@c -変更されたり、@code{@bs{}unset} を使ってデフォルト値に@c -戻されたりするかもしれません。 +この方法でプロパティをセットした場合でも、@code{\set} +を使って動的に変更されたり、@c +@code{\unset} を使ってデフォルト値に戻されたりするかもしれません。 @cindex fontSize, default and setting (fontSize のデフォルトと設定) @code{fontSize} プロパティの扱いは異なります。@c -これが @code{@bs{}with} の中でセットされた場合、フォント サイズの@c +これが @code{\with} の中でセットされた場合、フォント サイズの@c デフォルト値をセットし直します。@c -そのあとでフォント サイズが @code{@bs{}set} によって変更された場合、@c -@code{@bs{}with} でセットされた新しいデフォルト値は -@code{@bs{}unset fontSize} コマンドによって元に戻されるかもしれません。 +そのあとでフォント サイズが @code{\set} によって変更された場合、@c +@code{\with} でセットされた新しいデフォルト値は +@code{\unset fontSize} コマンドによって元に戻されるかもしれません。 -@subsubheading Setting context properties with @code{\context} -@c \context を使ったコンテキスト プロパティの設定 +@subsubheading @code{\context} を使ったコンテキスト プロパティの設定 +@c Setting context properties with @code{\context} @cindex context properties, setting with \context (\context でコンテキスト プロパティを設定する) @funindex \context @funindex context コンテキスト プロパティの値は単一のコマンドによってある特定のタイプの@c -コンテキスト@emph{すべて} -- すべての @code{Staff} コンテキストなどのように +コンテキスト@emph{すべて} -- すべての @code{Staff} コンテキストなどのように -- にセットされるかもしれません。@c プロパティをセットするコンテキストのタイプは、@code{Staff} のような@c -そのコンテキストのタイプ名に接頭辞としてバック スラッシュを付けたもの --- @code{@bs{}Staff} のように -- によって指定されます。@c -プロパティ値をセットするための記述は上で紹介した @code{@bs{}with} ブロックの@c -中の記述と同じです。@c -この記述は @code{@bs{}layout} ブロック内部の @code{@bs{}context} ブロックの@c -中に置かれます。@c -各 @code{@bs{}context} ブロックは、その @code{@bs{}layout} ブロックが@c -置かれている @code{@bs{}score} または @code{@bs{}book} ブロック全体を通じて、@c +そのコンテキストのタイプ名に接頭辞としてバック スラッシュを付けたもの +-- @code{\Staff} のように -- によって指定されます。@c +プロパティ値をセットするための記述は上で紹介した @code{\with} ブロックの中の@c +記述と同じです。@c +この記述は @code{\layout} ブロック内部の @code{\context} ブロックの中に@c +置かれます。@c +各 @code{\context} ブロックは、その @code{\layout} ブロックが@c +置かれている @code{\score} または @code{\book} ブロック全体を通じて、@c 指定されたタイプのコンテキストすべてに対して効果を持ちます。@c ここで、記述方法を示すための例を挙げます: @lilypond[verbatim,quote] \score { \new Staff { - \relative c'' { - cis4 e d ces + \relative { + cisis''4 e d cis } } \layout { @@ -2143,23 +2011,45 @@ a b } @end lilypond +プロパティのオーバライドが score の中にあるどの譜にも適用されない場合: + +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \relative { + gisis'4 gis aeses aes + } + } + \new Staff { + \relative { + gisis'4 gis aeses aes + } + } + >> + \layout { + \context { + \Score extraNatural = ##f + } + } +} +@end lilypond + @noindent -この方法でセットされたコンテキスト プロパティは、@code{@bs{}with} ブロックの@c -中の記述によって、さらには、音楽表記の中に埋め込まれた -@code{@bs{}set} コマンドによって、ある特定のコンテキスト インスタンスでは@c +この方法でセットされたコンテキスト プロパティは、@code{\with} ブロックの@c +中の記述によって、さらには、音楽表記の中に埋め込まれた +@code{\set} コマンドによって、ある特定のコンテキスト インスタンスでは@c 上書きされるかもしれません。 @seealso -記譜法リファレンス: @ruser{Changing context default settings} -@c コンテキストのデフォルト設定の変更 -@c FIXME -@c uncomment when backslash-node-name issue is resolved -pm -@c ruser{The set command}. +記譜法リファレンス: +@ruser{Changing context default settings}, +@ruser{The set command} -内部リファレンス: @rinternals{Contexts}, +内部リファレンス: +@rinternals{Contexts}, @rinternals{Tunable context properties} -@c コンテキスト, 調整可能なコンテキスト プロパティ @node エングラーバを追加 / 削除する @@ -2176,35 +2066,36 @@ a b @funindex \remove @funindex remove -これまでに、コンテキストはそれぞれにいくつかのエングラーバを保持し、それぞれの@c -エングラーバは出力のある特定部分 -- 小節線、譜、符頭、符幹など -- の譜刻に@c -責任を持つということを見てきました。@c +これまでに、コンテキストはそれぞれにいくつかのエングラーバを保持し、@c +それぞれのエングラーバは出力のある特定部分 +-- 小節線、譜、符頭、符幹など -- の譜刻に責任を持つということを見てきました。@c あるエングラーバがコンテキストから削除されると、それはもはや出力を行いません。@c これは出力を変更するための荒っぽい方法ですが、役に立つ場合もあります。 -@subsubheading Changing a single context -@c 単一のコンテキストの変更 +@subsubheading 単一のコンテキストの変更 +@c Changing a single context あるコンテキストからあるエングラーバを削除するには、前のセクションで@c -見てたきたのと同様に、コンテキスト作成コマンドの直後に置く -@code{@bs{}with} コマンドを使用します。 +見てたきたのと同様に、コンテキスト作成コマンドの直後に置く +@code{\with} コマンドを使用します。 例として、前のセクションで使用した例から譜表線を取り除いてみましょう。@c 譜表線は @code{Staff_symbol_engraver} によって作り出されるということを@c 思い出してください。 +@c KEEP LY @lilypond[quote,verbatim,ragged-right] \new Staff \with { - \remove Staff_symbol_engraver + \remove "Staff_symbol_engraver" } -\relative c' { - c4 - \set fontSize = #-4 % make note heads smaller - d e - \set fontSize = #2.5 % make note heads larger - f g - \unset fontSize % return to default size - a b +\relative { + c'4 d + \set fontSize = #-4 % 符頭を小さくします + e4 f | + \set fontSize = #2.5 % 符頭を大きくします + g4 a + \unset fontSize % デフォルトのサイズに戻します + b4 c | } @end lilypond @@ -2216,9 +2107,9 @@ a b @code{\consists @var{Engraver_name}}, @noindent -これを @code{@bs{}with} ブロックの中に置きます。@c +これを @code{\with} ブロックの中に置きます。@c いくつかのボーカル譜は、その譜表の中にある音符の範囲を示すために、@c -譜表の開始点に音域 (ambitus) を置きます -- +譜表の開始点に音域 (ambitus) を置きます -- @rglos{ambitus} を参照してください。@c 音域は @code{Ambitus_engraver} によって作成され、普通は、@c これはどのコンテキストにも含まれません。@c @@ -2228,16 +2119,18 @@ a b @lilypond[quote,verbatim,ragged-right] \new Staff << \new Voice \with { - \consists Ambitus_engraver - } - \relative c'' { - \voiceOne - c a b g + \consists "Ambitus_engraver" + } { + \relative { + \voiceOne + c''4 a b g + } } - \new Voice - \relative c' { - \voiceTwo - c e d f + \new Voice { + \relative { + \voiceTwo + c'4 e d f + } } >> @end lilypond @@ -2248,31 +2141,33 @@ a b @lilypond[quote,verbatim,ragged-right] \new Staff \with { - \consists Ambitus_engraver - } - << - \new Voice - \relative c'' { - \voiceOne - c a b g + \consists "Ambitus_engraver" +} +<< + \new Voice { + \relative { + \voiceOne + c''4 a b g + } } - \new Voice - \relative c' { - \voiceTwo - c e d f + \new Voice { + \relative { + \voiceTwo + c'4 e d f + } } >> @end lilypond -@subsubheading Changing all contexts of the same type -@c 同じタイプのコンテキストをすべて変更する +@subsubheading 同じタイプのコンテキストをすべて変更する +@c Changing all contexts of the same type @funindex \layout @funindex layout 上の例では、個々のコンテキストにエングラーバを追加あるいは削除する方法を@c 示しました。@c -さらに、そのコマンドを @code{@bs{}layout} ブロックの中の適当なコンテキストの@c +さらに、そのコマンドを @code{\layout} ブロックの中の適当なコンテキストの@c 中に置くことによって、ある特定のタイプのコンテキストすべてにエングラーバを@c 追加あるいは削除することもできます。@c 例えば、4 つの譜表を持つ楽譜ですべての譜表に音域を表示する場合、@c @@ -2281,33 +2176,41 @@ a b @lilypond[quote,verbatim,ragged-right] \score { << - \new Staff << - \relative c'' { c a b g } - >> - \new Staff << - \relative c' { c a b g } - >> - \new Staff << + \new Staff { + \relative { + c''4 a b g + } + } + \new Staff { + \relative { + c'4 a b g + } + } + \new Staff { \clef "G_8" - \relative c' { c a b g } - >> - \new Staff << + \relative { + c'4 a b g + } + } + \new Staff { \clef "bass" - \relative c { c a b g } - >> + \relative { + c4 a b g + } + } >> \layout { \context { \Staff - \consists Ambitus_engraver + \consists "Ambitus_engraver" } } } @end lilypond @noindent -また、コンテキスト プロパティの値も、上記と同様に -@code{@bs{}context} ブロックの中に @code{@bs{}set} を含ませることによって、@c +また、コンテキスト プロパティの値も、上記と同様に +@code{\context} ブロックの中に @code{\set} を含ませることによって、@c ある特定のタイプのコンテキストすべてに対してセットすることができます。 @@ -2316,16 +2219,22 @@ a b @ruser{Changing context default settings} @c コンテキスト プラグインの変更, コンテキストのデフォルト設定の変更 +@knownissues +@code{Stem_engraver} と @code{Beam_engraver} はそれらが描くオブジェクトを@c +符頭にくっつけます。@c +@code{Note_heads_engraver} が削除されると、符頭は作られず、@c +それゆえ符幹も連桁も作られません。 + @node テンプレートを拡張する @section テンプレートを拡張する @translationof Extending the templates あなたはチュートリアルを読み終えました。@c -あなたはどのように音楽を書くかを知っていて、基礎となるコンセプトを@c -理解しています。@c -しかし、どうやったらあなたはあなたが望む譜表を手に入れられるでしょうか?@c -あなたにとって良いスタート地点となるかもしれない多くのテンプレートがあります +あなたはどのように楽譜を書くかを知っていて、@c +基礎となるコンセプトを理解しています。@c +しかし、どうやったらあなたはあなたが望む譜を手に入れられるでしょうか?@c +あなたにとって良いスタート地点となるかもしれない多くのテンプレートがあります (@ref{テンプレート} を参照してください)。@c しかしながら、あなたの望むものがそこでカバーされていなかったらどうしましょう?@c 続きを読んでください。 @@ -2351,8 +2260,9 @@ a b @example \version @w{"@version{}"} -melody = \relative c' @{ - \clef treble + +melody = \relative @{ + \clef "treble" \key c \major \time 4/4 a4 b c d @@ -2380,8 +2290,9 @@ text = \lyricmode @{ @example \version @w{"@version{}"} -melody = \relative c' @{ - \clef treble + +melody = \relative @{ + \clef "treble" \key c \major \time 4/4 a4 b c d @@ -2396,32 +2307,33 @@ melody = \relative c' @{ @code{\version} コマンドは 2 つも必要ありません。@c @code{melody} セクションは必要です。@c -@code{\score} セクションは 2 つも必要ありません -- @code{\score} が -2 つあると、2 つのパートがばらばらになります。@c +@code{\score} セクションは 2 つも必要ありません +-- @code{\score} が 2 つあると、2 つのパートがばらばらになります。@c 2 つのパートをデュオのように一緒にしたいのです。@c @code{\score} セクションの中に @code{\layout} や @code{\midi} は 2 つも@c 必要ありません。 -単に @code{melody} セクションをカット&コピーした場合、@code{melody} 定義が -2 つになります。@c -これはエラーにはなりませんが、2 番目の定義が両方の旋律で@c -使われることになります。@c +単に @code{melody} セクションをカット&コピーした場合、@c +@code{melody} 定義が 2 つになります。@c +これはエラーにはなりませんが、@ +2 番目の定義が両方の旋律で使われることになります。@c そのため、2 つの旋律を区別するためにリネームします。@c -ソプラノ用のセクションを @code{sopranoMusic} と呼び、チェロ用のセクションを -@code{celloMusic} と呼ぶことにします。@c +ソプラノ用のセクションを @code{sopranoMusic} と呼び、@c +チェロ用のセクションを @code{celloMusic} と呼ぶことにします。@c リネームするときに、@code{text} を @code{sopranoLyrics} とりネームしましょう。@c -これらのインスタンスをリネームすることも忘れないでください −- -初期定義 (@code{melody = \relative c' @{ } 部分) とその名前が@c +これらのインスタンスをリネームすることも忘れないでください +−- 初期定義 (@code{melody = \relative c' @{ } 部分) とその名前が@c 使われているところ (@code{\score セクションの中}) の両方です。 -リネームする際に、チェロ パートの譜表も変更しましょう −- 通常、チェロは@c -低音部を使用します。@c +リネームする際に、チェロ パートの譜も変更しましょう +−- 通常、チェロは低音部を使用します。@c さらに、チェロの音符を変えてみます。 @example \version @w{"@version{}"} -sopranoMusic = \relative c' @{ - \clef treble + +sopranoMusic = \relative @{ + \clef "treble" \key c \major \time 4/4 a4 b c d @@ -2431,8 +2343,8 @@ sopranoLyrics = \lyricmode @{ Aaa Bee Cee Dee @} -celloMusic = \relative c @{ - \clef bass +celloMusic = \relative @{ + \clef "bass" \key c \major \time 4/4 d4 g fis8 e d4 @@ -2451,19 +2363,19 @@ celloMusic = \relative c @{ @} @end example -これでうまくいくように見えますが、チェロ パートが楽譜に表示されません −- -チェロ パートを @code{\score} セクションの中で使っていないからです。@c -チェロ パートをソプラノ パートの下に表示させたいのなら、以下をソプラノの@c -譜の下に追加する必要があります: +これでうまくいくように見えますが、チェロ パートが楽譜に表示されません +−- チェロ パートを @code{\score} セクションの中で使っていないからです。@c +チェロ パートをソプラノ パートの下に表示させたいのなら、@c +以下をソプラノの譜の下に追加する必要があります: @example \new Staff \celloMusic @end example @noindent -さらに、音楽を @code{<<} と @code{>>} で囲む必要もあります −- これは LilyPond -に複数のもの (この場合は 2 つの @code{Stave}) が同時に起こるということを@c -知らせます。@c +さらに、音楽を @code{<<} と @code{>>} で囲む必要もあります +−- これは LilyPond に複数のもの (この場合は 2 つの @code{Stave}) + が同時に起こるということを知らせます。@c @code{\score} は以下のようになります: @c Indentation in this example is deliberately poor @@ -2491,8 +2403,8 @@ celloMusic = \relative c @{ ここで、完成したソプラノとチェロ用のテンプレートを挙げます。 @lilypond[quote,verbatim,ragged-right,addversion] -sopranoMusic = \relative c' { - \clef treble +sopranoMusic = \relative { + \clef "treble" \key c \major \time 4/4 a4 b c d @@ -2502,8 +2414,8 @@ sopranoLyrics = \lyricmode { Aaa Bee Cee Dee } -celloMusic = \relative c { - \clef bass +celloMusic = \relative { + \clef "bass" \key c \major \time 4/4 d4 g fis8 e d4 @@ -2528,8 +2440,7 @@ celloMusic = \relative c { @seealso 開始点となるテンプレートは付録 @q{テンプレート} で見つけることができます。@c -@ref{単一の譜表} を参照してください。 -@c 単一の譜 +@ref{Single staff templates} を参照してください。 @node 4 パート SATB ボーカル譜 @@ -2539,48 +2450,54 @@ celloMusic = \relative c { @cindex template, SATB (SATB テンプレート) @cindex SATB template (SATB テンプレート) -Mendelssohn の Elijah や Handel の Messiah などのオーケストラ伴奏付きの +Mendelssohn の Elijah や Handel の Messiah などのオーケストラ伴奏付きの 4 パート聖歌隊のために書かれたボーカル譜の多くは 4 つの譜上に@c -音符と歌詞を持ち、それぞれの譜は SATB (ソプラノ、アルト、テナー、バス) のうちの +音符と歌詞を持ち、それぞれの譜は SATB (ソプラノ、アルト、テナー、バス) のうちの 1 つであり、その下にオーケストラ伴奏のピアノ譜が付きます。@c ここで、Handel の Messiah から例を挙げます: @c The following should appear as music without code @lilypond[quote,ragged-right] global = { \key d \major \time 4/4 } -sopranoMusic = \relative c'' { + +sopranoMusic = \relative { \clef "treble" - r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | + r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 | } sopranoWords = \lyricmode { - Wor -- thy is the lamb that was slain + Wor -- thy | is the lamb | that was slain | } -altoMusic = \relative a' { + +altoMusic = \relative { \clef "treble" - r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 | + r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 | } altoWords = \sopranoWords -tenorMusic = \relative c' { + +tenorMusic = \relative { \clef "G_8" - r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | + r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 | } tenorWords = \sopranoWords -bassMusic = \relative c' { + +bassMusic = \relative { \clef "bass" - r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | + r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 | } bassWords = \sopranoWords -upper = \relative a' { + +upper = \relative { \clef "treble" \global - r4 2 4 | + r4 2 4 | 4. 8 2 | 4 2 | } -lower = \relative c, { + +lower = \relative { \clef "bass" \global - 4 2 4 | + 4 2 4 | 4. 8 2 | 4 2 | } @@ -2590,26 +2507,41 @@ lower = \relative c, { \new ChoirStaff << \new Staff = "sopranos" << \set Staff.instrumentName = #"Soprano" - \new Voice = "sopranos" { \global \sopranoMusic } + \new Voice = "sopranos" { + \global + \sopranoMusic + } >> - \new Lyrics \lyricsto "sopranos" { \sopranoWords } + \new Lyrics \lyricsto "sopranos" { + \sopranoWords + } \new Staff = "altos" << \set Staff.instrumentName = #"Alto" - \new Voice = "altos" { \global \altoMusic } + \new Voice = "altos" { + \global + \altoMusic + } >> \new Lyrics \lyricsto "altos" { \altoWords } \new Staff = "tenors" << \set Staff.instrumentName = #"Tenor" - \new Voice = "tenors" { \global \tenorMusic } + \new Voice = "tenors" { + \global + \tenorMusic + } >> \new Lyrics \lyricsto "tenors" { \tenorWords } \new Staff = "basses" << \set Staff.instrumentName = #"Bass" - \new Voice = "basses" { \global \bassMusic } + \new Voice = "basses" { + \global + \bassMusic + } >> - \new Lyrics \lyricsto "basses" { \bassWords } + \new Lyrics \lyricsto "basses" { + \bassWords + } >> % end ChoirStaff - \new PianoStaff << \set PianoStaff.instrumentName = #"Piano" \new Staff = "upper" \upper @@ -2620,9 +2552,9 @@ lower = \relative c, { @end lilypond このレイアウトをそのまま提供するテンプレートはありません。@c -最も近いのは @q{SATB ボーカル譜と自動ピアノ伴奏譜} -- @ref{合唱} を@c -参照してください -- ですが、レイアウトを変更して、ボーカル パートから@c -自動的に生成されたものではないピアノ伴奏譜を付け加える必要があります。@c +最も近いのは @ref{SATB vocal score and automatic piano reduction} +ですが、レイアウトを変更して、ボーカル パートから自動的に生成されたものでは@c +ないピアノ伴奏譜を付け加える必要があります。@c ボーカル パートのための音楽と歌詞を保持している変数はそのまま使えますが、@c ピアノ伴奏譜のための変数を付け加える必要があります。 @@ -2640,28 +2572,48 @@ lower = \relative c, { 以上のことを @code{ChoirStaff} に対して行います: @example - \new ChoirStaff << - \new Staff = "sopranos" << - \set Staff.instrumentName = #"Soprano" - \new Voice = "sopranos" @{ \global \sopranoMusic @} - >> - \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @} - \new Staff = "altos" << - \set Staff.instrumentName = #"Alto" - \new Voice = "altos" @{ \global \altoMusic @} - >> - \new Lyrics \lyricsto "altos" @{ \altoWords @} - \new Staff = "tenors" << - \set Staff.instrumentName = #"Tenor" - \new Voice = "tenors" @{ \global \tenorMusic @} - >> - \new Lyrics \lyricsto "tenors" @{ \tenorWords @} - \new Staff = "basses" << - \set Staff.instrumentName = #"Bass" - \new Voice = "basses" @{ \global \bassMusic @} - >> - \new Lyrics \lyricsto "basses" @{ \bassWords @} - >> % end ChoirStaff +\new ChoirStaff << + \new Staff = "sopranos" << + \set Staff.instrumentName = #"Soprano" + \new Voice = "sopranos" @{ + \global + \sopranoMusic + @} + >> + \new Lyrics \lyricsto "sopranos" @{ + \sopranoWords + @} + \new Staff = "altos" << + \set Staff.instrumentName = #"Alto" + \new Voice = "altos" @{ + \global + \altoMusic + @} + >> + \new Lyrics \lyricsto "altos" @{ + \altoWords + @} + \new Staff = "tenors" << + \set Staff.instrumentName = #"Tenor" + \new Voice = "tenors" @{ + \global + \tenorMusic + @} + >> + \new Lyrics \lyricsto "tenors" @{ + \tenorWords + @} + \new Staff = "basses" << + \set Staff.instrumentName = #"Bass" + \new Voice = "basses" @{ + \global + \bassMusic + @} + >> + \new Lyrics \lyricsto "basses" @{ + \bassWords + @} +>> % end ChoirStaff @end example 次にピアノ パートに取り掛からなければなりません。@c @@ -2678,30 +2630,50 @@ lower = \relative c, { そして、@code{upper} と @code{lower} に変数定義を付け加えます。 -@code{ChoirStaff} を @code{PianoStaff} の上に置きたいので、それらを山括弧を@c -使って組み合わせなければなりません: +@code{ChoirStaff} を @code{PianoStaff} の上に置きたいので、@c +それらを山括弧を使って組み合わせなければなりません: @example << % combine ChoirStaff and PianoStaff one above the other \new ChoirStaff << \new Staff = "sopranos" << - \new Voice = "sopranos" @{ \global \sopranoMusic @} + \new Voice = "sopranos" @{ + \global + \sopranoMusic + @} >> - \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @} + \new Lyrics \lyricsto "sopranos" @{ + \sopranoWords + @} \new Staff = "altos" << - \new Voice = "altos" @{ \global \altoMusic @} + \new Voice = "altos" @{ + \global + \altoMusic + @} >> - \new Lyrics \lyricsto "altos" @{ \altoWords @} + \new Lyrics \lyricsto "altos" @{ + \altoWords + @} \new Staff = "tenors" << \clef "G_8" % tenor clef - \new Voice = "tenors" @{ \global \tenorMusic @} + \new Voice = "tenors" @{ + \global + \tenorMusic + @} >> - \new Lyrics \lyricsto "tenors" @{ \tenorWords @} + \new Lyrics \lyricsto "tenors" @{ + \tenorWords + @} \new Staff = "basses" << \clef "bass" - \new Voice = "basses" @{ \global \bassMusic @} + \new Voice = "basses" @{ + \global + \bassMusic + @} >> - \new Lyrics \lyricsto "basses" @{ \bassWords @} + \new Lyrics \lyricsto "basses" @{ + \bassWords + @} >> % end ChoirStaff \new PianoStaff << @@ -2714,69 +2686,90 @@ lower = \relative c, { これらすべてを組み合わせて、上の例の 3 小節分の音楽を付け加えます: +@c KEEP LY @lilypond[quote,verbatim,ragged-right,addversion] global = { \key d \major \time 4/4 } -sopranoMusic = \relative c'' { +sopranoMusic = \relative { \clef "treble" - r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | + r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 | } sopranoWords = \lyricmode { - Wor -- thy is the lamb that was slain + Wor -- thy | is the lamb | that was slain | } -altoMusic = \relative a' { +altoMusic = \relative { \clef "treble" - r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 | + r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 | } altoWords = \sopranoWords -tenorMusic = \relative c' { +tenorMusic = \relative { \clef "G_8" - r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | + r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 | } tenorWords = \sopranoWords -bassMusic = \relative c' { +bassMusic = \relative { \clef "bass" - r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | + r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 | } bassWords = \sopranoWords -upper = \relative a' { +upper = \relative { \clef "treble" \global - r4 2 4 | + r4 2 4 | 4. 8 2 | 4 2 | } -lower = \relative c, { +lower = \relative { \clef "bass" \global - 4 2 4 | + 4 2 4 | 4. 8 2 | 4 2 | } \score { - << % combine ChoirStaff and PianoStaff in parallel + << % ChoirStaff と PianoStaff を並行に組み合わせます \new ChoirStaff << \new Staff = "sopranos" << \set Staff.instrumentName = #"Soprano" - \new Voice = "sopranos" { \global \sopranoMusic } + \new Voice = "sopranos" { + \global + \sopranoMusic + } >> - \new Lyrics \lyricsto "sopranos" { \sopranoWords } + \new Lyrics \lyricsto "sopranos" { + \sopranoWords + } \new Staff = "altos" << \set Staff.instrumentName = #"Alto" - \new Voice = "altos" { \global \altoMusic } + \new Voice = "altos" { + \global + \altoMusic + } >> - \new Lyrics \lyricsto "altos" { \altoWords } + \new Lyrics \lyricsto "altos" { + \altoWords + } \new Staff = "tenors" << \set Staff.instrumentName = #"Tenor" - \new Voice = "tenors" { \global \tenorMusic } + \new Voice = "tenors" { + \global + \tenorMusic + } >> - \new Lyrics \lyricsto "tenors" { \tenorWords } + \new Lyrics \lyricsto "tenors" { + \tenorWords + } \new Staff = "basses" << \set Staff.instrumentName = #"Bass" - \new Voice = "basses" { \global \bassMusic } + \new Voice = "basses" { + \global + \bassMusic + } >> - \new Lyrics \lyricsto "basses" { \bassWords } - >> % end ChoirStaff + \new Lyrics \lyricsto "basses" { + \bassWords + } + >> % ChoirStaff の終了 \new PianoStaff << \set PianoStaff.instrumentName = #"Piano " @@ -2809,13 +2802,14 @@ LilyPond コードを書くことにある程度熟練した後、あなたは 最後にスコア ブロックに取り掛かります。@c 以上のことを概要から始めて、その後に詳細を詰めていきます。 -@emph{Jesu, meine Freude} -- これは 2 つの鍵盤とペダルを持つオルガンのために@c -書かれたものです -- をベースとする Bach の前奏曲の最初の 2 小節を使います。@c +@emph{Jesu, meine Freude} +-- これは 2 つの鍵盤とペダルを持つオルガンのために書かれたものです +-- をベースとする Bach の前奏曲の最初の 2 小節を使います。@c このセクションの最後でこの音楽の最初の 2 小節を見ることができます。@c -上段鍵盤パートは 2 つのボイスを持ち、下段鍵盤とペダルはそれぞれ 1 つのボイスを@c -持ちます。@c -そのため、4 つの音楽定義と、拍子記号と調号を定義するための 1 つの音楽定義が@c -必要となります: +上段鍵盤パートは 2 つのボイスを持ち、@c +下段鍵盤とペダルはそれぞれ 1 つのボイスを持ちます。@c +そのため、4 つの音楽定義と、@c +拍子記号と調号を定義するための 1 つの音楽定義が必要となります: @example \version @w{"@version{}"} @@ -2823,11 +2817,11 @@ LilyPond コードを書くことにある程度熟練した後、あなたは title = "Jesu, meine Freude" composer = "J S Bach" @} -TimeKey = @{ \time 4/4 \key c \minor @} -ManualOneVoiceOneMusic = @{s1@} -ManualOneVoiceTwoMusic = @{s1@} -ManualTwoMusic = @{s1@} -PedalOrganMusic = @{s1@} +keyTime = @{ \key c \minor \time 4/4 @} +ManualOneVoiceOneMusic = @{ s1 @} +ManualOneVoiceTwoMusic = @{ s1 @} +ManualTwoMusic = @{ s1 @} +PedalOrganMusic = @{ s1 @} \score @{ @} @@ -2838,28 +2832,34 @@ PedalOrganMusic = @{s1@} 次に、スコア ブロックで何をすべきなのかを見ていきましょう。@c 単純に望む譜表構造を反映させます。@c -通常、オルガン音楽は 3 つの譜で書かれます -- 2 つの鍵盤とペダルのための@c -譜です。@c +通常、オルガン音楽は 3 つの譜で書かれます +-- 2 つの鍵盤とペダルのための譜です。@c 鍵盤の譜はブレース (譜表の左端の波括弧) でまとめられているべきなので、@c それらに対して @code{PianoStaff} を使用する必要があります。@c 1 番目の鍵盤パートは 2 つのボイスを必要とし、2 番目の鍵盤パートは 1 つだけ@c ボイスを必要とします。 @example - \new PianoStaff << - \new Staff = "ManualOne" << - \new Voice @{ \ManualOneVoiceOneMusic @} - \new Voice @{ \ManualOneVoiceTwoMusic @} - >> % end ManualOne Staff context - \new Staff = "ManualTwo" << - \new Voice @{ \ManualTwoMusic @} - >> % end ManualTwo Staff context - >> % end PianoStaff context +\new PianoStaff << + \new Staff = "ManualOne" << + \new Voice @{ + \ManualOneVoiceOneMusic + @} + \new Voice @{ + \ManualOneVoiceTwoMusic + @} + >> % ManualOne Staff コンテキストの終了 + \new Staff = "ManualTwo" << + \new Voice @{ + \ManualTwoMusic + @} + >> % ManualTwo Staff コンテキストの終了 +>> % PianoStaff コンテキストの終了 @end example 次にペダル オルガンのための譜表を付け加える必要があります。@c これは @code{PianoStaff} の下にきますが、@code{PianoStaff} と@c -同時進行でなければなりませんので、ペダル オルガンのための譜表と +同時進行でなければなりませんので、ペダル オルガンのための譜表と @code{PianoStaff} を山括弧で囲む必要があります。@c これを忘れるとエラーがログ ファイルに生成されます。@c このエラーはあなたが早かれ遅かれ遭遇する一般的なミスです!@c @@ -2867,18 +2867,26 @@ PedalOrganMusic = @{s1@} この山括弧を削除し、コンパイルしてみてください。 @example -<< % PianoStaff and Pedal Staff must be simultaneous +<< % PianoStaff と Pedal Staff を同時進行させる必要があります \new PianoStaff << \new Staff = "ManualOne" << - \new Voice @{ \ManualOneVoiceOneMusic @} - \new Voice @{ \ManualOneVoiceTwoMusic @} - >> % end ManualOne Staff context + \new Voice @{ + \ManualOneVoiceOneMusic + @} + \new Voice @{ + \ManualOneVoiceTwoMusic + @} + >> % ManualOne Staff コンテキストの終了 \new Staff = "ManualTwo" << - \new Voice @{ \ManualTwoMusic @} - >> % end ManualTwo Staff context - >> % end PianoStaff context + \new Voice @{ + \ManualTwoMusic + @} + >> % ManualTwo Staff コンテキストの終了 + >> % PianoStaff コンテキストの終了 \new Staff = "PedalOrgan" << - \new Voice @{ \PedalOrganMusic @} + \new Voice @{ + \PedalOrganMusic + @} >> >> @end example @@ -2894,85 +2902,182 @@ Voice はこれとは対照的に、あなたの音楽を連続して演奏す この構造をスコア ブロックに付け加えて、インデントを調整しましょう。@c さらに、適切な音部記号を付け加え、@code{\voiceOne} と @code{\voiceTwo} を@c 使って上部譜の各ボイスで符幹、タイ、スラーの向きが正しくなるようにし、@c -あらかじめ定義しておいた変数 @code{\TimeKey} を使って拍子記号と調号を@c +あらかじめ定義しておいた変数 @code{\keyTime} を使って拍子記号と調号を@c 各譜に挿入します。 @example \score @{ - << % PianoStaff and Pedal Staff must be simultaneous + << % PianoStaff と Pedal Staff を同時進行させる必要があります \new PianoStaff << \new Staff = "ManualOne" << - \TimeKey % set time signature and key + \keyTime % 調号と拍子記号をセットします \clef "treble" - \new Voice @{ \voiceOne \ManualOneVoiceOneMusic @} - \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @} - >> % end ManualOne Staff context + \new Voice @{ + \voiceOne + \ManualOneVoiceOneMusic + @} + \new Voice @{ + \voiceTwo + \ManualOneVoiceTwoMusic + @} + >> % ManualOne Staff コンテキストの終了 \new Staff = "ManualTwo" << - \TimeKey + \keyTime \clef "bass" - \new Voice @{ \ManualTwoMusic @} - >> % end ManualTwo Staff context - >> % end PianoStaff context + \new Voice @{ + \ManualTwoMusic + @} + >> % ManualTwo Staff コンテキストの終了 + >> % PianoStaff コンテキストの終了 \new Staff = "PedalOrgan" << - \TimeKey + \keyTime \clef "bass" - \new Voice @{ \PedalOrganMusic @} - >> % end PedalOrgan Staff + \new Voice @{ + \PedalOrganMusic + @} + >> % PedalOrgan Staff の終了 + >> +@} % Score コンテキストの終了 +@end example + +@cindex stretchability of staves (譜の伸縮性) +@cindex staves, stretchability (譜の伸縮性) + +上のオルガン譜のレイアウトはほぼ完璧です。@c +しかしながら、それぞれの譜を見ているだけではわからない、@c +ちょっとした欠陥があります。@c +ペダル譜と左手譜の距離は右手譜と左手譜の距離とほぼ等しくなるべきです。@c +詳しく説明すると、@code{PianoStaff} コンテキストの譜の伸縮性は制限される +(制限により、左手譜と右手譜の距離はあまりにも大きくなることはありません) +ので、ペダル譜も同様に制限されるべきです。 + +@cindex sub-properties (サブ-プロパティ) +@cindex properties, sub-properties (サブ-プロパティ) +@cindex graphical objects (グラフィカル オブジェクト) +@cindex objects, graphical (グラフィカル オブジェクト) +@cindex grobs (グラフィカル オブジェクト) + +譜の伸縮性は @q{グラフィカル オブジェクト} @code{VerticalAxisGroup} +の @code{staff-staff-spacing} プロパティで制御することができます。 +(LilyPond ドキュメントの中でグラフィカル オブジェクトは @q{grobs} +と呼ばれることが多いです。) +今、グラフィカル オブジェクトの詳細について知らなくても心配しないでください。@c +後で詳しく説明します。@c +興味があるのなら、@ruser{Overview of modifying properties} を見てください。@c +今回は、@code{stretchability} サブ-プロパティを変更する必要があるだけです。@c +さらに興味があるのなら、グラフィカル オブジェクト @code{VerticalAxisGroup} +の定義を調べていくと、ファイル @file{scm/define-grobs.scm} の中に +@code{staff-staff-spacing} プロパティのデフォルト値を見つけることができます。@c +@code{stretchability} の値は、@code{PianoStaff} コンテキスト +(これはファイル @file{ly/engraver-init.ly} の中にあります) +の定義から来ていて、2 つの値は等価です。 + +@example +\score @{ + << % PianoStaff と Pedal Staff を同時進行させる必要があります + \new PianoStaff << + \new Staff = "ManualOne" << + \keyTime % 調号と拍子記号をセットします + \clef "treble" + \new Voice @{ + \voiceOne + \ManualOneVoiceOneMusic + @} + \new Voice @{ + \voiceTwo + \ManualOneVoiceTwoMusic + @} + >> % ManualOne Staff コンテキストの終了 + \new Staff = "ManualTwo" \with @{ + \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 + @} << + \keyTime + \clef "bass" + \new Voice @{ + \ManualTwoMusic + @} + >> % ManualTwo Staff コンテキストの終了 + >> % PianoStaff コンテキストの終了 + \new Staff = "PedalOrgan" << + \keyTime + \clef "bass" + \new Voice @{ + \PedalOrganMusic + @} + >> % PedalOrgan Staff の終了 >> -@} % end Score context +@} % Score コンテキストの終了 @end example これでこの構造は完成です。@c -3 つの譜表を持つオルガン音楽はいずれも同様の構造を持ちますが、@c +3 つの譜を持つオルガン譜はいずれも同様の構造を持ちますが、@c ボイスの数はさまざまになるかもしれません。@c この後に行うべきことは、音楽を付け加え、各パートを一緒にすることです。 +@c KEEP LY @lilypond[quote,verbatim,ragged-right,addversion] \header { title = "Jesu, meine Freude" composer = "J S Bach" } -TimeKey = { \time 4/4 \key c \minor } -ManualOneVoiceOneMusic = \relative g' { - g4 g f ees | d2 c2 | +keyTime = { \key c \minor \time 4/4 } +ManualOneVoiceOneMusic = \relative { + g'4 g f ees | + d2 c | } -ManualOneVoiceTwoMusic = \relative c' { - ees16 d ees8~ ees16 f ees d c8 d~ d c~ | - c c4 b8 c8. g16 c b c d | +ManualOneVoiceTwoMusic = \relative { + ees'16 d ees8~ 16 f ees d c8 d~ d c~ | + 8 c4 b8 c8. g16 c b c d | } -ManualTwoMusic = \relative c' { - c16 b c8~ c16 b c g a8 g~ g16 g aes ees | - f ees f d g aes g f ees d e8~ ees16 f ees d | +ManualTwoMusic = \relative { + c'16 b c8~ 16 b c g a8 g~ 16 g aes ees | + f16 ees f d g aes g f ees d ees8~ 16 f ees d | } -PedalOrganMusic = \relative c { - r8 c16 d ees d ees8~ ees16 a, b g c b c8 | +PedalOrganMusic = \relative { + r8 c16 d ees d ees8~ 16 a, b g c b c8 | r16 g ees f g f g8 c,2 | - } +} \score { - << % PianoStaff and Pedal Staff must be simultaneous + << % PianoStaff と Pedal Staff を同時進行させる必要があります \new PianoStaff << \new Staff = "ManualOne" << - \TimeKey % set time signature and key + \keyTime % 調号と拍子記号をセットします \clef "treble" - \new Voice { \voiceOne \ManualOneVoiceOneMusic } - \new Voice { \voiceTwo \ManualOneVoiceTwoMusic } - >> % end ManualOne Staff context - \new Staff = "ManualTwo" << - \TimeKey + \new Voice { + \voiceOne + \ManualOneVoiceOneMusic + } + \new Voice { + \voiceTwo + \ManualOneVoiceTwoMusic + } + >> % ManualOne Staff コンテキストの終了 + \new Staff = "ManualTwo" \with { + \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 + } << + \keyTime \clef "bass" - \new Voice { \ManualTwoMusic } - >> % end ManualTwo Staff context - >> % end PianoStaff context + \new Voice { + \ManualTwoMusic + } + >> % ManualTwo Staff コンテキストの終了 + >> % PianoStaff コンテキストの終了 \new Staff = "PedalOrgan" << - \TimeKey + \keyTime \clef "bass" - \new Voice { \PedalOrganMusic } - >> % end PedalOrgan Staff context + \new Voice { + \PedalOrganMusic + } + >> % PedalOrgan Staff コンテキストの終了 >> -} % end Score context +} % Score コンテキストの終了 @end lilypond +@seealso +音楽用語集: +@rglos{system} + @node 変数と関数を用いて入力の手間を省く @subsection 変数と関数を用いて入力の手間を省く @@ -2983,7 +3088,8 @@ PedalOrganMusic = \relative c { これまでに、以下のような記述を見てきました: @lilypond[quote,verbatim,ragged-right] -hornNotes = \relative c'' { c4 b dis c } +hornNotes = \relative { c''4 b dis c } + \score { { \hornNotes @@ -2995,9 +3101,14 @@ hornNotes = \relative c'' { c4 b dis c } 気付くかもしれません: @lilypond[quote,verbatim,ragged-right] -fragmentA = \relative c'' { a4 a8. b16 } -fragmentB = \relative c'' { a8. gis16 ees4 } -violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA } +fragmentA = \relative { a'4 a8. b16 } +fragmentB = \relative { a'8. gis16 ees4 } + +violin = \new Staff { + \fragmentA \fragmentA | + \fragmentB \fragmentA | +} + \score { { \violin @@ -3005,43 +3116,51 @@ violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA } } @end lilypond -さらに、これらの変数 (変数、マクロ、(ユーザ定義) コマンドなどと呼ばれます) を@c -調整のために使うこともできます: +さらに、これらの変数 (変数、マクロ、(ユーザ定義) コマンドなどと呼ばれます) +を調整のために使うこともできます: +@c TODO Avoid padtext - not needed with skylining @lilypond[quote,verbatim,ragged-right] -dolce = \markup{ \italic \bold dolce } -padText = { \once \override TextScript #'padding = #5.0 } -fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p } -violin = \relative c'' { +dolce = \markup { \italic \bold dolce } + +padText = { \once \override TextScript.padding = #5.0 } +fthenp =_\markup { + \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p +} + +violin = \relative { \repeat volta 2 { - c4._\dolce b8 a8 g a b | + c''4._\dolce b8 a8 g a b | \padText c4.^"hi there!" d8 e' f g d | c,4.\fthenp b8 c4 c-. | } } + \score { { \violin } -\layout{ragged-right=##t} + \layout { ragged-right = ##t } } @end lilypond -これらの明らかに変数は入力の手間を省くのに役立っています。@c -例えそれらの変数が 1 回しか使用されないとしても、@c -変数化することを考慮する価値があります -- 複雑さを減らします。@c -以前に使用した変数を使っていない例を見てみましょう。@c -それはとても読み難く、特に最後の行が読み難いです。 +これらの変数は明らかに入力の手間を省くのに役立っています。@c +例え 1 回しか使用しない音楽であっても、変数化することを考慮する価値はあります +-- 変数化は複雑さを減らします。@c +前の例を変数化しなかったものを見てみましょう。@c +とても読み難く、特に最後の行が読み難いです。 @example -violin = \relative c'' @{ +violin = \relative @{ \repeat volta 2 @{ - c4._\markup@{ \italic \bold dolce @} b8 a8 g a b | - \once \override TextScript #'padding = #5.0 + c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b | + \once \override TextScript.padding = #5.0 c4.^"hi there!" d8 e' f g d | - c,4.\markup@{ \dynamic f \italic \small @{ 2nd @} - \hspace #0.1 \dynamic p @} b8 c4 c-. | + c,4.\markup @{ + \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p + @} + b8 c4 c-. | @} @} @end example @@ -3049,45 +3168,44 @@ violin = \relative c'' @{ @c TODO Replace the following with a better example -td @c Skylining handles this correctly without padText -これまでに見てきたのは静的な置き換えです -- -LilyPond は @code{@bs{}padText} を見ると、それを定義した内容 +これまでに見てきたのは静的な置き換えです +-- LilyPond は @code{\padText} を見つけると、それを定義した内容 (つまり、@code{padText=} の右側にあるもの) に置き換えます。 LilyPond は非静的な置き換えも処理できます (それらを関数と見なすことができます)。 @lilypond[quote,verbatim,ragged-right] padText = -#(define-music-function (parser location padding) (number?) - #{ - \once \override TextScript #'padding = #$padding - #}) - -\relative c''' { - c4^"piu mosso" b a b +#(define-music-function + (padding) + (number?) + #{ + \once \override TextScript.padding = #padding + #}) + +\relative { + c'''4^"piu mosso" b a b | \padText #1.8 - c4^"piu mosso" d e f + c4^"piu mosso" d e f | \padText #2.6 - c4^"piu mosso" fis a g + c4^"piu mosso" fis a g | } @end lilypond 変数を使うことは、LilyPond 入力構文に変更があった場合の作業を減らす@c -良い方法でもあります (@rprogram{古い入力ファイルをアップデートする} を参照してください)。@c -あなたがあなたの入力ファイルすべてに使用する単一の定義 -(@code{@bs{}dolce} のような) を持っていて、構文が変更された場合、@c +良い方法でもあります (@rprogram{convert-ly を使ってファイルを更新する} +を参照してください)。@c +あなたがあなたの入力ファイルすべてに使用する単一の定義 +(@code{\dolce} のような) を持っていて、構文が変更された場合、@c すべての @code{.ly} ファイルを変更する代わりに、@c @code{@bs{}dolce} 定義をアップデートするだけで済みます。 +(@ref{スタイル シート} を参照してください。) @node 楽譜とパート @subsection 楽譜とパート @translationof Scores and parts -TODO: this is really old stuff from the really old tutorial. -Rewrite, fix, etc. Or maybe delete entirely. -gp -Include section on tags -td -and then move to section 5. Working ... -td - オーケストラ音楽では、すべての音符は 2 回譜刻されます。@c 1 回は演奏家のためのパート譜で、1 回は指揮者のための総譜で譜刻されます。@c 変数を使うことで二度手間を避けることができます。@c @@ -3099,9 +3217,9 @@ and then move to section 5. Working ... -td 以下のホルン/@/バスーン デュオのパートを保持しているとします: @example -hornNotes = \relative c @{ +hornNotes = \relative @{ \time 2/4 - r4 f8 a cis4 f e d + r4 f8 a | cis4 f | e4 d | @} @end example @@ -3110,6 +3228,7 @@ hornNotes = \relative c @{ @example \include "horn-music.ly" + \header @{ instrument = "Horn in F" @} @@ -3128,24 +3247,24 @@ hornNotes = \relative c @{ @noindent は、ファイルの中でその行が置かれている場所で、@c @file{horn-music.ly} の内容に置き換わり、@c -@code{hornNotes} はその後に定義されます。@c -コマンド @code{@bs{}transpose f@tie{}c'} は、@c -引数 @code{@bs{}hornNotes} は 5 度上へ移調すべきであるということを@c +@code{hornNotes} の定義になります。@c +@code{\transpose f@tie{}c'} は、@c +引数 @code{\hornNotes} は 5 度上へ移調すべきであるということを@c 示しています。@c @code{f} の音は譜面に表記された @code{c'} で表され、@c これは通常のフレンチ ホルンを F にチューニングすることに相当します。@c この移調により出力は以下のようになります: @lilypond[quote,ragged-right] -\transpose f c' \relative c { +\transpose f c' \relative { \time 2/4 - r4 f8 a cis4 f e d + r4 f8 a | cis4 f | e4 d | } @end lilypond アンサンブルでは、しばしばボイスの 1 つが何小節も演奏されないことがあります。@c これは特別な休符 -- 複小節休符 -- によって示されます。@c -これは大文字の @code{R} とその後に続く演奏時間 +これは大文字の @code{R} とその後に続く演奏時間 (全音符には @code{1}、半音符には @code{2} などです) で入力されます。@c この演奏時間に掛け算を行うことによって、@c さらに長い休符を構築することができます。@c @@ -3169,11 +3288,11 @@ R2*3 以下のような結果になります: @lilypond[quote,ragged-right] -\transpose f c' \relative c { +\transpose f c' \relative { \time 2/4 \set Score.skipBars = ##t - R2*3 - r4 f8 a cis4 f e d + R2*3 | + r4 f8 a | cis4 f | e4 d | } @end lilypond @@ -3195,15 +3314,18 @@ R2*3 そして、以下のような楽譜になります: @lilypond[quote,ragged-right] -\relative c << +\relative << \new Staff { - \time 2/4 R2*3 - r4 f8 a cis4 f e d + \clef "treble" + \time 2/4 + R2*3 | + r4 f8 a | cis4 f | e4 d | } \new Staff { - \clef bass - r4 d,8 f | gis4 c | b bes | - a8 e f4 | g d | gis f + \clef "bass" + \time 2/4 + r4 d,8 f | gis4 c | b4 bes | + a8 e f4 | g4 d | gis4 f | } >> @end lilypond