Fretted strings
Fretted string instruments
Ajout de doigtés à une partition
Les instructions de doigtés se saisissent selon une syntaxe très simple.
| | \relative c'' {
c4-1 d-2 f-4 e-3
}
|
Ajout de doigtés à des tablatures
L’ajout de doigtés à des tablatures s’obtient en conjuguant des
\markup et des \finger.
| | one = \markup { \finger 1 }
two = \markup { \finger 2 }
threeTwo = \markup {
\override #'(baseline-skip . 2)
\column {
\finger 3
\finger 2
}
}
threeFour = \markup {
\override #'(baseline-skip . 2)
\column {
\finger 3
\finger 4
}
}
\score {
\new TabStaff {
\tabFullNotation
\stemUp
e8\4^\one b\2 <g\3 e'\1>^>[ b\2 e\4]
<a\3 fis'\1>^>^\threeTwo[ b\2 e\4]
}
}
|
Ajout de markups à une tablature
Par défaut, les markups n’apparaissent pas dans une tablature. Il
suffit d’une simple commande \revert TabStaff.TextScript.stencil
pour les voir apparaître.
| | %% http://lsr.di.unimi.it/LSR/Item?id=919
% by P.P.Schneider on June 2014
high = { r4 r8 <g c'> q r8 r4 }
low = { c4 r4 c8 r8 g,8 b, }
pulse = { s8^"1" s^"&" s^"2" s^"&" s^"3" s^"&" s^"4" s^"&" }
\score {
\new TabStaff {
\repeat unfold 2 << \high \\ \low \\ \pulse >>
}
\layout {
\context {
\TabStaff
\clef moderntab
\revert TextScript.stencil
\override TextScript.font-series = #'bold
\override TextScript.font-size = #-2
\override TextScript.color = #red
}
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/8)
}
}
}
|
Impression des doigtés à l’intérieur de la portée
L’empilement des indications de doigté se fait par défaut à l’extérieur
de la portée. Il est néanmoins possible d’annuler ce comportement. Une
attention particulière doit toutefois être portée dans les cas où doigté
et hampe vont dans la même direction : les indications de doigté
n’évitent les hampe qu’en présence de ligature. Ce réglage peut
s’adapter pour éviter toutes les hampes ou aucune d’elles. L’exemple
suivant illustre ces deux options, ainsi que la manière de revenir au
comportement par défaut.
| | \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
}
|
Barrés et diagrammes de fret automatiques
L’utilisation de diagrammes de fret automatiques permet d’imprimer un
indication de barré dès lors qu’un même doigt s’applique à plusieurs
cordes.
Lorsqu’aucune indication de doigt n’est fournie dans l’accord qui sera
rendu sous forme de diagramme, aucune indication de barré n’apparaîtra
puisqu’il n’y a aucun moyen d’identifier où les barrés devraient venir
se positionner.
| | \new FretBoards {
<f,-1 c-3 f-4 a-2 c'-1 f'-1>1
<f, c f a c' f'>1
}
|
Notation d’accords barrés pour guitare (avec extension textuelle)
Voici comment imprimer – il suffit de dé-commenter la ligne appropriée.
La syntaxe est la suivante : \bbarre #"fret_number" note(s)
La fonction Scheme ici présentée peut faire l’objet d’un fichier de
définition personnalisée à inclure dans vos propres fichiers sources.
| | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%%%%%% Cut here ----- Start 'bbarred.ly'
%% C with slash -------------------------------
cWithSlash = \markup {
\combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
}
%% Span -----------------------------------
%% Syntax: \bbarre #"text" { notes } - text = any number of box
bbarre =
#(define-music-function (barre location str music) (string? ly:music?)
(let ((elts (extract-named-music music '(NoteEvent EventChord))))
(if (pair? elts)
(let ((first-element (first elts))
(last-element (last elts)))
(set! (ly:music-property first-element 'articulations)
(cons (make-music 'TextSpanEvent 'span-direction -1)
(ly:music-property first-element 'articulations)))
(set! (ly:music-property last-element 'articulations)
(cons (make-music 'TextSpanEvent 'span-direction 1)
(ly:music-property last-element 'articulations))))))
#{
\once \override TextSpanner.font-size = #-2
\once \override TextSpanner.font-shape = #'upright
\once \override TextSpanner.staff-padding = #3
\once \override TextSpanner.style = #'line
\once \override TextSpanner.to-barline = ##f
\once \override TextSpanner.bound-details =
#`((left
(text . ,#{ \markup { \draw-line #'( 0 . -.5) } #})
(Y . 0)
(padding . 0.25)
(attach-dir . -2))
(right
(text . ,#{ \markup { \cWithSlash #str } #})
(Y . 0)
(padding . 0.25)
(attach-dir . 2)))
%% uncomment this line for make full barred
% \once \override TextSpanner.bound-details.left.text = \markup{"B" #str}
$music
#})
%% %%%%%%% Cut here ----- End 'bbarred.ly'
%% Copy and change the last line for full barred. Rename in 'fbarred.ly'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Syntaxe: \bbarre #"text" { notes } - text = any number of box
\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { <f a'>16[ c' d c d8] } }
|
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'
}
>>
|
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
}
>>
}
|
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 }
>>
|
Accords avec doigté espacé pour FretBoards et TabVoice
Il peut arriver que le doigté d’un accord soit assez étendu. Sauf
mention contraire, la propriété de contexte maximumFretStretch
est cependant fixée à 4, ce qui peut générer un avertissement
« Pas de corde pour la hauteur… » et la note est omise. On peut régler
maximumFretStretch sur une valeur appropriée ou assigner
explicitement leur numéro de corde à toutes les notes d’un accord.
| | %% The code below will print two warnings, which may be omitted by uncommenting:
%#(for-each (lambda (x) (ly:expect-warning "No string for pitch")) (iota 2))
mus = {
<c' bes'>
<c'\2 bes'>
\set maximumFretStretch = 5
<c' bes'>
<c'\2 bes'\1>
}
<<
\new FretBoards \mus
\new TabVoice \mus
>>
|
Contrôler la position des doigtés dans un accord
Le positionnement des doigtés peut être contrôlé de manière très
précise. Afin que l’orientation soit prise en compte, il est nécessaire
d’utiliser une syntaxe d’accord < >, même s’il ne s’agit que
d’une seule note. Le positionnement des numéros de corde et doigtés main
droite se rgèle de manière analogue.
| | \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 >
}
|
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-);"
<<
\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
\once \override FretBoard.size = #'1.0
\once \override FretBoard.fret-diagram-details.barre-type = #'straight
\once \override FretBoard.fret-diagram-details.dot-color = #'black
\once \override FretBoard.fret-diagram-details.finger-code = #'below-string
c'
\once \override FretBoard.fret-diagram-details.barre-type = #'none
\once \override FretBoard.fret-diagram-details.number-type = #'arabic
\once \override FretBoard.fret-diagram-details.orientation = #'landscape
\once \override FretBoard.fret-diagram-details.mute-string = #"M"
\once \override FretBoard.fret-diagram-details.label-dir = #LEFT
\once \override FretBoard.fret-diagram-details.dot-color = #'black
c'
\once \override FretBoard.fret-diagram-details.finger-code = #'below-string
\once \override FretBoard.fret-diagram-details.dot-radius = #0.35
\once \override FretBoard.fret-diagram-details.dot-position = #0.5
\once \override FretBoard.fret-diagram-details.fret-count = #3
d
}
}
\new Voice {
c'1 | c' | c' | d'
}
>>
|
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;"
}
}
}
>>
|
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 { }
}
|
Simulation d’un hammer en tablature
En mode tablature, un hammer, ou lié ascendant, peut se simuler à
l’aide d’une liaison.
| | \score {
\new TabStaff {
\relative c'' {
\tabFullNotation
c4( d) d( d)
d2( c)
}
}
}
|
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
}
|
Notation de flamenco
La guitare flamenco fait appel à des éléments de notation particuliers :
– le golpe : coup frappé sur la caisse de résonance avec
l’ongle de l’annulaire,
– une flèche pour indiquer le sens des butés (strokes),
– les doigtés : « p » pouce, « i » index, « m » majeur, « a »
annulaire et « x » auriculaire,
– les rasgueados sur trois ou quatre doigts : grattage des
cordes en étendant les doigts rapidement les uns après les autres
dans un mouvement continu, se terminant sur l’index,
– les abanicos : séries de butés du pouce, index et auriculaire.
Il existe aussi un abanico 2 pour lequel l’index et
l’annulaire remplacent l’auriculaire.
– alza púa : jeu rapide du pouce.
La plupart de ces symboles utilisent une flèche en plus des doigtés.
Dans le cas d’un abanico, les têtes de note ne sont imprimées que
pour le premier accord.
Le début du code ci-dessous répertorie le paramétrage de ces différents
symboles, que vous pouvez copier dans un fichier ‘flamenco.ly’
pour inclusion dans vos propres compositions.
| | %%%%%%% Cut here ----- Start 'flamenco.ly'
% Text indicators :
abanico = ^\markup\small { \italic Abanico }
rasgueado = ^\markup\small { \italic Ras. }
alzapua = ^\markup\small { \italic Alzapua }
% Finger stroke symbols :
strokeUp = \markup\combine\override #'(thickness . 1.3) \draw-line #'(0 . 2)\raise #2 \arrow-head #Y #UP ##f
strokeDown = \markup\combine\arrow-head #Y #DOWN ##f \override #'(thickness . 1.3) \draw-line #'(0 . 2)
% Golpe symbol :
golpe = \markup {
\filled-box #'(0 . 1) #'(0 . 1) #0
\hspace #-1.6
\with-color #white
\filled-box #'(0.15 . 0.85) #'(0.15 . 0.85) #0
}
% Strokes, fingers and golpe command :
RHp = \rightHandFinger #1
RHi = \rightHandFinger #2
RHm = \rightHandFinger #3
RHa = \rightHandFinger #4
RHx = \rightHandFinger #5
RHu = \rightHandFinger \strokeUp
RHd = \rightHandFinger \strokeDown
RHg = \rightHandFinger \golpe
% Just handy :)
tupletOff = {
\once \omit TupletNumber
\once \omit TupletBracket
}
tupletsOff = {
\omit TupletNumber
\override TupletBracket.bracket-visibility = #'if-no-beam
}
tupletsOn = {
\override TupletBracket.bracket-visibility = #'default
\undo \omit TupletNumber
}
headsOff = {
\hide TabNoteHead
\hide NoteHead
\override NoteHead.no-ledgers = ##t
}
headsOn = {
\override TabNoteHead.transparent = ##f
\override NoteHead.transparent = ##f
\override NoteHead.no-ledgers = ##f
}
%%%%%%% Cut here ----- End 'flamenco.ly'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
part = \relative c' {
\set strokeFingerOrientations = #'(up)
\key a\major
<a, e' a cis e\RHu\RHi>8
<a e' a cis e\RHd\RHi>8
r4
r2^\markup\golpe
<a e' a cis e\RHu\RHi>8
<a e' a cis e\RHd\RHi>8
<a e' a cis e\RHu\RHi\RHg>8
<a e' a cis e\RHd\RHi>8
r2
<a e' a cis e\RHu\RHa>16\rasgueado
\headsOff
<a e' a cis e\RHu\RHm>
<a e' a cis e\RHu\RHi>
<a e' a cis e\RHd\RHi>~
\headsOn
<a e' a cis e>2
r4
\tupletOff
\tuplet 5/4 {
<a e' a cis e\RHu\RHx>16\rasgueado
\headsOff
<a e' a cis e\RHu\RHa>
<a e' a cis e\RHu\RHm>
<a e' a cis e\RHu\RHi>
<a e' a cis e\RHd\RHi>~
\headsOn
}
<a e' a cis e>2
r4
\tupletsOff
\tuplet 3/2 {
<a e' a cis e\RHd\RHp>8\abanico
\headsOff
<a e' a cis e\RHu\RHx>
<a e' a cis e\RHu\RHi>
\headsOn
}
\tuplet 3/2 {
<a e' a cis e\RHd\RHp>8
\headsOff
<a e' a cis e\RHu\RHx>
<a e' a cis e\RHu\RHi>
\headsOn
}
\tuplet 3/2 {
<a e' a cis e\RHd\RHp>8
\headsOff
<a e' a cis e\RHu\RHx>
<a e' a cis e\RHu\RHi>
\headsOn
}
\tuplet 3/2 {
<a e' a cis e\RHd\RHp>8
\headsOff
<a e' a cis e\RHu\RHx>
<a e' a cis e\RHu\RHi>
\headsOn
}
\tupletsOff
\override Beam.positions = #'(2 . 2)
\tuplet 3/2 {
a8\RHp\alzapua
<e' a\RHu\RHg>
<e a\RHd>
}
\tuplet 3/2 {
a,8\RHp
<e' a\RHu\RHg>
<e a\RHd>
}
\tuplet 3/2 {
a,8\RHp
<e' a\RHu\RHg>
<e a\RHd>
}
\tuplet 3/2 {
a,8\RHp
<e' a\RHu\RHg>
<e a\RHd>
}
\tupletsOn
<a, e' a\RHu\RHm>1
\bar "|."
}
\score {
\new StaffGroup <<
\context Staff = "part" <<
\clef "G_8"
{
\part
}
>>
\context TabStaff {
\part
}
>>
\layout {
ragged-right = ##t
}
}
|
Construction et développement de diagrammes de fret
Voici différentes manières d’obtenir et de personnaliser des diagrammes
de fret :
| | <<
\chords {
a2 a
\repeat unfold 3 {
c c c d d
}
}
\new Voice = "mel" {
\textLengthOn
% Set global properties of fret diagram
\override TextScript.size = #1.2
\override TextScript.fret-diagram-details.finger-code = #'below-string
\override TextScript.fret-diagram-details.dot-color = #'black
%% A chord for ukulele
a'2^\markup {
\override #'(fret-diagram-details . (
(string-count . 4)
(dot-color . white)
(finger-code . in-dot))) {
\fret-diagram "4-2-2;3-1-1;2-o;1-o;"
}
}
%% A chord for ukulele, with formatting defined in definition string
% 1.2 * size, 4 strings, 4 frets, fingerings below string
% dot radius .35 of fret spacing, dot position 0.55 of fret spacing
a'2^\markup {
\override #'(fret-diagram-details . (
(dot-color . white)
(open-string . "o"))) {
\fret-diagram "s:1.2;w:4;h:3;f:2;d:0.35;p:0.55;4-2-2;3-1-1;2-o;1-o;"
}
}
%% These chords will be in normal orientation
%% C major for guitar, barred on third fret
% verbose style
% roman fret label, finger labels below string, straight barre
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . roman-lower)
(finger-code . below-string)
(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
%% Double barre used to test barre function
% verbose style
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(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 4 2 5)
(barre 5 1 3))
}
}
}
%% C major for guitar, with capo on third fret
% verbose style
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . roman-upper)
(dot-label-font-mag . 0.9)
(finger-code . none)
(fret-label-vertical-offset . 0.5)
(xo-font-magnification . 0.4)
(xo-padding . 0.3))) {
\fret-diagram-verbose #'((mute 6)
(capo 3)
(open 5)
(place-fret 4 5 1)
(place-fret 3 5 2)
(place-fret 2 5 3)
(open 1))
}
}
}
%% simple D chord
d'2^\markup {
\override #'(fret-diagram-details . (
(finger-code . below-string)
(dot-radius . 0.35)
(string-thickness-factor . 0.3)
(dot-position . 0.5)
(fret-count . 3))) {
\fret-diagram-terse "x;x;o;2-1;3-2;2-3;"
}
}
%% simple D chord, large top fret thickness
d'2^\markup {
\override #'(fret-diagram-details . (
(finger-code . below-string)
(dot-radius . 0.35)
(dot-position . 0.5)
(top-fret-thickness . 7)
(fret-count . 3))) {
\fret-diagram-terse "x;x;o;2-1;3-2;2-3;"
}
}
% These chords will be in landscape orientation
\override TextScript.fret-diagram-details.orientation = #'landscape
%% C major for guitar, barred on third fret
% verbose style
% roman fret label, finger labels below string, straight barre
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . roman-lower)
(finger-code . below-string)
(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
%% Double barre used to test barre function
% verbose style
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(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 4 2 5)
(barre 5 1 3))
}
}
}
%% C major for guitar, with capo on third fret
% verbose style
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . roman-upper)
(dot-label-font-mag . 0.9)
(finger-code . none)
(fret-label-vertical-offset . 0.5)
(xo-font-magnification . 0.4)
(xo-padding . 0.3))) {
\fret-diagram-verbose #'((mute 6)
(capo 3)
(open 5)
(place-fret 4 5 1)
(place-fret 3 5 2)
(place-fret 2 5 3)
(open 1))
}
}
}
%% simple D chord
d'2^\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;"
}
}
%% simple D chord, large top fret thickness
d'2^\markup {
\override #'(fret-diagram-details . (
(finger-code . below-string)
(dot-radius . 0.35)
(dot-position . 0.5)
(top-fret-thickness . 7)
(fret-count . 3))) {
\fret-diagram-terse "x;x;o;2-1;3-2;2-3;"
}
}
% These chords will be in opposing-landscape orientation
\override TextScript.fret-diagram-details.orientation = #'opposing-landscape
%% C major for guitar, barred on third fret
% verbose style
% roman fret label, finger labels below string, straight barre
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . roman-lower)
(finger-code . below-string)
(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
%% Double barre used to test barre function
% verbose style
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(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 4 2 5)
(barre 5 1 3))
}
}
}
%% C major for guitar, with capo on third fret
% verbose style
c'2^\markup {
% 110% of default size
\override #'(size . 1.1) {
\override #'(fret-diagram-details . (
(number-type . roman-upper)
(dot-label-font-mag . 0.9)
(finger-code . none)
(fret-label-vertical-offset . 0.5)
(xo-font-magnification . 0.4)
(xo-padding . 0.3))) {
\fret-diagram-verbose #'((mute 6)
(capo 3)
(open 5)
(place-fret 4 5 1)
(place-fret 3 5 2)
(place-fret 2 5 3)
(open 1))
}
}
}
%% simple D chord
d'2^\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;"
}
}
%% simple D chord, large top fret thickness
d'2^\markup {
\override #'(fret-diagram-details . (
(finger-code . below-string)
(dot-radius . 0.35)
(dot-position . 0.5)
(top-fret-thickness . 7)
(fret-count . 3))) {
\fret-diagram-terse "x;x;o;2-1;3-2;2-3;"
}
}
}
>>
|
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 |
}
>>
}
>>
|
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
}
}
>>
}
|
Indication d’un glissé de guitare
Contrairement au glissando, un « slide » peut aller d’un point non
précisé du manche jusqu’à un fret spécifique. Ceci peut s’indiquer à
l’aide d’une note d’ornement masquée précédant la note effectivement
jouée, comme dans l’exemple suivant.
| | %% Hide fret number: useful to draw slide into/from a casual point of
%% the fretboard.
hideFretNumber = {
\once \hide TabNoteHead
\once \hide NoteHead
\once \hide Stem
\once \override NoteHead.no-ledgers = ##t
\once \override Glissando.bound-details.left.padding = #0.3
}
music= \relative c' {
\grace { \hideFretNumber d8\2 \glissando s2 } g2\2
\grace { \hideFretNumber g8\2 \glissando s2 } d2 |
\grace { \hideFretNumber c,8 \glissando s } f4\5^\markup \tiny { Slide into }
\grace { \hideFretNumber f8 \glissando s } a4\4
\grace { \hideFretNumber e'8\3 \glissando s } b4\3^\markup \tiny { Slide from }
\grace { \hideFretNumber b'8 \glissando s2 } g4 |
}
\score {
<<
\new Staff {
\clef "G_8"
\music
}
\new TabStaff {
\music
}
>>
}
|
Rythmique et guitare
En matière de notation pour guitare, il arrive que soient indiqués les
« coups de gratte » en plus de la mélodie, grilles d’accords et
diagrammes de tablature.
| | \include "predefined-guitar-fretboards.ly"
<<
\new ChordNames {
\chordmode {
c1 | f | g | c
}
}
\new FretBoards {
\chordmode {
c1 | f | g | c
}
}
\new Voice \with {
\consists "Pitch_squash_engraver"
} {
\relative c'' {
\improvisationOn
c4 c8 c c4 c8 c
f4 f8 f f4 f8 f
g4 g8 g g4 g8 g
c4 c8 c c4 c8 c
}
}
\new Voice = "melody" {
\relative c'' {
c2 e4 e4
f2. r4
g2. a4
e4 c2.
}
}
\new Lyrics {
\lyricsto "melody" {
This is my song.
I like to sing.
}
}
>>
|
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>)
}
}
|
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
Hammer-on et pull-off peuvent s’indiquer par des liaisons.
| | \new TabStaff {
\relative c' {
d4( e\2)
a( g)
}
}
|
Repositionnement d’un diagramme de fret
Différents moyens permettent de repositionner un diagramme de fret pour
éviter des collisions ou le placer entre deux notes :
– La modification des valeurs de padding ou de
extra-offset comme pour le second diagramme ;
– L’adjonction d’une voix invisible dans laquelle les diagrammes sont
attachés à des notes invisibles comme pour le troisième diagramme.
Lorsque le diagramme doit correspondre à une position rythmique dans la
mesure, comme au troisième temps de la deuxième mesure, la seconde
méthode est plus appropriée, puisque le diagramme sera aligné sur le
temps.
| | harmonies = \chordmode
{
a8:13
% THE FOLLOWING IS THE COMMAND TO MOVE THE CHORD NAME
\once \override ChordNames.ChordName.extra-offset = #'(10 . 0)
b8:13 s2.
% THIS LINE IS THE SECOND METHOD
s4 s4 b4:13
}
\score
{
<<
\new ChordNames \harmonies
\new Staff
{a8^\markup { \fret-diagram "6-x;5-0;4-2;3-0;2-0;1-2;" }
% THE FOLLOWING IS THE COMMAND TO MOVE THE FRET DIAGRAM
\once \override TextScript.extra-offset = #'(10 . 0)
b4.~^\markup { \fret-diagram "6-x;5-2;4-4;3-2;2-2;1-4;" } b4. a8\break
% HERE IS THE SECOND METHOD
<<
{ a8 b4.~ b4. a8}
{ s4 s4 s4^\markup { \fret-diagram "6-x;5-2;4-4;3-2;2-2;1-4;" }
}
>>
}
>>
}
|
Symboles de jazz
Bien que compliqué de prime abord, voici un canevas tout à fait indiqué
pour les ensembles de jazz. Vous noterez que tous les instruments sont
notés en ut (\key c \major), la tonalité de concert. Les notes
seront automatiquement transposées dès lors qu’elles seront inscrites
dans une section \transpose.
| | \header {
title = "Song"
subtitle = "(tune)"
composer = "Me"
meter = "moderato"
piece = "Swing"
tagline = \markup {
\column {
"LilyPond example file by Amelie Zapf,"
"Berlin 07/07/2003"
}
}
}
% To make the example display in the documentation
\paper {
paper-width = 130
}
%#(set-global-staff-size 16)
\include "english.ly"
%%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%%
sl = {
\override NoteHead.style = #'slash
\hide Stem
}
nsl = {
\revert NoteHead.style
\undo \hide Stem
}
crOn = \override NoteHead.style = #'cross
crOff = \revert NoteHead.style
%% insert chord name style stuff here.
jazzChords = { }
%%%%%%%%%%%% Keys'n'thangs %%%%%%%%%%%%%%%%%
global = { \time 4/4 }
Key = { \key c \major }
% ############ Horns ############
% ------ Trumpet ------
trpt = \transpose c d \relative c'' {
\Key
c1 | c | c |
}
trpHarmony = \transpose c' d {
\jazzChords
}
trumpet = {
\global
\clef treble
<<
\trpt
>>
}
% ------ Alto Saxophone ------
alto = \transpose c a \relative c' {
\Key
c1 | c | c |
}
altoHarmony = \transpose c' a {
\jazzChords
}
altoSax = {
\global
\clef treble
<<
\alto
>>
}
% ------ Baritone Saxophone ------
bari = \transpose c a' \relative c {
\Key
c1
c1
\sl
d4^"Solo" d d d
\nsl
}
bariHarmony = \transpose c' a \chordmode {
\jazzChords s1 s d2:maj e:m7
}
bariSax = {
\global
\clef treble
<<
\bari
>>
}
% ------ Trombone ------
tbone = \relative c {
\Key
c1 | c | c
}
tboneHarmony = \chordmode {
\jazzChords
}
trombone = {
\global
\clef bass
<<
\tbone
>>
}
% ############ Rhythm Section #############
% ------ Guitar ------
gtr = \relative c'' {
\Key
c1
\sl
b4 b b b
\nsl
c1
}
gtrHarmony = \chordmode {
\jazzChords
s1 c2:min7+ d2:maj9
}
guitar = {
\global
\clef treble
<<
\gtr
>>
}
%% ------ Piano ------
rhUpper = \relative c'' {
\voiceOne
\Key
c1 | c | c
}
rhLower = \relative c' {
\voiceTwo
\Key
e1 | e | e
}
lhUpper = \relative c' {
\voiceOne
\Key
g1 | g | g
}
lhLower = \relative c {
\voiceTwo
\Key
c1 | c | c
}
PianoRH = {
\clef treble
\global
<<
\new Voice = "one" \rhUpper
\new Voice = "two" \rhLower
>>
}
PianoLH = {
\clef bass
\global
<<
\new Voice = "one" \lhUpper
\new Voice = "two" \lhLower
>>
}
piano = {
<<
\new Staff = "upper" \PianoRH
\new Staff = "lower" \PianoLH
>>
}
% ------ Bass Guitar ------
Bass = \relative c {
\Key
c1 | c | c
}
bass = {
\global
\clef bass
<<
\Bass
>>
}
% ------ Drums ------
up = \drummode {
\voiceOne
hh4 <hh sn> hh <hh sn>
hh4 <hh sn> hh <hh sn>
hh4 <hh sn> hh <hh sn>
}
down = \drummode {
\voiceTwo
bd4 s bd s
bd4 s bd s
bd4 s bd s
}
drumContents = {
\global
<<
\new DrumVoice \up
\new DrumVoice \down
>>
}
%%%%%%%%% It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%
\score {
<<
\new StaffGroup = "horns" <<
\new Staff = "trumpet" \with { instrumentName = "Trumpet" }
\trumpet
\new Staff = "altosax" \with { instrumentName = "Alto Sax" }
\altoSax
\new ChordNames = "barichords" \with { instrumentName = "Trumpet" }
\bariHarmony
\new Staff = "barisax" \with { instrumentName = "Bari Sax" }
\bariSax
\new Staff = "trombone" \with { instrumentName = "Trombone" }
\trombone
>>
\new StaffGroup = "rhythm" <<
\new ChordNames = "chords" \gtrHarmony
\new Staff = "guitar" \with { instrumentName = "Guitar" }
\guitar
\new PianoStaff = "piano" \with {
instrumentName = "Piano"
midiInstrument = "acoustic grand"
}
\piano
\new Staff = "bass" \with { instrumentName = "Bass" }
\bass
\new DrumStaff \with { instrumentName = "Drums" }
\drumContents
>>
>>
\layout {
\context { \Staff \RemoveEmptyStaves }
\context {
\Score
\override BarNumber.padding = #3
\override RehearsalMark.padding = #2
skipBars = ##t
}
}
\midi { }
}
|
Liaison « Laissez vibrer »
Les indications de « laisser vibrer » ont une taille fixe. Leur
formatage est accessible au travers de la propriété
tie-configuration.
| | \relative c' {
<c e g>4\laissezVibrer r <c f g>\laissezVibrer r
<c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8
<c d e f>4\laissezVibrer r
\override LaissezVibrerTieColumn.tie-configuration
= #`((-7 . ,DOWN)
(-5 . ,DOWN)
(-3 . ,UP)
(-1 . ,UP))
<c d e f>4\laissezVibrer r
}
|
Impression de la corde aiguë d’un TabStaff en bas
Il est d’usage, en matière de tablature, d’imprimer la première corde en
haut. Il est toutefois possible de la positionner en bas grâce à une
modification de la propriété de contexte stringOneTopmost.
Définir ce réglage au sein d’un bloc \layout l’appliquera à
l’intégralité du contexte.
| | %
%\layout {
% \context {
% \Score
% stringOneTopmost = ##f
% }
% \context {
% \TabStaff
% tablatureFormat = #fret-letter-tablature-format
% }
%}
m = {
\cadenzaOn
e, b, e gis! b e'
\bar "||"
}
<<
\new Staff { \clef "G_8" <>_"default" \m <>_"italian (historic)"\m }
\new TabStaff
{
\m
\set Score.stringOneTopmost = ##f
\set TabStaff.tablatureFormat = #fret-letter-tablature-format
\m
}
>>
|
Tablature en lettres
Une tablature peut comporter des lettres en lieu et place des chiffres.
| | music = \relative c {
c4 d e f
g4 a b c
d4 e f g
}
<<
\new Staff {
\clef "G_8"
\music
}
\new TabStaff \with {
tablatureFormat = #fret-letter-tablature-format
}
{
\music
}
>>
|
Table des harmoniques sur corde à vide
Table des harmoniques sur corde à vide (harmoniques naturelles) :
| | 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
}
}
>>
}
|
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
}
|
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"
\context Voice = "upper" \upper
\context Voice = "lower" \lower
>>
\new TabStaff = "guitar tab" <<
\context TabVoice = "upper" \upper
\context TabVoice = "lower" \lower
>>
>>
>>
}
|
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
}
}
}
|
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
}
}
|
Ligne de prolongation pour numéro de corde
Voici comment ajouter une ligne de prolongation à une indication de
numéro de corde, afin de stipuler que les notes qui suivent doivent être
jouées sur la corde en question.
| | stringNumberSpanner =
#(define-music-function (StringNumber) (string?)
#{
\override TextSpanner.style = #'solid
\override TextSpanner.font-size = #-5
\override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
\override TextSpanner.bound-details.left.text =
\markup { \circle \number $StringNumber }
#})
\relative c {
\clef "treble_8"
\stringNumberSpanner "5"
\textSpannerDown
a8\startTextSpan
b c d e f\stopTextSpan
\stringNumberSpanner "4"
g\startTextSpan a
bes4 a g2\stopTextSpan
}
|