LilyPond 記譜法リファレンス: 2.4.1 フレットのある弦楽器で共通の記譜法

### 2.4.1 フレットのある弦楽器で共通の記譜法

このセクションでは、フレットのある弦楽器で共通する記譜法について説明します。

#### フレットのある弦楽器のためのリファレンス

フレットのある弦楽器の演奏は通常、単一の譜で、伝統的な音楽記譜法あるいはタブ譜で記譜されます。これら 2 つが組み合わされることがあり、特にポピュラー音楽では伝統的な記譜法の譜の上にコード ダイアグラムを配置することが一般的です。ギターとバンジョーは移調楽器であり、楽譜よりも 1 オクターブ下の音を出します。これらの楽器のための楽譜は音部記号 `"treble_8"` (あるいは、正しい MIDI 出力を得るために `\transposition c`) を使うべきです。フレットのある弦楽器に関係する他のいくつかの要素は他の場所でカバーされています:

- 運指は 運指の指示 で説明しています。
- レセ ヴィブレ (Laissez vibrer) タイは、アルペジオとトレモロで使われるタイと同様に、タイ で説明しています。
- 複数のボイスを処理するための説明は、衝突の解決 にあります。
- ハーモニクス指示についての説明は、ハーモニクス にあります。

#### 参照

記譜法リファレンス: 運指の指示, タイ, 衝突の解決, 楽器名, 音楽を並列に記述する, アルペジオ, アーティキュレーションの一覧, 音部記号, 楽器の移調

#### 弦番号の指示

音符の後に `\number` を付けることによって、演奏する音符の弦を指示することができます。

>     \clef "treble_8"
>     c4\5 e\4 g2\3
>     <c\5 e\4 g\3>1

運指と弦の指示を一緒に使う場合、明示的に作成された和音の中にある場合に のみ、 それら 2 要素を記述する順序で配置を制御することができます: 和音全体や和音の 中にない 単独の音符に適用される場合、運指記号は異なるメカニズムで配置されます。

>     \clef "treble_8"
>     g4\3-0
>     g-0\3
>     <g\3-0>
>     <g-0\3>

弦番号も、フレットの無い弦楽器の慣習のようにロマン数字で表示したり、譜の上ではなく下に配置することができます。

>     \clef "treble_8"
>     c'2\2
>     a\3
>     \romanStringNumbers
>     c'\2
>     \set stringNumberOrientations = #'(down)
>     a\3
>     \arabicStringNumbers
>     g1\4

#### Selected Snippets

和音内の運指記号の位置をコントロールする

運指番号の位置を精密にコントロールすることができます。位置の設定が適用されるためには、単一の音符であっても和音構造 <> を用いる必要があります。

>     \relative c' {
>       \set fingeringOrientations = #'(left)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(down)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(down right up)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(up)
>       <c-1 e-3 a-5>4
>       \set fingeringOrientations = #'(left)
>       <c-1>2
>       \set fingeringOrientations = #'(down)
>       <e-3>2
>       \set stringNumberOrientations = #'(up left down)
>       <f\3 a\2 c\1>1
>       \set strokeFingerOrientations = #'(down right up)
>       <c\rightHandFinger #1 e\rightHandFinger #2 c'\rightHandFinger #4 >
>     }

運指記号を譜の内側に表示する

デフォルトでは、縦方向の運指記号は譜の外側に配置されます。この挙動を取り消すことができます。注意: この場合、和音でない場合にも <> を用いる必要があります。

>     \relative c' {
>       <c-1 e-2 g-3 b-5>2
>       \override Fingering.staff-padding = #'()
>       <c-1 e-2 g-3 b-5>4 g'-0
>       a8[-1 b]-2 g-0 r
>       \override Fingering.add-stem-support = ##f
>       a[-1 b]-2 g-0 r
>       \override Fingering.add-stem-support = ##t
>       a[-1 b]-2 g-0 r
>       \override Fingering.add-stem-support = #only-if-beamed
>       a[-1 b]-2 g-0 r
>     }

#### 定義済みコマンド

`\arabicStringNumbers`, `\romanStringNumbers`.

#### 参照

記譜法リファレンス: 運指の指示

コード断片集: Fretted strings

内部リファレンス: StringNumber, Fingering

#### デフォルトのタブ譜

弦をはじく楽器の楽譜は、しばしばタブ譜で記譜されます。伝統的な記譜法ではピッチが符頭で記述されるのに対して、数字 (あるいは、歴史上存在する楽譜では文字のような記号) で記述されます。タブ譜では、譜線は演奏される音符の弦を意味し、譜線上に配置される数字は対応する弦で押さえるべきフレットを意味します。同時に弾く音符は垂直方向に揃えられていることに注意してください。

デフォルトでは、弦 1 は一番上の弦であり、`TabStaff` の一番上の線に対応します。`TabStaff` のチューニングは、デフォルトでは、標準ギター (6 弦) のチューニングです。音符は、`TabStaff` コンテキストと `TabVoice` コンテキストを用いて、タブ譜として譜刻されます。筆記体のタブ譜の音部記号が自動的に付け加えられます。

>     \new TabStaff \relative {
>       a,8 a' <c e> a
>       d,8 a' <d f> a
>     }

デフォルトのタブ譜は、音符の演奏時間や他の音楽記号 – 例えば、表現記号など – を保持しません。

>     symbols = {
>       \time 3/4
>       c4-.^"Allegro" d( e)
>       f4-.\f g a^\fermata
>       \mark \default
>       c8_.\<\( c16 c~ 2\!
>       c'2.\prall\)
>     }

>     \score {
>       <<
>         \new Staff { \clef "G_8" \symbols }
>         \new TabStaff { \symbols }
>       >>
>     }

伝統的な記譜法で用いられるすべての音楽記号をタブ譜に表示させるには、`TabStaff` コンテキスト内でコマンド `\tabFullNotation` を適用する必要があります。四分音符と区別するために、半音符には 2 重線の符幹が付けられるということを覚えておいてください。

>     symbols = {
>       \time 3/4
>       c4-.^"Allegro" d( e)
>       f4-.\f g a^\fermata
>       \mark \default
>       c8_.\<\( c16 c~ 2\!
>       c'2.\prall\)
>     }

>     \score {
>       \new TabStaff {
>         \tabFullNotation
>         \symbols
>       }
>     }

デフォルトでは、ピッチはフレット ボードの最も低い演奏ポジション (ファースト ポジション) に割り当てられます。自動的に開放弦が優先されます。ピッチを弾く弦を指定したい場合は、ピッチ名に弦番号指示を付け加えます。弦番号指示を伝統的な記譜法の譜に譜刻したくないのであれば、弦番号指示のステンシルを上書きすることでそうできます。通常、`minimumFret` の値を使って演奏ポジションを定義する方が入力しやすいです。`minimumFret` のデフォルト値は 0 です。

`minimumFret` がセットされている場合であっても、可能であれば開放弦が用いられます。この振る舞いは、`restrainOpenStrings` に `#t` をセットすることで変更することができます。

>     \layout { \omit Voice.StringNumber }
>     \new StaffGroup <<
>        \new Staff \relative {
>          \clef "treble_8"
>          \time 2/4
>          c16 d e f g4
>          c,16\5 d\5 e\4 f\4 g4\4
>          c,16 d e f g4
>        }
>        \new TabStaff \relative {
>          c16 d e f g4
>          c,16\5 d\5 e\4 f\4 g4\4
>          \set TabStaff.minimumFret = #5
>          \set TabStaff.restrainOpenStrings = ##t
>          c,16 d e f g4
>        }
>     >>

和音繰り返し記号 `q` を使って和音構造を繰り返すことができます。この機能をタブ譜で用いる場合、弦の削除や運指番号等のイベントがやっかいです。そのため、和音の繰り返し を用いたタブ譜の音楽表記で以下を明示的に実行したいと思うでしょう:

>     \chordRepeats #'(string-number-event fingering-event)

このコマンドは共通するものなので、`\tabChordRepeats` でも用いることができます。

>     guitar = \relative {
>       r8 <gis-2 cis-3 b-0>~ q4 q8~ 8 q4
>     }

>     \new StaffGroup <<
>       \new Staff {
>         \clef "treble_8"
>         \guitar
>       }
>       \new TabStaff {
>         \tabChordRepeats \guitar
>       }
>     >>

デフォルトでは、改行されるタイには括弧が付けられます。繰り返しの差し替え部分でも同様です。

>     ties = \relative {
>       \repeat volta 2 {
>         e'2. f4~
>         2 g2~
>       }
>       \alternative {
>          { g4 f2. }
>          { g4\repeatTie c,2. }
>       }
>       b1~
>       \break
>       b1
>       \bar "|."
>     }

>     \score {
>       <<
>         \new StaffGroup  <<
>           \new Staff {
>             \clef "treble_8"
>             \ties
>           }
>           \new TabStaff {
>             \ties
>           }
>         >>
>       >>
>       \layout {
>       indent = #0
>       ragged-right = ##t
>       }
>     }

コマンド `\hideSplitTiedTabNotes` は、括弧付きフレット番号の譜刻をキャンセルします:

>     ties = \relative {
>       \repeat volta 2 {
>         e'2. f4~
>         2 g2~ }
>       \alternative {
>         { g4 f2. }
>         { g4\repeatTie c,2. }
>       }
>       b1~
>       \break
>       b1
>       \bar "|."
>     }

>     \score {
>       <<
>         \new StaffGroup  <<
>           \new Staff {
>             \clef "treble_8"
>             \ties
>           }
>           \new TabStaff {
>           \hideSplitTiedTabNotes
>             \ties
>           }
>         >>
>       >>
>       \layout {
>       indent = #0
>       ragged-right = ##t
>       }
>     }

ハーモニック指示を演奏するピッチとしてタブ譜に付け加えることができます:

>     \layout { \omit Voice.StringNumber }
>     firstHarmonic = {
>       d'4\4\harmonic
>       g'4\3\harmonic
>       b'2\2\harmonic
>     }
>     \score {
>       <<
>         \new Staff {
>           \clef "treble_8"
>           \firstHarmonic
>         }
>         \new TabStaff { \firstHarmonic }
>       >>
>     }

コマンド `\harmonic` は常に和音ではなく単一の音符 (和音の中にあることもあり得ます) にくっつける必要があります。12 フレットの開放弦ハーモニクス (ナチュラル ハーモニクス) でのみ意味をなします。他の全てのハーモニクスは LilyPond によって算出されます。これは、フレットを行う手の指が触れる弦のフレットを指示することにより実現されます。

>     fretHarmonics = {
>       \harmonicByFret #5 d16\4
>       \harmonicByFret #4 d16\4
>       \harmonicByFret #3 d8\4
>       \harmonicByFret #5 <g\3 b\2>2.
>     }
>     \score {
>       <<
>         \new Staff {
>           \clef "treble_8"
>           \fretHarmonics
>         }
>         \new TabStaff { \fretHarmonics }
>       >>
>     }

上記の方法の代わりに、ハーモニクスの運指に弦の長さの比率を指定することによってハーモニクスを算出させることもできます。

>     ratioHarmonics = {
>       \harmonicByRatio #1/2 <g\3 b\2 e'\1>4
>       \harmonicByRatio #1/3 <g\3 b\2 e'\1>4
>       \harmonicByRatio #1/4 { g8\3 b8\2 e'4\1 }
>     }
>     \score {
>       <<
>         \new Staff {
>           \clef "treble_8"
>           \ratioHarmonics
>         }
>         \new TabStaff { \ratioHarmonics }
>       >>
>     }

#### Selected Snippets

タブ譜での符幹と連桁の挙動

タブ譜での符幹の向きは、伝統的な記譜法と同じように調整することができます。以下の例のように、連桁を水平にすることもできます。

>     \new TabStaff {
>       \relative c {
>         \tabFullNotation
>         g16 b d g b d g b
>         \stemDown
>         \override Beam.concaveness = #10000
>         g,,16 b d g b d g b
>       }
>     }

タブ譜における多声

`TabStaff` における多声は、通常の譜と同じように作成することができます。

>     upper = \relative c' {
>       \time 12/8
>       \key e \minor
>       \voiceOne
>       r4. r8 e, fis g16 b g e e' b c b a g fis e
>     }

>     lower = \relative c {
>       \key e \minor
>       \voiceTwo
>       r16 e d c b a g4 fis8 e fis g a b c
>     }

>     \score {
>       <<
>         \new StaffGroup = "tab with traditional" <<
>           \new Staff = "guitar traditional" <<
>             \clef "treble_8"
>             \new Voice = "upper" \upper
>             \new Voice = "lower" \lower
>           >>
>           \new TabStaff = "guitar tab" <<
>             \new TabVoice = "upper" \upper
>             \new TabVoice = "lower" \lower
>           >>
>         >>
>       >>
>     }

タブ譜で開放弦のハーモニクスを表示する

このスニペットは開放弦のハーモニクスを表示する方法を示しています。

>     openStringHarmonics = {
>       \textSpannerDown
>       \override TextSpanner.staff-padding = #3
>       \override TextSpanner.dash-fraction = #0.3
>       \override TextSpanner.dash-period = #1

>       %first harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "1st harm. "
>       \harmonicByFret #12 e,2\6\startTextSpan
>       \harmonicByRatio #1/2 e,\6\stopTextSpan

>       %second harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "2nd harm. "
>       \harmonicByFret #7 e,\6\startTextSpan
>       \harmonicByRatio #1/3 e,\6
>       \harmonicByFret #19 e,\6
>       \harmonicByRatio #2/3 e,\6\stopTextSpan
>       %\harmonicByFret #19 < e,\6 a,\5 d\4 >
>       %\harmonicByRatio #2/3 < e,\6 a,\5 d\4 >

>       %third harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "3rd harm. "
>       \harmonicByFret #5 e,\6\startTextSpan
>       \harmonicByRatio #1/4 e,\6
>       \harmonicByFret #24 e,\6
>       \harmonicByRatio #3/4 e,\6\stopTextSpan
>       \break

>       %fourth harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "4th harm. "
>       \harmonicByFret #4 e,\6\startTextSpan
>       \harmonicByRatio #1/5 e,\6
>       \harmonicByFret #9 e,\6
>       \harmonicByRatio #2/5 e,\6
>       \harmonicByFret #16 e,\6
>       \harmonicByRatio #3/5 e,\6\stopTextSpan

>       %fifth harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "5th harm. "
>       \harmonicByFret #3 e,\6\startTextSpan
>       \harmonicByRatio #1/6 e,\6\stopTextSpan
>       \break

>       %sixth harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "6th harm. "
>       \harmonicByFret #2.7 e,\6\startTextSpan
>       \harmonicByRatio #1/7 e,\6\stopTextSpan

>       %seventh harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "7th harm. "
>       \harmonicByFret #2.3 e,\6\startTextSpan
>       \harmonicByRatio #1/8 e,\6\stopTextSpan

>       %eighth harmonic
>       \override TextSpanner.bound-details.left.text =
>         \markup\small "8th harm. "
>       \harmonicByFret #2 e,\6\startTextSpan
>       \harmonicByRatio #1/9 e,\6\stopTextSpan
>     }

>     \score {
>       <<
>         \new Staff
>         \with { \omit StringNumber } {
>           \new Voice {
>             \clef "treble_8"
>             \openStringHarmonics
>           }
>         }
>         \new TabStaff {
>           \new TabVoice {
>             \openStringHarmonics
>           }
>         }
>       >>
>     }

フレットのある楽器のハーモニクスをタブ譜で表示する

フレットのある楽器のハーモニクスをタブ譜で表示する方法です。

>     pinchedHarmonics = {
>        \textSpannerDown
>        \override TextSpanner.bound-details.left.text =
>           \markup {\halign #-0.5 \teeny "PH" }
>           \override TextSpanner.style =
>              #'dashed-line
>        \override TextSpanner.dash-period = #0.6
>        \override TextSpanner.bound-details.right.attach-dir = #1
>        \override TextSpanner.bound-details.right.text =
>           \markup { \draw-line #'(0 . 1) }
>        \override TextSpanner.bound-details.right.padding = #-0.5
>     }

>     harmonics = {
>       %artificial harmonics (AH)
>       \textLengthOn
>       <\parenthesize b b'\harmonic>4_\markup { \teeny "AH 16" }
>       <\parenthesize g g'\harmonic>4_\markup { \teeny "AH 17" }
>       <\parenthesize d' d''\harmonic>2_\markup { \teeny "AH 19" }
>       %pinched harmonics (PH)
>       \pinchedHarmonics
>       <a'\harmonic>2\startTextSpan
>       <d''\harmonic>4
>       <e'\harmonic>4\stopTextSpan
>       %tapped harmonics (TH)
>       <\parenthesize g\4 g'\harmonic>4_\markup { \teeny "TH 17" }
>       <\parenthesize a\4 a'\harmonic>4_\markup { \teeny "TH 19" }
>       <\parenthesize c'\3 c''\harmonic>2_\markup { \teeny "TH 17" }
>       %touch harmonics (TCH)
>       a4( <e''\harmonic>2. )_\markup { \teeny "TCH" }
>     }

>     frettedStrings = {
>       %artificial harmonics (AH)
>       \harmonicByFret #4 g4\3
>       \harmonicByFret #5 d4\4
>       \harmonicByFret #7 g2\3
>       %pinched harmonics (PH)
>       \harmonicByFret #7 d2\4
>       \harmonicByFret #5 d4\4
>       \harmonicByFret #7 a4\5
>       %tapped harmonics (TH)
>       \harmonicByFret #5 d4\4
>       \harmonicByFret #7 d4\4
>       \harmonicByFret #5 g2\3
>       %touch harmonics (TCH)
>       a4 \harmonicByFret #9 g2.\3
>     }

>     \score {
>       <<
>         \new Staff
>         \with { \omit StringNumber } {
>           \new Voice {
>             \clef "treble_8"
>             \harmonics
>           }
>         }
>         \new TabStaff {
>           \new TabVoice {
>             \frettedStrings
>           }
>         }
>       >>
>     }

タブ譜でのスライド

スライドは `Staff` と `TabStaff` コンテキストの両方に表示することができます。

>     slides = {
>       c'8\3(\glissando d'8\3)
>       c'8\3\glissando d'8\3
>       \hideNotes
>       \grace { g16\glissando }
>       \unHideNotes
>       c'4\3
>       \afterGrace d'4\3\glissando {
>       \stemDown \hideNotes
>       g16 }
>       \unHideNotes
>     }

>     \score {
>       <<
>         \new Staff { \clef "treble_8" \slides }
>         \new TabStaff { \slides }
>       >>
>       \layout {
>         \context {
>           \Score
>           \override Glissando.minimum-length = #4
>           \override Glissando.springs-and-rods =
>                               #ly:spanner::set-spacing-rods
>           \override Glissando.thickness = #2
>           \omit StringNumber
>           % or:
>           %\override StringNumber.stencil = ##f
>         }
>       }
>     }

タブ譜での和音のグリッサンド

和音のスライドはデフォルトで `Staff` と `TabStaff` の両方に表示されます。`TabStaff` では、弦番号の自動計算の方法が和音と単一音で異なるため、弦番号が必要です。

>     myMusic = \relative c' {
>       <c e g>1 \glissando <f a c>
>     }

>     \score {
>       <<
>         \new Staff {
>           \clef "treble_8"
>           \myMusic
>         }
>         \new TabStaff \myMusic
>       >>
>     }

>     \score {
>       <<
>         \new Staff {
>           \clef "treble_8"
>           \myMusic
>         }
>         \new TabStaff \with { \override Glissando.style = #'none } {
>           \myMusic
>         }
>       >>
>     }

ハンマリング オンとプリング オフ

ハンマリング オンやプリング オフはスラーで得ることができます。

>     \new TabStaff {
>       \relative c' {
>         d4( e\2)
>         a( g)
>       }
>     }

ボイスに対してハンマリング オンやプリング オフを使用する

ハンマリング オンやプリング オフの弧は、ボイス 1, 3 に対しては上向き、ボイス 2, 4 に対しては下向きになります。

>     \new TabStaff {
>       \relative c' {
>         << { \voiceOne g2( a) }
>         \\ { \voiceTwo a,( b) }
>         >> \oneVoice
>       }
>     }

和音に対してハンマリング オンやプリング オフを使用する

和音に対してハンマリング オンやプリング オフを用いる際、弧は 1 つしか描かれません。“二重の弧” は、`doubleSlurs` プロパティを `#t` にセットすることで描くことができます。

>     \new TabStaff {
>       \relative c' {
>         % chord hammer-on and pull-off
>         \set doubleSlurs = ##t
>         <g' b>8( <a c> <g b>)
>       }
>     }

#### 参照

記譜法リファレンス: 和音の繰り返し, グリッサンド, ハーモニクス, 符幹, 繰り返しを描き出す

コード断片集: Fretted strings

内部リファレンス: TabNoteHead, TabStaff, TabVoice, Beam

#### 既知の問題と警告

和音は特殊な方法では処理できません。そのため、自動弦セレクタは和音の中にある 2 つの音符に対して同じ弦を選択することが容易に起こり得ます。

`\partCombine` を処理するには、`TabStaff` は特別なやり方で作成されたボイスを使う必要があります:

>     melodia = \partCombine { e4 g g g } { e4 e e e }
>     <<
>       \new TabStaff <<
>         \new TabVoice = "one" s1
>         \new TabVoice = "two" s1
>         \new TabVoice = "shared" s1
>         \new TabVoice = "solo" s1
>         { \melodia }
>       >>
>     >>

ギターの特殊効果はハーモニクスとスライドに制限されています。

#### カスタム タブ譜

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
>         }
>       }
>     >>

デフォルトの弦チューニングは `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
>       }
>     >>

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

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

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

>     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
>       }
>     >>

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

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

`\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
>     }

現代タブ譜の音部記号は、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
>     >>

#### 参照

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

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

コード断片集: Fretted strings

内部リファレンス: Tab_note_heads_engraver

#### 既知の問題と警告

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

#### フレット ダイアグラム マークアップ

フレット ダイアグラムを注釈のマークアップとして楽譜に追加することができます。このマークアップは記譜するフレット ダイアグラムについての情報を保持します。フレット ダイアグラムのマークアップ インターフェイスは 3 種類あります: 標準、簡易、それに冗長です。これら 3 種類のインターフェイスが作り出すマークアップは等価ですが、そのマークアップ文字列が持つ情報量は異なります。フレット ダイアグラムを定義するのに用いられるマークアップ文字列の文法についての詳細は、Instrument Specific Markup を参照してください。

標準フレット ダイアグラムのマークアップ文字列は、弦の上に配置されるドットの弦番号とフレット番号を示します。さらに、開放弦と消音 (ミュート) 弦を示すこともできます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1^\markup {
>           \fret-diagram "6-x;5-3;4-2;3-o;2-1;1-o;"
>         }
>         <d a d' f'>1^\markup {
>           \fret-diagram "6-x;5-x;4-o;3-2;2-3;1-1;"
>         }
>       }
>     >>

フレット ダイアグラム マークアップ文字列のダイアグラムに、バレー指示を追加することができます。

>     <<
>       \new ChordNames {
>          \chordmode {
>            f1 g
>          }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <f, c f a c' f'>1^\markup {
>           \fret-diagram "c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
>         }
>         <g, d g b d' g'>1^\markup {
>           \fret-diagram "c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;"
>         }
>       }
>     >>

フレット ダイアグラムのサイズ、それにダイアグラムの中のフレット数をフレット ダイアグラム マークアップ文字列の中で変更することができます。

>     <<
>       \new ChordNames {
>          \chordmode {
>            f1 g
>          }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <f, c f a c' f'>1^\markup {
>           \fret-diagram "s:1.5;c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
>         }
>         <g, b, d g b g'>1^\markup {
>           \fret-diagram "h:6;6-3;5-2;4-o;3-o;2-o;1-3;"
>         }
>       }
>     >>

バンジョーやウクレレなどの弦数に合わせて、フレット ダイアグラム マークアップ文字列でフレット ダイアグラムの弦数を変更することができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           a1
>         }
>       }
>       \new Staff {
>         % ウクレレの 'A' コード
>         a'1^\markup {
>           \fret-diagram "w:4;4-2-2;3-1-1;2-o;1-o;"
>         }
>       }
>     >>

フレット ダイアグラム マークアップ文字列で運指の指示を追加して、配置を制御することができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1^\markup {
>           \fret-diagram "f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
>         }
>         <d a d' f'>1^\markup {
>           \fret-diagram "f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
>         }
>       }
>     >>

フレット ダイアグラム マークアップ文字列でドットの大きさと位置を制御することができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1^\markup {
>           \fret-diagram "d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
>         }
>         <d a d' f'>1^\markup {
>           \fret-diagram "p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
>         }
>       }
>     >>

フレット ダイアグラムは左利き用に譜刻できます。

>     \markup
>       \center-column {
>         "C"
>         "(left-handed)"
>          \override #`(fret-diagram-details . ((handedness . ,LEFT)))
>          \fret-diagram "6-x;5-3-3;4-2-2;3-o;2-1;1-o;"
>       }

fret-diagram-terse マークアップ文字列は弦番号を省略します。弦番号はセミコロンで示します。ダイアグラムの弦毎にセミコロンを記述します。最初のセミコロンは最高の弦番号に対応し、最後のセミコロンは第 1 弦に対応します。消音弦、開放弦、それにフレット番号を示すことができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1^\markup {
>           \fret-diagram-terse "x;3;2;o;1;o;"
>         }
>         <d a d' f'>1^\markup {
>           \fret-diagram-terse "x;x;o;2;3;1;"
>         }
>       }
>     >>

fret-diagram-terse マークアップ文字列にバレー指示を含めることができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           f1 g
>         }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <f, c f a c' f'>1^\markup {
>           \fret-diagram-terse "1-(;3;3;2;1;1-);"
>         }
>         <g, d g b d' g'>1^\markup {
>           \fret-diagram-terse "3-(;5;5;4;3;3-);"
>         }
>       }
>     >>

fret-diagram-terse マークアップ文字列に運指の指示を含めることができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \new Staff {
>         \override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
>         \clef "treble_8"
>         <c e g c' e'>1^\markup {
>           \fret-diagram-terse "x;3-3;2-2;o;1-1;o;"
>         }
>         <d a d' f'>1^\markup {
>           \fret-diagram-terse "x;x;o;2-2;3-3;1-1;"
>         }
>       }
>     >>

fret-diagram-terse マークアップを使っている時、他のフレット ダイアグラム プロパティの調節には `\override` を用いる必要があります。

fret-diagram-terse マークアップでは、1 つの弦につき 1 つの指示しか追加できません。1 つの弦につき複数の指示を追加したい場合には、標準のフレット ダイアグラムか、fret-diagram-verbose を使用してください。

fret-diagram-verbose マークアップ文字列のフォーマットは Scheme リストです。リストの各要素はフレット ダイアグラム上に配置する要素を示しています。

>     <<
>         \new ChordNames {
>           \chordmode {
>             c1 d:m
>           }
>         }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1^\markup {
>           \fret-diagram-verbose #'(
>             (mute 6)
>             (place-fret 5 3)
>             (place-fret 4 2)
>             (open 3)
>             (place-fret 2 1)
>             (open 1)
>           )
>         }
>         <d a d' f'>1^\markup {
>           \fret-diagram-verbose #'(
>             (mute 6)
>             (mute 5)
>             (open 4)
>             (place-fret 3 2)
>             (place-fret 2 3)
>             (place-fret 1 1)
>           )
>         }
>       }
>     >>

fret-diagram-verbose マークアップ文字列に運指の指示とバレー指示を含めることができます。fret-diagram-verbose インターフェイスに特有なこととして、 カポ指示をフレット ダイアグラム上に配置することができます。カポ指示はすべての弦に重なる太い線です。カポを持つフレットは、フレット ダイアグラムの中の最も低いフレットです。

運指の指示を含むドットは、括弧付きのものも含めて色を付けることができます。括弧の色も独立に変更することができます。

マークアップはドットの中にも配置することができます。

>     <<
>         \new ChordNames {
>           \chordmode {
>             f1 g c c b
>           }
>         }
>       \new Staff {
>         \clef "treble_8"
>         \override Voice.TextScript
>           .fret-diagram-details.finger-code = #'below-string
>         <f, c f a c' f'>1^\markup {
>           \fret-diagram-verbose #'(
>             (place-fret 6 1)
>             (place-fret 5 3)
>             (place-fret 4 3)
>             (place-fret 3 2)
>             (place-fret 2 1)
>             (place-fret 1 1)
>             (barre 6 1 1)
>           )
>         }
>         <g, b, d g b g'>1^\markup {
>           \fret-diagram-verbose #'(
>             (place-fret 6 3 2)
>             (place-fret 5 2 1)
>             (open 4)
>             (open 3)
>             (open 2)
>             (place-fret 1 3 3)
>           )
>         }
>         <c g c' e' g'>1^\markup {
>           \fret-diagram-verbose #'(
>             (capo 3)
>             (mute 6)
>             (place-fret 4 5 1)
>             (place-fret 3 5 2)
>             (place-fret 2 5 3)
>           )
>         }
>         \override Voice.TextScript.size = 1.4
>         <c g c' e' g'>1^\markup {
>           \fret-diagram-verbose #'(
>             (place-fret 6 3 1 red parenthesized default-paren-color)
>             (place-fret 5 3 1 inverted)
>             (place-fret 4 5 2 blue parenthesized)
>             (place-fret 3 5 3 blue)
>             (place-fret 2 5 4 blue)
>             (place-fret 1 3 1 inverted)
>           )
>         }
>         \override Voice.TextScript.size = 1.5
>         <b, fis b dis' fis'>1^\markup
>           \override #'(fret-diagram-details . ((finger-code . in-dot)))
>           \fret-diagram-verbose #`(
>             (place-fret 5 2 1)
>             (place-fret 4 4 "fis" red)
>             (place-fret 3 4 "b" red)
>             (place-fret
>               2 4
>               ,#{ \markup
>                     \concat {
>                       \vcenter "d"
>                       \fontsize #-5
>                       \musicglyph "accidentals.sharp"} #}
>               red)
>             (place-fret 1 2 1)
>           )
>       }
>     >>

fret-diagram-verbose マークアップを使っている時、他のフレット ダイアグラム プロパティの調節には `\override` を用いる必要があります。

ユーザの好みに応じて、`fret-diagram-interface` プロパティでフレット ダイアグラムのグラフィック レイアウトをカスタマイズすることが可能です。 詳細は、 fret-diagram-interface を参照してください。フレット ダイアグラム マークアップ用のインターフェイス プロパティは `Voice.TextScript` に属します。

#### Selected Snippets

フレット図の向きを変更する

フレット図は 3 種類の向きを指定できます。デフォルトの揃え位置は、一番上にある弦またはフレットです。

>     \include "predefined-guitar-fretboards.ly"

>     <<
>       \chords {
>         c1
>         c1
>         c1
>       }
>       \new FretBoards {
>         \chordmode {
>           c1
>           \override FretBoard.fret-diagram-details.orientation =
>             #'landscape
>           c1
>           \override FretBoard.fret-diagram-details.orientation =
>             #'opposing-landscape
>           c1
>         }
>       }
>       \new Voice {
>         c'1
>         c'1
>         c'
>       }
>     >>

マークアップのフレット図をカスタマイズする

フレット図のプロパティは `fret-diagram-details` からセットできます。マークアップのフレット図では、オーバライドは `Voice.TextScript` オブジェクトや、マークアップに直接適用されます。

>     <<
>       \chords { c1 | c | c | d }

>       \new Voice = "mel" {
>         \textLengthOn
>         % Set global properties of fret diagram
>         \override TextScript.size = #'1.2
>         \override TextScript.fret-diagram-details.finger-code = #'in-dot
>         \override TextScript.fret-diagram-details.dot-color = #'white

>         %% C major for guitar, no barre, using defaults
>            % terse style
>         c'1^\markup { \fret-diagram-terse "x;3-3;2-2;o;1-1;o;" }

>         %% C major for guitar, barred on third fret
>            % verbose style
>            % size 1.0
>            % roman fret label, finger labels below string, straight barre
>         c'1^\markup {
>           % standard size
>           \override #'(size . 1.0) {
>             \override #'(fret-diagram-details . (
>                          (number-type . roman-lower)
>                          (finger-code . in-dot)
>                          (barre-type . straight))) {
>               \fret-diagram-verbose #'((mute 6)
>                                        (place-fret 5 3 1)
>                                        (place-fret 4 5 2)
>                                        (place-fret 3 5 3)
>                                        (place-fret 2 5 4)
>                                        (place-fret 1 3 1)
>                                        (barre 5 1 3))
>             }
>           }
>         }

>         %% C major for guitar, barred on third fret
>            % verbose style
>            % landscape orientation, arabic numbers, M for mute string
>            % no barre, fret label down or left, small mute label font
>         c'1^\markup {
>           \override #'(fret-diagram-details . (
>                        (finger-code . below-string)
>                        (number-type . arabic)
>                        (label-dir . -1)
>                        (mute-string . "M")
>                        (orientation . landscape)
>                        (barre-type . none)
>                        (xo-font-magnification . 0.4)
>                        (xo-padding . 0.3))) {
>             \fret-diagram-verbose #'((mute 6)
>                                      (place-fret 5 3 1)
>                                      (place-fret 4 5 2)
>                                      (place-fret 3 5 3)
>                                      (place-fret 2 5 4)
>                                      (place-fret 1 3 1)
>                                      (barre 5 1 3))
>           }
>         }

>         %% simple D chord
>            % terse style
>            % larger dots, centered dots, fewer frets
>            % label below string
>         d'1^\markup {
>           \override #'(fret-diagram-details . (
>                        (finger-code . below-string)
>                        (dot-radius . 0.35)
>                        (dot-position . 0.5)
>                        (fret-count . 3))) {
>             \fret-diagram-terse "x;x;o;2-1;3-2;2-3;"
>           }
>         }
>       }
>     >>

#### 参照

記譜法リファレンス: Instrument Specific Markup

コード断片集: Fretted strings

内部リファレンス: fret-diagram-interface

#### あらかじめ定義されたフレット ダイアグラム

フレット ダイアグラムを `FretBoards` コンテキストを用いて表示させることができます。デフォルトでは、 `FretBoards` コンテキストは参照テーブルに保存されているフレット ダイアグラムを表示します:

>     \include "predefined-guitar-fretboards.ly"
>     \new FretBoards {
>       \chordmode {
>         c1 d
>       }
>     }

あらかじめ定義されたフレット ダイアグラムのデフォルトは ファイル ‘`predefined-guitar-fretboards.ly`’ の中にあります。 フレット ダイアグラムは、コードのピッチと現在使われている `stringTunings` の値に基づいて保存されます。‘`predefined-guitar-fretboards.ly`’ が保持しているあらかじめ定義されたフレット ダイアグラムは、ギター用だけです。‘`predefined-guitar-fretboards.ly`’ の中にある例に従って、他の楽器あるいは他のチューニング用のあらかじめ定義されたフレット ダイアグラムを追加することができます。

ウクレレ用のフレット ダイアグラムはファイル ‘`predefined-ukulele-fretboards.ly`’ の中にあります。

>     \include "predefined-ukulele-fretboards.ly"

>     myChords = \chordmode { a1 a:m a:aug }

>     \new ChordNames {
>       \myChords
>     }

>     \new FretBoards {
>       \set Staff.stringTunings = #ukulele-tuning
>       \myChords
>     }

マンドリン用のフレット ダイアグラムはファイル ‘`predefined-mandolin-fretboards.ly`’ の中にあります。

>     \include "predefined-mandolin-fretboards.ly"

>     myChords = \chordmode { c1 c:m7.5- c:aug }

>     \new ChordNames {
>       \myChords
>     }

>     \new FretBoards {
>       \set Staff.stringTunings = #mandolin-tuning
>       \myChords
>     }

コードのピッチを入力する方法は、同時進行する音楽として入力するか、コード モード (和音モードの概要 を参照してください) を用いて入力するかのどちらかです。

>     \include "predefined-guitar-fretboards.ly"
>     \new FretBoards {
>       \chordmode { c1 }
>       <c' e' g'>1
>     }

コード ネームとフレット ダイアグラムを一緒に表示させることが一般的に行われます。これを実現するには、`ChordNames` コンテキストを `FretBoards` コンテキストと並列に配置して、両方のコンテキストに同じ音楽を与えます。

>     \include "predefined-guitar-fretboards.ly"
>     mychords = \chordmode {
>       c1 f g
>     }

>     <<
>       \new ChordNames {
>         \mychords
>       }
>       \new FretBoards {
>         \mychords
>       }
>     >>

あらかじめ定義されたフレット ダイアグラムは、c 移調されたコードに対するダイアグラムがフレット ダイアグラム テーブルに保存されていれば、移調可能です。

>     \include "predefined-guitar-fretboards.ly"
>     mychords = \chordmode {
>       c1 f g
>     }

>     mychordlist = {
>       \mychords
>       \transpose c e { \mychords }
>     }
>     <<
>       \new ChordNames {
>         \mychordlist
>       }
>       \new FretBoards {
>         \mychordlist
>       }
>     >>

ギター用のあらかじめ定義されたフレット ダイアグラム テーブルは、17 キーのそれぞれに対して 8 つのコード (major, minor, augmented, diminished, dominant seventh, major seventh, minor seventh, dominant ninth) を保持しています。ウクレレ用のあらかじめ定義されたフレット ダイアグラム テーブルは、上記のコードに加えて、3 つのコード (major sixth, suspended second, それに suspended fourth) を保持しています。あらかじめ定義されたフレット ダイアグラムの完全なリストは 定義されたフレット図 で示されています。テーブルにエントリされていないコードがある場合、FretBoards エングラーバは 自動フレット ダイアグラム で説明する自動フレット ダイアグラム機能を用いてフレット ダイアグラムを算出します。

>     \include "predefined-guitar-fretboards.ly"
>     mychords = \chordmode {
>       c1 c:maj9
>     }

>     <<
>       \new ChordNames {
>         \mychords
>       }
>       \new FretBoards {
>         \mychords
>       }
>     >>

フレット ダイアグラムをフレット ダイアグラム テーブルに追加することができます。ダイアグラムを追加するには、ダイアグラムのハッシュ テーブル、ダイアグラムのコード、使用するチューニング、それにダイアグラムの定義を指定する必要があります。通常、ハッシュ テーブルは default-fret-table です。ダイアグラムの定義は `fret-diagram-terse` 定義文字列または`fret-diagram-verbose` マーキング リストのどちらかです。

>     \include "predefined-guitar-fretboards.ly"

>     \storePredefinedDiagram #default-fret-table
>                             \chordmode { c:maj9 }
>                             #guitar-tuning
>                             "x;3-2;o;o;o;o;"

>     mychords = \chordmode {
>       c1 c:maj9
>     }

>     <<
>       \new ChordNames {
>         \mychords
>       }
>       \new FretBoards {
>         \mychords
>       }
>     >>

ピッチのオクターブを変えることで、同じコード ネームに対して異なるフレット ダイアグラムを保存することができます。オクターブを変える場合は、デフォルトのオクターブに対して少なくとも 2 オクターブ上げるか下げる必要があります。デフォルトの 1 オクターブ上または下のオクターブは、フレットボードの移調に使用されるためです。

>     \include "predefined-guitar-fretboards.ly"

>     \storePredefinedDiagram #default-fret-table
>                             \chordmode { c'' }
>                             #guitar-tuning
>                             #(offset-fret 2 (chord-shape 'bes guitar-tuning))

>     mychords = \chordmode {
>       c1 c''
>     }

>     <<
>       \new ChordNames {
>         \mychords
>       }
>       \new FretBoards {
>         \mychords
>       }
>     >>

LilyPond はフレット ダイアグラムに加えて、コード シェイプの内部リストを保存します。コード シェイプとは、押さえるフレットをネック上の別の位置にシフトすることで別のコードを演奏できるようなフレット ダイアグラムです (訳注: 日本ではよくハイコードと呼ばれます)。コード シェイプを内部リストに追加することができ、フレット ダイアグラムを定義するために使うことができます。コード シェイプはネック上の様々な位置に移動することができるため、通常は開放弦を持ちません。フレット ダイアグラムと同様に、 コード シェイプは fret-diagram-terse 文字列でも fret-diagram-verbose リストでも入力することができます。

>     \include "predefined-guitar-fretboards.ly"

>     % 新しいコード シェイプを追加します

>     \addChordShape #'powerf #guitar-tuning "1-1;3-3;3-4;x;x;x;"

>     % パワー コード シェイプを基にして、新しいコードをいくつか追加します

>     \storePredefinedDiagram #default-fret-table
>                             \chordmode { f'' }
>                             #guitar-tuning
>                             #(chord-shape 'powerf guitar-tuning)
>     \storePredefinedDiagram #default-fret-table
>                             \chordmode { g'' }
>                             #guitar-tuning
>                             #(offset-fret 2 (chord-shape 'powerf guitar-tuning))

>     mychords = \chordmode {
>       f1 f'' g g''
>     }

>     <<
>       \new ChordNames {
>         \mychords
>       }
>       \new FretBoards {
>         \mychords
>       }
>     >>

`fret-diagram-interface` のプロパティを通じて、フレット ダイアグラムのグラフィカル レイアウトをユーザの好みに応じてカスタマイズすることができます。詳細は fret-diagram-interface を参照してください。あらかじめ定義されたフレット ダイアグラムのインターフェイス プロパティは`FretBoards.FretBoard` に属します。

#### Selected Snippets

フレットボードのフレット図をカスタマイズする

フレット図のプロパティは `fret-diagram-details` からセットできます。FretBoardのフレット図では、オーバライドは `FretBoards.FretBoard` オブジェクトに適用されます。`FretBoards` は `Voice` のように最下位のコンテキストであるため、プロパティのオーバライドでは省略することができます。

>     \include "predefined-guitar-fretboards.ly"
>     \storePredefinedDiagram #default-fret-table \chordmode { c' }
>                             #guitar-tuning
>                             #"x;1-1-(;3-2;3-3;3-4;1-1-);"

>     % shorthand
>     oo = #(define-music-function
>            (grob-path value)
>            (list? scheme?)
>            #{ \once \override $grob-path = #value #})

>     <<
>       \new ChordNames {
>         \chordmode { c1 | c | c | d }
>       }
>       \new FretBoards {
>         % Set global properties of fret diagram
>         \override FretBoards.FretBoard.size = #'1.2
>         \override FretBoard.fret-diagram-details.finger-code = #'in-dot
>         \override FretBoard.fret-diagram-details.dot-color = #'white
>         \chordmode {
>           c
>           \oo FretBoard.size #'1.0
>           \oo FretBoard.fret-diagram-details.barre-type #'straight
>           \oo FretBoard.fret-diagram-details.dot-color #'black
>           \oo FretBoard.fret-diagram-details.finger-code #'below-string
>           c'
>           \oo FretBoard.fret-diagram-details.barre-type #'none
>           \oo FretBoard.fret-diagram-details.number-type #'arabic
>           \oo FretBoard.fret-diagram-details.orientation #'landscape
>           \oo FretBoard.fret-diagram-details.mute-string #"M"
>           \oo FretBoard.fret-diagram-details.label-dir #LEFT
>           \oo FretBoard.fret-diagram-details.dot-color #'black
>           c'
>           \oo FretBoard.fret-diagram-details.finger-code #'below-string
>           \oo FretBoard.fret-diagram-details.dot-radius #0.35
>           \oo FretBoard.fret-diagram-details.dot-position #0.5
>           \oo FretBoard.fret-diagram-details.fret-count #3
>           d
>         }
>       }
>       \new Voice {
>         c'1 | c' | c' | d'
>       }
>     >>

他の楽器のためのフレットボードを定義する

定義されたフレット図のリストに、標準的なギターのフレット図以外のものを追加することができます。このファイルは、ベネズエラのクアトロのために調弦といくつかのフレット図を追加する例を示しています。

このファイルは和音に運指を追加し、フレット図や `TabStaff` に表示する方法も示しています。五線譜には運指は表示されません。

これらのフレット図は弦の情報を含んでいるため、移調することができません。これは将来修正される予定があります。

>     % add FretBoards for the Cuatro
>     %   Note: This section could be put into a separate file
>     %      predefined-cuatro-fretboards.ly
>     %      and \included into each of your compositions

>     cuatroTuning = #`(,(ly:make-pitch 0 6 0)
>                       ,(ly:make-pitch 1 3 SHARP)
>     		  ,(ly:make-pitch 1 1 0)
>     		  ,(ly:make-pitch 0 5 0))

>     dSix = { <a\4 b\1 d\3 fis\2> }
>     dMajor = { <a\4 d\1 d\3 fis \2> }
>     aMajSeven = { <a\4 cis\1 e\3 g\2> }
>     dMajSeven = { <a\4 c\1 d\3 fis\2> }
>     gMajor = { <b\4 b\1 d\3 g\2> }

>     \storePredefinedDiagram #default-fret-table \dSix
>                             #cuatroTuning
>                             #"o;o;o;o;"
>     \storePredefinedDiagram #default-fret-table \dMajor
>                             #cuatroTuning
>                             #"o;o;o;3-3;"
>     \storePredefinedDiagram #default-fret-table \aMajSeven
>                             #cuatroTuning
>                             #"o;2-2;1-1;2-3;"
>     \storePredefinedDiagram #default-fret-table \dMajSeven
>                             #cuatroTuning
>                             #"o;o;o;1-1;"
>     \storePredefinedDiagram #default-fret-table \gMajor
>                             #cuatroTuning
>                             #"2-2;o;1-1;o;"

>     % end of potential include file /predefined-cuatro-fretboards.ly

>     #(set-global-staff-size 16)

>     primerosNames = \chordmode {
>       d:6 d a:maj7 d:maj7
>       g
>     }
>     primeros = {
>       \dSix \dMajor \aMajSeven \dMajSeven
>       \gMajor
>     }

>     \score {
>       <<
>         \new ChordNames {
>           \set chordChanges = ##t
>           \primerosNames
>         }

>         \new Staff {
>           \new Voice \with {
>             \remove "New_fingering_engraver"
>           }
>           \relative c'' {
>             \primeros
>           }
>         }

>         \new FretBoards {
>           \set Staff.stringTunings = #cuatroTuning
>     %      \override FretBoard
>     %        #'(fret-diagram-details string-count) = 4
>           \override FretBoard.fret-diagram-details.finger-code = #'in-dot
>           \primeros
>         }

>         \new TabStaff \relative c'' {
>           \set TabStaff.stringTunings = #cuatroTuning
>           \primeros
>         }

>       >>

>       \layout {
>         \context {
>           \Score
>           \override SpacingSpanner.base-shortest-duration =
>             #(ly:make-moment 1 16)
>         }
>       }
>       \midi { }
>     }

フレット図の chordChange プロパティ

フレット図をコードが変わるときにだけ表示したり、行頭だけに表示したりすることができます。

>     \include "predefined-guitar-fretboards.ly"

>     myChords = \chordmode {
>       c1 c1 \break
>       \set chordChanges = ##t
>       c1 c1 \break
>       c1 c1
>     }

>     <<
>       \new ChordNames { \myChords }
>       \new FretBoards { \myChords }
>       \new Staff { \myChords }
>     >>

代替フレット テーブル

代替フレット テーブルを作ることができます。これらはコードの代替形を表示するために使用されます。

代替フレット テーブルを使用するには、最初にテーブルを作成する必要があります。その後、テーブルにフレット図が追加されます。

作成されたフレット テーブルは空のままでも構いませんし、既存のテーブルからコピーしてくることもできます。

予め定義されたフレット図のテーブルは `\predefinedDiagramTable` で選択することができます。

>     \include "predefined-guitar-fretboards.ly"

>     % Make a blank new fretboard table
>     #(define custom-fretboard-table-one
>        (make-fretboard-table))

>     % Make a new fretboard table as a copy of default-fret-table
>     #(define custom-fretboard-table-two
>        (make-fretboard-table default-fret-table))

>     % Add a chord to custom-fretboard-table-one
>     \storePredefinedDiagram #custom-fretboard-table-one
>                             \chordmode {c}
>                             #guitar-tuning
>                             "3-(;3;5;5;5;3-);"

>     % Add a chord to custom-fretboard-table-two
>     \storePredefinedDiagram #custom-fretboard-table-two
>                             \chordmode {c}
>                             #guitar-tuning
>                             "x;3;5;5;5;o;"

>     <<
>       \chords {
>         c1 | d1 |
>         c1 | d1 |
>         c1 | d1 |
>       }
>       \new FretBoards {
>         \chordmode {
>           \set predefinedDiagramTable = #default-fret-table
>           c1 | d1 |
>           \set predefinedDiagramTable = #custom-fretboard-table-one
>           c1 | d1 |
>           \set predefinedDiagramTable = #custom-fretboard-table-two
>           c1 | d1 |
>         }
>       }
>       \new Staff {
>         \clef "treble_8"
>         <<
>           \chordmode {
>             c1 | d1 |
>             c1 | d1 |
>             c1 | d1 |
>           }
>           {
>             s1_\markup "Default table" | s1 |
>             s1_\markup \column {"New table" "from empty"} | s1 |
>             s1_\markup \column {"New table" "from default"} | s1 |
>           }
>         >>
>       }
>     >>

#### 参照

記譜法リファレンス: カスタム タブ譜, 自動フレット ダイアグラム, 和音モードの概要, 定義されたフレット図

インストールされているファイル: ‘`ly/predefined-guitar-fretboards.ly`’,
‘`ly/predefined-guitar-ninth-fretboards.ly`’,
‘`ly/predefined-ukulele-fretboards.ly`’,
‘`ly/predefined-mandolin-fretboards.ly`’

コード断片集: Fretted strings

内部リファレンス: fret-diagram-interface

#### 自動フレット ダイアグラム

`FretBoards` コンテキストを用いて、入力された音符からフレット ダイアグラムを自動的に作成することができます。アクティブな `stringTunings` で入力された音符に対してあらかじめ定義されたダイアグラムが用意されていない場合、このコンテキストはその音符を演奏するために使用する弦とフレットを算出します。

>     <<
>       \new ChordNames {
>         \chordmode {
>           f1 g
>         }
>       }
>       \new FretBoards {
>         <f, c f a c' f'>1
>         <g,\6 b, d g b g'>1
>       }
>       \new Staff {
>         \clef "treble_8"
>         <f, c f a c' f'>1
>         <g, b, d g b' g'>1
>       }
>     >>

デフォルトではあらかじめ定義されたダイアグラムは読み込まれないため、フレット ダイアグラムの自動算出がデフォルトの振る舞いとなります。一旦デフォルトのダイアグラムが読み込まれると、あらかじめ定義されたコマンドで自動算出を有効または無効にすることができます:

>     \storePredefinedDiagram #default-fret-table
>                             <c e g c' e'>
>                             #guitar-tuning
>                             "x;3-1-(;5-2;5-3;5-4;3-1-1-);"
>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 c c
>         }
>       }
>       \new FretBoards {
>         <c e g c' e'>1
>         \predefinedFretboardsOff
>         <c e g c' e'>1
>         \predefinedFretboardsOn
>         <c e g c' e'>1
>       }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1
>         <c e g c' e'>1
>         <c e g c' e'>1
>       }
>     >>

フレットボード算出機能が適切なダイアグラムを算出できないことがあります。これは、手動で音符を弦に割り当てることにより修復できることがあります。多くの場合、手動で割り当てる必要のある音符は 1 つだけです。その音符を手動で割り当てると、他の音符は `FretBoards` コンテキストにより適切に配置されます。

`FretBoard` フレット ダイアグラムに運指を追加することができます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \new FretBoards {
>         <c-3 e-2 g c'-1 e'>1
>         <d a-2 d'-3 f'-1>1
>       }
>       \new Staff {
>         \clef "treble_8"
>         <c e g c' e'>1
>         <d a d' f'>1
>       }
>     >>

`FretBoard` コンテキストの弦とフレットを算出する際に使用される最小フレットを `minimumFret` プロパティでセットすることができます。 property.

>     <<
>       \new ChordNames {
>         \chordmode {
>           d1:m d:m
>         }
>       }
>       \new FretBoards {
>         <d a d' f'>1
>         \set FretBoards.minimumFret = #5
>         <d a d' f'>1
>       }
>       \new Staff {
>         \clef "treble_8"
>         <d a d' f'>1
>         <d a d' f'>1
>       }
>     >>

`TabStaff` コンテキストと同様に、`FretBoards` コンテキストの弦とフレットは `stringTunings` プロパティに依存します。`stringTunings` プロパティについての情報は、カスタム タブ譜 を参照してください。

`fret-diagram-interface` のプロパティを通じて、フレット ダイアグラムのグラフィカル レイアウトをユーザの好みに応じてカスタマイズすることができます。詳細は fret-diagram-interface を参照してください。`FretBoards` フレット ダイアグラムののインターフェイス プロパティは`FretBoards.FretBoard` に属します。

#### 定義済みコマンド

`\predefinedFretboardsOff`, `\predefinedFretboardsOn`

#### 参照

記譜法リファレンス: カスタム タブ譜

コード断片集: Fretted strings

内部リファレンス: fret-diagram-interface

#### 既知の問題と警告

自動フレットボード算出機能は、モノトーン チューニングではない楽器では適切に機能しません。

#### 右手の運指

右手の運指 p-i-m-a は後に数字が続く `\rightHandFinger` を用いて入力する必要があります。

Note: Scheme 表記で数字を入力する場合、数字の後にくるもの (閉じ括弧 `>` 等であっても) の前にスペースを置くことを忘れないで下さい。

>     \clef "treble_8"
>     c4\rightHandFinger #1
>     e\rightHandFinger #2
>     g\rightHandFinger #3
>     c'\rightHandFinger #4
>     <c\rightHandFinger #1 e\rightHandFinger #2
>      g\rightHandFinger #3 c'\rightHandFinger #4 >1

入力しやすくするために、`\rightHandFinger` を短縮することができます。 例えば、`RH` に短縮します:

>     RH=#rightHandFinger

#### Selected Snippets

右手の運指記号の配置

次の例で示すように、あるプロパティをセットすることによって、右手の運指記号の配置を細かくコントロールすることができます。注意: 和音構造 `<>` を用いる必要があります。

>     #(define RH rightHandFinger)

>     \relative c {
>       \clef "treble_8"

>       \set strokeFingerOrientations = #'(up down)
>       <c\RH #1 e\RH #2 g\RH #3 c\RH #4 >4

>       \set strokeFingerOrientations = #'(up right down)
>       <c\RH #1 e\RH #2 g\RH #3 c\RH #4 >4

>       \set strokeFingerOrientations = #'(left)
>       <c\RH #1 e\RH #2 g\RH #3 c\RH #4 >2

>       \set strokeFingerOrientations = #'(right)
>       c\RH #1
>     }

弦番号と右手の運指

この例は左手の運指記号、弦番号、右手の運指記号を組み合わせています。

>     #(define RH rightHandFinger)

>     \relative c {
>       \clef "treble_8"
>       <c-3\5\RH #1 >4
>       <e-2\4\RH #2 >4
>       <g-0\3\RH #3 >4
>       <c-1\2\RH #4 >4
>     }

#### 参照

コード断片集: Fretted strings

内部リファレンス: StrokeFinger

#### LilyPond — 記譜法リファレンス v2.22.2 (安定版).

- 2. 専門的な記譜法
- 3. 入出力全般
- 4. スペースの問題
- 5. デフォルトを変更する
- A. 付表
- B. カンニング ペーパー
- C. GNU Free Documentation License
- D. LilyPond コマンド インデックス
- E. LilyPond インデックス