| [ << Repeats ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Repeats: repeatCommands を用いて入れ替え部分のテキストにマークアップを使用する ] | [ 上へ : Top ] | [ Simultaneous notes: 衝突を避けるための追加のボイス > ] |
Simultaneous notes
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 和音内の各音符のサイズを変更する > ] |
衝突を避けるための追加のボイス
複雑な多声音楽では、音符どうしの衝突を避けるために追加のボイスが必要になる場合があります。4 つ以上の並列ボイスが必要な場合には、追加のボイスは Scheme 関数 context-spec-music を用いて変数を定義することで追加できます。
voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
\relative c'' {
\time 3/4
\key d \minor
\partial 2
<<
\new Voice {
\voiceOne
a4. a8
e'4 e4. e8
f4 d4. c8
}
\new Voice {
\voiceTwo
d,2
d4 cis2
d4 bes2
}
\new Voice {
\voiceThree
f'2
bes4 a2
a4 s2
}
\new Voice {
\voiceFive
s2
g4 g2
f4 f2
}
>>
}
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 衝突を避けるための追加のボイス ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 自動パート結合のテキストを変更する > ] |
和音内の各音符のサイズを変更する
和音内の各音符の符頭は、和音内で \tweak を使用し、font-size
を変更することでサイズを変えられます。
和音の中 (< > の内部) では、変更したい音符の前に \tweak
コマンドを配置し、font-size とサイズ値の #-2
(非常に小さい) を指定します。
\relative c' {
<\tweak font-size #+2 c e g c
\tweak font-size #-2 e>1
^\markup { A tiny e }_\markup { A big c }
}
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 和音内の各音符のサイズを変更する ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: クラスタ > ] |
自動パート結合のテキストを変更する
自動パート結合機能を使用する際に、ソロやユニゾンを表示するテキストを変更することができます。
\new Staff <<
\set Staff.soloText = #"girl"
\set Staff.soloIIText = #"boy"
\set Staff.aDueText = #"together"
\partCombine
\relative c'' {
g4 g r r
a2 g
}
\relative c'' {
r4 r a( b)
a2 g
}
>>
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 自動パート結合のテキストを変更する ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 2 つのパートを 1 つの譜にまとめる > ] |
クラスタ
クラスタは、範囲内の音符が同時に演奏されることを示す手段です。
fragment = \relative c' {
c4 f <e d'>4
<g a>8 <e a> a4 c2 <d b>4
e2 c
}
<<
\new Staff \fragment
\new Staff \makeClusters \fragment
>>
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: クラスタ ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 複雑な和音を表示する > ] |
2 つのパートを 1 つの譜にまとめる
自動パート結合ツール (\partCombine コマンド) は、いくつかの異なるパートを同じ譜にまとめるものです。“solo” や “a2” といったテキスト指示は、デフォルトで追加されます。これらを削除するには、printPartCombineTexts プロパティを f
にセットします。賛美歌のような歌曲では、“solo/a2” のテキストを追加する必要は無いため、これらを削除すると良いでしょう。しかしながら、これらを削除した場合、ソロの指示も表示されなくなるため問題があるかもしれません。このような場合は、通常の多声構文を用いると良いでしょう。
このスニペットは、2 つのパートを 1 つの譜に表示する 3 つの方法を示しています:
通常の多声、テキストを削除した \partCombine、テキストのある
\partCombine の順です。
%% Combining pedal notes with clef changes
musicUp = \relative c'' {
\time 4/4
a4 c4.( g8) a4 |
g4 e' g,( a8 b) |
c b a2.
}
musicDown = \relative c'' {
g4 e4.( d8) c4 |
r2 g'4( f8 e) |
d2 \stemDown a
}
\score {
<<
\new Staff \with { instrumentName = "Standard polyphony" }
<< \musicUp \\ \musicDown >>
\new Staff \with {
instrumentName = "PartCombine without text"
printPartCombineTexts = ##f
}
\partCombine \musicUp \musicDown
\new Staff \with { instrumentName = "PartCombine with text" }
\partCombine \musicUp \musicDown
>>
\layout {
indent = 6.0\cm
\context {
\Score
\override SystemStartBar.collapse-height = #30
}
}
}
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 2 つのパートを 1 つの譜にまとめる ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 音符の水平位置を強制的に調整する > ] |
複雑な和音を表示する
同じ位置にあり臨時記号が異なる音符を含む和音を表示する方法です。
fixA = {
\once \override Stem.length = #11
}
fixB = {
\once \override NoteHead.X-offset = #1.7
\once \override Stem.length = #7
\once \override Stem.rotation = #'(45 0 0)
\once \override Stem.extra-offset = #'(-0.1 . -0.2)
\once \override Flag.style = #'no-flag
\once \override Accidental.extra-offset = #'(4 . -.1)
}
\relative c' {
<< { \fixA <b d!>8 } \\ { \voiceThree \fixB dis } >> s
}
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 複雑な和音を表示する ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: transparent プロパティを用いてオブジェクトを不可視にする > ] |
音符の水平位置を強制的に調整する
組版エンジンがうまく対処できない場合、次の構文で音符の水平位置をオーバライドすることができます。単位は譜スペースです。
\relative c' <<
{
<d g>2 <d g>
}
\\
{
<b f'>2
\once \override NoteColumn.force-hshift = #1.7
<b f'>2
}
>>
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 音符の水平位置を強制的に調整する ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 多声の音楽で付点付きの音符を移動する > ] |
transparent プロパティを用いてオブジェクトを不可視にする
transparent プロパティをセットすると、オブジェクトは“透明なインク”で描かれます: つまり、オブジェクトは表示されませんが、その他の性質は残ったままになるということです。オブジェクトはスペースを占有し、衝突が考慮され、スラー、タイ、連桁を付け加えることができます。
このスニペットは異なるボイスの音符をタイで繋ぐ方法を示しています。通常は、タイは同じボイスの音符にしか繋ぐことはできません。上のボイスにタイを付加し、そのボイスにある前の音符を透明にすることで、タイがボイスをまたがるように見えます。
\relative {
\time 2/4
<<
{
\once \hide Stem
\once \override Stem.length = #8
b'8 ~ 8\noBeam
\once \hide Stem
\once \override Stem.length = #8
g8 ~ 8\noBeam
}
\\
{
b8 g g e
}
>>
}
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: transparent プロパティを用いてオブジェクトを不可視にする ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 音符の衝突に関する警告を抑制する > ] |
多声の音楽で付点付きの音符を移動する
上のボイスにある付点付きの音符が、下の音符との衝突を避けるために移動する場合、デフォルトでは右側に移動します。この挙動は、NoteCollision の
prefer-dotted-right プロパティをオーバライドすることで変更できます。
\new Staff \relative c' <<
{
f2. f4
\override Staff.NoteCollision.prefer-dotted-right = ##f
f2. f4
\override Staff.NoteCollision.prefer-dotted-right = ##t
f2. f4
}
\\
{ e4 e e e e e e e e e e e }
>>
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 多声の音楽で付点付きの音符を移動する ] | [ 上へ : Simultaneous notes ] | [ Simultaneous notes: 1 つの譜で 2 つの \partCombine を使用する > ] |
音符の衝突に関する警告を抑制する
異なるボイスにあり、符幹が同じ向きの音符が同じ位置に配置されており、両方のボイスにシフトが指定されていないか同じシフトが指定されている場合、LilyPond ファイルのコンパイル時にエラー メッセージ ‘warning: ignoring too many clashing note columns’
が表示されます。このメッセージは、NoteColumn オブジェクトの
ignore-collision プロパティを #t にすることで抑制できます。これは警告を抑制するだけでなく、LilyPond による衝突の回避を完全に無効にします。そのため、注意して使用しないと予期しない結果をもたらすことがあります。
ignore = \override NoteColumn.ignore-collision = ##t
\relative c' {
\new Staff <<
\new Voice { \ignore \stemDown f2 g }
\new Voice { c2 \stemDown c, }
>>
}
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 音符の衝突に関する警告を抑制する ] | [ 上へ : Simultaneous notes ] | [ Staff notation > ] |
1 つの譜で 2 つの \partCombine を使用する
\partCombine 関数は 2 パートの音楽表記を取り、パートがどのように結合されるかに応じて、“two”, “one”,
“solo”, “chords” の 4 つの Voice に配置します。\partCombine によって出力されたボイスは、それぞれがレイアウト
プロパティを持ち、通常の方法で調整することができます。ここでは、\partCombine を拡張し、4 つのボイスを 1 つの譜を結合する作業を簡単にしています。
soprano = { d’4 | cis’ b e’ d’8 cis’ | cis’2 b } alto = { fis4 | e8 fis gis ais b4 b | b ais fis2 } tenor = { a8 b | cis’ dis’ e’4 b8 cis’ d’4 | gis cis’ dis’2 } bass = { fis8 gis | a4 gis g fis | eis fis b,2 }
\new Staff << \key b\minor \clef alto \partial 4 \transpose b b’ \partCombineUp \soprano \alto \partCombineDown \tenor \bass >>
\layout {
\context {
\Staff
\accepts "VoiceBox"
}
\context {
\name "VoiceBox"
\type "Engraver_group"
\defaultchild "Voice"
\accepts "Voice"
\accepts "NullVoice"
}
}
customPartCombineUp =
#(define-music-function (partOne partTwo)
(ly:music? ly:music?)
"Take the music in @var{partOne} and @var{partTwo} and return
a @code{VoiceBox} named @q{Up} containing @code{Voice}s
that contain @var{partOne} and @var{partTwo} merged into one
voice where feasible. This variant sets the default voicing
in the output to use upward stems."
#{
\new VoiceBox = "Up" <<
\context Voice = "one" { \voiceOne }
\context Voice = "two" { \voiceThree }
\context Voice = "shared" { \voiceOne }
\context Voice = "solo" { \voiceOne }
\context NullVoice = "null" {}
\partCombine #partOne #partTwo
>>
#})
customPartCombineDown = #
(define-music-function (partOne partTwo)
(ly:music? ly:music?)
"Take the music in @var{partOne} and @var{partTwo} and return
a @code{VoiceBox} named @q{Down} containing @code{Voice}s
that contain @var{partOne} and @var{partTwo} merged into one
voice where feasible. This variant sets the default voicing
in the output to use downward stems."
#{
\new VoiceBox = "Down" <<
\set VoiceBox.soloText = #"Solo III"
\set VoiceBox.soloIIText = #"Solo IV"
\context Voice ="one" { \voiceFour }
\context Voice ="two" { \voiceTwo }
\context Voice ="shared" { \voiceFour }
\context Voice ="solo" { \voiceFour }
\context NullVoice = "null" {}
\partCombine #partOne #partTwo
>>
#})
soprano = { d'4 | cis' b e' d'8 cis' | cis'2 b }
alto = { fis4 | e8 fis gis ais b4 b | b ais fis2 }
tenor = { a8 b | cis' dis' e'4 b8 cis' d'4 | gis cis' dis'2 }
bass = { fis8 gis | a4 gis g fis | eis fis b,2 }
\new Staff <<
\key b\minor
\clef alto
\partial 4
\transpose b b'
\customPartCombineUp \soprano \alto
\customPartCombineDown \tenor \bass
>>
| [ << Simultaneous notes ] | [トップ][目次] | [ Staff notation >> ] |
| [ < Simultaneous notes: 音符の衝突に関する警告を抑制する ] | [ 上へ : Simultaneous notes ] | [ Staff notation > ] |