Referència de la notació del GNU LilyPond: 1.2.5 Compassos

### 1.2.5 Compassos

#### Barres de compàs

Les línies divisòries delimiten als compassos però també es poden usar per indicar les repeticions. Normalment, les línies divisòries normals s’insereixen de manera automàtica a la sortida impresa a llocs que estan basats en el compàs actual.

Les barres de compàs senzilles inserides automàticament es poden canviar per altres tipus d’ordre `\bar`. Per exemple, se sol posar una doble barra de tancament al final de la peça:

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

No deixa de ser vàlida l’última nota d’un compàs si no acaba sobre la línia divisòria automàtica: se suposa que la nota es perllonga sobre el compàs següent. Però una seqüència llarga de aquests compassos perllongats pot fer que la música aparegui comprimida o fins i tot que se surti de la pàgina. Això és a causa de què els salts de línia automàtics solament es produeixen al final de compassos complets, és a dir, quan totes les notes han finalitzat abans que el compàs acabi.

Nota: Una duració incorrecta pot fer que s’intenti evitar la producció de salts de línia, donant com a resultat una línia de música amb una compressió exagerada o música que se surt de la pàgina.

També es permeten salts de línia en les barres inserides manualment fins i tot dins de compassos incomplets. Per permetre un salt de línia on no hi ha cap línia divisòria visible. Utilitzeu el següent:

>     \bar ""

D’aquesta manera s’inserira una barra invisible de compàs i es farà possible el salt de línia a aquest punt, sense forçar-lo. No s’incrementa el comptador dels números de compàs. Per forçar un salt de línia, consulteu Salts de línia.

Aquesta i altres línies divisòries especials es poden inserir manualment en qualsevol punt. Quan coincideixen amb el final d’un compàs, substitueixen a la línia divisòria simple que s’hauria inserit automàticament en aquest lloc. Quan no coincideixen amb el final d’un compàs, s’insereix la línia especificada en aquest punt de la sortida impresa.

Observeu que les línies divisòries manuals són purament visuals. No afecten a cap de les propietats que una barra normal afectaria, com als números de compàs, alteracions, salts de línia, etc. No afecten tampoc el càlcul i col·locació de les línies divisòries subsegüents. Quan una divisòria es col·loca manualment on ja hi ha una divisòria normal, els efectes de la línia original no s’alteren.

Estan disponibles per a la seva inserció manual dos tipus de línies divisòries simples i cinc tipus de doble barra:

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

així com la barra de punts i la discontínua:

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

i nou tipus de barres de repetició:

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

A més es pot imprimir una línia divisòria com una marca curta:

>     f'1 \bar "'" g'1

Malgrat això, donat que les mencionades marques s’utilitzen usualment al cant gregorià, és preferible en aquest cas utilitzar `\divisioMinima`, que es descriu en la secció Divisiones dins de cant gregorià:

El LilyPond contempla la notació del cant kievà i ofereix una línia divisòria especial kievana:

>     f'1 \bar "k"

Poden veure’s detalls d’aquest notació explicats a Gravat del cant kievà en notació quadrada.

Per als símbols de segno en línia, hi ha tres tipus de barres de compàs que es diferencien en el seu comportament respecte als salts de línia:

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

Tot i que es poden inserir manualment barres de compàs amb significat de repeticions, no es reconeixen com repeticions per part del LilyPond. Les seccions repetides s’introdueixen millor utilitzant les diverses ordres de repetició (vegeu Repeticions), que imprimeixen automàticament les barres corresponents.

A més es pot especificar `".|:-||"`, que equival a `".|:"` excepte al salts de línia, en el qual es produeix una doble barra al final de la línia i una repetició esquerra (de començament) al principio de la línia següent.

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

Per a combinacions de repeticions amb el símbol de segno, hi ha sis variants diferents:

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

A més, hi ha una ordre `\inStaffSegno` que crea una barra de compàs amb símbol de segno, situada en conjunció amb una línia de repetició adequada si s’utilitza amb una ordre `\repeat volta`, vegeu Repeticions normals.

Es poden definir tipus nous de línies divisòries amb `\defineBarLine`:

>     \defineBarLine tipus_de_barra #'(final començament extensió)

Les variables de `\defineBarline` poden incloure la cadena de caràcters ‘buida’ `""`, que equival a imprimir una línia divisòria invisible. També es pot establir al valor fals`#f` que no imprimeix cap línia divisòria.

Després de la definició, la nova línia divisòria es pot utilitzar mitjançant `\bar` tipus_de_barra.

Actualment hi ha disponibles deu elements 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 ""
>     }

La línia divisòria `"="` proporciona la barra de doble extensió, usada en combinació amb el símbol de segno. No l’heu d’usar com una doble línia divisòria fina aïllada; per això es preferible `\bar` "||".

El signe `"-"` inicia anotacions a les barres de compàs, que són útils per distingir entre aquelles que tenen idèntica aparença però diferent comportament als salts de línia i/o diferents barres d’extensió. La part que segueix al signe `"-"` no s’usa per 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
>       }
>     >>

A més, el caràcter de l’espai en blanc `" "` serveix com a contenidor per definir barres d’extensió correctament alineats a les barres principals:

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

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

Si calen elements addicionals, el LilyPond proveeix una forma senzilla de definir-los. Per veure més informació sobre com modificar o afegir barres de compàs, consulteu el fitxer ‘`scm/bar-line.scm`’.

En les partitures amb molts pentagrames, una ordre`\bar` a un d’ells s’aplica automàticament a tots els altres. Les línies resultants es connecten entre els diferents pentagrames d’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 }
>     >>

L’ordre ‘`\bar tipus de barra`’ és forma curta de fer ‘`\set Timing.whichBar = tipo de barra`’. Quan s’estableix `whichBar` amb el valor d’una cadena de caràcters, es crea una línia divisòria d’aquest tipus.

El tipus de barra predeterminat que s’usa per a les línies divisòries inserides automàticament és `"|"`. Es pot canviar en qualsevol moment amb ‘`\set Timing.measureBarType = tipus de barra`’.

#### Vegeu també

Referència de la notació: Salts de línia, Repeticions, Agrupament de pentagrames.

Fitxers instal·lats: ‘`scm/bar-line.scm`’.

Fragments de codi: Rhythms.

Referència de funcionament interno: BarLine (creada al nivell de `Staff` (pentagrama)), SpanBar (a través dels pentagrames), Timing_translator (per a les propietats del comptador de temps Timing).

#### Numeració de compassos

Per defecte, els números de compàs s’imprimeixen al principi de la línia, excepte la primera. El número pròpiament dit s’emmagatzema a la propietat `currentBarNumber`, que normalment s’actualitza automàticament per a cada compàs. També es pot establir manualment:

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

Els números de compàs es poden gravar a intervals regulars en comptes de al principi de cada línia. Per fer-lo, s’ha de sobreescriure el comportament predeterminat de forma que es puguin imprimir en altres llocs. Això ve controlat per la propietat `break-visibility` de `BarNumber`. Agafa tres valors que es poden establir al valor `#t` o `#f` per especificar si el número de compàs corresponent és visible o no. L’ordre dels tres valors és `visible al final de la línia`, `visible a la meitat de la línia`, o `visible al principi de la línia`. A l’exemple següent s’imprimeixen els números de compàs en tots els llocs possibles:

>     \relative c' {
>       \override Score.BarNumber.break-visibility = ##(#t #t #t)
>       \set Score.currentBarNumber = #11
>       % Permet que s'imprimeixi el número del primer compàs
>       \bar ""
>       c1 | c | c | c |
>       \break
>       c1 | c | c | c |
>     }

#### Fragments de codi seleccionats

#### Impressió del nombre de compàs al primer compàs

De forma predeterminada se suprimeix el nombre de compàs del primer compàs d’una partitura si és més petit o igual a ‘1’. En establir el valor de `barNumberVisibility` a `all-bar-numbers-visible`, es pot imprimir qualsevol nombre de compàs per al primer compàs i tots els següents. Observeu que, perquè això funcioni, s’ha d’inserir una línia divisòria buida abans 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
>     }

#### Imprimir números de compàs a intervals regulars

Es poden imprimir els nombre de compàs a intervals regulars mitjançant l’establiment de la propietat `barNumberVisibility`. Aquí els números de compàs s’imprimeixen cada dos compassos excepte al final de la línia.

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

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

#### Impressió de nombre de compàs dins de rectangles o circumferències

Els nombres de compàs també es poden imprimir dins de rectangles o de circumferències.

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

#### Numeració de compassos alternativa

Es poden seleccionar dos mètodes alternatius per a la numeració de compassos, especials quan hi ha repeticions.

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

#### Alineació dels números de compàs

Els números de compàs s’alineen de forma predeterminada per la dreta amb el seu objecte pare. Aquest objecte és pel general la vora esquerra, d’una línia o, si els números s’imprimeixen dins de la línia, la vora esquerra d’una línia divisòria. Els números també es poden situar directament sobre la barra de compàs o alineats per l’esquerra amb 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
>     }

#### Supressió dels nombres de compàs de tota la partitura

Es poden eliminar completament els nombres de compàs traient el gravador `Bar_number_engraver` del context de `Score`.

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

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

#### Vegeu també

Fragments de codi: Rhythms.

Referència de funcionament intern: BarNumber, Bar_number_engraver.

#### Advertiments i problemes coneguts

Els números de compàs poden col·lisionar amb la clau `StaffGroup`, si hi ha un a la part de dalt. Per solucionar-lo es pot usar la propietat de farciment `padding` de `BarNumber` per col·locar el número correctament. Consulteu StaffGroup i BarNumber para veure més informació.

#### Comprovació de compàs i de número de compàs

Les comprovacions de compàs ajuden a detectar errors a les duracions. Una comprovació de compàs s’escriu usant el símbol de la barra vertical, `|`, a qualsevol lloc on s’espera que caigui una línia divisòria. Si es troben línies de comprovació de compàs a altres llocs, s’imprimeix una llista d’advertiments al fitxer log de registre, mostrant els números de línia i columna en el qual han fallat les comprovacions de compàs. Al següent exemple, la segona comprovació de compàs avisarà d’un error.

>     \time 3/4 c2 e4 | g2 |

Una duració incorrecte produeix una partitura completament desbaratada, especialment si la partitura es polifònica, de manera que la millor manera de començar a corregir l’entrada és buscar sistemàticament l’existència de comprovacions de compàs fallides i duracions incorrectes.

Si es produeixen diverses comprovacions de compàs seguides per valor de la mateixa duració musical, sols apareix el primer missatge d’advertiment. Així s’aconsegueix que el missatge estigui concentrat a la font d’error de la pulsació.

Les comprovacions de compàs també es poden inserir dins de la lletra de les cançons:

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

Observeu que les comprovacions de compàs dins de la lletra de les cançons s’avaluen al moment musical de la síl·laba següent a la comprovació de compàs que es processa. Si la lletra està associada amb les notes d’una veu que té un silenci al principi del compàs, no es pot posar cap síl·laba al comen ament d’aquest compàs i s’imprimeix un missatge d’advertiment si s’escriu una comprovació de compàs dins de la lletra, en aquesta posició.

També és possible redefinir l’acció que es fa quan es troba una barra vertical o símbol de comprovació de compàs, `|`, al codi d’entrada, de forma que faci quelcom diferent a una comprovació de compàs. Es fa assignant una expressió musical a `"|"`, el símbol de barra vertical. A l’exemple següent s’estableix `|` de forma que insereixi una doble línia divisòria quan apareix al codi d’entrada, en comptes de comprovar el final d’un compàs.

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

En copiar peces musicals grans pot servir d’ajuda comprovar que el número de compàs del LilyPond correspongui a l’original des del qual s’està copiant. Això es pot comprovar amb `\barNumberCheck`, por exemple:

    \barNumberCheck #123

imprimeix un advertiment si el `currentBarNumber` (número del compàs actual) no és el 123 en el moment de la compilació.

#### Vegeu també

Fragments de codi: Rhythms.

#### Marques d’assaig

Per imprimir una lletra d’assaig, utilitzeu l’ordre `\mark`.

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

La lletra d’assaig s’incrementa automàticament si useu `\mark \default`, però també podeu utilitzar un número enter com argument per establir la indicació manualment. El valor que s’utilitzarà s’emmagatzema dins de la propietat `rehearsalMark`.

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

La lletra ‘I’ se salta d’acord amb les tradicions de gravat. Si voleu incloure la la lletra ‘I’, useu una de les ordres següents, segons l’estil de marques d’assaig que desitgeu (sols lletres, lletres dins d’un rectangle o lletres dins d’un cercle).

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

L’estil es defineix per mitjà de la propietat `rehearsalMarkFormatter`. És una funció que agafa com arguments la marca en curs (un nombre enter) i el context actual. Ha de tornar un objecte de marcatge. A l’exemple següent, s’estableix `rehearsalMarkFormatter` amb el valor d’un procediment predefinit. Després d’alguns compassos s’estableix amb un valor d’una funció que produeix un número tancat a una capsa.

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

El fitxer ‘`scm/translation-functions.scm`’ conté les definicions de `format-mark-numbers` (el format per omissió), `format-mark-box-numbers`, `format-mark-letters` i `format-mark-box-letters`. Es poden usar aquestes definicions com a inspiració per a d’altres funcions de format.

Podem fer servir `format-mark-barnumbers`, `format-mark-box-barnumbers` i `format-mark-circle-barnumbers` per obtenir números de compas en lloc de números de lletres seqüencials.

Es poden especificar altres estils de lletra d’assaig de forma manual:

>     \mark "A1"

Observeu que `Score.rehearsalMarkFormatter` no afecta a las marque que s’especifiquen de aquest forma. Malgrat això, és possible aplicar un element `\markup` a la cadena.

>     \mark \markup{ \box A1 }

Els glifs musicals (como ara el segno) es poden imprimir dins d’un element `\mark`

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

Consulteu El tipus de lletra Emmentaler per veure una llista dels símbols que es poden imprimir amb `\musicglyph`.

Per veure formes comuns d’ajustar la col·locació de les lletres d’assaig, consulteu Donar format al text. Per a un control més precís, consulteu `break-alignable-interface` a la secció Alineació d’objectes.

El fitxer ‘`scm/translation-functions.scm`’ conté les definicions de `format-mark-numbers` i de `format-mark-letters`. Es poden utilitzar com a inspiració per escriure altres funcions per donar format.

#### Vegeu també

Referència de la notació: El tipus de lletra Emmentaler, Donar format al text, Alineació d’objectes.

Fitxers d’inici: ‘`scm/translation-functions.scm`’.

Fragments de codi: Rhythms.

Referència de funcionament intern: MarkEvent, Mark_engraver, RehearsalMark.

#### LilyPond — Referència de la notació v2.24.4 (branca estable).