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