\tweak コマンド

利用可能な最後の調整コマンドは \tweak です。これは同じ音楽タイミングで発生するいくつかのオブジェクトのうち、1 つのオブジェクトだけを選択してプロパティを変更したい場合に使用します – 例えば、和音の中にある 1 つの音符のプロパティを変更する場合です。\override コマンドを使用すると和音の中にあるすべての音符に影響を与えます。一方、\tweak は入力ストリームの中でその \tweak のすぐ後にある要素 1 つだけに影響を与えます。

ここで例を挙げます。C メジャー コードの中にある真ん中の音符 (ミドル E) の符頭のサイズを変更したいとします。まず最初に、\once \override だとどうなるか見てみましょう:

\relative {
  <c' e g>4
  \once \override NoteHead.font-size = #-3
  <c e g>4
  <c e g>4
}

[image of music]

このオーバライドは和音の中にあるすべての符頭に影響を与えています。これは和音の中にあるすべての音符が同じ タイミング で起こるためであり、\once のアクションは \override と同様に同じタイミングで起こる、指定されたタイプすべてのレイアウト オブジェクトへのオーバライドに適用されます。

\tweak コマンドはこれとは異なるやり方で処理されます。これは入力ストリームの中ですぐ後に続く要素にだけ作用します。最もシンプルな形式の \tweak コマンドは、コマンドの直後にある要素から直接作成されるオブジェクト – 本質的に符頭とアーティキュレーション – にだけ効果を持ちます。

それでは例に戻り、この方法で和音の真ん中の音符のサイズを変更します:

\relative {
  <c' e g>4
  <c \tweak font-size #-3 e g>4
}

[image of music]

\tweak の構文は \override コマンドの構文とは異なるということに注意してください。コンテキストを指定しません – 実際、指定するとエラーになります。コンテキストとレイアウト オブジェクトはどちらも入力ストリームの中で後に続く要素によって示されます。さらに、イコール記号を使うべきではないということに注意してください。そのため、簡単な形式の \tweak コマンドは以下のようになります:

\tweak layout-property #value

さらに、\tweak コマンドは一連のアーティキュレーションの中にあるただ 1 つのアーティキュレーションを変更されるためにも使用できます。ここに例を挙げます:

a'4^"Black"
  -\tweak color #red ^"Red"
  -\tweak color #green _"Green"

[image of music]

\tweak コマンドはアーティキュレーション マークの前に配置する必要があることに注意してください。なぜなら、調整された表記がアーティキュレーションとして適用される必要があるためです。複数の向き記号 (^ または _) で上書きした場合、最後に適用される左端の記号が勝ち残ります。

符幹や臨時記号などのオブジェクトは後になってから作成されるもので、\tweak コマンドの後に続くイベントから直接作成されません。そのような直接作成されないオブジェクトの場合、明示的にレイアウト オブジェクト名を指定して LilyPond がそれらのオブジェクトの起源を追跡できるようにすることで、\tweak で調整することができます:

<\tweak Accidental.color #red   cis''4
 \tweak Accidental.color #green es''
 g''>

[image of music]

この長い形式の \tweak コマンドは以下のように記述することができます:

\tweak LayoutObject.layout-property #value

さらに、\tweak コマンドは、同時に起こるネストされた連符記号のセットのうちの 1 つの見た目を変更するためにも使用されます。以下の例では、長い連符記号と 3 つの短い連符記号のうちの最初の連符記号が同時に起こります。そのため、\override コマンドだと両方の連符記号に適用されてしまいます。この例では、\tweak は 2 つの連符記号を区別するために使用されています。最初の \tweak コマンドは長い連符記号を音符の上に置くことを指定していて、2 番目の \tweak コマンドは最初の短い連符記号の数字を赤で描くことを指定しています。

\relative c'' {
  \tweak direction #up
  \tuplet 3/4 {
    \tweak color #red
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
  }
}

[image of music]

ネストされた連符が同時に起こらない場合、それらの見た目は \override コマンドを用いた通常通りの方法で変更されるかもしれません:

\relative {
  \tuplet 3/2 { c'8[ c c] }
  \once \override TupletNumber.text = #tuplet-number::calc-fraction-text
  \tuplet 3/2 {
    c8[ c]
    c8[ c]
    \once \override TupletNumber.transparent = ##t
    \tuplet 3/2 { c8[ c c] }
    \tuplet 3/2 { c8[ c c] }
  }
}

[image of music]

参照

記譜法リファレンス: The tweak command


GNU LilyPond 学習マニュアル v2.25.22 (development-branch).