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

[image of music]

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

[image of music]

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

[image of music]

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
}

[image of music]

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

[image of music]

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.


GNU LilyPond – Manuel de notation v2.25.21 (branche de développement).