1.2.5 Compases


Barras de compás

Las líneas divisorias delimitan a los compases pero también se pueden usar para indicar las repeticiones. Normalmente, las líneas divisorias normales se insertan de manera automática en la salida impresa en lugares que están basados en el compás actual.

Las barras de compás sencillas insertadas automáticamente se pueden cambiar por otros tipos con la instrucción \bar. Por ejemplo, se suele poner una doble barra de cierre al final de la pieza:

\relative { e'4 d c2 \bar "|." }

[image of music]

No deja de ser válida la última nota de un compás si no termina sobre la línea divisoria automática: se supone que la nota se prolonga sobre el compás siguiente. Pero una secuencia larga de dichos compases prolongados puede hacer que la música aparezca comprimida o incluso que se salga de la página. Esto es a causa de que los saltos de línea automáticos solamente se producen al final de compases completos, es decir, cuando todas las notas han finalizado antes de que el compás termine.

Nota: Una duración incorrecta puede hacer que se trate de evitar la producción de saltos de línea, dando como resultado una línea de música con una compresión exagerada o música que se sale de la página.

También se permiten saltos de línea en las barras insertadas manualmente incluso dentro de compases incompletos. Para permitir un salto de línea donde no hay ninguna línea divisoria visible, utilice lo siguiente:

\bar ""

De esta manera se insertará una barra invisible de compás y se hará posible el salto de línea en este punto, sin forzarlo. No se incrementa el contador de los números de compás. Para forzar un salto de línea, consulte Saltos de línea.

Esta y otras líneas divisorias especiales se pueden insertar manualmente en cualquier punto. Cuando coinciden con el final de un compás, sustituyen a la línea divisoria simple que se habría insertado automáticamente en dicho lugar. Cuando no coinciden con el final de un compás, se inserta la línea especificada en ese punto en la salida impresa.

Observe que las líneas divisorias manuales son puramente visuales. No afectan a ninguna de las propiedades que una barra normal afectaría, como a los números de compás, alteraciones, saltos de línea, etc. No afectan tampoco al cálculo y colocación de las líneas divisorias subsiguientes. Cuando una divisoria se coloca manualmente donde ya existe una divisoria normal, los efectos de la línea original no se alteran.

Están disponibles para su inserción manual dos tipos de líneas divisorias simples y cinco tipos de doble barra:

\relative {
  f'1 \bar "|"
  f1 \bar "."
  g1 \bar "||"
  a1 \bar ".|"
  b1 \bar ".."
  c1 \bar "|.|"
  d1 \bar "|."
  e1
}

[image of music]

así como la barra de puntos y la discontinua:

\relative {
  f'1 \bar ";"
  g1 \bar "!"
  a1
}

[image of music]

y nueve tipos de barra de repetición:

\relative {
  f'1 \bar ".|:"
  g1 \bar ":..:"
  a1 \bar ":|.|:"
  b1 \bar ":|.:"
  c1 \bar ":.|.:"
  d1 \bar "[|:"
  e1 \bar ":|][|:"
  f1 \bar ":|]"
  g1 \bar ":|."
  a1
}

[image of music]

Además se puede imprimir una línea divisoria como una marca corta:

f'1 \bar "'" g'1

[image of music]

Sin embargo, dado que las mencionadas marcas se utilizan usualmente en el canto gregoriano, es preferible en este caso utilizar \divisioMinima, que se describe en la sección Divisiones dentro de Canto gregoriano.

LilyPond contempla la notación del canto kievano y ofrece una línea divisoria especial kievana:

f'1 \bar "k"

[image of music]

Pueden verse más detalles de esta notación explicados en Tipografiado del canto kievano en notación cuadrada.

Para los símbolos de segno en línea, existen tres tipos de barras de compás que se diferencian en su comportamiento en los saltos de línea:

\fixed c' {
  c4 4 4 4
  \bar "S"
  d4 4 4 4 \break
  \bar "S"
  e4 4 4 4
  \bar "S-|"
  f4 4 4 4 \break
  \bar "S-|"
  g4 4 4 4
  \bar "S-||"
  a4 4 4 4 \break
  \bar "S-||"
  b4 4 4 4
  \bar "S-S"
  c'4 4 4 4 \break
  \bar "S-S"
  d'1
}

[image of music]

Aunque se pueden insertar manualmente barras de compás con significado de repeticiones, no se reconocen como repeticiones por parte de LilyPond. Las secciones repetidas se introducen mejor utilizando las diversas instrucciones de repetición (véase Repeticiones), que imprimen automáticamente las barras correspondientes.

Además se puede especificar ".|:-||", que equivale a ".|:" excepto en los saltos de línea, en que produce una doble barra al final de la línea y una repetición izquierda (de comienzo) al principio de la línea siguiente.

\fixed c' {
  c4 4 4 4
  \bar ".|:"
  d4 4 4 4 \break
  \bar ".|:"
  e4 4 4 4
  \bar ".|:-|"
  f4 4 4 4 \break
  \bar ".|:-|"
  g4 4 4 4
  \bar ".|:-||"
  a4 4 4 4 \break
  \bar ".|:-||"
  b4 4 4 4
  \bar ".|:-|."
  c'4 4 4 4 \break
  \bar ".|:-|."
  d'4 4 4 4
}

[image of music]

Para combinaciones de repeticiones con el símbolo de segno, existen seis variantes diferentes:

\fixed c' {
  g,4 4 4 4
  \bar ":|.S"
  a,4 4 4 4 \break
  \bar ":|.S"
  b,4 4 4 4
  \bar ":|.S-S"
  c4 4 4 4 \break
  \bar ":|.S-S"
  d4 4 4 4
  \bar "S.|:-S"
  e4 4 4 4 \break
  \bar "S.|:-S"
  f4 4 4 4
  \bar "S.|:"
  g4 4 4 4 \break
  \bar "S.|:"
  a4 4 4 4
  \bar "S.|:-|"
  b4 4 4 4 \break
  \bar "S.|:-|"
  c'4 4 4 4
  \bar "S.|:-||"
  d'4 4 4 4 \break
  \bar "S.|:-||"
  e'4 4 4 4
  \bar ":|.S.|:"
  f'4 4 4 4 \break
  \bar ":|.S.|:"
  g'4 4 4 4
  \bar ":|.S.|:-S"
  a'4 4 4 4 \break
  \bar ":|.S.|:-S"
  b'1
}

[image of music]

Además, existe una instrucción \inStaffSegno que crea una barra de compás con símbolo de segno, situada en conjunción con una línea de repetición adecuada si se utiliza con una instrucción \repeat volta, véase Repeticiones normales.

Se pueden definir tipos nuevos de líneas divisorias con \defineBarLine:

\defineBarLine tipo_de_barra #'(final comienzo extensión)

Además de bartype (la cadena de caracteres que se usará después para referirnos a la nueva línea divisoria), admite tres valores: los dos primeros determinan la apariencia de la línea divisoria cuando se produce en el salto de línea, en cuyo caso los glifos dados primero y segundo se imprimen respectivamente al final del sistema y al principio del siguiente. El tercer glifo proporcionado solamente es de relevancia en sistemas de más de un pentagrama (véase Agrupar pentagramas), donde se usa como una barra de extensión, que se imprime entre los pentagramas.

Las variables de \defineBarLine pueden incluir la cadena de caracteres ‘vacía’ "", que equivale a imprimir una línea divisoria invisible. También se puede establecer al valor falso #f que no imprime línea divisoria alguna.

Después de la definición, la nueva línea divisoria se puede utilizar mediante \bar tipo_de_barra.

Actualmente están disponibles diez elementos de barra de compás:

\defineBarLine ":" #'("" ":" "")
\defineBarLine "=" #'("=" "" "")
\defineBarLine "[" #'("" "[" "")
\defineBarLine "]" #'("]" "" "")

\new Staff {
  s1 \bar "|"
  s1 \bar "."
  s1 \bar "!"
  s1 \bar ";"
  s1 \bar ":"
  s1 \bar "k"
  s1 \bar "S"
  s1 \bar "="
  s1 \bar "["
  s1 \bar "]"
  s1 \bar ""
}

[image of music]

La línea divisoria "=" proporciona la barra de doble extensión, usada en combinación con el símbolo de segno. No se recomienda usarla como una doble línea divisoria fina aislada; para ello es casi siempre preferible \bar "||".

El signo "-" inicia anotaciones a las barras de compás, que son útiles para distinguir entre aquellas que tienen idéntica apariencia pero distinto comportamiento en los saltos de línea y/o diferentes barras de extensión. La parque que sigue al signo "-" no se usa para construir la barra de compás.

\defineBarLine "||-dashedSpan" #'("||" "" "!!")

\new StaffGroup <<
  \new Staff \relative c'' {
    c1 \bar "||"
    c1 \bar "||-dashedSpan"
    c1
  }
  \new Staff \relative c'' {
    c1
    c1
    c1
  }
>>

[image of music]

Además, el carácter del espacio en blanco " " sirve como contenedor para definir barras de extensión correctamente alineadas a las barras principales:

\defineBarLine ":|.-wrong" #'(":|." "" "|.")
\defineBarLine ":|.-right" #'(":|." "" " |.")

\new StaffGroup <<
  \new Staff \relative c'' {
    c1 \bar ":|.-wrong"
    c1 \bar ":|.-right"
    c1
  }
  \new Staff \relative c'' {
    c1
    c1
    c1
  }
>>

[image of music]

Los nuevos tipos de línea divisoria definidos mediante el uso de \defineBarLine pueden, a su vez, utilizarse dentro de una segunda definición de línea divisoria. Tales definiciones ‘anidadas’ hacen posible usar glifos personalizados en lugares en los que no sería posible hacerlo de otra forma, como en el extremo final de los sistemas:

\defineBarLine "||-dashEverywhere" #'("!!" "!!" "!!")
\defineBarLine "||-advancedDashSpan" #'("||-dashEverywhere" "" "!!")

\new StaffGroup <<
  \new Staff \relative c'' {
    c1 \bar "||"
    c1 \bar "||-advancedDashSpan"
    c1 \bar "||-advancedDashSpan"
  }
  \new Staff \relative c'' {
    c1
    c1
    c1
  }
>>

[image of music]

Si se necesitan elementos adicionales, LilyPond provee una forma sencilla de definirlos. Para ver más información sobre cómo modificar o añadir barras de compás, consulte el archivo ‘scm/bar-line.scm’.

En las partituras con muchos pentagramas, una instrucción \bar en uno de ellos se aplica automáticamente a todos los demás. Las líneas resultantes se conectan entre los distintos pentagramas de un StaffGroup, PianoStaff o GrandStaff.

<<
  \new StaffGroup <<
    \new Staff \relative {
      e'4 d
      \bar "||"
      f4 e
    }
    \new Staff \relative { \clef bass c'4 g e g }
  >>
  \new Staff \relative { \clef bass c'2 c2 }
>>

[image of music]

La instrucción ‘\bar tipo de barra’ es una forma corta de hacer ‘\set Timing.whichBar = tipo de barra’. Cuando whichBar se establece con el valor de una cadena, se crea una línea divisoria de ese tipo.

El tipo de barra predeterminado que se usa para las líneas divisorias insertadas automáticamente es "|". Se puede cambiar en cualquier momento con ‘\set Timing.measureBarType = tipo de barra’.

Véase también

Referencia de la notación: Saltos de línea, Repeticiones, Agrupar pentagramas.

Archivos instalados: ‘scm/bar-line.scm’.

Fragmentos de código: Rhythms.

Referencia de funcionamiento interno: BarLine (creada al nivel de Staff (pentagrama)), SpanBar (a través de los pentagramas), Timing_translator (para las propiedades del contador de tiempo Timing).


Numeración de compases

Por defecto, los números de compás se imprimen al principio de la línea, excepto la primera. El número propiamente dicho se almacena en la propiedad currentBarNumber, que normalmente se actualiza automáticamente para cada compás. También se puede establecer manualmente:

\relative c' {
  c1 c c c
  \break
  \set Score.currentBarNumber = #50
  c1 c c c
}

[image of music]

Los números de compás se pueden tipografiar a intervalos regulares en vez de al principio de cada línea. Para hacerlo se debe sobreescribir el comportamiento predeterminado de forma que se puedan imprimir en otros lugares. Esto viene controlado por la propiedad break-visibility de BarNumber. Toma tres valores que se pueden fijar al valor #t o #f para especificar si el número de compás correspondiente es visible o no. El orden de los tres valores es visible al final de la línea, visible en mitad de la línea, visible al principio de la línea. En el ejemplo siguiente se imprimen los números de compás en todos los sitios posibles:

\relative c' {
  \override Score.BarNumber.break-visibility = ##(#t #t #t)
  \set Score.currentBarNumber = #11
  % Permit first bar number to be printed
  \bar ""
  c1 | c | c | c |
  \break
  c1 | c | c | c |
}

[image of music]

Fragmentos de código seleccionados

Imprimir el número de compás en el primer compás

De forma predeterminada se suprime el número del primer compás de una partitura si es menor o igual a ‘1’. Al establecer el valor de barNumberVisibility a all-bar-numbers-visible, se puede imprimir cualquier número de compás para el primer compás y todos los siguientes. Observe que, para que esto funcione, se debe insertar una líinea divisoria vacía antes de la primera nota.

\layout {
  indent = 0
  ragged-right = ##t
}

\relative c' {
  \set Score.barNumberVisibility = #all-bar-numbers-visible
  c1 | d | e | f \break
  g1 | e | d | c
}

[image of music]

Imprimir números de compás a intervalos regulares

Se pueden imprimir los números de compás a intervalos regulares mediante el establecimiento de la propiedad barNumberVisibility. Aquí los números de compás se imprimen a cada dos compases excepto al final de la línea.

\relative c' {
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \set Score.currentBarNumber = #11
  % Print a bar number every second measure
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
  c1 | c | c | c | c
  \break
  c1 | c | c | c | c
}

[image of music]

Printing bar numbers with changing regular intervals

Using the set-bar-number-visibility context function, bar number intervals can be changed.

\relative c' {
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \context Score \applyContext #(set-bar-number-visibility 4)
  \repeat unfold 10 c'1
  \context Score \applyContext #(set-bar-number-visibility 2)
  \repeat unfold 10 c
}

[image of music]

Imprimir números de compás dentro de rectángulos o circunferencias

Los números de compás también se pueden imprimir dentro de rectángulos o de circunferencias.

\relative c' {
  % Prevent bar numbers at the end of a line and permit them elsewhere
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)

  % Increase the size of the bar number by 2
  \override Score.BarNumber.font-size = #2

  % Draw a box round the following bar number(s)
  \override Score.BarNumber.stencil
    = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
  \repeat unfold 5 { c1 }

  % Draw a circle round the following bar number(s)
  \override Score.BarNumber.stencil
    = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
  \repeat unfold 4 { c1 } \bar "|."
}

[image of music]

Numeración de compases alternativa

Se pueden seleccionar dos métodos alternativos para la numeración de compases, especiales para cuando hay repeticiones.

\relative c'{
  \set Score.alternativeNumberingStyle = #'numbers
  \repeat volta 3 { c4 d e f | }
    \alternative {
      { c4 d e f | c2 d \break }
      { f4 g a b | f4 g a b | f2 a | \break }
      { c4 d e f | c2 d }
    }
  c1 \break
  \set Score.alternativeNumberingStyle = #'numbers-with-letters
  \repeat volta 3 { c,4 d e f | }
    \alternative {
      { c4 d e f | c2 d \break }
      { f4 g a b | f4 g a b | f2 a | \break }
      { c4 d e f | c2 d }
    }
  c1
}

[image of music]

Alineación de los números de compás

Los números de compás se alinean de forma predeterminada por la derecha con su objeto padre. Éste es por lo general el borde izquierdo de una línea o, si los números se imprimen dentro de la línea, el lado izquierdo de una línea divisoria. Los números también se pueden situar directamente sobre la barra de compás o alineados por la izquierda con ella.

\relative c' {
  \set Score.currentBarNumber = #111
  \override Score.BarNumber.break-visibility = #all-visible
  % Increase the size of the bar number by 2
  \override Score.BarNumber.font-size = #2
  % Print a bar number every second measure
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
  c1 | c1
  % Center-align bar numbers
  \override Score.BarNumber.self-alignment-X = #CENTER
  c1 | c1
  % Left-align bar numbers
  \override Score.BarNumber.self-alignment-X = #LEFT
  c1 | c1
}

[image of music]

Suprimir los números de compás de toda la partitura

Se pueden eliminar completamente los números de compás quitando el grabador Bar_number_engraver del contexto de Score.

\layout {
  \context {
    \Score
    \omit BarNumber
    % or:
    %\remove "Bar_number_engraver"
  }
}

\relative c'' {
  c4 c c c \break
  c4 c c c
}

[image of music]

Véase también

Fragmentos de código: Rhythms.

Referencia de funcionamiento interno: BarNumber, Bar_number_engraver.

Advertencias y problemas conocidos

Los números de compás pueden colisionar con el corchete StaffGroup, si hay uno en la parte de arriba. Para solucionarlo, se puede usar la propiedad de relleno padding de BarNumber para colocar el número correctamente. Consulte StaffGroup y BarNumber para ver más información.


Comprobación de compás y de número de compás

Las comprobaciones de compás ayudan a detectar errores en las duraciones. Una comprobación de compás se escribe usando el símbolo de la barra vertical, |, en cualquier lugar donde se espera que caiga una línea divisoria. Si se encuentran líneas de comprobación de compás en otros lugares, se imprime una lista de advertencias en el archivo log de registro, mostrando los números de línea y columna en que han fallado las comprobaciones de compás. En el siguiente ejemplo, la segunda comprobación de compás avisará de un error.

\time 3/4 c2 e4 | g2 |

Una duración incorrecta produce una partitura completamente desbaratada, especialmente si la partitura es polifónica, de manera que la mejor forma de empezar a corregir la entrada es buscar sistemáticamente la existencia de comprobaciones de compás fallidas y duraciones incorrectas.

Si se producen varias comprobaciones de compás seguidas por valor de la misma duración musical, solo aparece el primer mensaje de advertencia. Así se consigue que el mensaje esté concentrado en la fuente del error de pulso.

Las comprobaciones de compás también se pueden insertar dentro de la letra de las canciones:

\lyricmode {
  \time 2/4
  Twin -- kle | Twin -- kle |
}

Observe que las comprobaciones de compás dentro de la letra de las canciones se evalúan en el momento musical de la sílaba siguiente a la comprobación de compas que se procesa. Si la letra está asociada con las notas de una voz que tiene un silencio al principio del compás, no se puede poner ninguna sílaba al comienzo de ese compás y se imprimie un mensaje de advertencia si se escribe una comprobación de compás dentro de la letra, en esa posición.

También es posible redefinir la acción que se lleva a cabo cuando se encuentra una barra vertical o símbolo de comprobación de compás, |, en el código de entrada, de forma que haga algo distinto a una comprobación de compás. Se hace asignando una expresión musical a "|", el símbolo de barra vertical. En el ejemplo siguiente se establece | de forma que inserte una doble línea divisoria cuando aparece en el código de entrada, en vez de comprobar el final de un compás.

"|" = \bar "||"
{
  c'2 c' |
  c'2 c'
  c'2 | c'
  c'2 c'
}

[image of music]

Al copiar piezas musicales grandes puede servir de ayuda comprobar que el número de compás de LilyPond corresponde al original desde el que está copiando. Esto se puede comprobar con \barNumberCheck, por ejemplo:

\barNumberCheck #123

imprime una advertencia si el currentBarNumber (número del compás actual) no es el 123 en el momento de la compilación.

Véase también

Fragmentos de código: Rhythms.


Llamadas de ensayo

Para imprimir una letra de ensayo, utilice la orden \mark.

\relative c'' {
  c1 \mark \default
  c1 \mark \default
  c1 \mark \default
  c1 \mark \default
}

[image of music]

La letra de ensayo se incrementa automáticamente si usa \mark \default, pero también puede utilizar un número entero como argumento para establecer la indicación manualmente. El valor que se utilizará se almacena dentro de la propiedad rehearsalMark.

\relative c'' {
  c1 \mark \default
  c1 \mark \default
  c1 \mark #8
  c1 \mark \default
  c1 \mark \default
}

[image of music]

La letra ‘I’ se salta de acuerdo con las tradiciones de grabado. Si quiere incluir la letra ‘I’, use una de las instrucciones siguientes, según el estilo de marcas de ensayo que desee (sólo letras, letras dentro de un rectángulo o letras dentro de un círculo).

\set Score.rehearsalMarkFormatter = #format-mark-alphabet
\set Score.rehearsalMarkFormatter = #format-mark-box-alphabet
\set Score.rehearsalMarkFormatter = #format-mark-circle-alphabet
\relative c'' {
  \set Score.rehearsalMarkFormatter = #format-mark-box-alphabet
  c1 \mark \default
  c1 \mark \default
  c1 \mark #8
  c1 \mark \default
  c1 \mark \default
}

[image of music]

El estilo se define por medio de la propiedad rehearsalMarkFormatter. Es una función que toma como argumentos la marca en curso (un número entero) y el contexto actual. Debe devolver un objeto de marcado. En el ejemplo siguiente, se establece rehearsalMarkFormatter con el valor de un procedimiento enlatado. Después de algunos compases, se establece con el valor de una función que produce un número encerrado en una caja.

\relative c'' {
  \set Score.rehearsalMarkFormatter = #format-mark-numbers
  c1 \mark \default
  c1 \mark \default
  \set Score.rehearsalMarkFormatter = #format-mark-box-numbers
  c1 \mark \default
  \set Score.rehearsalMarkFormatter = #format-mark-circle-numbers
  c1 \mark \default
  \set Score.rehearsalMarkFormatter = #format-mark-circle-letters
  c1
}

[image of music]

El archivo ‘scm/translation-functions.scm’ contiene las definiciones de format-mark-letters (el formato por omisión), format-mark-box-letters, format-mark-numbers y format-mark-box-numbers. Se pueden usar éstos como inspiración para otras funciones de formateo.

Podemos utilizar format-mark-barnumbers, format-mark-box-barnumbers y format-mark-circle-barnumbers para obtener números de compás en lugar de números o letras secuenciales.

Se pueden especificar otros estilos de letra de ensayo de forma manual:

\mark "A1"

Observe que Score.rehearsalMarkFormatter no afecta a las marcas que se especifican de esta forma. Sin embargo, es posible aplicar un elemento \markup a la cadena.

\mark \markup { \box A1 }

Los glifos musicales (como el segno) se pueden imprimir dentro de un elemento \mark

\relative c' {
  c1 \mark \markup { \musicglyph "scripts.segno" }
  c1 \mark \markup { \musicglyph "scripts.coda" }
  c1 \mark \markup { \musicglyph "scripts.ufermata" }
  c1
}

[image of music]

Consulte La tipografía Emmentaler para ver una lista de los símbolos que se pueden imprimir con \musicglyph.

Para ver formas comunes de trucar la colocación de las letras de ensayo, consulte Formatear el texto. Para un control más preciso, consulte break-alignable-interface en la sección Alineación de objetos.

El archivo ‘scm/translation-functions.scm’ contiene las definiciones de format-mark-numbers y de format-mark-letters. Se pueden utilizar como inspiración para escribir otras funciones de formateo.

Véase también

Referencia de la notación: La tipografía Emmentaler, Formatear el texto, Alineación de objetos.

Archivos de inicio: ‘scm/translation-functions.scm’.

Fragmentos de código: Rhythms.

Referencia de funcionamiento interno: MarkEvent, Mark_engraver, RehearsalMark.


LilyPond — Referencia de la notación v2.23.82 (rama de desarrollo).