カスタム タブ譜

LilyPond のタブ譜は、音符に対するフレットを、その音符が割り当てられている弦に基づいて、自動的に算出します。フレットの算出を行うために、弦のチューニングを指定する必要があります。弦のチューニングは stringTunings プロパティで指定します。

LilyPond にはあらかじめ定義された弦チューニングが用意されています – バンジョー、マンドリン、ギター、バス ギター、ウクレレ、バイオリン、ビオラ、チェロ、それにダブル バス用があります。LilyPond は、あらかじめ定義されたチューニングに対して、適切な移調をセットします。以下の例はバス ギター用であり、記述されている音符よりも 1 オクターブ低く演奏されます。

<<
  \new Voice \with {
    \omit StringNumber
  } {
    \clef "bass_8"
    \relative {
      c,4 d e f
    }
  }
  \new TabStaff \with {
    stringTunings = #bass-tuning
  } {
    \relative {
      c,4 d e f
    }
  }
>>

[image of music]

デフォルトの弦チューニングは guitar-tuning で、これは標準の EADGBE チューニングです。他のあらかじめ定義されたチューニングには、guitar-open-g-tuning, mandolin-tuning それに banjo-open-g-tuning があります。あらかじめ定義された弦チューニングは ly/string-tunings-init.ly の中にあります。

望みに応じて任意の弦チューニングを作成することができます。\stringTuning 関数を用いて弦チューニングを定義し、カレント コンテキストの stringTunings としてセットすることができます。

\stringTuning の引数は、チューニングにおける各弦のピッチを定義する和音構造です。和音構造は絶対オクターブ モードにする必要があります – 絶対オクターブ入力 を参照してください。和音の中で、一番大きな番号を持つ弦 (一般的に低い音の弦) が最初に来る必要があります。例えば、a'', d'', g', それに c' のピッチを持つ 4 弦の楽器用の弦チューニングを定義することができます:

mynotes = {
  c'4 e' g' c'' |
  e''4 g'' b'' c'''
}

<<
  \new Staff {
    \clef treble
    \mynotes
  }
  \new TabStaff {
    \set Staff.stringTunings = \stringTuning <c' g' d'' a''>
    \mynotes
  }
>>

[image of music]

FretBoardsstringTunings プロパティ用いることで、自動的にフレット ダイアグラムを算出させることもできます。

弦チューニングは、あらかじめ定義されたフレット ダイアグラムに対するハッシュ キーの一部として使われます

上記の例を、以下のように書き換えることができます:

custom-tuning = \stringTuning <c' g' d'' a''>

mynotes = {
  c'4 e' g' c'' |
  e''4 g'' b'' c'''
}

<<
  \new Staff {
    \clef treble
    \mynotes
  }
  \new TabStaff {
    \set TabStaff.stringTunings = #custom-tuning
    \mynotes
  }
>>

[image of music]

内部的には、弦チューニングは弦ピッチの Scheme リストです – それぞれの弦ピッチは各弦に対するピッチで、弦番号 1 から N の順に並んでいて、弦 1 はタブ譜の最上段、弦 N はタブ譜の最下段となります。通常、このリストは高いピッチから低いピッチの順になりますが、いくつかの楽器 (例えば、ウクレレ) の弦はピッチの高低順に並んでいません。

弦チューニング リストの中の弦ピッチは 1 つ 1 つが LilyPond ピッチ オブジェクトです。ピッチ オブジェクトは Scheme 関数 ly:make-pitch (Scheme functions を参照してください) で作成されます。

\stringTuning は和音構造から弦チューニング リストを作成します。

LilyPond は、TabStaff の行数と自動的に算出される FretBoard の弦数 (これは stringTunings の要素数です) を自動的に算出します。

すべての TabStaff コンテキストに同じカスタム チューニングを適用するには、下記のようにします:

\layout {
  \context {
    \TabStaff
    stringTunings = \stringTuning <c' g' d'' a''>
  }
}

現代タブ譜の音部記号を使うこともできます。

\new TabStaff {
  \clef moderntab
  <a, e a>1
  \break
  \clef tab
  <a, e a>1
}

[image of music]

現代タブ譜の音部記号は、4 から 7 弦までのタブ譜をサポートします。

TabStaff は 4 分音のような微分音に対応しています。このような音はベンディングを使って演奏されます。 supportNonIntegerFret = ##t が Score コンテキストにセットされている必要があります。しかしながら、微分音は FretBoards ではサポートされていません。

\layout {
  \context {
    \Score
    supportNonIntegerFret = ##t
  }
}

custom-tuning = \stringTuning <e, a, d ges beh eeh'>

mus = \relative {
  eeses'4
  eeseh
  ees
  eeh
  e
  eih
  eis
  eisih
  eisis
}

<<
  \new Staff << \clef "G_8" \mus >>
  \new TabStaff \with { stringTunings = \custom-tuning } \mus
>>

[image of music]

参照

記譜法リファレンス: 絶対オクターブ入力, あらかじめ定義されたフレット ダイアグラム.

インストールされているファイル: ly/string-tunings-init.ly scm/tablature.scm

コード断片集: Fretted strings

内部リファレンス: Tab_note_heads_engraver, Scheme functions.

既知の問題と警告

ウクレレなどのように弦がピッチ順に並んでいない楽器では、大抵の場合、 タブ譜の自動算出は正しく機能しません。


LilyPond 記譜法リファレンス v2.25.22 (development-branch).