Guida alla Notazione di LilyPond: 2.4.1 Notazione comune per strumenti a corde con tasti

### 2.4.1 Notazione comune per strumenti a corde con tasti

Questa sezione presenta la notazione comune che riguarda esclusivamente gli strumenti a corde con tasti.

#### Riferimenti per strumenti a corde con tasti

La musica per strumenti a corde con tasti viene normalmente scritta su un rigo singolo, o nella notazione musicale tradizionale o in intavolatura. Talvolta i due tipi sono combinati; nella musica popolare è molto comune usare i diagrammi degli accordi sopra un rigo di notazione tradizionale. La chitarra e il banjo sono strumenti traspositori, che suonano un’ottava più bassa di quella in cui vengono scritti. Le partiture per questi strumenti devono usare la chiave `"treble_8"` (per ottenere l’output MIDI corretto usare `\transposition c`). Altri elementi relativi agli strumenti a corde con tasti sono trattati altrove:

- Le diteggiature vengono indicate come spiegato in Indicazioni di diteggiatura.
- Istruzioni per le legature di valore Laissez vibrer così come per le legature di valore su arpeggi e tremoli si trovano in Legature di valore.
- Istruzioni su come gestire voci multiple si trovano in Risoluzione delle collisioni.
- Istruzioni per indicare gli armonici si trovano in Armonici.

#### Vedi anche

Guida alla notazione: Indicazioni di diteggiatura, Legature di valore, Risoluzione delle collisioni, Nomi degli strumenti, Scrivere la musica in parallelo, Arpeggio, Elenco delle articolazioni, Chiave, Trasporto strumentale.

#### Indicazioni di numero di corda

La corda sulla quale suonare una nota può essere indicata aggiungendo `\numero` a una nota.

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

Se si usano insieme diteggiature e indicazioni di corda, il loro posizionamento è regolato dall’ordine in cui i due elementi appaiono nel codice solo se si trovano all’interno di un accordo esplicito: se applicate a un intero accordo o a singole note fuori da un accordo, le diteggiature vengono posizionate con un meccanismo diverso.

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

I numeri di corda possono anche essere rappresentati da numeri romani, come è abituale con gli strumenti a corde senza tasti, e posizionati sotto il rigo invece che sopra.

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

#### Frammenti di codice selezionati

Controllare il posizionamento delle diteggiature di un accordo

Il posizionamento dei numeri della diteggiatura può essere regolato in modo preciso. Perché l’orientamento funzioni, occorre usare il costrutto per gli accordi <> anche per le note singole. Si può impostare in modo simile l’orientamento dei numeri di corda e delle diteggiature della mano destra.

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

Far sì che la diteggiatura appaia dentro il rigo

Per impostazione predefinita, le diteggiature orientate verticalmente sono poste fuori dal rigo; questo comportamento tuttavia può essere disabilitato. Occorre fare attenzione alle situazioni in cui le diteggiature e i gambi sono rivolti nella stessa direzione: normalmente le diteggiature evitano soltanto i gambi con travature. Questa impostazione predefinita può essere cambiata in modo da evitare tutti i gambi oppure nessuno. L’esempio seguente mostra queste due opzioni, così come tornare al comportamento predefinito.

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

#### Comandi predefiniti

`\arabicStringNumbers`, `\romanStringNumbers`.

#### Vedi anche

Guida alla notazione: Indicazioni di diteggiatura.

Frammenti: Fretted strings.

Guida al funzionamento interno: StringNumber, Fingering.

#### Intavolature predefinite

La musica per gli strumenti a corde pizzicate si scrive con un sistema di notazione basato sulle dita/tocco ovvero l’intavolatura (o tablatura). Diversamente dalla notazione tradizionale, le altezze non sono rappresentate da teste di nota, ma da numeri (o da simboli simili a lettere nell’intavolatura antica). Le linee del rigo nell’intavolatura indicano la corda su cui suonare la nota, mentre un numero posto su una linea del rigo indica il tasto su cui premere la corda corrispondente. Le note da suonare simultaneamente sono allineate verticalmente. Per impostazione predefinita, la corda 1 è la corda più alta e corrisponde alla linea più alta del rigo dell’intavolatura (`TabStaff`). L’accordatura predefinita delle corde di `TabStaff` è l’accordatura standard per chitarra (a sei corde). Le note appaiono in intavolatura, usando i contesti `TabStaff` e `TabVoice`. Viene aggiunta automaticamente una chiave calligrafica per l’intavolatura.

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

L’aspetto predefinito per le intavolature non prevede alcun simbolo di durata né altri simboli musicali, come per esempio i segni di espressione.

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

Se si desidera che tutti i simboli usati nella notazione tradizionale appaiano anche nell’intavolatura, occorre applicare il comando `\tabFullNotation` in un contesto `TabStaff`. Tenere presente che nell’intavolatura le note da due quarti hanno un doppio gambo per distinguerle dalle note di un quarto.

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

Di norma le altezze vengono assegnate alla posizione più bassa della tastiera (prima posizione). Viene data priorità alle corde a vuoto. Per far sì che una certa altezza venga suonata su una corda specifica, aggiungere un’indicazione di numero di corda al nome dell’altezza. Per nascondere le indicazioni di numero di corda nella notazione tradizionale, sovrascrivere lo stampo (stencil) corrispondente.

Spesso è più comodo definire la posizione sulla tastiera modificando la proprietà `minimumFret`, il cui valore predefinito è 0.

Anche quando `minimumFret` è impostato esplicitamente, vengono usate le corde a vuoto ogni volta che è possibile. È possibile modificare questo comportamento impostando `restrainOpenStrings` su `#t`.

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

Gli accordi possono essere ripetuti col simbolo di ripetizione accordo `q`, che però rimuove i numeri di corda e le diteggiature. Se usato nelle intavolature, può quindi creare problemi. Converrà quindi eseguire il comando

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

esplicitamente sulle espressioni musicali dell’intavolatura che usano la Ripetizione di un accordo. Questo comando è così comune che è disponibile come `\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
>       }
>     >>

Le legature di valore spezzate da un a capo appaiono tra parentesi. Lo stesso vale per la seconda alternativa di una ripetizione.

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

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

Il comando `\hideSplitTiedTabNotes` annulla il comportamento di racchiudere i numeri di tasto tra parentesi:

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

Gli armonici possono essere inseriti in un’intavolatura nelle altezze in cui suonano:

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

Il comando `\harmonic` deve essere sempre attaccato a note singole (possibilmente dentro a un costrutto per accordo) invece che ad accordi interi. Ha senso usarlo solo per gli armonici sul dodicesimo tasto. Tutti gli altri armonici devono essere calcolati da LilyPond. Ciò si ottiene indicando il tasto in cui il dito della mano che preme i tasti debba toccare una corda.

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

Gli armonici possono essere calcolati anche definendo il rapporto delle lunghezze della corda sopra e sotto la diteggiatura dell’armonico.

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

#### Frammenti di codice selezionati

Comportamento di gambi e travature in intavolatura

La direzione dei gambi nell’intavolatura è regolata nello stesso modo della notazione tradizionale. Le travature possono essere rese orizzontali, come illustrato in questo esempio.

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

Polifonia in intavolatura

La polifonia in `TabStaff` funziona proprio come nel rigo 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
>           >>
>         >>
>       >>
>     }

Armonici su corde a vuoto in intavolatura

Questo frammento mostra come scrivere armonici su corde a vuoto.

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

Armonici su corde premute in intavolatura

Questo frammento mostra come scrivere su intavolatura armonici su corde premute.

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

Slides in tablature

Slides can be typeset in both `Staff` and `TabStaff` contexts:

>     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 di accordi in intavolatura

I glissati (o slide) di accordi vengono indicati sia nel rigo (contesto `Staff`) sia nell’intavolatura (contesto `TabStaff`). I numeri di corda sono necessari per `TabStaff`, perché i calcoli automatici della corda sono diversi per gli accordi e per le note singole.

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

Martellato e strappato

Il martellato (hammer on) e lo strappato (pull off) si possono ottenere con le legature di portamento.

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

Martellato e strappato usando le voci

L’arco del martellato o dello strappato è rivolto in alto nella prima e terza voce, mentre è rivolto in basso nella seconda e quarta voce.

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

Martellato e strappato usando accordi

Quando il martellato o lo strappato si applicano a delle note in un accordo, viene disegnato un solo arco. Ma è possibile avere un “doppio arco” impostando la proprietà `doubleSlurs` su `#t`.

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

#### Vedi anche

Guida alla notazione: Ripetizione di un accordo, Glissando, Armonici, Gambi, Ripetizioni ricopiate.

Frammenti: Fretted strings.

Guida al funzionamento interno: TabNoteHead, TabStaff, TabVoice, Beam.

#### Problemi noti e avvertimenti

Gli accordi non sono gestiti in un modo specifico, dunque il selettore automatico delle corde potrebbe selezionare la stessa corda per due note di un accordo.

Per poter gestire `\partCombine`, un rigo `TabStaff` deve usare voci create appositamente:

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

Gli effetti speciali per chitarra sono limitati ad armonici e slide (glissati).

#### Intavolature personalizzate

L’intavolatura di LilyPond calcola automaticamente il tasto per una nota in base alla corda a cui è assegnata. Per far ciò, deve essere specificata l’accordatura usando la proprietà `stringTunings`.

LilyPond ha accordature predefinite per banjo, mandolino, chitarra, basso, ukulele, violino, viola, violoncello e contrabbasso. LilyPond imposta automaticamente la corretta trasposizione per le accordature predefinite. L’esempio seguente è per basso, che suona un’ottava più bassa di come è scritto.

>     <<
>       \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’accordatura predefinita è `guitar-tuning`, ovvero l’accordatura standard EADGBE. Altre accordature predefinite sono `guitar-open-g-tuning`, `mandolin-tuning` e `banjo-open-g-tuning`. Tutte le accordature predefinite si trovano in ‘`ly/string-tunings-init.ly`’.

Si può definire qualsiasi accordatura tramite la funzione `\stringTuning`, che imposta la proprietà `stringTunings` per il contesto corrente.

Prende come argomento un accordo che definisce le altezze di ciascuna corda dell’accordatura. Le note dell’accordo sono in modalità di ottava assoluta, vedi Ottava assoluta. La corda col numero più alto (generalmente la corda più grave) deve apparire per prima nell’accordo. Per esempio, possiamo definire un’accordatura per uno strumento a quattro corde con le altezze `a''`, `d''`, `g'` e `c'`:

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

>     <<
>       \new Staff {
>         \clef treble
>         \mynotes
>       }
>       \new TabStaff {
>         \set Staff.stringTunings = \stringTuning <c' g' d'' a''>
>         \mynotes
>       }
>     >>

La proprietà `stringTunings` viene utilizzata anche da `FretBoards` per calcolare i diagrammi automatici dei tasti.

Le accordature vengono usate per calcolare i diagrammi dei tasti predefiniti (vedi Diagrammi dei tasti predefiniti).

L’esempio precedente può essere scritto anche così:

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

Internamente un’accordatura è una lista Scheme di altezze, una per ciascuna corda, ordinata da un numero di corda che va da 1 a N, dove la corda 1 è in cima al rigo dell’intavolatura e la corda N è in fondo. Normalmente ciò significa che l’ordine va dall’altezza più alta a quella più bassa, con l’eccezione di alcuni strumenti (come l’ukulele) che non hanno corde ordinate per altezza.

Un’altezza in una lista per accordatura, nella terminologia di LilyPond, è un oggetto altezza, creato dalla funzione Scheme `ly:make-pitch` (vedi Funzioni Scheme).

`\stringTuning` crea tale oggetto a partire da un accordo.

LilyPond calcola automaticamente il numero di linee del rigo dell’intavolatura (`TabStaff`) e il numero di corde in una tastiera (`FretBoard`) calcolata automaticamente in base al numero di elementi in `stringTunings`.

Per far sì che tutti i contesti TabStaff usino la stessa accordatura personalizzata, si può usare

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

Si può usare anche una chiave moderna per l’intavolatura.

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

La chiave moderna per l’intavolatura supporta tablature da 4 a 7 corde.

`TabStaff` supporta i microtoni come i quarti di tono, che possono essere suonati piegando le corde (bending). Occorre impostare `supportNonIntegerFret = ##t` nel contesto `Score`. I microtoni tuttavia non sono supportati nel contesto `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
>     >>

#### Vedi anche

Guida alla notazione: Ottava assoluta, Diagrammi dei tasti predefiniti, Funzioni Scheme.

File installati: ‘`ly/string-tunings-init.ly`’, ‘`scm/tablature.scm`’.

Frammenti: Fretted strings.

Guida al funzionamento interno: Tab_note_heads_engraver.

#### Problemi noti e avvertimenti

I calcoli automatici dell’intavolatura non funzionano correttamente nella maggior parte dei casi per strumenti (come l’ukulele) in cui le altezze delle corde non variano in modo uniforme col numero di corda.

#### Diagrammi dei tasti

I diagrammi dei tasti possono essere collegati alla musica come testo (markup) attaccato alla nota desiderata. Il testo contiene l’informazione sul diagramma dei tasti desiderato. Esistono tre diverse interfacce per inserire un diagramma dei tasti (fret-diagram): standard, conciso (terse) e ridondante (verbose). Le tre interfacce producono testi graficamente equivalenti, ma hanno diverse quantità di informazioni nella stringa di testo. I dettagli sulla sintassi delle diverse stringhe di markup usate per definire i diagrammi dei tasti si trovano in Instrument Specific Markup.

Il comando per il diagramma dei tasti standard, `\fret-diagram`, richiede il numero di corda e il numero di tasto per ogni punto da posizionare sulla corda. Per esempio `5-3` indica che la quinta corda è premuta sul terzo tasto. Si possono indicare anche corde a vuoto o non suonate (mute) attaccando rispettivamente `-o` e `-x` al numero di corda.

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

Con fret-diagram si possono aggiungere indicazioni di barré al diagramma inserendo all’inizio della stringa, per esempio, `c:4-1-3`, che indica che il barré va dalla quarta alla prima corda e si trova sul terzo tasto.

>     <<
>       \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 dimensione del diagramma dei tasti si può variare col modificatore `s:`. Un numero superiore a 1 aumenterà la dimensione predefinita, mentre uno inferiore a 1 la ridurrà. Il numero dei tasti del diagramma può essere cambiato col modificatore `h:` seguito dal numero di tasti desiderato.

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

Il numero di corde in un diagramma creato con `\fret-diagram` può essere cambiato per adattarsi a diversi strumenti come banjo e ukulele. Il modificatore è `w:` seguito dal numero di corde desiderato.

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

Si possono aggiungere indicazioni di diteggiatura appendendo un terzo numero, dopo quelli della corda e del tasto. La posizione delle diteggiature è controllata dal modificatore `f:`, che può prendere due valori: 1, per mostrare i numeri di diteggiatura sul tasto; 2 per mostrarli alla base della rispettiva corda (posizione predefinita).

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

Il comando `fret-diagram` consente anche di modificare il raggio del punto (modificatore `d:`) e la sua posizione rispetto al tasto (modificatore `p:`).

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

Il comando markup `\fret-diagram-terse` ha un formato più conciso perché omette i numeri di corda, che sono calcolati implicitamente in base al punto e virgola che separa ciascuna corda. Il primo punto e virgola corrisponde al numero di corda più alto e l’ultimo punto e virgola corrisponde alla prima corda. Si possono indicare anche corde a vuoto, mute e con tasto premuto, come visto prima.

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

Nella stringa di `\fret-diagram-terse` si possono inserire indicazioni di barré:

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

`\fret-diagram-terse` accetta anche indicazioni di diteggiatura, che si troveranno in seconda posizione, dopo il numero del tasto.

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

Quando si usa `\fret-diagram-terse`, altre proprietà del diagramma dei tasti possono essere regolate usando `\override`.

Solo un’indicazione per corda può essere inclusa in un markup fret-diagram-terse. Per avere indicazioni multiple per corda, usare una diagramma dei tasti o un markup fret-diagram-verbose.

Il comando `\fret-diagram-verbose` prende come argomento una lista Scheme. Ciascun elemento della lista indica un elemento da posizionare sul diagramma.

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

Nella lista di fret-diagram-verbose si possono inserire indicazioni di diteggiatura e barré. Solo in questa interfaccia è possibile inserire un’indicazione di capotasto per il diagramma. L’indicazione di capotasto è una barra spessa che copre tutte le corde. Il tasto col capotasto sarà il tasto più basso del diagramma.

I punti con le diteggiature possono essere colorati o racchiusi da parentesi; il colore delle parentesi può essere modificato in modo indipendente.

Si può anche inserire del testo di tipo markup dentro i punti.

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

Anche in questa interfaccia è possibile modificare tutte le altre proprietà del diagramma dei tasti tramite `\override`.

L’aspetto grafico di un diagramma dei tasti può essere personalizzato secondo le proprie preferenze attraverso le proprietà dell’interfaccia `fret-diagram-interface`. Tutti i dettagli si trovano in fret-diagram-interface. Per un diagramma dei tasti di tipo markup, le proprietà dell’interfaccia appartengono a `Voice.TextScript`.

#### Frammenti di codice selezionati

Cambiare l’orientamento della tastiera

I diagrammi dei tasti possono essere orientati in tre modi.

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

Personalizzare il diagramma dei tasti di tipo markup

Le proprietà del diagramma dei tasti si possono impostare tramite `'fret-diagram-details`. Per diagrammi di tipo markup, gli override possono essere applicati all’oggetto `Voice.TextScript` o direttamente al 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;"
>           }
>         }
>       }
>     >>

#### Vedi anche

Guida alla notazione: Instrument Specific Markup.

Frammenti: Fretted strings.

Guida al funzionamento interno: fret-diagram-interface.

#### Diagrammi dei tasti predefiniti

I diagrammi dei tasti possono essere visualizzati attraverso il contesto `FretBoards`. Per impostazione predefinita, il contesto `FretBoards` mostrerà i diagrammi dei tasti salvati in una tabella dati:

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

I diagrammi dei tasti predefiniti sono contenuti nel file ‘`predefined-guitar-fretboards.ly`’. Si basano sulle altezze di un accordo e sul valore di `stringTunings` in uso. ‘`predefined-guitar-fretboards.ly`’ contiene i diagrammi dei tasti predefiniti solo per l’accordatura standard per chitarra (`guitar-tuning`). Si possono aggiungere diagrammi predefiniti per altri strumenti o accordature seguendo l’esempio in ‘`predefined-guitar-fretboards.ly`’.

I diagrammi dei tasti per ukulele sono contenuti nel file
‘`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
>     }

I diagrammi dei tasti per mandolino sono contenuti nel file
‘`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
>     }

Le altezze degli accordi possono essere inserite sia come musica simultanea sia usando la modalità per accordi (vedi Panoramica sulla modalità accordo).

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

Di solito i nomi degli accordi e i diagrammi dei tasti appaiono insieme. Per farlo si pone un contesto `ChordNames` in parallelo con un contesto `FretBoards` assegnando a entrambi la stessa musica.

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

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

I diagrammi dei tasti predefiniti possono essere trasposti, purché un diagramma per l’accordo trasposto sia salvato nella tabella del diagramma.

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

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

La tabella dei diagrammi dei tasti predefiniti per chitarra contiene otto accordi (maggiore, minore, aumentato, diminuito, settima dominante, settima maggiore, settima minore, nona dominante) per ognuna delle 17 tonalità.

La tabella dei diagrammi dei tasti per ukulele contiene questi accordi più ulteriori tre accordi (sesta maggiore, seconda sospesa e quarta sospesa). Un elenco completo dei diagrammi dei tasti predefiniti si trova in Diagrammi degli accordi predefiniti. Se nella tabella non esiste una voce per un accordo, l’incisore FretBoards calcolerà un diagramma usando la funzionalità automatica descritta in Diagrammi dei tasti automatici.

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

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

Si possono aggiungere diagrammi dei tasti alla tabella. Basta specificare la tabella del diagramma, l’accordo, l’accordatura e una definizione del diagramma. Di solito la tabella di riferimento sarà default-fret-table. La definizione di diagramma può essere una stringa di fret-diagram-terse o un elenco di fret-diagram-verbose.

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

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

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

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

Diagrammi diversi per accordi con lo stesso nome possono essere salvati usando un’altezza con unn’ottava diversa. L’ottava diversa deve essere almeno due ottave sopra o sotto l’ottava predefinita, perché le ottave sopra e sotto sono usate per trasporre le tastiere.

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

Oltre ai diagrammi dei tasti, LilyPond contiene un elenco interno di forme di accordo. Queste forme sono diagrammi dei tasti che possono essere spostati lungo il manico in diverse posizioni per fornire diversi accordi. Si possono aggiungere nuove forme di accordo all’elenco interno e poi usarle per definire diagrammi dei tasti predefiniti. Dato che possono essere spostate in varie posizioni sul manico, le forme di un accordo normalmente non contengono corde a vuoto. Come per i diagrammi dei tasti, le forme possono essere inserite come stringhe di fret-diagram-terse o come elenchi di 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
>       }
>     >>

L’aspetto grafico di un diagramma dei tasti può essere personalizzato in base alle proprie preferenze attraverso le proprietà dell’interfaccia `fret-diagram-interface`. I dettagli si trovano in fret-diagram-interface. Per un diagramma dei tasti predefinito, le proprietà dell’interfaccia appartengono a `FretBoards.FretBoard`.

#### Frammenti di codice selezionati

Personalizzare la tastiera del diagramma dei tasti

Le proprietà del diagramma dei tasti possono essere impostate tramite `'fret-diagram-details`. Per i diagrammi dell’oggetto FretBoard, gli override vengono applicati all’oggetto `FretBoards.FretBoard`. Come `Voice`, `FretBoards` è un contesto di basso livello, dunque può essere omesso negli override delle proprietà.

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

Definire diagrammi dei tasti predefiniti per altri strumenti

Si possono aggiungere diagrammi dei tasti predefiniti per nuovi strumenti oltre a quelli standard per chitarra. Questo frammento mostra come farlo definendo una nuova accordatura e alcuni diagrammi predefiniti per il quatro venezuelano.

Mostra anche come includere le diteggiature negli accordi usati come punti di riferimento per la consultazione degli accordi e come mostrarle nel diagramma dei tasti e in `TabStaff`, ma non nella musica.

Questi diagrammi non sono trasponibili perché contengono informazioni sulle corde. È prevista una correzione in futuro.

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

Cambi di accordo nei diagrammi dei tasti

Si può impostare il contesto FretBoards in modo che mostri il diagramma solo quando l’accordo cambia o all’inizio di una nuova linea.

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

Tabelle alternative per i diagrammi dei tasti

Si possono creare tabelle alternative per i diagrammi dei tasti. Queste possono essere usate per avere diagrammi alternativi per uno stesso accordo.

Per poter usare una tabella alternativa, deve prima essere creata. Quindi si aggiungono i diagrammi alla tabella.

La tabella può essere vuota oppure ricopiata da una tabella esistente.

La tabella da usare nel mostrare i diagrammi predefiniti viene selezionata dalla proprietà `\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 |
>           }
>         >>
>       }
>     >>

#### Vedi anche

Guida alla notazione: Intavolature personalizzate, Diagrammi dei tasti automatici, Panoramica sulla modalità accordo, Diagrammi degli accordi predefiniti.

File installati: ‘`ly/predefined-guitar-fretboards.ly`’,
‘`ly/predefined-guitar-ninth-fretboards.ly`’,
‘`ly/predefined-ukulele-fretboards.ly`’,
‘`ly/predefined-mandolin-fretboards.ly`’.

Frammenti: Fretted strings.

Guida al funzionamento interno: fret-diagram-interface.

#### Diagrammi dei tasti automatici

I diagrammi dei tasti possono essere creati automaticamente dalle note inserite usando il contesto `FretBoards`. Se non è disponibile un diagramma predefinito per le note inserite nell’accordatura (`stringTunings`) attiva, questo contesto calcola le corde e i tasti che possono essere usati per suonare le note.

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

Dato che nessun diagramma predefinito viene caricato senza impostarlo esplicitamente, il calcolo automatico dei diagrammi è il comportamento predefinito. Quando i diagrammi predefiniti vengono caricati, il calcolo automatico può essere abilitato e disabilitato con dei comandi predefiniti:

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

Talvolta il calcolatore dei diagrammi non sarà in grado di trovare un diagramma accettabile. Di solito il rimedio consiste nell’assegnare manualmente una nota a una corda. In molti casi, solo una nota deve essere posta esplicitamente su una corda; tutte le altre note verranno posizionate correttamente dal contesto `FretBoards`.

Si possono aggiungere le diteggiture ai diagrammi dei tasti dell’oggetto FretBoard.

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

Il tasto minimo da usare per calcolare le corde e i tasti per il contesto FretBoard si può impostare con la proprietà `minimumFret`.

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

Le corde e i tasti per il contesto `FretBoards` dipendono dalla proprietà `stringTunings`, che funziona proprio come nel contesto TabStaff. Si rimanda a Intavolature personalizzate per informazioni sulla proprietà `stringTunings`.

L’aspetto grafico di un diagramma dei tasti può essere personalizzato secondo le proprie preferenze tramite le proprietà dell’interfaccia `fret-diagram-interface`. I dettagli si trovano in fret-diagram-interface. Per un diagramma dei tasti del contesto `FretBoards`, le proprietà dell’interfaccia appartengono a `FretBoards.FretBoard`.

#### Comandi predefiniti

`\predefinedFretboardsOff`, `\predefinedFretboardsOn`.

#### Vedi anche

Guida alla notazione: Intavolature personalizzate.

Frammenti: Fretted strings.

Guida al funzionamento interno: fret-diagram-interface.

#### Problemi noti e avvertimenti

I calcoli automatici dei tasti non funzionano correttamente per gli strumenti con accordature non monotoniche.

#### Diteggiature della mano destra

Le diteggiature della mano destra p-i-m-a si inseriscono col comando `\rightHandFinger` seguito da un numero.

Nota: Se si inserisce il numero in notazione Scheme, ricordarsi di aggiungere uno spazio prima del `>` di chiusura o simili.

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

Per comodità, si può abbreviare `\rightHandFinger` in un comando più breve, per esempio `RH`,

>     RH=#rightHandFinger

#### Frammenti di codice selezionati

Posizionamento delle diteggiature della mano destra

È possibile avere un maggior controllo sul posizionamento delle diteggiature della mano destra impostando una specifica proprietà, come illustrato nell’esempio seguente.

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

Diteggiature, indicazioni di corda e diteggiature della mano destra

Questo esempio combina la diteggiatura per la mano sinistra, le indicazioni di stringa e la diteggiatura della mano destra.

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

#### Vedi anche

Frammenti: Fretted strings.

Guida al funzionamento interno: StrokeFinger.

#### LilyPond — Guida alla Notazione v2.22.2 (ramo stabile).