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