[ << デフォルトを変更する ] | [トップ][目次][インデックス][ ? ] | [ Notation manual tables >> ] | ||
[ < コンテキストを作成して参照する ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのプラグインを変更する > ] |
5.1.3 コンテキストを残しておく
通常、コンテキストは何もすることが無くなった最初の音楽的タイミングで消滅させられます。そのため、Voice
コンテキストはすべてのイベントを終えるとすぐに消滅し、Staff
コンテキストは保持しているすべての Voice
コンテキストのイベントが終了するとすぐに消滅する、などとなっています。このことは、早い段階のすでに消滅したコンテキスを参照する必要がある場合に、障害となります。例えば、\change
コマンドで譜を変更する場合、\lyricsto
コマンドで歌詞をボイスに結び付ける場合、あるいは、早い段階で登場したコンテキストに音楽イベントを追加する場合に障害となります。
この規則には 1 つ例外があります:
Staff
コンテキストや <<...>>
構造の中にある Voice
コンテキストのうち 1 つだけは、例え途中ですることが無くなったとしても、Staff
コンテキストあるいは
<<...>>
構造の終わりまで維持されます。このように維持されるコンテキストは、最初の {...}
構造の中にある最初のコンテキストであり、<<...>>
構造の中にあるものは無視されます。
各音楽タイミングで何かすることを持たせることにより、任意のコンテキストを残しておくことができます。Staff
コンテキストを残しておくには、それに含まれるボイスの 1 つが維持されることを保証する必要があります。ボイスを残しておく方法の 1 つに、ボイスに含まれる実際の音楽と並列に、空白休符をそのボイスに付け加えるという方法があります。残しておく必要があるすべての Voice
コンテキストに対して、空白休符を付け加える必要があります。ところどころで使用されるボイスがある場合、前述の例外によって必要なボイスを残そうとするよりは、それらのボイスすべてを残しておく方が安全です。
以下の例では、空白休符の追加を用いる方法で、ボイス A とボイス B の両方が楽曲全体を通して維持されます:
musicA = \relative { d''4 d d d } musicB = \relative { g'4 g g g } keepVoicesAlive = { << \new Voice = "A" { s1*5 } % Voice "A" を 5 小節の間、維持する \new Voice = "B" { s1*5 } % Voice "B" を 5 小節の間、維持する >> } music = { \context Voice = "A" { \voiceOneStyle \musicA } \context Voice = "B" { \voiceTwoStyle \musicB } \context Voice = "A" { \musicA } \context Voice = "B" { \musicB } \context Voice = "A" { \musicA } } \score { \new Staff << \keepVoicesAlive \music >> }
以下の例は、空白休符を用いる方法で、途切れ途切れのメロディに歌詞を持たせる方法を示しています。もちろん、実際に楽譜を書く場合は、メロディや伴奏は複数のセクションによって構成されることになります。
melody = \relative { a'4 a a a } accompaniment = \relative { d'4 d d d } words = \lyricmode { These words fol -- low the mel -- o -- dy } \score { << \new Staff = "music" { << \new Voice = "melody" { \voiceOne s1*4 % Voice "melody" を 4 小節の間、残します } { \new Voice = "accompaniment" { \voiceTwo \accompaniment } << \context Voice = "melody" { \melody } \context Voice = "accompaniment" { \accompaniment } >> \context Voice = "accompaniment" { \accompaniment } << \context Voice = "melody" { \melody } \context Voice = "accompaniment" { \accompaniment } >> } >> } \new Lyrics \with { alignAboveContext = #"music" } \lyricsto "melody" { \words } >> }
これに代わる方法として、メロディに直接空白休符を付け加えて、メロディが伴奏と揃うようにする方法があります – 多くの場合、こちらの方法の方が良いかもしれません:
melody = \relative { s1 % 1 小節スキップします a'4 a a a s1 % 1 小節スキップします a4 a a a } accompaniment = \relative { d'4 d d d d4 d d d d4 d d d d4 d d d } words = \lyricmode { These words fol -- low the mel -- o -- dy } \score { << \new Staff = "music" { << \new Voice = "melody" { \voiceOne \melody } \new Voice = "accompaniment" { \voiceTwo \accompaniment } >> } \new Lyrics \with { alignAboveContext = #"music" } \lyricsto "melody" { \words } >> }
[ << デフォルトを変更する ] | [トップ][目次][インデックス][ ? ] | [ Notation manual tables >> ] | ||
[ < コンテキストを作成して参照する ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのプラグインを変更する > ] |
他の言語: English, català, deutsch, español, français, italiano
About automatic language selection.