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 Voice \with {
    \omit StringNumber
  } {
    \clef "bass_8"
    \relative {
      c,4 d e f
    }
  }
  \new TabStaff \with {
    stringTunings = #bass-tuning
  } {
    \relative {
      c,4 d e f
    }
  }
>>

[image of music]

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-tunings-init.ly.

Es posible crear cualquier afinación de cuerdas que se desee. Se puede usar la función \stringTuning para definir una afinación de cuerdas y que puede usarse para establecerla como el valor de stringTunings para el contexto actual.

Su argumento es 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 {
    \set Staff.stringTunings = \stringTuning <c' g' d'' a''>
    \mynotes
  }
>>

[image of music]

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

El ejemplo anterior también se podría haber escrito como sigue:

custom-tuning = \stringTuning <c' g' d'' a''>

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

<<
  \new Staff {
    \clef treble
    \mynotes
  }
  \new TabStaff {
    \set TabStaff.stringTunings = #custom-tuning
    \mynotes
  }
>>

[image of music]

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

\stringTuning crea dicho objeto a partir de la entrada de acordes.

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.

Para permitir a todos los contextos TabStaff usar la misma afinación personalizada por omisión, podemos usar

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

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
}

[image of music]

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

Ua pauta de tablatura TabStaff puede contener intervalos microtonales como cuartos de tono, que se pueden reproducir mediante eventos de la rueda de cambio de tono. Es necesario fijar el valor supportNonIntegerFret = ##t dentro del contexto Score. Sin embargo, los microtonos no están contemplados en los diagramas FretBoards.

\layout {
  \context {
    \Score
    supportNonIntegerFret = ##t
  }
}

custom-tuning = \stringTuning <e, a, d ges beh eeh'>

mus = \relative {
  eeses'4
  eeseh
  ees
  eeh
  e
  eih
  eis
  eisih
  eisis
}

<<
  \new Staff << \clef "G_8" \mus >>
  \new TabStaff \with { stringTunings = \custom-tuning } \mus
>>

[image of music]

Véase también

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

Archivos instalados: ly/string-tunings-init.ly, scm/tablature.scm.

Fragmentos de código: Fretted strings.

Referencia de funcionamiento interno: Tab_note_heads_engraver, Funciones de Scheme.

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.


Referencia de la notación de GNU LilyPond v2.25.21 (rama de desarrollo).