GNU LilyPond – Manuel de notation: 2.4.1 Vue d'ensemble des cordes frettées

### 2.4.1 Vue d’ensemble des cordes frettées

Nous allons aborder, dans les paragraphes qui suivent, les particularités communes aux différents instruments à cordes frettées.

#### Références en matière de cordes frettées

La musique pour instruments à cordes frettées est généralement notée sur une seule portée, en notation traditionnelle ou en tablature, les deux étant parfois combinées. Il est aussi courant en musique populaire d’utiliser des diagrammes d’accord au-dessus de la portée traditionnelle. La guitare et le banjo sont des instruments transpositeurs, sonnant une octave au-dessous de ce qui est écrit. Les partitions pour ces instruments utilisent donc la clé de sol ottava bassa `"treble_8"` – ou une instruction `\transposition c` pour un rendu MIDI correct. Vous pourrez trouver ailleurs dans la documentation d’autres éléments aussi utilisés par les instruments à cordes frettées :

- Les doigtés s’obtiennent comme indiqué au chapitre Doigtés.
- En plus des Laissez vibrer, les liaisons peuvent intervenir sur des accords arpégés ou des trémolos. Reportez-vous au chapitre Liaisons de prolongation.
- Des indications quant à la prise en charge de la polyphonie se trouvent au chapitre Résolution des collisions.
- La notation des sons harmoniques se trouve à la section Harmoniques.

#### Voir aussi

Manuel de notation : Arpèges, Clefs, Doigtés, Instruments transpositeurs, Liaisons de prolongation, Liste des signes d’articulation, Noms d’instrument, Résolution des collisions, Saisie de musique en parallèle.

#### Indications du numéro de corde

La corde sur laquelle une note doit être jouée peut être indiquée en attachant `\numéro` à cette note prise dans une construction de type accord `<>`.

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

Quand les indications de doigté et de numéro de corde sont attachées à une même note, leur positionnement se fera en fonction de l’ordre dans lequel elles apparaissent dans le code, mais uniquement si elles interviennent au sein d’une construction d’accord. En effet, le positionnement des doigtés est géré différemment lorsqu’ils sont attachés à des notes isolées indépendantes d’un accord.

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

Les numéros de corde peuvent aussi, comme traditionnellement pour les cordes non frettées, s’imprimer en chiffres romains placés sous la portée plutôt qu’en surplomb.

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

Le traitement des numéros de corde, objets `StringNumber`, et notamment leur positionnement, est comparable à celui des doigtés – voir Doigtés.

#### Commandes prédéfinies

`\arabicStringNumbers`, `\romanStringNumbers`.

#### Voir aussi

Manuel de notation : Doigtés.

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : StringNumber, Fingering.

#### Tablatures par défaut

La notation en tablature est utilisée pour certains instruments à cordes pincées. Les hauteurs n’y sont pas indiquées par des têtes de note mais par des chiffres ou autres symboles qui indiquent sur quelle corde et à quelle case chaque note doit être jouée. Des notes devant être jouées simultanément seront alors alignées verticalement.

Par défaut, la première corde est la plus aiguë et correspond à la ligne supérieure du `TabStaff`. Les cordes suivent par défaut l’accordage traditionnel d’une guitare (à six cordes). Les notes sont imprimées sous forme de tablature dans les contextes `TabStaff` et `TabVoice`, qui comportent une clef spécifique ajoutée automatiquement.

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

Par défaut, les tablatures ne comportent aucune marque de durée ni de symbole musical tel que des nuances.

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

Pour obtenir les symboles de notation habituelle dans une tablature, il faut appliquer la commande `\tabFullNotation` au contexte `TabStaff`. Vous noterez que les blanches sont affublées d’une double hampe afin qu’elles ne se confondent pas avec des noires.

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

Quand aucune corde n’est précisée, LilyPond choisit automatiquement la corde pour laquelle la position est la moins élevée, avec une préférence pour une corde à vide. Vous pouvez préférer qu’une note donnée soit jouée sur une corde particulière, auquel cas l’affectation directe du numéro de corde suffit. L’absence d’indication des numéros de corde en notation traditionnelle se gère au niveau des stencils. Il est cependant plus facile de jouer sur la propriété `minimumFret`, dont la valeur par défaut est fixée à 0, ce qui correspond aux cordes à vide.

Cependant, et en dépit d’une affectation de `minimumFret`, une corde à vide aura toujours préséance. Ce comportement se modifie par l’activation de `restrainOpenStrings`.

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

La répétition d’une construction en accord s’indique par un `q` – voir Répétition d’accords. Cette fonctionnalité, bien qu’opérationnelle en mode tablature, supprime entre autres les numéros de corde et doigtés. Il vous faudra donc préalablement recourir explicitement à l’instruction

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

si vous utilisez la répétition d’accords dans vos tablatures. Cette instruction est abrégée en `\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
>       }
>     >>

Lorsqu’une liaison de prolongation intervient à l’occasion d’un saut de ligne, la note est répétée, entre parenthèses. Il en va de même pour la seconde alternative d’une répétition.

>     ties = \relative {
>       \repeat volta 2 {
>         e'2. f4~
>         2 g2~
>       }
>       \alternative {
>          \volta 1 { g4 f2. }
>          \volta 2 { 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
>       }
>     }

La commande `\hideSplitTiedTabNotes` permet d’éviter d’imprimer ces cases entre parenthèses.

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

Les indications de sons harmoniques ainsi que les glissandos peuvent être ajoutés aux tablatures.

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

Vous noterez que la commande `\harmonic` s’attache toujours à une note unique (parfois contenue dans un accord) et non à l’ensemble d’un accord. Ceci ne fonctionne donc que pour une harmonique au douzième fret d’une corde à vide. Toute autre harmonique devrait être défini directement par LilyPond. Vous pouvez l’y aider en indiquant la case où le doigt viendrait se placer sur le manche.

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

Un harmonique peut accessoirement se calculer à partir de la longueur de corde par rapport au doigté de cet harmonique.

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

Des désinences peuvent s’ajouter en notation de tablature. Elles s’indiquent par adjonction d’un `\^` à la note ou à l’accord de départ, et se terminent à la note ou l’accord suivant. Différents styles sont disponibles : le style par défaut imprime une courbe terminée par une flèche vers le haut ou le bas, le style `'hold` une ligne horizontale discontinue, `'pre-bend` une ligne verticale terminée en flèche, et `'pre-bend-hold` une ligne verticale terminée en flèche suivie d’une horizontale discontinue.

>     bend-styles = {
>       <>^"default"
>       f'4\^ g'4\^ f'2

>       <>^"'hold"
>       \grace f'4\^ g'1\bendHold \^ g'1

>       <>^"'pre-bend"
>       \grace f'4\preBend \^ g'1\bendHold \^ g'1

>       <>^"'pre-bend-hold"
>       \grace f'4\preBendHold \^ g'1\bendHold \^ g'1\^ f'

>       \bar "|."
>     }

>     \score {
>       \new StaffGroup
>       <<
>         \new Staff {
>           \override TextScript.font-size = -2
>           \clef "G_8"
>           \bend-styles
>         }
>         \new TabStaff \bend-styles
>       >>
>       \layout {
>         \context {
>           \Voice
>           \omit StringNumber
>         }
>         \context {
>           \TabStaff
>           minimumFret = #5
>         }
>         \context {
>           \TabVoice
>           \consists Bend_spanner_engraver
>         }
>       }
>     }

Les cordes à vide ne font habituellement pas l’objet d’une chute ou d’un saut. Il faut, pour qu’une corde soit concernée, basculer sa propriété `bend-me` à `#t`, et à `#f` pour exclure les autres notes de la désinence.

>     mus = {
>       <>^"default"
>       <a b f'>4\^
>       <ais b fis'>\^
>       <a b f'>2

>       <>^"bend open strings"
>       <a \tweak bend-me ##t b f'>4\^
>       <ais \tweak bend-me ##t bis fis'>\^
>       <a b f'>2

>       <>^"exclude other strings"
>       <g \tweak bend-me ##f b\3 d'>4\^
>       <a e'\2 >\^
>       <g \tweak bend-me ##f b\3 d'>2

>       \bar "|."
>     }

>     \score {
>       \new StaffGroup
>       <<
>         \new Staff {
>           \override TextScript.font-size = -2
>           \clef "G_8"
>           \mus
>         }
>         \new TabStaff \mus
>       >>
>       \layout {
>         \context {
>           \Voice
>           \omit StringNumber
>         }
>         \context {
>           \TabVoice
>           \consists Bend_spanner_engraver
>         }
>       }
>     }

Dans une succession de chutes ou sauts, la désinence de départ pourra nécessiter un réglage particulier de `details.successive-level`. La fonction `bendStartLevel`, qui prend en argument un entier, est là pour le gérer.

>     printNext = -\tweak details.target-visibility ##t \etc

>     mus = {
>       c'4\3\^ cis'\3 \^ d'2\3

>       \grace bes4\3\preBendHold \bendStartLevel 2 \printNext \^
>       d'4\3\bendHold \^ d'2\3\^ des'4\3 \^ c'1\3

>       \bar "|."
>     }

>     \score {
>       \new StaffGroup
>       <<
>         \new Staff {
>           \override TextScript.font-size = -2
>           \clef "G_8"
>           \mus
>         }
>         \new TabStaff \mus
>       >>
>       \layout {
>         \context {
>           \Voice
>           \omit StringNumber
>         }
>         \context {
>           \TabVoice
>           \consists Bend_spanner_engraver
>         }
>       }
>     }

L’extension du `BendSpanner` se termine par défaut sur la note ou l’accord qui suit, même en présence d’une liaison de prolongation. Un élément `NoteColumn` particulier peut être sauté à l’aide d’un `\skipNC`. Un groupe de `NoteColumn`s peut se sauter en le faisant précéder d’un `\skipNCs` et suivre d’un `\endSkipNCs`.

>     bends-with-ties-and-skips = {
>       a'4~\^ \skipNC a'4~ \skipNC a'4 b'4
>       a'4~ a'4~\^ \skipNC a'4 b'4
>       a'4~ a'4~ a'4\^ b'4
>       c'2\^ d'~ \bendHold \^ \skipNC d'~ d'\^ c'
>       \grace { c'8-\preBendHold \^ }
>       \skipNCs d'2~ d'2~ \endSkipNCs d'\^ c'2
>       \bar "|."
>     }

>     \score {
>       \new StaffGroup
>       <<
>         \new Staff {
>           \clef "G_8"
>           \bends-with-ties-and-skips
>         }
>         \new TabVoice \bends-with-ties-and-skips
>       >>
>       \layout {
>         \context {
>           \Voice
>           \omit StringNumber
>         }
>         \context {
>           \TabStaff
>           minimumFret = #3
>           restrainOpenStrings = ##t
>         }
>         \context {
>           \TabVoice
>           \consists Bend_spanner_engraver
>         }
>       }
>     }

#### Commandes prédéfinies

`\skipNCs`, `\skipNC`, `\endSkipNCs`.

#### Morceaux choisis

#### Hampes et ligatures en mode tablature

La direction des hampes se gère dans les tablatures tout comme en notation traditionnelle. Les ligatures peuvent être mises à l’horizontale comme le montre cet exemple.

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

#### Polyphonie en mode tablature

Une section polyphonique s’obtient dans un `TabStaff` de la même manière que dans une portée normale.

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

#### Harmoniques sur corde à vide en tablature

Voici comment obtenir des harmoniques sur corde à vide (harmoniques naturelles) dans une tablature.

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

#### Harmoniques et tablature

Harmoniques et tablature (harmoniques artificielles).

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

#### Glissando et tablature

Un glissando s’indique dans un `TabStaff` tout comme dans un `Staff`.

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

#### Glissando d’accords et tablature

Un glissando sur des accords s’indique dans un `TabStaff` de la même manière que dans un `Staff`, à ceci près que nous aurons besoin des numéros de corde afin de déterminer correctement les frets d’arrivée.

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

#### Hammer on et pull off

Hammer-on et pull-off peuvent s’indiquer par des liaisons.

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

#### Hammer on et pull off gérés par les voix

L’arc des hammer-on et pull-off est ascendant dans les voix une et trois, et descendant dans les voix deux et quatre.

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

#### Hammer on et pull off avec accords

Dans le cadre de notes en accord, les hammer-on et pull-off sont indiqués par un arc simple. Vous obtiendrez néanmoins un arc double en réglant la propriété `doubleSlurs` sur `#t`.

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

#### Voir aussi

Manuel de notation : Glissando, Hampes, Harmoniques, Répétition d’accords, Répétitions explicites.

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : Beam, TabNoteHead, TabStaff, TabVoice.

#### Problèmes connus et avertissements

Les accords ne subissent aucun traitement particulier ; de ce fait, la sélection automatique des cordes peut attribuer une même corde pour deux notes différentes de l’accord.

Afin que `\partCombine` fonctionne avec des tablatures, on doit ajouter au contexte `TabStaff` des voix fantômes :

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

Le support des modes de jeu propres à la guitare se limite aux sons harmoniques et aux glissandos.

#### Tablatures personnalisées

Sous LilyPond, la case correspondant à une note jouée sur une corde donnée est calculée automatiquement. Pour ce faire, l’accordage doit être spécifié. L’accordage des cordes est donné par la propriété `stringTunings`.

LilyPond possède des accordages prédéfinis pour le banjo, la mandoline, la guitare et la guitare basse ainsi que le ukulele et les cordes d’orchestre. LilyPond calcule automatiquement la transposition correspondant à ces accordages. L’exemple ci-dessous est pour guitare basse, il sonnera donc une octave en dessous de ce qui est écrit.

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

L’accordage par défaut est `guitar-tuning`_; il correspond à l’accordage standard d’une guitare : mi la ré sol si mi (EADGBE). D’autres accordages prédéfinis sont disponibles : `guitar-open-g-tuning`, `mandolin-tuning` et `banjo-open-g-tuning`. Les accordages prédéfinis sont répertoriés dans le fichier ‘`ly/string-tunings-init.ly`’.

LilyPond vous permet de créer n’importe quel accordage. L’accordage du contexte en cours se détermine à l’aide de la fonction `\stringTuning`. Celle-ci prend deux arguments : une représentation symbolique qui gardera l’accordage en mémoire, et une construction d’accord définissant la hauteur des différentes cordes. Les hauteurs fournies s’expriment impérativement en mode absolu – voir Hauteurs avec octave absolue. La corde ayant le numéro le plus élevé (généralement la note la plus basse) est mentionnée en premier.

Nous pouvons ainsi définir par exemple l’accordage d’un instrument à quatre cordes accordées do sol ré la, soit en anglais `a''`, `d''`, `g'`, et `c'` :

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

>     <<
>       \new Staff {
>         \clef treble
>         \mynotes
>       }
>       \new TabStaff {
>         #(define custom-tuning #{ \stringTuning <c' g' d'' a''> #})
>         \set Staff.stringTunings = #custom-tuning
>         \mynotes
>       }
>     >>

La propriété `stringTunings` permet aussi au `FretBoards` de calculer automatiquement les diagrammes de frets.

L’accordage fait partie de la clé permettant d’identifier les diagrammes prédéfinis – voir Tablatures prédéfinies.

Nous pourrions donc écrire l’exemple précédent ainsi :

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

L’accordage est constitué, en interne, par une liste Scheme des hauteurs de note correspondant aux cordes à vide, une note pour chaque corde, classée par numéro de corde de 1 à n, où la corde 1 est la plus haute dans la tablature et n la plus basse. Cela revient généralement à classer les cordes de la plus aiguë à la plus grave, mais certains instruments (comme le ukulele) n’ont pas les cordes classées par hauteur.

Chaque hauteur de corde incluse dans un accordage est un objet LilyPond de type pitch. Les objets pitch sont créés par la fonction `ly:make-pitch` – voir Fonctions Scheme.

La fonction `\stringTuning` permet de créer de tels objets à partir de la saisie d’un accord.

LilyPond calcule automatiquement le nombre de cordes à représenter dans la tablature (`TabStaff`) ainsi que dans le `FretBoard` en comptant le nombre d’éléments définis dans le `stringTunings`.

Les différents contextes `TabStaff` utiliseront par défaut un même accordage personnalisé dès lors que votre fichier comportera une clause

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

LilyPond dispose d’une clef de tablature moderne.

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

Cette clef moderne prend en charge les tablatures de quatre à sept cordes.

Un `TabStaff` peut contenir des micro-intervalles tels les quarts de ton, qui interveiennent dans les chutes ou sauts. L’assertion `supportNonIntegerFret = ##t` devra se placer au niveau du contexte `Score`. Les micro-intervalles ne sont toutefois pas pris en charge dans un contexte `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
>     >>

#### Voir aussi

Manuel de notation : Hauteurs avec octave absolue, Tablatures prédéfinies.

Fichiers d’initialisation : ‘`ly/string-tunings-init.ly`’, ‘`scm/tablature.scm`’.

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : Fonctions Scheme, Tab_note_heads_engraver.

#### Problèmes connus et avertissements

Le calcul automatique des tablatures se révèle inapproprié pour les instruments dont l’ordre des cordes ne correspond pas à l’ordre des hauteurs, comme le ukulele.

#### Tablatures sous forme d’étiquettes

On peut ajouter des diagrammes d’accord au-dessus de n’importe quelle note, en tant qu’objets `\markup`. Ces objets contiennent toutes les informations du diagramme d’accord. Il y a pour les définir trois interfaces « diagramme d’accord » (fret-diagram en anglais) : standard, terse et verbose. Ces trois interfaces produiront des diagrammes similaires mais permettent des niveaux de personnalisation différents. Des détails à propos des interfaces de type `\markup` peuvent être trouvés à l’annexe Instrument Specific Markup.

Dans l’interface standard des diagrammes d’accord, on indiquera le numéro de corde et le numéro de case pour chaque point placé sur une corde. Les cordes à vide et étouffées peuvent aussi être indiquées.

>     <<
>       \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;"
>         }
>       }
>     >>

Les indications de barré peuvent aussi être ajoutées au diagramme d’accord dans l’interface standard :

>     <<
>       \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;"
>         }
>       }
>     >>

La taille du diagramme d’accord ainsi que le nombre de cases représentées peuvent aussi être modifiés dans l’interface standard.

>     <<
>       \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;"
>         }
>       }
>     >>

Le nombre de cordes dans les diagrammes d’accord peut être modifié dans l’interface standard pour s’adapter à différents instruments tels que le banjo et le ukulele.

>     <<
>       \new ChordNames {
>         \chordmode {
>           a1
>         }
>       }
>       \new Staff {
>         % An 'A' chord for ukulele
>         a'1^\markup {
>           \fret-diagram "w:4;4-2-2;3-1-1;2-o;1-o;"
>         }
>       }
>     >>

Des indications de doigtés peuvent être ajoutées, et le positionnement de ces doigtés peut être modifié dans l’interface standard.

>     <<
>       \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;"
>         }
>       }
>     >>

La taille ainsi que la position des points peuvent être contrôlées dans l’interface standard.

>     <<
>       \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;"
>         }
>       }
>     >>

Pour les gauchers qui inversent les cordes, LilyPond permet d’imprimer les diagrammes de fret correctement.

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

Dans l’interface `fret-diagram-terse`, les numéros de corde sont omis ; les numéros de corde sont induits par la présence de points-virgules. Il y a un point-virgule pour chaque corde du diagramme. Le premier point-virgule correspondant au plus haut numéro de corde, le dernier à la première corde. Les cordes étouffées, les cordes à vide ainsi que les numéros de case peuvent y être indiqués.

>     <<
>       \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;"
>         }
>       }
>     >>

Les indications de barré peuvent être incluses dans l’interface `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-);"
>         }
>       }
>     >>

Les indications de doigtés peuvent être incluses dans l’interface `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;"
>         }
>       }
>     >>

Les autres propriétés des diagrammes d’accord doivent être ajustées en utilisant la commande `\override` dans l’interface `fret-diagram-terse`.

Il n’est possible d’inclure qu’une seule indication par corde dans un markup `fret-diagram-terse`. Il faudra, pour en inclure plusieurs, utiliser un markup `fret-diagram` ou `fret-diagram-verbose`.

L’interface `fret-diagram-verbose` est au format d’une liste Scheme. Chaque élément de la liste décrit un objet devant être placé dans le diagramme d’accord.

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

Les indications de doigté et de barré peuvent être décrites dans l’interface `fret-diagram-verbose`. Particularité propre à l’interface `fret-diagram-verbose` : l’indication de capodastre dans le diagramme d’accord. L’indication de capodastre est une petite ligne transversale aux cordes. La case avec le capodastre est la case la plus basse du diagramme d’accord.

Les points d’indication de doigté peuvent se colorier ou être mis entre parenthèses ; la couleur des parenthèses est indépendante de celle du point.

Des markups peuvent par ailleurs venir s’insérer dans les points.

>     <<
>         \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 e g c' e'>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)
>           )
>       }
>     >>

Toutes les autres propriétés du diagramme d’accord doivent être indiquées en utilisant la commande `\override` lorsque l’on utilise l’interface `fret-diagram-verbose`.

La disposition graphique d’un diagramme d’accord peut être modifiée suivant les préférences de l’utilisateur grâce aux propriétés de l’interface `fret-diagram-interface`. Des détails se trouvent dans fret-diagram-interface. Pour un diagramme d’accord, les propriétés de l’interface dépendent de `Voice.TextScript`.

#### Morceaux choisis

#### Orientation des diagrammes de fret

Les diagrammes de fret peuvent s’orienter de trois manières différentes. Ils s’aligneront par défaut sur la corde du haut ou le sommet du fret.

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

#### Personnalisation des diagrammes de fret

Les propriétés d’un diagramme de fret sont modifiables grâce au `fret-diagram-details`. Lorsqu’ils sont générés sous forme de `\markup`, rien n’empêche de modifier les diagrammes en jouant sur les réglages de l’objet `Voice.TextScript` ou bien directement sur le markup.

>     <<
>       \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;"
>           }
>         }
>       }
>     >>

#### Voir aussi

Manuel de notation : Markups spécifiques aux instruments (en anglais).

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : fret-diagram-interface.

#### Tablatures prédéfinies

Les diagrammes d’accord peuvent être affichés en utilisant le contexte `FretBoards`. Par défaut le contexte `FretBoards` affichera des diagrammes d’accord stockés dans une table de correspondance :

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

Les diagrammes d’accord définis par défaut sont dans le fichier ‘`predefined-guitar-fretboards.ly`’. Les diagrammes d’accord sont stockés en fonction des notes de l’accord ainsi que de l’accordage (`stringTunings`) utilisé. Le fichier d’initialisation ‘`predefined-guitar-fretboards.ly`’ contient les diagrammes d’accord prédéfinis uniquement pour l’accordage standard (`guitar-tuning`). Des diagrammes d’accords peuvent être définis pour d’autres instruments ou d’autres accordages en suivant les exemples du fichier ‘`predefined-guitar-fretboards.ly`’.

Les diagrammes de fret propres au ukulele se trouvent dans le fichier ‘`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
>     }

Les diagrammes de fret propres à la mandoline se trouvent dans le fichier ‘`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
>     }

Les notes des accords peuvent être entrées aussi bien comme musique simultanée qu’en utilisant le mode accord (voir Généralités sur le mode accords).

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

Il est courant d’afficher simultanément le nom des accords et les diagrammes d’accord correspondants. Ceci s’obtient en mettant en parallèle un contexte `ChordNames` et un contexte `FretBoards`, tout en affectant aux deux la même musique.

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

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

Les diagrammes d’accord prédéfinis sont transposables tant qu’il y a un diagramme correspondant à l’accord transposé dans la base des diagrammes d’accord.

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

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

La table des diagrammes d’accord contient huit types d’accord (majeur, mineur, augmenté, diminué, septième de dominante, septième majeure, septièime mineure, neuvième de dominante) pour chacune des 17 fondamentales possibles.

La table des diagrammes pour ukulele contient trois types d’accord supplémentaires : sixte majeure, seconde suspendue et quarte suspendue.

Une liste complète des diagrammes d’accords prédéfinis se trouve à l’annexe Tablatures prédéfinies. S’il n’y a pas d’entrée dans la table pour un accord donné, le graveur `Fretboard_engraver` calculera le diagramme d’accord en utilisant la fonctionnalité automatique décrite dans Tablatures automatiques.

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

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

Des diagrammes d’accord peuvent être ajoutés à la table des diagrammes d’accord. Pour ajouter un diagramme d’accord, il faut spécifier l’accord correspondant au diagramme, l’accord utilisé et la définition du diagramme. Cette définition de diagramme peut être aussi bien de type terse que 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
>       }
>     >>

On peut enregistrer différents diagrammes pour un même accord en les définissant à des octaves différentes. Notez qu’il faut un intervalle de deux octaves, le premier servant à la transposition.

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

En plus des diagrammes d’accord, LilyPond possède une liste interne de carrures d’accord. Les carrures d’accords sont des diagrammes d’accord qui peuvent être transposés le long du manche. Les carrures d’accords peuvent être ajoutées à la liste interne et être ensuite utilisées pour définir des accords prédéfinis. Puisqu’elles sont transposables le long du manche, les carrures d’accord ne contiennent généralement pas de corde à vide. Tout comme les diagrammes d’accord, les carrures d’accord sont définies grâce aux interfaces `fret-diagram-terse` ou `fret-diagram-verbose`.

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

>     % Add a new chord shape

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

>     % add some new chords based on the power chord shape

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

La disposition graphique d’un diagramme d’accord peut être modifiée suivant les préférences de l’utilisateur grâce aux propriétés de l’interface `fret-diagram-interface`. Pour plus d’information, consultez fret-diagram-interface. Pour un diagramme d’accord donné, les propriétés de l’interface dépendent de `FretBoards.FretBoard`.

#### Morceaux choisis

#### Personnalisation de diagrammes de fret

Les propriétés d’un diagramme de fret sont définies par les `fret-diagram-details`. En matière de diagramme de fret, les adaptations s’appliquent à l’objet `FretBoards.FretBoard`. Un `FretBoards` est comparable à un `Voice` : il s’agit d’un contexte du plus bas niveau, et il n’est donc pas primordial de l’instancier de manière explicite pour adapter ses propriétés.

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

#### Création de diagrammes de fret prédéfinis pour d’autres instruments

La liste des diagrammes standards prédéfinis pour la guitare peut être augmentée d’autres définitions spécifiques à d’autres instruments. Voici comment définir un nouvel accordage ainsi que quelques diagrammes prédéfinis pour le « cuatro vénézuélien ».

Cet exemple illustre aussi la manière d’ajouter des doigtés aux accords ; ils serviront de référence pour la boucle d’accord et seront indiqués dans les diagrammes et le `TabStaff`, mais pas dans la musique.

Ces diagrammes ne peuvent pas être transposés, dans la mesure où ils contiennent des informations sur les cordes. Ceci est amené à évoluer.

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

#### Changement d’accord et diagramme de fret

Vous pouvez opter pour n’imprimer les diagrammes de fret qu’à l’occasion d’un changement d’accord ou de saut de ligne.

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

#### Diagrammes de fret alternatifs

Vous pouvez tout à fait créer des tables de diagrammes de fret supplémentaires, notamment dans l’optique d’un fret alternatif pour un accord donné.

Avant de pouvoir utiliser un diagramme alternatif, vous devrez avoir alimenté une table à cet effet. Les différents diagrammes seront ajoutés à cette table.

Il peut aussi bien s’agir d’une table vide, que de la recopie d’une table existante.

La table servant de base pour les diagrammes prédéfinis est sélectionnée par la propriété `\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 |
>           }
>         >>
>       }
>     >>

#### Voir aussi

Manuel de notation : Généralités sur le mode accords, Tablatures automatiques, Tablatures personnalisées, Tablatures prédéfinies.

Fichiers d’initialisation : ‘`ly/predefined-guitar-fretboards.ly`’,
‘`ly/predefined-guitar-ninth-fretboards.ly`’,
‘`ly/predefined-ukulele-fretboards.ly`’,
‘`ly/predefined-mandolin-fretboards.ly`’.

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : fret-diagram-interface.

#### Tablatures automatiques

Les diagrammes d’accord peuvent être créés automatiquement ; il suffit d’affecter les notes à un contexte `FretBoards`. Si aucun diagramme prédéfini n’est disponible pour les notes entrées avec l’accordage actuel (`stringTunings`), les cordes et cases correspondant aux notes seront automatiquement calculées.

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

Dans la mesure où aucun diagramme prédéfini n’est chargé par défaut, le calcul automatique des diagrammes d’accord est le comportement par défaut. Dès que les diagrammes par défaut sont chargés, le calcul automatique peut être activé ou désactivé par des commandes prédéfinies :

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

Le calculateur se trouvera parfois incapable de trouver un diagramme d’accord convenable. On peut souvent y remédier en assignant les notes aux cordes. Dans bien des cas, il suffit de placer manuellement une seule note pour que les autres soient alors placées de manière appropriée par le contexte `FretBoards`.

Il est possible d’ajouter des indications de doigté aux diagrammes de fret.

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

La propriété `minimumFret` permet de définir la case minimale qui servira à calculer les cordes et les cases du contexte `FretBoard`.

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

Les cordes et les cases du contexte `FretBoards` sont liées à la propriété `stringTunings`, qui a là même signification que dans le contexte `TabStaff`. Voir Tablatures personnalisées pour plus d’information sur la propriété `stringTunings`.

La disposition graphique d’un diagramme d’accord peut être modifiée suivant les préférences de l’utilisateur au travers des propriétés de l’interface `fret-diagram-interface`. Pour un diagramme d’accord `FretBoards` donné, les propriétés de l’interface dépendent de `FretBoards.FretBoard`.

#### Commandes prédéfinies

`\predefinedFretboardsOff`, `\predefinedFretboardsOn`.

#### Voir aussi

Manuel de notation : Tablatures personnalisées.

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : fret-diagram-interface.

#### Problèmes connus et avertissements

Le calcul automatique des diagrammes de fret se révèle inapproprié pour les instruments dont l’ordre des cordes ne correspond pas à l’ordre des hauteurs.

#### Doigtés pour la main droite

Les doigtés de main droite p-i-m-a doivent être entrés à l’aide de l’instruction `\rightHandFinger` suivie d’un nombre.

Note : Lorsque vous utilisez l’instruction `\rightHandFinger` dans un accord, une espace doit précéder la fermeture de la construction par un `>`.

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

Pour plus de clarté, vous pouvez traduire ou abréger la commande `\rightHandFinger`, par exemple en `doigtMainDroite` ou même `MD` en tête du fichier source :

>     MD = #rightHandFinger \etc

La plupart des comportements en matière de doigtés pour la main droite, à savoir l’objet `StrokeFinger`, est comparable aux doigtés ordinaires – voir Doigtés.

#### Morceaux choisis

#### Positionnement des doigtés main droite

Le positionnement des doigtés main droite, grâce à une propriété spécifique, peut se contrôler finement, comme l’indique l’exemple suivant.

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

#### Doigtés, indications de corde, et doigtés main droite

L’exemple suivant illustre comment combiner des doigtés pour la main gauche, des indications de corde et des doigtés pour la main droite.

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

#### Voir aussi

Morceaux choisis : Cordes frettées.

Référence des propriétés internes : StrokeFinger.

#### LilyPond — Manuel de notation v2.24.4 (branche stable).