| [ << Rhythms ] | [トップ][目次] | [ Repeats >> ] |
| [ < Rhythms: アルペジオにタイを使用する ] | [ 上へ : Top ] | [ Expressive marks: スラーやタイを連符などと組み合わせる > ] |
Expressive marks
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks ] | [ 上へ : Expressive marks ] | [ Expressive marks: 発想記号や和音の音符に括弧を追加する > ] |
スラーやタイを連符などと組み合わせる
LilyPond の構文は、括弧類の配置に関して特殊であり、入れ子構造にはならない場合があります。例えば、手動連桁を入力する場合、開き角括弧は音符とその長さの前ではなく後に配置しなければなりません。同様に、閉じ角括弧は、連符の途中であったとしても、連桁が終了する音符のすぐ後に配置しなければなりません。このスニペットは、手動連桁、手動スラー、タイ、フレージング スラーを、(波括弧で囲まれた) 連符と組み合わせる方法を示しています。
{
r16[ g16 \tuplet 3/2 { r16 e'8] }
g16( a \tuplet 3/2 { b d e') }
g8[( a \tuplet 3/2 { b d') e'] ~ }
\time 2/4
\tuplet 5/4 { e'32\( a b d' e' } a'4.\)
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: スラーやタイを連符などと組み合わせる ] | [ 上へ : Expressive marks ] | [ Expressive marks: 長いグリッサンドにタイミング マークを追加する > ] |
発想記号や和音の音符に括弧を追加する
\parenthesize 関数は、オブジェクトを括弧で囲む特殊な調整関数です。Grob は ParenthesesItem になります。
\relative c' {
c2-\parenthesize ->
\override ParenthesesItem.padding = #0.1
\override ParenthesesItem.font-size = #-4
<d \parenthesize f a>2
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 発想記号や和音の音符に括弧を追加する ] | [ 上へ : Expressive marks ] | [ Expressive marks: fall や doit の形を調整する > ] |
長いグリッサンドにタイミング マークを追加する
長いグリッサンド部分の拍をタイミング マークで表示する場合があります。これは通例符頭が無く符幹だけの音符として表され、この中間部分に発想記号を付け加えることもできます。
符幹がグリッサンドにうまく揃わない場合には、わずかに配置を調整する必要があるかもしれません。
glissandoSkipOn = {
\override NoteColumn.glissando-skip = ##t
\hide NoteHead
\override NoteHead.no-ledgers = ##t
}
glissandoSkipOff = {
\revert NoteColumn.glissando-skip
\undo \hide NoteHead
\revert NoteHead.no-ledgers
}
\relative c'' {
r8 f8\glissando
\glissandoSkipOn
f4 g a a8\noBeam
\glissandoSkipOff
a8
r8 f8\glissando
\glissandoSkipOn
g4 a8
\glissandoSkipOff
a8 |
r4 f\glissando \<
\glissandoSkipOn
a4\f \>
\glissandoSkipOff
b8\! r |
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 長いグリッサンドにタイミング マークを追加する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 二全音符を変更する > ] |
fall や doit の形を調整する
fall や doit の形を調整するために、
shortest-duration-space プロパティを変更することができます。
\relative c'' {
\override Score.SpacingSpanner.shortest-duration-space = #4.0
c2-\bendAfter #5
c2-\bendAfter #-4.75
c2-\bendAfter #8.5
c2-\bendAfter #-6
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: fall や doit の形を調整する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 非対称なスラー > ] |
二全音符を変更する
二全音符の表示を、符頭の左右に線が 1 本あるバロック式の表示から、2 本あるものに変更することができます。
\relative c'' {
\time 4/2
c\breve |
\override Staff.NoteHead.style = #'altdefault
b\breve
\override Staff.NoteHead.style = #'baroque
b\breve
\revert Staff.NoteHead.style
a\breve
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 二全音符を変更する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ブレス記号 > ] |
非対称なスラー
音符の流れが対象的な形をしていない場合、それに合わせてスラーを非対称にすることができます。
slurNotes = { d,8( a' d f a f' d, a) }
\relative c' {
\stemDown
\slurUp
\slurNotes
\once \override Slur.eccentricity = #3.0
\slurNotes
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 非対称なスラー ] | [ 上へ : Expressive marks ] | [ Expressive marks: 一部が隠されたクレッシェンドのヘアピン > ] |
ブレス記号
ブレス記号にはいくつかの図形を設定できます: カンマ (デフォルト), ティック (斜め線), V字, “線路記号” (カエスーラ) です。
\new Staff \relative c'' {
\key es \major
\time 3/4
% this bar contains no \breathe
<< { g4 as g } \\ { es4 bes es } >> |
% Modern notation:
% by default, \breathe uses the rcomma, just as if saying:
% \override BreathingSign.text = #(make-musicglyph-markup "scripts.rcomma")
<< { g4 as g } \\ { es4 \breathe bes es } >> |
% rvarcomma and lvarcomma are variations of the default rcomma and lcomma
% N.B.: must use Staff context here, since we start a Voice below
\override Staff.BreathingSign.text =
\markup { \musicglyph "scripts.rvarcomma" }
<< { g4 as g } \\ { es4 \breathe bes es } >> |
% vee
\override BreathingSign.text = \markup { \musicglyph "scripts.upbow" }
es8[ d es f g] \breathe f |
% caesura
\override BreathingSign.text =
\markup { \musicglyph "scripts.caesura.curved" }
es8[ d] \breathe es[ f g f] |
es2 r4 \bar "||"
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ブレス記号 ] | [ 上へ : Expressive marks ] | [ Expressive marks: フェルマータの付いたカエスーラ ("線路記号") > ] |
一部が隠されたクレッシェンドのヘアピン
クレッシェンドのヘアピンの一部を非表示にするには、白い長方形を対応する部分の上から描画します。長方形は、テキスト マークアップの内部で PostScript コードとして定義します。
マークアップ コマンド with-dimensions は、スペーシングの際に
(訳注: y 軸方向のバウンディングボックスを #'(0 . 0) にすることで)
長方形の下端部分のみが考慮されるようにし、staff-padding プロパティは、長方形がヘアピンと譜の間に配置されないようにしています。
ヘアピンが長方形によって隠されるために、ヘアピンのレイヤをテキスト マークアップよりも低く設定してください。
\relative c' {
<<
{
\dynamicUp
r2 r16 c'8.\pp r4
}
\\
{
\override DynamicLineSpanner.layer = #0
des,2\mf\< ~
\override TextScript.layer = #2
\once\override TextScript.staff-padding = #6
\once\override TextScript.vertical-skylines = #'()
des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0)
\with-color #white
\filled-box #'(2 . 7) #'(0 . 2) #0
r8. des4 ~ des16->\sff r8.
}
>>
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 一部が隠されたクレッシェンドのヘアピン ] | [ 上へ : Expressive marks ] | [ Expressive marks: ヘアピンの下にテキストを中央揃えする > ] |
フェルマータの付いたカエスーラ ("線路記号")
カエスーラは上にフェルマータの付いた二重の “線路記号” として表記される場合があります。このスニペットは、視覚的に良い線路記号とフェルマータの組み合わせ方を示しています。
\relative c'' {
c2.
% construct the symbol
\override BreathingSign.text = \markup {
\override #'(direction . 1)
\override #'(baseline-skip . 1.8)
\dir-column {
\translate #'(0.155 . 0)
\center-align \musicglyph "scripts.caesura.curved"
\center-align \musicglyph "scripts.ufermata"
}
}
\breathe c4
% set the breathe mark back to normal
\revert BreathingSign.text
c2. \breathe c4
\bar "|."
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: フェルマータの付いたカエスーラ ("線路記号") ] | [ 上へ : Expressive marks ] | [ Expressive marks: \flageolet のサイズを変更する > ] |
ヘアピンの下にテキストを中央揃えする
この例はヘアピンの (デ) クレッシェンドの下に “molto” や “poco” のようなテキストを追加する機能を提供しています。テキストの向きは、ヘアピンの向きに応じて変更されます。ヘアピンは DynamicText に揃えられます。
この例は Scheme コードを用いて、オブジェクトが通常どのように表示されるかを変更する方法も示しています。
hairpinWithCenteredText =
#(define-music-function (text) (markup?)
#{
\once \override Voice.Hairpin.after-line-breaking =
#(lambda (grob)
(let* ((stencil (ly:hairpin::print grob))
(par-y (ly:grob-parent grob Y))
(dir (ly:grob-property par-y 'direction))
(new-stencil (ly:stencil-aligned-to
(ly:stencil-combine-at-edge
(ly:stencil-aligned-to stencil X CENTER)
Y dir
(ly:stencil-aligned-to
(grob-interpret-markup grob text) X CENTER))
X LEFT))
(staff-space (ly:output-def-lookup
(ly:grob-layout grob) 'staff-space))
(staff-line-thickness
(ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
(par-x (ly:grob-parent grob X))
(dyn-text (grob::has-interface par-x 'dynamic-text-interface))
(dyn-text-stencil-x-length
(if dyn-text
(interval-length
(ly:stencil-extent (ly:grob-property par-x 'stencil) X))
0))
(x-shift
(if dyn-text
(-
(+ staff-space dyn-text-stencil-x-length)
(* 0.5 staff-line-thickness)) 0)))
(ly:grob-set-property! grob 'Y-offset 0)
(ly:grob-set-property! grob 'stencil
(ly:stencil-translate-axis
new-stencil
x-shift X))))
#})
hairpinMolto =
\hairpinWithCenteredText \markup { \italic molto }
hairpinMore =
\hairpinWithCenteredText \markup { \larger moltissimo }
\layout { ragged-right = ##f }
\relative c' {
\hairpinMolto
c2\< c\f
\hairpinMore
c2\ppppp\< c\f
\break
\hairpinMolto
c2^\< c\f
\hairpinMore
c2\ppppp\< c\f
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ヘアピンの下にテキストを中央揃えする ] | [ 上へ : Expressive marks ] | [ Expressive marks: テキストによる強弱記号のテキストとスパナのスタイルを変更する > ] |
\flageolet のサイズを変更する
\flageolet の丸を小さくするには、以下の tweak を使用します。
smallFlageolet = \tweak font-size -3 \flageolet
\layout { ragged-right = ##f }
\relative c'' {
d4^\flageolet_\markup { default size } d_\flageolet
c4^\smallFlageolet_\markup { smaller } c_\smallFlageolet
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: \flageolet のサイズを変更する ] | [ 上へ : Expressive marks ] | [ Expressive marks: スラーを実線から点線や破線に変更する > ] |
テキストによる強弱記号のテキストとスパナのスタイルを変更する
クレッシェンドやデクレッシェンドに使われるテキストは crescendoText,
decrescendoText コンテキスト プロパティをセットすることで変更できます。
スパナの線は、DynamicTextSpanner の style プロパティをセットすることでスタイルを変更できます。デフォルトの値は 'dashed-line
であり、他に 'line, 'dotted-line, 'none が設定できます。
\relative c'' {
\set crescendoText = \markup { \italic { cresc. poco } }
\set crescendoSpanner = #'text
\override DynamicTextSpanner.style = #'dotted-line
a2\< a
a2 a
a2 a
a2 a\mf
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: テキストによる強弱記号のテキストとスパナのスタイルを変更する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ブレス記号を変更する > ] |
スラーを実線から点線や破線に変更する
スラーの見た目を実線から点線や破線に変更することができます。
\relative c' {
c4( d e c)
\slurDotted
c4( d e c)
\slurSolid
c4( d e c)
\slurDashed
c4( d e c)
\slurSolid
c4( d e c)
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: スラーを実線から点線や破線に変更する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 音符ごとに付点の数を独立して変更する > ] |
ブレス記号を変更する
ブレス記号のグリフは BreathingSign レイアウト オブジェクトの
text プロパティをオーバライドすることで、任意のマークアップ
テキストに変更することができます。
\relative c'' {
c2
\override BreathingSign.text =
\markup { \musicglyph "scripts.rvarcomma" }
\breathe
d2
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ブレス記号を変更する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 強弱記号をマークアップ テキストと結合する > ] |
音符ごとに付点の数を独立して変更する
音符ごとに、入力したドットの数とは独立して付点の数を変更することができます。
\relative c' {
c4.. a16 r2 |
\override Dots.dot-count = #4
c4.. a16 r2 |
\override Dots.dot-count = #0
c4.. a16 r2 |
\revert Dots.dot-count
c4.. a16 r2 |
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 音符ごとに付点の数を独立して変更する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 現代のグリッサンド > ] |
強弱記号をマークアップ テキストと結合する
強弱記号の中には、テキスト表示を含むものがあります (“più forte” や
“piano subito” など)。これらは \markup コマンドで作り出すことができます。
piuF = \markup { \italic più \dynamic f }
\layout { ragged-right = ##f }
\relative c'' {
c2\f c-\piuF
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 強弱記号をマークアップ テキストと結合する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 改行後のスパナの可視性をコントロールする > ] |
現代のグリッサンド
終端の音符が存在しない現代のグリッサンドは、不可視の音符とカデンツァを使用することで作ることができます。
\relative c'' {
\time 3/4
\override Glissando.style = #'zigzag
c4 c
\cadenzaOn
c4\glissando
\hideNotes
c,,4
\unHideNotes
\cadenzaOff
\bar "|"
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 現代のグリッサンド ] | [ 上へ : Expressive marks ] | [ Expressive marks: スクリプトの縦方向の優先順位をコントロールする > ] |
改行後のスパナの可視性をコントロールする
改行のすぐ後の音符で終了するスパナの可視性は、after-line-breaking のコールバック ly:spanner::kill-zero-spanned-time によりコントロールされます。
グリッサンドやヘアピンのようなオブジェクトは、デフォルトで改行後のスパナを表示しないようにしています。このコールバックを無効化することで、改行後のスパナが表示されるようになります。
逆に、テキスト スパナなどはデフォルトで改行後に表示されるようになっていますが、コールバックを有効にすることで削除することができます。
\paper { ragged-right = ##t }
\relative c'' {
\override Hairpin.to-barline = ##f
\override Glissando.breakable = ##t
% show hairpin
\override Hairpin.after-line-breaking = ##t
% hide text span
\override TextSpanner.after-line-breaking =
#ly:spanner::kill-zero-spanned-time
e2\<\startTextSpan
% show glissando
\override Glissando.after-line-breaking = ##t
f2\glissando
\break
f,1\!\stopTextSpan
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 改行後のスパナの可視性をコントロールする ] | [ 上へ : Expressive marks ] | [ Expressive marks: 遅れターンを作成する > ] |
スクリプトの縦方向の優先順位をコントロールする
スクリプト (音符に付加する記号) の縦方向の優先順位は、script-priority プロパティでコントロールされます。値が小さいほど、音符の近くに配置されます。この例では、1 つ目は
TextScript (シャープ記号) を低い優先度を持つようにしており、一番低い位置に表示されます。2 つ目はトリル (Script) が低い優先度を持ち、内側に表示されるようになっています。2 つのオブジェクトが同じ優先度を持つ場合には、入力された順番が配置に影響します。
\relative c''' {
\once \override TextScript.script-priority = #-100
a2^\prall^\markup { \sharp }
\once \override Script.script-priority = #-100
a2^\prall^\markup { \sharp }
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: スクリプトの縦方向の優先順位をコントロールする ] | [ 上へ : Expressive marks ] | [ Expressive marks: 異なるボイスにまたがるアルペジオを作成する > ] |
遅れターンを作成する
下の音符が臨時記号を持つような遅れターンを作るには、いくつかのオーバライドが必要です。outside-staff-priority プロパティを #f にセットしなければ、avoid-slur プロパティよりも優先されてしまい、スラーの内側に記号が入りません。分数 2/3 と 1/3 は、水平位置を調整しています。
\relative c'' {
c2*2/3 ( s2*1/3\turn d4) r
<<
{ c4.( d8) }
{ s4 s\turn }
>>
\transpose c d \relative c'' <<
{ c4.( d8) }
{
s4
\once \set suggestAccidentals = ##t
\once \override AccidentalSuggestion.outside-staff-priority = ##f
\once \override AccidentalSuggestion.avoid-slur = #'inside
\once \override AccidentalSuggestion.font-size = -3
\once \override AccidentalSuggestion.script-priority = -1
\single \hideNotes
b8-\turn \noBeam
s8
}
>>
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 遅れターンを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ピアノ譜で譜をまたがるアルペジオを作成する > ] |
異なるボイスにまたがるアルペジオを作成する
Staff コンテキストに Span_arpeggio_engraver が追加された場合、アルペジオは同じ譜にある異なるボイスにまたがって表示されます。
\new Staff \with {
\consists "Span_arpeggio_engraver"
}
\relative c' {
\set Staff.connectArpeggios = ##t
<<
{ <e' g>4\arpeggio <d f> <d f>2 }
\\
{ <d, f>2\arpeggio <g b>2 }
>>
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 異なるボイスにまたがるアルペジオを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 他のコンテキストで譜をまたがるアルペジオを作成する > ] |
ピアノ譜で譜をまたがるアルペジオを作成する
PianoStaff 内では、PianoStaff.connectArpeggios プロパティをセットすることで、譜をまたがるアルペジオを作成することができます。
\new PianoStaff \relative c'' <<
\set PianoStaff.connectArpeggios = ##t
\new Staff {
<c e g c>4\arpeggio
<g c e g>4\arpeggio
<e g c e>4\arpeggio
<c e g c>4\arpeggio
}
\new Staff {
\clef bass
\repeat unfold 4 {
<c,, e g c>4\arpeggio
}
}
>>
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ピアノ譜で譜をまたがるアルペジオを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 2 桁の運指記号を作成する > ] |
他のコンテキストで譜をまたがるアルペジオを作成する
譜をまたがるアルペジオは Span_arpeggio_engraver が Score
コンテキストに追加されていれば、GrandStaff, PianoStaff, StaffGroup
以外にも作成することができます。
\score {
\new ChoirStaff {
\set Score.connectArpeggios = ##t
<<
\new Voice \relative c' {
<c e>2\arpeggio
<d f>2\arpeggio
<c e>1\arpeggio
}
\new Voice \relative c {
\clef bass
<c g'>2\arpeggio
<b g'>2\arpeggio
<c g'>1\arpeggio
}
>>
}
\layout {
\context {
\Score
\consists "Span_arpeggio_engraver"
}
}
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 他のコンテキストで譜をまたがるアルペジオを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: "本当の"括弧付きの強弱記号を作成する > ] |
2 桁の運指記号を作成する
5 よりも大きな運指記号を作成することができます。
\relative c' {
c1-10
c1-50
c1-36
c1-29
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 2 桁の運指記号を作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 同時に出現するリハーサル記号を作成する > ] |
"本当の"括弧付きの強弱記号を作成する
強弱記号に括弧を追加する一番簡単な方法は、\markup ブロックを使用することですが、この方法には欠点があります: このように作成されたオブジェクトは、強弱記号ではなくテキスト マークアップとして振る舞うということです。
しかしながら、(記譜法リファレンスで説明しているように)
make-dynamic-script 関数と共に
Scheme コードを用いることで、似たようなオブジェクトを作り出すことができます。このように作成された記号は強弱記号として振る舞い、\dynamicUp や
\dynamicDown といったコマンドと互換性を保ちます。
paren =
#(define-event-function (dyn) (ly:event?)
(make-dynamic-script
#{ \markup \concat {
\normal-text \italic \fontsize #2 (
\pad-x #0.2 #(ly:music-property dyn 'text)
\normal-text \italic \fontsize #2 )
}
#}))
\relative c'' {
c4\paren\f c c \dynamicUp c\paren\p
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: "本当の"括弧付きの強弱記号を作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ボイスをまたがるスラーを作成する > ] |
同時に出現するリハーサル記号を作成する
テキスト スクリプトとは異なり、リハーサル記号は 1 地点に複数配置することはできません: ReharsalMark は 1 つだけ作成されます。不可視の小節と小節線を用いることで、同じ列に並んでいるように見える 2 つ目のリハーサル記号を追加することができます。この方法は、システムの終端と次のシステムの始端の両方にリハーサル記号を配置する際にも有用です。
{
\key a \major
\set Score.markFormatter = #format-mark-box-letters
\once \override Score.RehearsalMark.outside-staff-priority = #5000
\once \override Score.RehearsalMark.self-alignment-X = #LEFT
\once \override Score.RehearsalMark.break-align-symbols = #'(key-signature)
\mark \markup { \bold { Senza denti } }
% the hidden measure and bar line
% \cadenzaOn turns off automatic calculation of bar numbers
\cadenzaOn
\once \override Score.TimeSignature.stencil = ##f
\time 1/16
s16 \bar ""
\cadenzaOff
\time 4/4
\once \override Score.RehearsalMark.self-alignment-X = #LEFT
\mark \markup { \box \bold Intro }
d'1
\mark \default
d'1
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 同時に出現するリハーサル記号を作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: テキスト スパナを作成する > ] |
ボイスをまたがるスラーを作成する
異なるボイスを繋ぐスラーを作成しなければならない場合があります。
解決法は、\hideNotes を用いて片方のボイスに不可視の音符を追加することです。
この例は、Bach の Partita for Violin No. 2 (BWV 1004) の 235 小節目です。
\relative c' {
<<
{
d16( a') s a s a[ s a] s a[ s a]
}
\\
{
\slurUp
bes,16[ s e](
\hideNotes a)
\unHideNotes f[(
\hideNotes a)
\unHideNotes fis](
\hideNotes a)
\unHideNotes g[(
\hideNotes a)
\unHideNotes gis](
\hideNotes a)
}
>>
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ボイスをまたがるスラーを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 強弱記号のカスタム テキスト スパナ後置関数 > ] |
テキスト スパナを作成する
\startTextSpan と \stopTextSpan コマンドは、ペダル記号やオッターバのようにテキスト スパナを容易に作成できます。TextSpanner オブジェクトのプロパティをオーバライドすることで、出力を変更することができます。
\paper { ragged-right = ##f }
\relative c'' {
\override TextSpanner.bound-details.left.text = #"bla"
\override TextSpanner.bound-details.right.text = #"blu"
a4 \startTextSpan
b4 c
a4 \stopTextSpan
\override TextSpanner.style = #'line
\once \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
a4 \startTextSpan
b4 c
a4 \stopTextSpan
\override TextSpanner.style = #'dashed-line
\override TextSpanner.bound-details.left.text =
\markup { \draw-line #'(0 . 1) }
\override TextSpanner.bound-details.right.text =
\markup { \draw-line #'(0 . -2) }
\once \override TextSpanner.bound-details.right.padding = #-2
a4 \startTextSpan
b4 c
a4 \stopTextSpan
\set Staff.middleCPosition = #-13
\override TextSpanner.dash-period = #10
\override TextSpanner.dash-fraction = #0.5
\override TextSpanner.thickness = #10
a4 \startTextSpan
b4 c
a4 \stopTextSpan
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: テキスト スパナを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 強弱記号のテキスト スパナ音楽関数 > ] |
強弱記号のカスタム テキスト スパナ後置関数
これは、クレッシェンドのテキスト スパナをカスタマイズする後置関数です。スパナは小節の最初の音符から始めるべきです。-\mycresc の記法を使用しなければ、スパナの開始点が次の音符になってしまいます。
% Two functions for (de)crescendo spanners where you can explicitly
% give the spanner text.
mycresc =
#(define-music-function (mymarkup) (markup?)
(make-music 'CrescendoEvent
'span-direction START
'span-type 'text
'span-text mymarkup))
mydecresc =
#(define-music-function (mymarkup) (markup?)
(make-music 'DecrescendoEvent
'span-direction START
'span-type 'text
'span-text mymarkup))
\relative c' {
c4-\mycresc "custom cresc" c4 c4 c4 |
c4 c4 c4 c4 |
c4-\mydecresc "custom decresc" c4 c4 c4 |
c4 c4\! c4 c4
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 強弱記号のカスタム テキスト スパナ後置関数 ] | [ 上へ : Expressive marks ] | [ Expressive marks: Grob をスキップするグリッサンド > ] |
強弱記号のテキスト スパナ音楽関数
カスタム テキスト スパナを定義することができ、ヘアピンやテキスト
クレッシェンドと同時に用いることができます。\< と \> はデフォルトでヘアピンを作り出し、\cresc などはデフォルトでテキスト スパナを作り出します。
% Some sample text dynamic spanners, to be used as postfix operators
crpoco =
#(make-music 'CrescendoEvent
'span-direction START
'span-type 'text
'span-text "cresc. poco a poco")
\relative c' {
c4\cresc d4 e4 f4 |
g4 a4\! b4\crpoco c4 |
c4 d4 e4 f4 |
g4 a4\! b4\< c4 |
g4\dim a4 b4\decresc c4\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 強弱記号のテキスト スパナ音楽関数 ] | [ 上へ : Expressive marks ] | [ Expressive marks: 異なるライン スタイルのヘアピン > ] |
Grob をスキップするグリッサンド
NoteColumn Grob をグリッサンドが飛び越すように設定することができます。
\relative c' {
a2 \glissando
\once \override NoteColumn.glissando-skip = ##t
f''4 d,
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: Grob をスキップするグリッサンド ] | [ 上へ : Expressive marks ] | [ Expressive marks: テキスト強弱記号の線を隠す > ] |
異なるライン スタイルのヘアピン
ヘアピンには line-interface のスタイルを用いることができます:
dashed-line, dotted-line, line, trill, zigzag です。
\relative c' {
c2\< c\!
\override Hairpin.style = #'dashed-line
c2\< c\!
\override Hairpin.style = #'dotted-line
c2\< c\!
\override Hairpin.style = #'line
c2\< c\!
\override Hairpin.style = #'trill
c2\< c\!
\override Hairpin.style = #'zigzag
c2\< c\!
\revert Hairpin.style
c2\< c\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 異なるライン スタイルのヘアピン ] | [ 上へ : Expressive marks ] | [ Expressive marks: カスタム強弱記号を水平方向に揃える ("sempre pp" "piu f" "subito p" など) > ] |
テキスト強弱記号の線を隠す
(cresc. や dim. のような) 強弱を変更するテキストは、その範囲を破線で示しています。次のようにしてこの線を表示しないようにすることができます。
\relative c'' {
\override DynamicTextSpanner.style = #'none
\crescTextCresc
c1\< | d | b | c\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: テキスト強弱記号の線を隠す ] | [ 上へ : Expressive marks ] | [ Expressive marks: 同じ小節線の上と下に 2 つのリハーサル記号を表示する (方法 1) > ] |
カスタム強弱記号を水平方向に揃える ("sempre pp" "piu f" "subito p" など)
強弱記号の中には追加のテキストを伴うもの (例えば “sempre pp”) があります。強弱記号は通常音符の下に中央揃えされるため、\pp の部分が音符に揃えられる必要があります。
“sempre pp” を水平方向に正しく揃えるためには、あたかも \pp のみが存在するかのように揃える必要があります。いくつかのアプローチがあります:
* 強弱記号が適用される音符の前に
\once\override DynamicText.X-offset = #-9.2 を設定し、手動で正しい位置にシフトします。欠点: この強弱記号を使用する際に毎回手動でシフトを行う必要があります。
* カスタム強弱記号の定義にいくらかのパディング (#:hspace 7.1) を追加して、それを中央揃えさせます。欠点: パディングは実際にスペースを占有するため、その位置に他のマークアップや強弱記号は配置されません。
* 強弱記号のスクリプトを \once\override ... .X-offset = .. でシフトします。欠点: \once \override が毎回必要です!
* 追加されるテキストの寸法を (#:with-dimensions '(0 . 0) '(0 . 0)
を用いて) 0 にします。欠点: LilyPond にとっては “sempre” のサイズが
0 になるため、他のオブジェクトと衝突する可能性があります (衝突判定が行われないということです!)。また、いくつかのスペースは占有されているようであり、テキストが存在しない場合に比べて配置が多少ずれます。
* dynamic-script の Scheme 関数内で、直接明示的にシフトを設定します。
* dynamic-script の内部で明示的に揃え位置を設定します。デフォルトでは、これは何の効果も現れませんが、X-offset を指定した際にのみ有効となります!
欠点: DynamicText.X-offset をセットする必要があり、それは全ての強弱記号に影響します! また、揃え位置は pp の中央ではなく、追加したテキストの右端となります。
\paper {
ragged-right = ##f
indent = 2.5\cm
}
% Solution 1: Using a simple markup with a particular halign value
% Drawback: It's a markup, not a dynamic command, so \dynamicDown
% etc. will have no effect
semppMarkup = \markup { \halign #1.4 \italic "sempre" \dynamic "pp" }
% Solution 2: Using a dynamic script & shifting with
% \once \override ...X-offset = ..
% Drawback: \once \override needed for every invocation
semppK =
#(make-dynamic-script
(markup #:line
(#:normal-text
#:italic "sempre"
#:dynamic "pp")))
% Solution 3: Padding the dynamic script so the center-alignment
% puts it at the correct position
% Drawback: the padding really reserves the space, nothing else can be there
semppT =
#(make-dynamic-script
(markup #:line
(#:normal-text
#:italic "sempre"
#:dynamic "pp"
#:hspace 7.1)))
% Solution 4: Dynamic, setting the dimensions of the additional text to 0
% Drawback: To lilypond "sempre" has no extent, so it might put
% other stuff there => collisions
% Drawback: Also, there seems to be some spacing, so it's not exactly the
% same alignment as without the additional text
semppM =
#(make-dynamic-script
(markup #:line
(#:with-dimensions '(0 . 0) '(0 . 0)
#:right-align
#:normal-text
#:italic "sempre"
#:dynamic "pp")))
% Solution 5: Dynamic with explicit shifting inside the scheme function
semppG =
#(make-dynamic-script
(markup #:hspace 0
#:translate '(-18.85 . 0)
#:line (#:normal-text
#:italic "sempre"
#:dynamic "pp")))
% Solution 6: Dynamic with explicit alignment. This has only effect
% if one sets X-offset!
% Drawback: One needs to set DynamicText.X-offset!
% Drawback: Aligned at the right edge of the additional text,
% not at the center of pp
semppMII =
#(make-dynamic-script
(markup #:line (#:right-align
#:normal-text
#:italic "sempre"
#:dynamic "pp")))
\new StaffGroup <<
\new Staff = "s" \with { instrumentName = \markup \column { Normal } }
<<
\relative c'' {
\key es \major
c4\pp c\p c c | c\ff c c\pp c
}
>>
\new Staff = "sMarkup" \with {
instrumentName = \markup \column { Normal markup }
}
<<
\relative c'' {
\key es \major
c4-\semppMarkup c\p c c | c\ff c c-\semppMarkup c
}
>>
\new Staff = "sK" \with {
instrumentName = \markup \column { Explicit shifting }
}
<<
\relative c'' {
\key es \major
\once \override DynamicText.X-offset = #-9.2
c4\semppK c\p c c
c4\ff c
\once \override DynamicText.X-offset = #-9.2
c4\semppK c
}
>>
\new Staff = "sT" \with {
instrumentName = \markup \column { Right padding }
}
<<
\relative c'' {
\key es \major
c4\semppT c\p c c | c\ff c c\semppT c
}
>>
\new Staff = "sM" \with {
instrumentName = \markup \column { Set dimension "to zero" }
}
<<
\relative c'' {
\key es \major
c4\semppM c\p c c | c\ff c c\semppM c
}
>>
\new Staff = "sG" \with {
instrumentName = \markup \column { Shift inside dynamics}
}
<<
\relative c'' {
\key es \major
c4\semppG c\p c c | c\ff c c\semppG c
}
>>
\new Staff = "sMII" \with {
instrumentName = \markup \column { Alignment inside dynamics }
}
<<
\relative c'' {
\key es \major
% Setting to ##f (false) gives the same result
\override DynamicText.X-offset = #0
c4\semppMII c\p c c | c\ff c c\semppMII c
}
>>
>>
\layout { \override Staff.InstrumentName.self-alignment-X = #LEFT }
同じ小節線の上と下に 2 つのリハーサル記号を表示する (方法 1)
この方法は、’リハーサル記号’ を 2 つ、同じ位置に表示します。片方のリハーサル記号を譜の下に移動し、その上に空白を加えてもう片方のリハーサル記号が譜の上になるようにしています。
extra-offset や baseline-skip の値を調整することで、リハーサル記号と譜とのスペースを増減させることができます。
ほとんど全てのグリフや文字列をリハーサル記号にすることができるため、何らかのグリフや文字列を小節線の上や下に中央揃えするために用いることもできます。
スニペット 1 にあるように、適切な ’break-visibility’ を加えることで、2 つのリハーサル記号を行の終わりに表示することもできます。
注意: 方法 1 は方法 2 より複雑ではないですが、もう片方の記号に影響を与えずに片方の位置を微調整することはできません。また、extra-offset を調整しても記号の本来のバウンディング ボックスは維持されるため、垂直方向のスペーシングに関しても問題があります。
\relative c'{
c d e f |
\once \override Score.RehearsalMark.extra-offset = #'(0 . -8.5)
\once \override Score.RehearsalMark.baseline-skip = #9
\mark \markup \center-column { \circle 1 \box A }
g f e d |
\once \override Score.RehearsalMark.extra-offset = #'(0 . -8.5)
\once \override Score.RehearsalMark.baseline-skip = #9
\mark \markup \center-column { \flat { \bold \small \italic Fine. } }
g f e d |
\once \override Score.RehearsalMark.extra-offset = #'(0 . -8.5)
\once \override Score.RehearsalMark.baseline-skip = #9
\override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
\mark \markup \center-column { \fermata \box z }
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 同じ小節線の上と下に 2 つのリハーサル記号を表示する (方法 1) ] | [ 上へ : Expressive marks ] | [ Expressive marks: カエスーラを挿入する > ] |
同じ小節線の上と下に 2 つのリハーサル記号を表示する (方法 2)
この方法は、’リハーサル記号’ を 2 つ、同じ位置に表示します。片方は譜の上、片方は譜の下に配置されています。そのために、2 つのボイスを作成し、リハーサル記号のエングラーバをそれぞれのボイスに追加しています (そうしなければ表示されません)。 そして、それぞれのボイス内でリハーサル記号の向きを UP と DOWN に設定しています。
この方法は (方法 1 と異なり) より複雑ですが、もう片方に影響を与えずに片方のリハーサル記号を調整することができるためより柔軟です。
\score {
\relative c'
<<
\new Staff {
<<
\new Voice \with {
\consists Mark_engraver
\consists "Staff_collecting_engraver"
}
{ c4 d e f
\mark \markup { \box A }
c4 d e f
}
\new Voice \with {
\consists Mark_engraver
\consists "Staff_collecting_engraver"
\override RehearsalMark.direction = #DOWN
}
{ s4 s s s
\mark \markup { \circle 1 }
s4 s s s
}
>>
}
>>
\layout {
\context {
\Score
\remove "Mark_engraver"
\remove "Staff_collecting_engraver"
}
}
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 同じ小節線の上と下に 2 つのリハーサル記号を表示する (方法 2) ] | [ 上へ : Expressive marks ] | [ Expressive marks: レセ ヴィブレのタイ > ] |
カエスーラを挿入する
カエスーラ記号は BreathingSign オブジェクトの text プロパティをオーバライドすることで作成することができます。曲がったカエスーラ記号も使用することができます。
\relative c'' {
\override BreathingSign.text = \markup {
\musicglyph "scripts.caesura.straight"
}
c8 e4. \breathe g8. e16 c4
\override BreathingSign.text = \markup {
\musicglyph "scripts.caesura.curved"
}
g8 e'4. \breathe g8. e16 c4
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: カエスーラを挿入する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 矢印 > ] |
レセ ヴィブレのタイ
レセ ヴィブレのタイの大きさは固定されています。tie-configuration
によって配置を調整することができます。
\relative c' {
<c e g>4\laissezVibrer r <c f g>\laissezVibrer r
<c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8
<c d e f>4\laissezVibrer r
\override LaissezVibrerTieColumn.tie-configuration
= #`((-7 . ,DOWN)
(-5 . ,DOWN)
(-3 . ,UP)
(-1 . ,UP))
<c d e f>4\laissezVibrer r
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: レセ ヴィブレのタイ ] | [ 上へ : Expressive marks ] | [ Expressive marks: 複雑な破線のスラーを作成する > ] |
矢印
text-spanner, line-spanner (例えば Glissando) に対して矢印を用いることができます。
\relative c'' {
\override TextSpanner.bound-padding = #1.0
\override TextSpanner.style = #'line
\override TextSpanner.bound-details.right.arrow = ##t
\override TextSpanner.bound-details.left.text = #"fof"
\override TextSpanner.bound-details.right.text = #"gag"
\override TextSpanner.bound-details.right.padding = #0.6
\override TextSpanner.bound-details.right.stencil-align-dir-y = #CENTER
\override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
\override Glissando.bound-details.right.arrow = ##t
\override Glissando.arrow-length = #0.5
\override Glissando.arrow-width = #0.25
a8\startTextSpan gis a4 b\glissando b,
g'4 c\stopTextSpan c2
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 矢印 ] | [ 上へ : Expressive marks ] | [ Expressive marks: アーティキュレーションの省略記法のデフォルト値を書き換える > ] |
複雑な破線のスラーを作成する
dash-definition プロパティをセットすることで、スラーに複雑な破線パターンを追加することができます。dash-definition は
dash-element のリストになっています。dash-element
はスラーの各部分に対する破線パターンのパラメータ リストです。
スラーはベジエ曲線の媒介変数 t (左端が 0, 右端が 1) の関数として定義されます。dash-element は、(start-t stop-t dash-fraction dash-period)
のリストになっています。start-t から stop-t までの範囲が、dash-period の長さにつき dash-fraction が黒になるような破線となります。dash-period は譜スペースの単位です。dash-fraction
を 1 にすると実線のスラーになります。
\relative c' {
\once \override
Slur.dash-definition = #'((0 0.3 0.1 0.75)
(0.3 0.6 1 1)
(0.65 1.0 0.4 0.75))
c4( d e f)
\once \override
Slur.dash-definition = #'((0 0.25 1 1)
(0.3 0.7 0.4 0.75)
(0.75 1.0 1 1))
c4( d e f)
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 複雑な破線のスラーを作成する ] | [ 上へ : Expressive marks ] | [ Expressive marks: スラーの縦方向の位置を移動する > ] |
アーティキュレーションの省略記法のデフォルト値を書き換える
アーティキュレーションの省略記法は ly/script-init.ly に定義されており、変数 dashHat, dashPlus, dashDash,
dashBang, dashLarger, dashDot,
dashUnderscore にデフォルト設定がセットされています。これらを変更することができます。この例では、dashPlus 変数に
trill をセットすることで、-+ を入力した際にデフォルトの + 記号の代わりにトリル記号が表示されるようにしています。
\relative c'' { c1-+ }
dashPlus = "trill"
\relative c'' { c1-+ }
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: アーティキュレーションの省略記法のデフォルト値を書き換える ] | [ 上へ : Expressive marks ] | [ Expressive marks: ヘアピンの端点を移動する > ] |
スラーの縦方向の位置を移動する
スラーの縦方向の位置は Slur の positions プロパティによって調整することができます。このプロパティは 2 つのパラメータを取り、1 つ目はスラーの左端、2 つ目はスラーの右端です。このパラメータの値は、スラーの正確な位置を決定するために用いられるわけではありません – LilyPond ではどのようなスラーが見た目として最善かを、このパラメータを基にして決定します。正の値はスラーを上方向に移動するため、符幹が下向きの音符に対して有効です。負の値はスラーを下方向に移動します。
\relative c' {
\stemDown
e4( a)
\override Slur.positions = #'(1 . 1)
e4( a)
\override Slur.positions = #'(2 . 2)
e4( a)
\override Slur.positions = #'(3 . 3)
e4( a)
\override Slur.positions = #'(4 . 4)
e4( a)
\override Slur.positions = #'(5 . 5)
e4( a)
\override Slur.positions = #'(0 . 5)
e4( a)
\override Slur.positions = #'(5 . 0)
e4( a)
\stemUp
\override Slur.positions = #'(-5 . -5)
e4( a)
\stemDown
\revert Slur.positions
e4( a)
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: スラーの縦方向の位置を移動する ] | [ 上へ : Expressive marks ] | [ Expressive marks: アルペジオの配置 > ] |
ヘアピンの端点を移動する
ヘアピンの端点は Hairpin オブジェクトの shorten-pair をセットすることで移動できます。正の値は端点を右に移動し、負の値は左に移動します。minimum-length プロパティとは異なり、このプロパティはヘアピンのみの見た目に影響します。水平方向のスペーシングには影響しません
(始点や終点にある強弱記号もです)。そのため、この方法はヘアピンを割り当てられた領域の中で微調整するのに適しています。
{
c'1~\<
c'2~ c'\!
\once \override Hairpin.shorten-pair = #'(2 . 2)
c'1~\<
c'2~ c'\!
\once \override Hairpin.shorten-pair = #'(-2 . -2)
c'1~\<
c'2~ c'\!
c'1~\p-\tweak shorten-pair #'(2 . 0)\<
c'2~ c'\ffff
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ヘアピンの端点を移動する ] | [ 上へ : Expressive marks ] | [ Expressive marks: テキスト マークアップをスラーの内側に配置する > ] |
アルペジオの配置
アルペジオの長さを変更したい場合、上端と下端の位置を独立に変更することができます。
\relative c' {
<c e g b>1\arpeggio
\once \override Arpeggio.positions = #'(-5 . 0)
<c e g b>1\arpeggio
\once \override Arpeggio.positions = #'(0 . 5)
<c e g b>1\arpeggio
\once \override Arpeggio.positions = #'(-5 . 5)
<c e g b>1\arpeggio
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: アルペジオの配置 ] | [ 上へ : Expressive marks ] | [ Expressive marks: ヘアピンを様々なスタイルで表示する > ] |
テキスト マークアップをスラーの内側に配置する
テキスト マークアップをスラーの内側に配置するには、outside-staff-priority
プロパティを #f に設定する必要があります。
\relative c'' {
\override TextScript.avoid-slur = #'inside
\override TextScript.outside-staff-priority = ##f
c2(^\markup { \halign #-10 \natural } d4.) c8
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: テキスト マークアップをスラーの内側に配置する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ヘアピンの表示に al niente 記譜法を用いる > ] |
ヘアピンを様々なスタイルで表示する
ヘアピン強弱記号は様々なスタイルで作成できます。
\relative c'' {
\override Hairpin.stencil = #flared-hairpin
a4\< a a a\f
a4\p\< a a a\ff
a4\sfz\< a a a\!
\override Hairpin.stencil = #constante-hairpin
a4\< a a a\f
a4\p\< a a a\ff
a4\sfz\< a a a\!
\override Hairpin.stencil = #flared-hairpin
a4\> a a a\f
a4\p\> a a a\ff
a4\sfz\> a a a\!
\override Hairpin.stencil = #constante-hairpin
a4\> a a a\f
a4\p\> a a a\ff
a4\sfz\> a a a\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ヘアピンを様々なスタイルで表示する ] | [ 上へ : Expressive marks ] | [ Expressive marks: メトロノーム記号やリハーサル記号を譜の下に表示する > ] |
ヘアピンの表示に al niente 記譜法を用いる
ヘアピン強弱記号は、Hairpin オブジェクトの circled-tip
プロパティを #t にセットすることで、端に丸を付けて (“al niente” 記譜法) 表示することができます。
\relative c'' {
\override Hairpin.circled-tip = ##t
c2\< c\!
c4\> c\< c2\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ヘアピンの表示に al niente 記譜法を用いる ] | [ 上へ : Expressive marks ] | [ Expressive marks: 小節線にぶつかるヘアピンの挙動を設定する > ] |
メトロノーム記号やリハーサル記号を譜の下に表示する
デフォルトでは、メトロノーム記号やリハーサル記号は譜の上に表示されます。これらを譜の下に表示するには、MetronomeMark や RehearsalMark
の direction プロパティを正しくセットします。
\layout {
indent = 0
ragged-right = ##f
}
{
% Metronome marks below the staff
\override Score.MetronomeMark.direction = #DOWN
\tempo 8. = 120
c''1
% Rehearsal marks below the staff
\override Score.RehearsalMark.direction = #DOWN
\mark \default
c''1
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: メトロノーム記号やリハーサル記号を譜の下に表示する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ヘアピンの最小長さをセットする > ] |
小節線にぶつかるヘアピンの挙動を設定する
ヘアピンの終端となる音符が強拍にある場合、ヘアピンはその前にある小節線の直前が終端となります。この挙動は to-barline プロパティをオーバライドすることで調整できます。
\relative c'' {
e4\< e2.
e1\!
\override Hairpin.to-barline = ##f
e4\< e2.
e1\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 小節線にぶつかるヘアピンの挙動を設定する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 同じアーティキュレーションを音符や和音の上と下の両方に表示する > ] |
ヘアピンの最小長さをセットする
ヘアピンが短すぎる場合、Hairpin オブジェクトの minimum-length
プロパティを変更することで長くすることができます。
\relative c'' {
c4\< c\! d\> e\!
<< f1 { s4 s\< s\> s\! } >>
\override Hairpin.minimum-length = #5
<< f1 { s4 s\< s\> s\! } >>
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ヘアピンの最小長さをセットする ] | [ 上へ : Expressive marks ] | [ Expressive marks: スナップ ピッツィカートあるいはバルトーク ピッツィカート > ] |
同じアーティキュレーションを音符や和音の上と下の両方に表示する
デフォルトでは、LilyPond は同じアーティキュレーション
(例えばアクセント、フェルマータ、フラジョレットなど) を音符の上と下に表示することを認めていません。例えば、c4_\fermata^\fermata では、フェルマータが音符の下のみに表示され、上に表示するよう指定したフェルマータは無視されます。しかし、和音表記を用いてその内部にアーティキュレーションを配置すると、(運指記号と同じように)
アーティキュレーションを好きなだけ表示することができます。このアプローチでは符幹を無視し、アーティキュレーションを符頭との相対位置で配置します。これはこのスニペットのフラジョレットに見られます。和音外に配置されるアーティキュレーションと同じ挙動を得るには、add-stem-support が必要となります。そのため、解決策は音符を和音として表記し、<...> の中にアーティキュレーションを追加することです。
向きは常に上向きですが、\tweak によって変更することができます:
<c-\tweak direction #DOWN-\fermata^\fermata>
% The same as \flageolet, just a little smaller
smallFlageolet = \tweak font-size #-2 \flageolet
\relative c' {
s4^"Wrong:"
c4_\fermata^\fermata % The second fermata is ignored!
<e d'>4^\smallFlageolet_\smallFlageolet
s4^"Works if written inside a chord:"
<e_\smallFlageolet d'^\smallFlageolet>4
<e_\flageolet d'^\flageolet>4
<e_\smallFlageolet^\smallFlageolet>4
<e_\fermata^\fermata>4
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 同じアーティキュレーションを音符や和音の上と下の両方に表示する ] | [ 上へ : Expressive marks ] | [ Expressive marks: ブレス記号にチェックを使用する > ] |
スナップ ピッツィカートあるいはバルトーク ピッツィカート
スナップ ピッツィカート (“バルトーク ピッツィカート”とも呼ばれます) は、“弦を指板と垂直に強く引っ張って離して弦を指板にぶつけること” (Wikipedia) です。これは円とその中央から上に突き出す線の記号によって表します。
\relative c' {
c4\snappizzicato
<c' e g>4\snappizzicato
<c' e g>4^\snappizzicato
<c, e g>4_\snappizzicato
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: スナップ ピッツィカートあるいはバルトーク ピッツィカート ] | [ 上へ : Expressive marks ] | [ Expressive marks: ディビジを見やすくするために arpeggioBracket を使用する > ] |
ブレス記号にチェックを使用する
歌曲や管楽では、ブレス記号によくチェック マークを使用します。これはコンマ記号で示すように短い間を挿入するものではなく、マークの前にある音符を少しだけ短くすることでブレスを行います。マークを譜から離すために、上方向に少し移動しています。
\relative c'' {
c2
\breathe
d2
\override BreathingSign.Y-offset = #2.6
\override BreathingSign.text =
\markup { \musicglyph "scripts.tickmark" }
c2
\breathe
d2
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ブレス記号にチェックを使用する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 和音のレガートに 2 つのスラーを使用する > ] |
ディビジを見やすくするために arpeggioBracket を使用する
符幹が存在しないため情報がない場合に、ボイスの分割を arpeggioBracket
で表すことができます。これは合唱曲によく見られます。
\include "english.ly"
\score {
\relative c'' {
\key a \major
\time 2/2
<<
\new Voice = "upper"
<<
{ \voiceOne \arpeggioBracket
a2( b2
<b d>1\arpeggio)
<cs e>\arpeggio ~
<cs e>4
}
\addlyrics { \lyricmode { A -- men. } }
>>
\new Voice = "lower"
{ \voiceTwo
a1 ~
a
a ~
a4 \bar "|."
}
>>
}
\layout { ragged-right = ##t }
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: ディビジを見やすくするために arpeggioBracket を使用する ] | [ 上へ : Expressive marks ] | [ Expressive marks: whiteout プロパティを使用する > ] |
和音のレガートに 2 つのスラーを使用する
和音をレガートで演奏する場合、2 つのスラーを書く場合があります。これは
doubleSlurs をセットすることで実現できます。
\relative c' {
\set doubleSlurs = ##t
<c e>4( <d f> <c e> <d f>)
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: 和音のレガートに 2 つのスラーを使用する ] | [ 上へ : Expressive marks ] | [ Expressive marks: バロック音楽の縦線アーティキュレーション マーク > ] |
whiteout プロパティを使用する
下にあるオブジェクトの一部分をマスクするために、任意のグラフィカル
オブジェクトを白い背景の上に表示することができます。これは、衝突を解決するためにオブジェクトを移動するのが困難であるような複雑な状況において、見た目を改善するのに有効です。layer プロパティを明示的に設定して、どのオブジェクトが白でマスクされるかを指定しなければなりません。
この例では、タイと拍子記号が重なる部分について、タイの方をマスクしています。そのためには TimeSignature の whiteout プロパティを設定し、TimeSignature を Tie の上のレイヤに移動する必要があります。Tie のデフォルトのレイヤは 1 であるため、TimeSignature
のレイヤ値をそれより大きくします。また、StaffSymbol がマスクされないように、更に上位のレイヤに配置する必要があります。
{
\override Score.StaffSymbol.layer = #4
\override Staff.TimeSignature.layer = #3
b'2 b'~
\once \override Staff.TimeSignature.whiteout = ##t
\time 3/4
b' r4
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: whiteout プロパティを使用する ] | [ 上へ : Expressive marks ] | [ Expressive marks: 複数の音符にまたがる強弱記号を縦方向に揃える > ] |
バロック音楽の縦線アーティキュレーション マーク
音符の上にある短い線は、バロック音楽で広く用いられるものです。意味は様々ですが、通常は音符をより“重く”演奏することを指示しています。次の例は、この記譜をどのように実現するかを示しています。
upline =
\tweak stencil
#(lambda (grob)
(grob-interpret-markup grob #{ \markup \draw-line #'(0 . 1) #}))
\stopped
\relative c' {
a'4^\upline a( c d')_\upline
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: バロック音楽の縦線アーティキュレーション マーク ] | [ 上へ : Expressive marks ] | [ Repeats > ] |
複数の音符にまたがる強弱記号を縦方向に揃える
同じ音符に配置されている、または開始あるいは終了する強弱記号は、縦方向に揃えられます。同じ音符に配置されない強弱記号も揃えるためには、DynamicLineSpanner オブジェクトの staff-padding
プロパティを大きな値にします。
\relative c' {
\override DynamicLineSpanner.staff-padding = #4
c2\p f\mf
g2\< b4\> c\!
}
| [ << Expressive marks ] | [トップ][目次] | [ Repeats >> ] |
| [ < Expressive marks: バロック音楽の縦線アーティキュレーション マーク ] | [ 上へ : Expressive marks ] | [ Repeats > ] |