Referencia de la notación de GNU LilyPond: 2.4.1 Notación común para cuerdas con trastes

### 2.4.1 Notación común para cuerdas con trastes

Esta sección se ocupa de la notación común exclusiva de los instrumentos de cuerda con trastes.

#### Referencias para cuerdas con trastes

La notación musical para instrumentos de cuerda con trastes se realiza normalmente en una sola pauta, ya sea en notación musical tradicional o en tablatura. A veces se combinan los dos tipos, y es común en música popular utilizar diagramas de acordes por encima de un pentagrama de notación tradicional. La guitarra y el banjo son instrumentos transpositores, que suenan una octava por debajo de lo escrito. Las partituras para estos instrumentos deben usar la clave de Sol octava baja `"treble_8"` (o `\transposition c` para obtener una salida MIDI correcta). Otros elementos relativos a los instrumentos de cuerda con trastes se estudian en otras partes de manual:

- Las digitaciones se indican como se explica en Indicaciones de digitación.
- Las instrucciones para ligaduras Laissez vibrer así como ligaduras de unión sobre arpegios y trémolos están en Ligaduras de unión.
- Las instrucciones para el manejo de varias voces se encuentran en Resolución de las colisiones.
- Las instrucciones para la indicación de armónicos está en Armónicos.

#### Véase también

Referencia de la notación: Indicaciones de digitación, Ligaduras de unión, Resolución de las colisiones, Nombres de instrumentos, Escribir música en paralelo, Arpegio, Lista de articulaciones, Clave, Transposición de los instrumentos.

#### Indicación de los números de cuerda

Se puede indicar la cuerda en que se debe tocar una nota añadiendo `\` número a una nota dentro de una construcción de acorde (`<>`).

Nota: Los números de cuerda se deben definir dentro de una construcción de acorde con ángulos simples, incluso si se trata de una sola nota.

>     \clef "treble_8"
>     <c\5>4 <e\4> <g\3>2
>     <c,\5 e\4 g\3>1

Cuando se usan al mismo tiempo digitaciones e indicaciones del número de cuerda, su colocación se controla por el orden en que aparecen estos elementos en el código:

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

#### Fragmentos de código seleccionados

Controlar la colocación de las digitaciones de acordes

Se puede controlar con precisión la colocación de los números de digitación. Para que se tenga en cuenta la orientación de las digitaciones, se debe utilizar una construcción de acorde <> aunque sea una sola nota.

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

Permitir que las digitaciones se impriman dentro del pentagrama

Las cifras de digitación orientadas verticalmente se colocan de forma predeterminada fuera del pentagrama. Sin embargo, este comportamiento se puede cancelar. Nota: se debe usar una construcción de acorde <>, aunque sea una sola nota.

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

#### Véase también

Referencia de la notación: Indicaciones de digitación.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: StringNumber, Fingering.

#### Tablaturas predeterminadas

La notación para instrumentos de cuerda pulsada se realiza con frecuencia utilizando un sistema de dedos y cifras, o tablatura. A diferencia de la notación tradicional, las notas no se designan mediante figuras, sino mediante números (o símbolos semejantes a letras en la intavolatura histórica). Las líneas de la tablatura indican sobre qué cuerda se debe tocar la nota, y el número sobre una línea indica el traste en que la cuerda correspondiente debe pisarse. Las notas que se deben tocar simultáneamente se alinean en sentido vertical.

De forma predeterminada, la cuerda 1 es la más aguda y corresponde a la línea superior de la pauta `TabStaff`. La afinación predeterminada de las cuerdas del `TabStaff` es la afinación estándar de guitarra (con 6 cuerdas). Las notas se imprimen como tablatura, usando los contextos `TabStaff` y `TabVoice`. Se añade automáticamente una clave caligráfica de tablatura.

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

Las tablaturas predeterminadas no contienen símbolos para la duración de las notas ni ningún otro símbolo musical, como p.ej. indicaciones expresivas.

>     symbols = {
>       \time 3/4
>       c4-.^"Allegro" d( e)
>       f4-.\f g a^\fermata
>       \mark \default
>       c8_.\<\( c16 c~ c2\!
>       c'2.\prall\)
>     }

>     \score {
>       <<
>         \new Staff { \clef "G_8" \symbols }
>         \new TabStaff { \symbols }
>       >>
>     }

Si queremos que todos los símbolos musicales que se usan en la notación tradicional aparezcan también en la tablatura, tenemos que aplicar la instrucción `\tabFullNotation` dentro de un contexto `TabStaff`. Tenga en cuenta que, en la tablatura, las blancas tienen doble plica para poder distinguirlas de las negras.

>     symbols = {
>       \time 3/4
>       c4-.^"Allegro" d( e)
>       f4-.\f g a^\fermata
>       \mark \default
>       c8_.\<\( c16 c~ c2\!
>       c'2.\prall\)
>     }

>     \score {
>       \new TabStaff {
>         \tabFullNotation
>         \symbols
>       }
>     }

De forma predeterminada, las notas se asignan a la posición más baja del mástil (primera posición). Las cuerdas al aire se toman como preferencia, automáticamente. Si queremos que una nota determinada se toque sobre una cuerda concreta, podemos añadir una indicación de número de cuerda al nombre de la nota. Si definimos los nombres de nota y los números de cuerda sin una construcción de acorde (`<>`), las indicaciones de número de cuerda no aparecerán en la notación tradicional. Es mucho más cómodo definir la posición utilizando el valor de `minimumFret`. El valor predeterminado de es 0.

>     \new StaffGroup <<
>        \new Staff \relative c {
>          \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 c {
>          c16 d e f g4
>          c,16\5 d\5 e\4 f\4 g4\4
>          \set TabStaff.minimumFret = #5
>          c,16 d e f g4
>        }
>     >>

Las construcciones de acorde se pueden repetir mediante el símbolo de repetición de acordes `q`. Para utilizar esta posibilidad en combinación con la tablatura, se proporciona `\tabChordRepetition`, que preserva la información de cuerdas dada explícitamente dentro de las construcciones de acorde, de forma que los acordes repetidos den lugar a representaciones de tablatura idénticas.

>     \tabChordRepetition

>     guitar = \relative c' {
>       r8 <gis\4 cis\3 b\2>~ q4 q8~ q q4
>     }

>     \new StaffGroup <<
>       \new Staff {
>         \clef "treble_8"
>         \override Voice.StringNumber #'transparent = ##t
>         \guitar
>       }
>       \new TabStaff {
>         \guitar
>       }
>     >>

Las ligaduras de unión que cruzan saltos de línea llevan paréntesis de forma predeterminada. Lo mismo rige para la casilla de segunda vez de una repetición.

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

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

La instrucción `\hideSplitTiedTabNotes` cancela el comportamiento de imprimir los números de traste entre paréntesis:

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

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

Se pueden añadir indicaciones de armónicos a la notación de tablatura como sus alturas de sonido:

>     firstHarmonic = {
>       <d'\4\harmonic>4
>       <g'\3\harmonic>4
>       <b'\2\harmonic>2
>     }
>     \score {
>       <<
>         \new Staff { \firstHarmonic }
>         \new TabStaff { \firstHarmonic }
>       >>
>     }

Observe que la instrucción `\harmonic` se debe situar siempre dentro de una construcción de acorde. Sólo tiene sentido para armónicos sobre una cuerda abierta en el duodécimo traste. Cualquier otro armónico debe estar calculado por parte de LilyPond. Se puede conseguir esto indicando el traste en que debe rozar la cuerda el dedo de la mano que pisa.

>     fretHarmonics = {
>       \harmonicByFret #5 d16\4
>       \harmonicByFret #4 d16\4
>       \harmonicByFret #3 d8\4
>       \harmonicByFret #5 <g\3 b\2>2.
>     }
>     \score {
>       <<
>         \new Staff { \fretHarmonics }
>         \new TabStaff { \fretHarmonics }
>       >>
>     }

De forma alternativa, se pueden calcular los armónicos definiendo la razón de las longitudes de cuerda por encima y por debajo de la digitación de armónico.

>     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 { \ratioHarmonics }
>         \new TabStaff { \ratioHarmonics }
>       >>
>     }

#### Fragmentos de código seleccionados

Comportamiento de las plicas y las barras de corchea en tablaturas

La dirección de las plicas se contola de la misma forma en la tablatura que en la notación tradicional. Las barras se pueden poner horizontales, como se muestra en este ejemplo.

>     \new TabStaff {
>       \relative c {
>         \tabFullNotation
>         g16 b d g b d g b
>         \stemDown
>         \override Beam #'damping = #+inf.0
>         g,,16 b d g b d g b
>       }
>     }

Polifonía en tablaturas

La polifonía se crea de la misma forma en un `TabStaff` que en una pauta normal.

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

Referencia para armónicos sobre cuerdas al aire

Referencia para armónicos sobre cuerdas al aire (armónicos naturales):

>     openStringHarmonics = {
>       %first harmonic
>       \harmonicByFret #12 e,2\6_\markup{"1st harm."}
>       \harmonicByRatio #1/2 e,\6
>       %second harmonic
>       \harmonicByFret #7 e,\6_\markup{"2nd harm. - - - -"}
>       \harmonicByRatio #1/3 e,\6
>       \harmonicByFret #19 e,\6
>       \harmonicByRatio #2/3 e,\6
>       %\harmonicByFret #19 < e,\6 a,\5 d\4 >
>       %\harmonicByRatio #2/3 < e,\6 a,\5 d\4 >
>       %third harmonic
>       \harmonicByFret #5 e,\6_\markup{"3rd harm. - - - -"}
>       \harmonicByRatio #1/4 e,\6
>       \harmonicByFret #24 e,\6
>       \harmonicByRatio #3/4 e,\6
>       \break
>       %fourth harmonic
>       \harmonicByFret #4 e,\6_\markup{"4th harm. - - - - - - - - - - - - -"}
>       \harmonicByRatio #1/5 e,\6
>       \harmonicByFret #9 e,\6
>       \harmonicByRatio #2/5 e,\6
>       \harmonicByFret #16 e,\6
>       \harmonicByRatio #3/5 e,\6
>       %fifth harmonic
>       \harmonicByFret #3 e,\6_\markup{"5th harm."}
>       \harmonicByRatio #1/6 e,\6
>       \break
>       %sixth harmonic
>       \harmonicByFret #2.7 e,\6_\markup{"6th harm."}
>       \harmonicByRatio #1/7 e,\6
>       %seventh harmonic
>       \harmonicByFret #2.3 e,\6_\markup{"7th harm."}
>       \harmonicByRatio #1/8 e,\6
>       %eighth harmonic
>       \harmonicByFret #2 e,\6_\markup{"8th harm."}
>       \harmonicByRatio #1/9 e,\6
>     }

>     \score {
>       <<
>         \new Staff {
>           \new Voice {
>             \clef "treble_8"
>             \openStringHarmonics
>           }
>         }
>         \new TabStaff {
>           \new TabVoice {
>             \openStringHarmonics
>           }
>         }
>       >>
>     }

Armónicos sobre cuerdas pisadas en tablatura

Armónicos sobre cuerdas pisadas (armónicos artificiales):

>     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 {
>           \new Voice {
>             \clef "treble_8"
>             \harmonics
>           }
>         }
>         \new TabStaff {
>           \new TabVoice {
>             \frettedStrings
>           }
>         }
>       >>
>     }

Deslizamientos en tablatura

Los deslizamientos se pueden componer tipográficamente tanto en los contextos de `Staff` como en los de `TabStaff`:

>     slides = {
>       c'8\3(\glissando d'8\3)
>       c'8\3\glissando d'8\3
>       \hideNotes
>       \grace { g16\3\glissando }
>       \unHideNotes
>       c'4\3
>       \afterGrace d'4\3\glissando {
>       \stemDown \hideNotes
>       g16\3 }
>       \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
>         }
>       }
>     }

Glissando de acordes en tablatura

Los deslizamientos para acordes se pueden indicar tanto en el contexto Staff como en TabStaff. Los números de cuerda son necesarios para TabStaff porque los cálculos de cuerda automáticos son diferentes para los acordes y para notas sueltas, y `\chordGlissando` traza líneas entre las notas individuales.

>     myMusic = \relative c' {
>       \chordGlissando
>       <c\3 e\2 g\1>8 <f\3 a\2 c\1>
>     }

>     \score {
>       <<
>         \new Staff {
>           \clef "treble_8"
>           \myMusic
>         }
>         \new TabStaff {
>           \myMusic
>         }
>       >>
>     }

#### Véase también

Referencia de la notación: Plicas, @ref{Armónicods}, Glissando.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: TabNoteHead, TabStaff, TabVoice, Beam.

#### Advertencias y problemas conocidos

Los acordes no se tratan de una forma especial, y de aquí que el selector automático de la cuerda puede elegir fácilmente la misma cuerda para dos notas del acorde.

Para manejar `\partcombine`, es necesario que `TabStaff` utilice voces especialmente creadas:

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

Los efectos especiales de guitarra se limitan a armónicos y slides.

#### Tablaturas personalizadas

La tablatura en LilyPond calcula automáticamente el traste para cada nota, basándose en la cuerda a que está asignada la nota. Para hacerlo, es necesario especificar la afinación de las cuerdas. La afinación de las cuerdas se da en la propiedad `stringTunings`.

LilyPond trae afinaciones predefinidas para el banjo, la mandolina, la guitarra, el bajo, el ukelele, el violín, la viola, el violoncello y el contrabajo. LilyPond establece automáticamente la transposición correcta para las afinaciones predefinidas. El ejemplo siguiente es para bajo, que suena una octava por debajo de lo escrito.

>     <<
>       \new Staff {
>         \clef "bass_8"
>         \relative c, {
>           c4 d e f
>         }
>       }
>       \new TabStaff {
>         \set TabStaff.stringTunings = #bass-tuning
>         \relative c, {
>           c4 d e f
>         }
>       }
>     >>

La afinación por omisión es `guitar-tuning` (la afinación estándar Mi-La-Re-Sol-Si-Mi). Otras afinaciones predefinidas son `guitar-open-g-tuning` (Sol Mayor al aire, Re-Sol-Re-Sol-Si-Re), `mandolin-tuning` (mandolina) y `banjo-open-g-tuning` (banjo con Sol Mayor al aire). Las afinaciones predefinidas están en ‘`ly/string-tuning-init.ly`’.

Es posible crear cualquier afinación de cuerdas que se desee. Se puede usar la función `\contextStringTuning` para definir una afinación de cuerdas y establecerla como el valor de `stringTunings` para el contexto actual. `\contextStringTuning` admite dos argumentos: el símbolo en que se almacena la afinación de cuerdas y una construcción de acorde que define la altura de las notas de cada cuerda al aire en dicha afinación. La construcción de acorde debe estar en el modo de octava absoluto, véase Escritura de octava absoluta. La cuerda con el número más alto (generalmente la más grave) debe ir primero en el acorde. Por ejemplo, podemos definir una afinación para un instrumento de cuatro cuerdas con las alturas `a''`, `d''`, `g'` y `c'`:

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

>     <<
>       \new Staff {
>         \clef treble
>         \mynotes
>       }
>       \new TabStaff {
>         \contextStringTuning #'custom-tuning <c' g' d'' a''>
>         \mynotes
>       }
>     >>

La propiedad `stringTunings` también se utiliza por parte de `FretBoards` para calcular los diagramas de posición automáticos.

Las afinaciones de cuerdas se utilizan como parte de la clave de asociación para los diagramas de posición predefinidos (véase Diagramas predefinidos de trastes). Se usa la función `\makeStringTuning` para crear una afinación sin fijar el valor de la propiedad `stringTunings` en el contexto actual. Los argumentos de `\makeStringTuning` son el símbolo que usar para la nueva afinación y una construcción de acorde que se usa para definir la afinación. El ejemplo anterior también se podría haber escrito como sigue:

>     \makeStringTuning #'custom-tuning <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, una afinación de las cuerdas es una lista de Scheme de alturas, una por cada cuerda, ordenadas de 1 a N, donde la cuerda 1 está arriba en la pauta de tablatura y la cuerda N está abajo. Esto resulta generalmente en un orden de la nota más aguda a la más grave, pero algunos instrumentos (p.ej. el ukelele) no tienen las cuerdas dispuestas en orden de altura.

La altura de una cuerda dentro de una lista de alturas de cuerdas es un objeto altura de LilyPond. Los objetos altura se crean con la función de Scheme `ly:make-pitch` (véase Funciones de Scheme).

Se así se desea, puede crearse una afinación de cuerdas como un literal de Scheme. El ejemplo de abajo recrea los ejemplos anteriores, pero la afinación no se guarda como un objeto separado:

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

>     <<
>       \new Staff {
>         \clef treble
>         \mynotes
>       }
>       \new TabStaff {
>         \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0)
>     				     ,(ly:make-pitch 1 1 0)
>     				     ,(ly:make-pitch 0 4 0)
>     				     ,(ly:make-pitch 0 0 0))
>         \mynotes
>       }
>     >>

LilyPond calcula automáticamente el número de líneas dentro del `TabStaff` y el número de cuerdas dentro de un `FretBoard` calculado automáticamente como el número de elementos de `stringTunings`.

También se puede usar una clave moderna de tablatura.

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

La clave moderna de tablatura contempla tablaturas de 4 a 7 cuerdas.

#### Véase también

Referencia de la notación: Escritura de octava absoluta, Diagramas predefinidos de trastes, Funciones de Scheme.

Archivos instalados: ‘`ly/string-tuning-init.ly`’ ‘`scm/tablature.scm`’.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: Tab_note_heads_engraver.

#### Advertencias y problemas conocidos

Los cálculos de tablatura automáticos no funcionan bien en la mayoría de los casos para instrumentos en que la afinación de las cuerdas no varía de forma monótona con el número de cuerda, como el ukelele.

#### Marcas de diagramas de trastes

Se pueden añadir diagramas de trastes a la música como elementos de marcado sobre la nota deseada. El marcado contiene información sobre el diagrama de trastes deseado. Existen tres interfaces distintos de marcado de diagramas de trastes: standard (estándar), terse (escueto) y verbose (prolijo). Los tres interfaces producen marcados equivalentes, pero tienen cantidades variables de información en la cadena de marcado. Hay más detalles sobre la sintaxis de las distintos cadenas de marcado que se usan para definir diagramas de posiciones en Instrument Specific Markup.

La cadena de marcado de los diagramas estándar de trastes indica el número de la cuerda y el número de traste en que se coloca cada uno de los puntos sobre la cuerda. Además se pueden indicar cuerdas al aire y cuerdas mudas (que no se tocan).

>     <<
>       \context ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \context 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;"
>         }
>       }
>     >>

Las indicaciones de cejilla se pueden añadir al diagrama a partir de la cadena de marcado del diagrama de trastes.

>     <<
>       \context ChordNames {
>          \chordmode {
>            f1 g
>          }
>       }
>       \context 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;"
>         }
>       }
>     >>

El tamaño del diagrama de trastes y el número de trastes del diagrama, se puede cambiar en la cadena de marcado `fret-diagram`.

>     <<
>       \context ChordNames {
>          \chordmode {
>            f1 g
>          }
>       }
>       \context 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;"
>         }
>       }
>     >>

Se puede cambiar el número de cuerdas de un diagrama de trastes para que se adapte a distintos instrumentos como el bajo y el ukelele, con la cadena de marcado del diagrama.

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

Se pueden añadir indicaciones de digitación, y la posición de las etiquetas de los dedos se puede controlar mediante la cadena de marcado del diagrama.

>     <<
>       \context ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \context 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;"
>         }
>       }
>     >>

Se puede controlar el radio y la posición de los puntos con la cadena de marcado `fret-diagram`.

>     <<
>       \context ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \context 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;"
>         }
>       }
>     >>

La cadena de marcado de diagrama de trastes escueta, `fret-diagram-terse`, omite los números de la cuerda; el número de cuerda viene implícito por la presencia del punto y coma. Hay un punto y coma por cada cuerda del diagrama. El primer punto y coma corresponde al número de cuerda más alto, y el último punto y coma corresponde a la primera cuerda. Se pueden indicad cuerdas mudas, al aire y números de traste.

>     <<
>       \context ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \context 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;"
>         }
>       }
>     >>

Se pueden incluir números de cejilla en la cadena de marcado escueta `fret-diagram-terse`.

>     <<
>       \context ChordNames {
>         \chordmode {
>           f1 g
>         }
>       }
>       \context 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-);"
>         }
>       }
>     >>

Se pueden incluir indicaciones de digitación en la cadena de marcado escueta `fret-diagram-terse`

>     <<
>       \context ChordNames {
>         \chordmode {
>           c1 d:m
>         }
>       }
>       \context 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;"
>         }
>       }
>     >>

Otras propiedades de los diagramas de trastes se deben ajustar usando `\override` al utilizar el marcado escueto con fret-diagram-terse.

La cadena de marcado prolija `fret-diagram-verbose` está en el formato de una lista de Scheme. Cada elemento de la lista indica la colocación un elemento sobre el diagrama de trastes.

>     <<
>         \context ChordNames {
>           \chordmode {
>             c1 d:m
>           }
>         }
>       \context 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)
>           )
>         }
>       }
>     >>

Se pueden incluir digitaciones y cejillas en una cadena de marcado prolija `fret-diagram-verbose`. Es exclusiva del interfaz de fret-diagram-verbose la indicación ‘capo’ que se puede colocar sobre el diagrama de posición. La indicación de capo es una barra gruesa que cubre todas las cuerdas. El traste que tiene el capo es el más bajo del diagrama de posición.

>     <<
>         \context ChordNames {
>           \chordmode {
>             f1 g c
>           }
>         }
>       \context Staff {
>         \clef "treble_8"
>         \override Voice.TextScript
>           #'(fret-diagram-details finger-code) = #'below-string
>         <f, c f a c' f'>1^\markup {
>           \fret-diagram-verbose #'(
>             (place-fret 6 1)
>             (place-fret 5 3)
>             (place-fret 4 3)
>             (place-fret 3 2)
>             (place-fret 2 1)
>             (place-fret 1 1)
>             (barre 6 1 1)
>           )
>         }
>         <g, b, d g b g'>1^\markup {
>           \fret-diagram-verbose #'(
>             (place-fret 6 3 2)
>             (place-fret 5 2 1)
>             (open 4)
>             (open 3)
>             (open 2)
>             (place-fret 1 3 3)
>           )
>         }
>         <c e g c' e'>1^\markup {
>           \fret-diagram-verbose #'(
>             (capo 3)
>             (mute 6)
>             (place-fret 4 5 1)
>             (place-fret 3 5 2)
>             (place-fret 2 5 3)
>           )
>         }
>       }
>     >>

Todas las otras propiedades de diagrama de trastes se deben ajustar utilizando `\override` cuando se usa el marcado prolijo con fret-diagram-verbose.

El aspecto gráfico de un diagrama de trastes se puede personalizar según las preferencias del usuario a través de las propiedades del interface `fret-diagram-interface`. Los detalles están en fret-diagram-interface. Para un marcado de diagrama de trastes, las propiedades del interface pertenecen a `Voice.TextScript`.

#### Fragmentos de código seleccionados

Modificar la orientación de los trastes

Los diagramas de posiciones de acordes se pueden orientar de tres formas. De manera predeterminada se alinena la cuerda o traste superior en las distintas alineaciones.

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

Personalizar diagramas de posiciones de marcado

Se pueden establecer las propiedades de los diagramas de posiciones a través de `'fret-diagram-details`. Para los diagramas de posiciones de marcado, se pueden aplicar overrides (sobreescrituras) al objeto `Voice.TextScript` o directamente al elemento de marcado.

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

#### Véase también

Referencia de la notación: Instrument Specific Markup.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: fret-diagram-interface.

#### Diagramas predefinidos de trastes

Se pueden imprimir los diagramas de trastes usando el contexto `FretBoards`. De forma predeterminada, el contexto `FretBoards` imprime diagramas de trastes que están almacenados en una tabla de búsqueda:

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

Los diagramas de traste predefinidos están en el archivo ‘`predefined-guitar-fretboards.ly`’. Los diagramas de trastes se almacenan tomando como base las notas de un acorde y el valor de `stringTunings` que se está utilizando en cada momento. ‘`predefined-guitar-fretboards.ly`’ contiene diagramas de traste predefinidos sólo para `guitar-tuning`. Los diagramas de traste predefinidos se pueden añadir para otros instrumentos u otras afinaciones siguiendo los ejemplos que aparecen en ‘`predefined-guitar-fretboards.ly`’.

Los diagramas de posiciones para el ukelele están en el archivo ‘`predefined-ukulele-fretboards.ly`’.

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

>     myChords = \chordmode { a1 a:m a:aug }

>     \new ChordNames {
>       \myChords
>     }

>     \new FretBoards {
>       \set stringTunings = #ukulele-tuning
>       \myChords
>     }

Los diagramas de posiciones para la mandolina están contenidos en el archivo ‘`predefined-mandolin-fretboards.ly`’.

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

>     myChords = \chordmode { c1 c:m7.5- c:aug }

>     \new ChordNames {
>       \myChords
>     }

>     \new FretBoards {
>       \set stringTunings = #mandolin-tuning
>       \myChords
>     }

Las notas de los acordes se pueden introducir como música simultánea o bien usando el modo de acordes (véase Panorámica del modo de acordes).

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

Es corriente que se impriman juntos los nombres de acorde y los diagramas de traste. Esto se puede hacer poniendo un contexto de nombres de acorde `ChordNames` en paralelo con un contexto de trastes `FretBoards` y dando a los dos contextos el mismo contenido musical.

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

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

Los diagramas de traste predefinidos se pueden transportar, en la medida en que esté almacenado un diagrama para el acorde transportado, en la tabla de diagramas de traste.

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

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

La tabla de diagramas de traste predefinidos para la guitarra contiene ocho acordes (mayor, menor, aumentado, disminuido, séptima dominante, séptima mayor, menor séptima y novena domniante) para 17 tonalidades distintas. La tabla de diagramas predefinidos para el ukelele contiene estos acordes y además otros tres (sexta mayor, segunda suspendida y cuarta suspendida). Se puede ver una lista completa de los diagramas de traste predefinidos en Diagramas predefinidos de trastes. Si no hay una entrada en la tabla para un acorde, el grabador FretBoards calcula un cadena de diagrama fret-diagram usando la funcionalidad de diagramas automáticos que se describe en Diagramas de traste automáticos.

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

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

Se pueden añadir diagramas de posiciones a la tabla de diagramas de posiciones. Para añadir un diagrama debemos especificar la tabla de correspondencias para el diagrama, el acorde del diagrama, la afinación utilizada y una definición del diagrama. Normalmente la tabla de correspondencias será default-fret-table. La definición del diagrama puede ser una cadena de definición escueta fret-diagram-terse o una lista de marcados prolija 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
>     }

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

Se pueden almacenar distintos diagramas de traste para el mismo acorde usando distintas octavas para las notas. Las octavas de diferencia deben ser al menos dos por encima o por debajo de la octava predeterminada, porque las octavas inmediatas superior e inferior de la predeterminada se utilizan para los trasteros transpositores.

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

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

Además de los diagramas de traste, LilyPond almacena una lista interna de formas de acorde. Las formas de acorde son diagramas de traste que se pueden desplazar por el mástil para dar acordes distintos. Se pueden añadir formas de acorde a la lista interna y luego usarlas para definir diagramas de posición predefinidos. Dado que se pueden mover a distintas posiciones dentro del mástil, las formas de acorde normalmente no contienen cuerdas al aire. Como los diagramas de posiciones, las formas de acorde se pueden introducir como cadenas escuetas fret-diagram-terse o como listas de marcado prolijas 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''
>     }

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

El aspecto gráfico de un diagrama de traste se puede personalizar según las preferencias del usuario a través de las propiedades del interface `fret-diagram-interface`. Los detalles están en fret-diagram-interface. Para un diagrama de trastes predefinido, las propiedades de interface pertenecen a `FretBoards.FretBoard`.

#### Fragmentos de código seleccionados

Personalizar los diagramas de posiciones

Se pueden establecer las propiedades de los diagramas de posiciones de acordes por medio de `'fret-diagram-details`. Para los diagramas de posiciones de FretBoard, se aplican los overrides (sobreescrituras) al objeto `FretBoards.FretBoard`. Como `Voice`, `FretBoards` es un contexto del nivel inferior, y por tanto se puede omitir su nombre en la sobreescritura de propiedades.

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

Definición de posiciones predefinidas para otros instrumentos

Se pueden añadir diagramas de posiciones predefinidas para instrumentos nuevos además de los estándar que se usan para la guitarra. Este archivo muestra cómo se hace, definiendo una afinación nueva y unas cuantas posiciones para el cuatro venezolano.

Este archivo también muestra cómo se pueden incluir las digitaciones en los acordes que se usan como puntos de referencia para la búsqueda de acordes en la tabla, y mostrarse en el diagrama de posiciones y la tablatura `TabStaff`, pero no en la música.

Estas posiciones no se pueden transportar porque contienen información de las cuerdas. Hay planes para corregir esto en un 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 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 { }
>     }

Cambios de acorde de posiciones de trastes

Se puede hacer que los diagramas de posiciones se muestren sólo cuando el acorde cambia o al comienzo de una nueva línea.

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

>     myChords = \chordmode {
>       c1 c1 \break
>       \set chordChanges = ##t
>       c1 c1 \break
>       c1 c1 \break
>     }

>     <<
>       \new ChordNames { \myChords }
>       \new FretBoards { \myChords }
>       \new Staff { \myChords }
>     >>

Tablas alternativas de diagramas de posiciones

Se pueden crear tablas alternativas de diagramas de posiciones. Se utilizarían para tener diagramas altenativos para un acorde dado.

Para usar una tabla alternativa de diagramas de posiciones, se debe crear la tabla primero. Después se añaden los diagramas a la tabla.

La tabla de diagramas de posiciones que se crea puede estar vacía o se puede copiar a partir de una tabla existente.

La tabla a usar en la impresión de de los diagramas predefinidos se selecciona por medio de la propiedad `\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 |
>           }
>         >>
>       }
>     >>

#### Véase también

Referencia de la notación: Tablaturas personalizadas, Diagramas de traste automáticos, Panorámica del modo de acordes, Diagramas predefinidos de trastes.

Archivos de inicio: ‘`ly/predefined-guitar-fretboards.ly`’, ‘`ly/predefined-guitar-ninth-fretboards.ly`’, ‘`ly/predefined-ukulele-fretboards.ly`’, ‘`ly/predefined-mandolin-fretboards.ly`’.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: fret-diagram-interface.

#### Diagramas de traste automáticos

Se pueden crear diagramas de traste automáticamente a partir de las notas introducidas usando el contexto `FretBoards`. Si no está disponible ningún diagrama predefinido para las notas introducidas en la afinación `stringTunings` activa, este contexto calcula las cuerdas y los trastes que se pueden usar para tocar las notas.

>     <<
>       \context ChordNames {
>         \chordmode {
>           f1 g
>         }
>       }
>       \context FretBoards {
>         <f, c f a c' f'>1
>         <g,\6 b, d g b g'>1
>       }
>       \context Staff {
>         \clef "treble_8"
>         <f, c f a c' f'>1
>         <g, b, d g b' g'>1
>       }
>     >>

Puesto que de forma predeterminada no se carga ningún diagrama predefinido, el comportamiento predeterminado es el cálculo automático de los diagramas de traste. Una vez que los diagramas predeterminados se han cargado, se puede habilitar e inhabilitar el cálculo automático con instrucciones predefinidas:

>     \storePredefinedDiagram #default-fret-table
>                             <c e g c' e'>
>                             #guitar-tuning
>                             #"x;3-1-(;5-2;5-3;5-4;3-1-1-);"
>     <<
>       \context ChordNames {
>         \chordmode {
>           c1 c c
>         }
>       }
>       \context FretBoards {
>         <c e g c' e'>1
>         \predefinedFretboardsOff
>         <c e g c' e'>1
>         \predefinedFretboardsOn
>         <c e g c' e'>1
>       }
>       \context Staff {
>         \clef "treble_8"
>         <c e g c' e'>1
>         <c e g c' e'>1
>         <c e g c' e'>1
>       }
>     >>

A veces el calculador de trastes es incapaz de encontrar un diagrama aceptable. Esto se puede remediar generalmente mediante la asignación manual de una nota a una cuerda. En muchos casos sólo hay que colocar manualmente una nota sobre una cuerda; el resto de las notas se situará en el lugar adecuado por parte del contexto `FretBoards`.

Se pueden añadir digitaciones a los diagramas de traste del contexto FretBoard.

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

El traste mínimo que usar en el cálculo de cuerdas y trastes para el contexto FretBoard se puede fijar con la propiedad `minimumFret`.

>     <<
>       \context ChordNames {
>         \chordmode {
>           d1:m d:m
>         }
>       }
>       \context FretBoards {
>         <d a d' f'>1
>         \set FretBoards.minimumFret = #5
>         <d a d' f'>1
>       }
>       \context Staff {
>         \clef "treble_8"
>         <d a d' f'>1
>         <d a d' f'>1
>       }
>     >>

Las cuerdas y los trastes para el contexto `FretBoards` dependen de la propiedad `stringTunings`, que tiene el mismo significado que en el contexto de tablatura TabStaff. Consulte Tablaturas personalizadas para ver más información sobre la propiedad `stringTunings`.

El aspecto gráfico de un diagrama de trastes se puede personalizar de acuerdo a las preferencias del usuario a través de las propiedades del interface `fret-diagram-interface`. Los detalles están en fret-diagram-interface. Para un diagrama de `FretBoards`, las propiedades del interface pertenecen a `FretBoards.FretBoard`.

#### Instrucciones predefinidas

`\predefinedFretboardsOff`, `\predefinedFretboardsOn`.

#### Véase también

Referencia de la notación: Tablaturas personalizadas.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: fret-diagram-interface.

#### Advertencias y problemas conocidos

Los cálculos de tablatura automáticos no funcionan bien para instrumentos con afinaciones no monótonas.

#### Digitaciones de la mano derecha

Las digitaciones de la mano derecha p-i-m-a se deben introducir dentro de una construcción de acorde `<>` para que se impriman en la partitura, incluso si se aplican a una nota suelta.

Nota: Debe haber un guión antes de `\rightHandFinger` y un espacio antes del ángulo de cierre `>`.

>     \clef "treble_8"
>     <c-\rightHandFinger #1 >4
>     <e-\rightHandFinger #2 >
>     <g-\rightHandFinger #3 >
>     <c-\rightHandFinger #4 >
>     <c,-\rightHandFinger #1 e-\rightHandFinger #2
>      g-\rightHandFinger #3 c-\rightHandFinger #4 >1

Por brevedad, se puede escribir `\rightHandFinger` como algo más corto, como por ejemplo `RH`:

>     #(define RH rightHandFinger)

#### Fragmentos de código seleccionados

Posicionamiento de digitaciones de mano derecha

Es posible ejercer un mayor control sobre la colocación de las digitaciones de la mano derecha estableciendo el valor de una propiedad específica, como se muestra en el ejemplo siguiente. Nota: se debe usar una construcción de acorde.

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

Digitaciones - indicación del número de cuerda y digitaciones de mano derecha

En este ejemplo se combinan las digitaciones de la mano izquierda, indicaciones del número de cuerda y digitaciones de la mano derecha.

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

#### Véase también

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: StrokeFinger.

Otros idiomas: English, deutsch, français, 日本語.

#### LilyPond — Referencia de la notación