Barres de mesure

Les barres de mesure délimitent les mesures ou sections, mais peuvent aussi indiquer une reprise. En principe, de simples barres sont insérées automatiquement en respectant la métrique en vigueur. Diverses commandes permettent l’insertion automatique de différents types de barre selon l’effet attendu – see Barres de mesure automatiques.

Il est possible de forcer l’impression d’une barre de mesure spécifique à l’aide de commande \bar :

\relative { e'4 d c2 \bar "!" }

[image of music]

Rien ne s’oppose à ce que la dernière note d’une mesure ne s’arrête avant la barre de mesure ; on considère simplement qu’elle se prolonge sur la mesure suivante. Des débordements à répétition finissent par générer une musique comprimée ou qui sort de la page, pour la simple et bonne raison que les sauts de ligne automatiques ne peuvent intervenir qu’à la fin d’une mesure complète, autrement dit lorsque toutes les notes sont terminées avant la fin de la mesure.

Note : Une durée erronée peut empêcher les sauts de ligne, ce qui conduit à une musique compressée, voire à un débordement de la page.

Les sauts de ligne sont aussi possibles lorsqu’est inséré manuellement une barre de mesure, même si cette mesure est incomplète. L’utilisation de la commande \allowBreak permet de passer à la ligne suivante sans pour autant imprimer de barre de mesure – see Sauts de ligne.

Cette barre invisible, ainsi que d’autres barres spéciales, peuvent être insérées manuellement n’importe où. Lorsqu’elles coïncident avec la fin d’une mesure, elles remplacent la simple barre que LilyPond aurait insérée automatiquement. Dans le cas contraire, la barre spécifiée s’insérera là où vous l’aurez positionnée.

Ces insertions n’affectent en rien le calcul du positionnement automatique des barres de mesure à suivre ni les propriétés y afférentes – numérotation, altérations accidentelles, sauts de ligne…
Lorsqu’une barre manuelle est insérée à l’endroit où viendrait se placer une barre normale, seul l’effet visuel en sera modifié.

Vous disposez de plusieurs types de barres simples et de doubles barres :

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

[image of music]

ainsi que d’une barre en pointillé et d’une discontinue :

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

[image of music]

et de différents types de barre de reprise :

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

[image of music]

De plus, une barre de mesure peut s’imprimer racourcie ou sous la forme d’une coche. Dans le cadre du chant grégorien, nous vous invitons à plutôt utiliser \divisioMinima et \divisioMaior comme indiqué au paragraphe Divisions.

f'1 \bar "'"
g'1 \bar ","
a1

[image of music]

LilyPond prend en charge la notation kiévienne, qui dispose d’une barre de mesure spécifique :

f'1 \bar "k"

[image of music]

De plus amples détails quant à cette forme de notation sont fournis à la rubrique Typographie de notation kiévienne.

L’insertion d’un segno directement sur la portée s’obtient à l’aide de plusieurs types de barre de mesure, dont les effets diffèrent lorsqu’en fin de ligne :

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

Bien que l’on puisse insérer des barres de reprise manuellement, LilyPond n’en déduira pas pour autant qu’il s’agit d’un passage à répéter. Il est préférable d’indiquer les passages répétés à l’aide des différentes commandes de reprise (see Répétitions et reprises) qui se chargeront d’imprimer le type de barre approprié qui peut d’ailleurs être personnalisé – see Barres de mesure automatiques.

Dans les faits, un ".|:-||" équivaut à un ".|:" sauf s’il intervient à un saut de ligne : une double barre sera alors imprimée en fin de portée, et la barre de reprise au début de la nouvelle.

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

LilyPond dispose de différents moyens de combiner une barre de reprise avec un segno :

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

Nombre de ces indications peuvent s’insérer automatiquement à l’aide des commandes \repeat – see Répétitions et reprises.

L’instruction \defineBarLine permet de définir ses propres types de barre de mesure, en respectant la syntaxe :

\defineBarLine type_de_barre #'(fin début extension)

En résumé, l’argument type_de_barre détermine à la fois le glyphe qui sera utilisé en cours de portée et l’identifiant de cette barre de mesure. Les autres arguments déterminent les glyphes à utiliser aux extrémités de la portée et dans l’espace entres les portées d’un système. Le fait de régler fin, début ou extension à #t revient à utiliser le glyphe de type_de_barre à la position correspondante. Un réglage à #f se traduira par l’absence de barre à cette même position.

Dans le détail, l’argument type_de_barre est une chaîne de caractères qui a deux fonctions : il détermine d’une part le glyphe qui sera imprimé lorsqu’une barre de mesure intervient en cours de portée et, d’autre part, il sert d’identifiant pour l’objet barre de mesure appelé par \bar type_de_barre. Il doit être de la forme dessin ou dessin-annotation (avec un trait d’union littéral), où annotation est une chaîne quelconque et dessin une chaîne dont les caractères sont les noms de l’un des éléments de barre prédéfinis listés ci-après. La représentation qui résulte de la concaténation de ces éléments sera utilisée en cours de portée. Par exemple, un type_de_barre égal à ";|" ou ";|-autre" spécifie une barre composite constituée d’une ligne pointillée (‘;’) accouplée à une ligne pleine (‘|’) :

\defineBarLine ";|" #'(#t #t #t)
\defineBarLine ";|-autre" #'(#f #f #f)
\fixed c' {
   \bar ";|" a1 \bar ";|" b1 \bar ";|-autre" c'1 \bar ";|-autre"
}

[image of music]

L’annotation (autre dans le second exemple ci-dessus) permet de distinguer ce type de barre des autres ayant le même dessin mais adoptant des comportements différents à l’occasion d’un saut de ligne ou en cas de portées multiples. Par convention, la chaîne spécifiée pour fin est souvent reprise comme annotation, aussi aurions-nous pu avoir nommé le second exemple ‘";|-f"’.

Les arguments fin et début spécifient la barre à afficher à la fin d’une ligne et au début de la suivante lorsque \bar type_de_barre intervient sur un saut de ligne. début s’appliquera aussi lorsque \bar type_de_barre est placé au commencement de la pièce. Le format de ces arguments est identique à type_de_barre. La chaîne d’éléments de barre détermine le glyphe qui apparaîtra selon son positionnement dans la ligne. De plus, chacun de ces éléments peut prendre la valeur #t pour reproduire la valeur de type_de_barre, ou #f pour ne rien afficher. Dans l’exemple suivant, tous les types de barre impriment un trait pointillé suivi d’un trait plein lorsqu’en cours de ligne, mais le comportement change en début ou en fin de ligne.

%   pointillé-plein partout
\defineBarLine  ";|"  #'( #t #t #t)
%   plein-gras en fin, plein-plein en début
\defineBarLine  ";|-A" #'( "|."  "||"  #f )
%   pointillé-plein en fin, rien en début
\defineBarLine  ";|-B" #'( #t  #f  #f )
%   rien en fin, pointillé-plein en début
\defineBarLine  ";|-C" #'( #f  #t  #f )
\relative c'' {
  \bar ";|" \textMark "\";|\""
  a1  \bar ";|-A"
  a1  \bar ";|-A" \textEndMark "\";|-A\"" \break
  b1  \bar ";|-B" b \bar ";|-B" \textEndMark "\";|-B\"" \break
  c1  \bar ";|-C" c \bar ";|-C" \textEndMark "\";|-C\"" \break
  d1  \bar ";|" \textEndMark "\";|\""
}

[image of music]

Il est à noter que les chaînes de début ou de fin peuvent être des noms de type de barre précédemment définis. Dans le cadre d’un contexte de portée unique, ceci n’a pas d’importance puisque les éléments de barre dans la chaîne spécifiée seront utilisés sans les personnalisations de la barre à laquelle il est fait référence par cette chaîne. Il est néanmoins important, dans le cadre d’un système à plusieurs portées, que fin et début fassent référence à des types de barre déjà définis (y compris type_de_barre) ou soient réglés à #t ou #f.

L’argument extension sera effectif dans les systèmes à plusieurs portées (voir Regroupement de portées) puisqu’il détermine ce qui apparaîtra entre les portées regroupées. Cet argument est composé d’une chaîne d’éléments de barre, de même longueur que type_de_barre ou plus court – tout élément supplémentaire sera ignoré. Chaque élément sera imprimé dans le prolongement de l’élément correspondant de type_de_barre. Le caractère espace " " permer de préserver de l’espace et ainsi aligner correctement les différents tronçons d’une barre d’un seul tenant entre les portées d’un système. Régler extension à #t revient à sélectionner le glyphe utilisé en cours de ligne. Le régler à #f omet la barre inter-portées et lui affecter "" (une chaîne vide) générera une extension de largeur zéro. Voici quelques exemples :

\defineBarLine  ";|!-A"  #'(#t #t "!|")
\defineBarLine  ";|!-B"  #'(#t #t " !|")
\defineBarLine  ";|!-C"  #'(#t #t #t)
\defineBarLine  ";|!-D"  #'(#t #t #f)
\fixed c' {
  \new StaffGroup <<
    \new Staff {
      a1 \bar ";|!-A"
      b  \bar ";|!-B"
      c' \bar ";|!-C"
      d' \bar ";|!-D"
      e'
    }
    \new Staff {
      a1 b c' d' e'
    }
  >>
}

[image of music]

Lorsqu’intervient un saut de ligne seront utilisés, en lieu et place de extension, fin et début pour déterminer la barre inter-portées à afficher. Dans le cas d’un regroupement de portées, LilyPond émettra un avertissement si fin et début ne font pas référence à des types de barre définis, et aucune prolongation ne sera imprimée. Il est toujours possible d’affecter #f à fin et début, auquel cas aucune prolongation n’apparaîtra à la position correspondante. Ces arguments peuvent aussi être affectés d’un #t ou type_de_barre, auquel cas extension déterminera le type de prolongation à utiliser à l’endroit correspondant.

\defineBarLine  "!|-t"  #'(#t #t #t)
\defineBarLine  "|!-t"  #'(#t #t #t)
\defineBarLine  ";|!-bad"  #'("|!" "!|" #t)  % fails at line breaks
\defineBarLine  ";|!-good" #'("!|-t" "|!-t" #t)
\relative c'' {
  \new StaffGroup <<
    \new Staff {
      \bar ";|!-good"
      a1 \bar ";|!-good"
      % \bar ";|!-bad"     % "WARNING: No span bar glyph defined..."
      b1 \bar ";|!-good"
    }
    \new Staff {
      a1 b1
    }
  >>
}

[image of music]

Notez bien que dans le cas où extension est consitué d’une chaîne, celle-ci devrait comporter uniquement des éléments de barre de mesure ou une espace (‘ ’), et sans annotation comme c’est possible pour les autres arguments – LilyPond émettra un avertissement lorsque extension contient une annotation. La seule exception à cette règle est une valeur égale à type_de_barre qui, lui, peut comporter une annotation.

Les différents éléments de barre de mesure sont indiqués ci-dessous. La plupart dispose par ailleurs de types de barre prédéfinis (utilisables en argument à \bar) qui les les référencent individuellement. Certains éléments sont premièrement destinés à être combinés à d’autres et, de ce fait, n’ont pas de type de barre prédéfinis individuellement.

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

\new Staff {
  s1 \bar "'"
  s1 \bar ","
  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]

Le type "=" fournit un double trait destiné à être utilisé en combinaison avec un segno. Nous vous recommandons de lui préférer \bar "||" pour imprimer une simple double barre fine.

Si d’autres éléments étaient nécessaires, LilyPond dispose de moyens aisés pour les définir. Pour de plus amples informations quant à la manière de modifier ou ajouter des barres de mesure, consultez le fichier scm/bar-line.scm.

Dans une partition comprenant plusieurs portées, la commande \bar placée sur une portée s’applique automatiquement à toutes les portées. Les barres de mesure que l’on obtient alors sont d’un seul tenant sur les portées d’un StaffGroup, d’un PianoStaff ou d’un 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]

Le type de barre de mesure utilisé pour l’insertion automatique de barres de mesure est "|". Vous pouvez en changer à tout moment grâce à ‘\set Timing.measureBarType = type_de_barre’.

Il est aussi possible de définir pusieurs types de barre de mesure dans une partition à portées multiples, à partir des commandes ou propriétés mentionnées ci-après (see Barres de mesure automatiques). Bien entendu, ceci peut amener à des incohérences entre portion de barre inscrite dans la portée et portion interportées en raison de leurs largeurs différentes.

Les barres de mesure sont généralement alignées par la gauche, sans tenir compte des doubles points des barres de reprise. Pour les aligner par la droite, l’instruction

[\once] \override Contexte.BarLine.right-justified = ##t

doit s’appliquer, avec Contexte correspondant à un contexte spécifique aux portées multiples commeScore, StaffGroup, Grandstaff, etc.

\new StaffGroup
  <<
    \new Staff = "a" {
      b1  b b
      <<
        { \textMark "BarLines right-justified" b b }
        \new Staff \with { alignAboveContext = "b" }
        {
          \override StaffGroup.BarLine.right-justified = ##t
          b
          \section
        }
      >>
    }
    \new Staff = "b" { b \section }
    \new Staff = "c" { b b \section b b b \section }
  >>

[image of music]

Les barres de mesures ne sont jamais alignées par la droite à la suite d’un saut de ligne. En ce qui concerne les barres en cours de portée et celles alignées par la droite, le point d’ancrage – utilisé pour aligner les BarNumber, RehearsalMark, etc. – est repositionné en conséquence.

Voir aussi

Manuel de notation : Regroupement de portées, Répétitions et reprises, Sauts de ligne.

Fichiers d’initialisation : scm/bar-line.scm.

Morceaux choisis : Rythme.

Référence des propriétés internes : BarLine (faisant partie du contexte Staff), SpanBar (sur plusieurs portées), Timing_translator (pour les propriétés liées au temps).


GNU LilyPond – Manuel de notation v2.25.21 (branche de développement).