Subject: [LilyPond] Aligner horizontalement les numéros de mesure

From: Christophe via LilyPond <[email-masked]>
Date: Sun, 03 Nov 2024 21:12:55 +0000

Bonjour, 
J'arrive à numéroter les mesures comme je le souhaite, mais les numéros suivent le dessin mélodique.
Peut-on contraindre ces numéros à être sur la même ligne horizontale ?
Voilà ce que j'obtiens pour l'instant :
![aligner les n° de mesure|690x81](upload://e8FVqcB49sVd7oRnbRHT2skVm7H.jpeg)

Deuxième question : comment placer ces numéros au centre d'une page de conducteur ? 
Par défaut, ils sont placés en haut de page. Pour les placer en bas : `\override Score.BarNumber.direction = #DOWN`
Mais pour les placer entre la 12e et 13e portée ?

Merci pour vos solutions.
Cordialement.
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/1).

Pour créer un nouveau sujet, écrivez à [[email-masked]](mailto:[email-masked]) ou visitez la [page d'accueil de lilypond.community](https://lilypond.community).

---

From: MartialR via LilyPond <[email-masked]>
Date: Sun, 03 Nov 2024 22:34:41 +0000

Bonsoir,
\override BarNumber.padding 
ou
  \override BarNumber.Y-offset 

```
\version "2.24.4"
\layout {
  \context {
    \Score
    \override BarNumber.stencil = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
    \override BarNumber.break-visibility = #all-visible % numero sur chaque mesure 
    \override BarNumber.padding = #'5 %à ajuster
  }
}

{  \repeat unfold 50 { c'1  g''' e'' } }
```
bonne nuit

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/2).

---

From: xavier via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 07:42:21 +0000

Bonjour,

Une solution possible, probablement pour les 2 questions, serait de supprimer `"Bar_number_engraver"` du context `Score` et de l'ajouter à un contexte `Dynamics` au-dessus de la première portée (pour le premier cas) ou entre la 12e et 13e portée pour la seconde question.

```
\layout {
  \context {
    \Score
    \remove "Bar_number_engraver"
  }
}

\score {
  <<
    \new Dynamics \with {
      \consists "Bar_number_engraver"
      \override BarNumber.break-visibility = ##(#t #t #t)
      \override BarNumber.self-alignment-X = #LEFT
      \override BarNumber.font-size = #5
    } {
      s1*8
    }
    \new Staff {
      \relative c'' {
        c1 d e f g a b c
      }
    }
  \layout {}
  \midi {}
}
```

Cordialement,
Xavier

PS : C'est bien plus simple de répondre à une question lorsqu'un exemple de code y est joint.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/3).

---

From: Christophe via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 18:35:12 +0000

Bonjour,
Merci beaucoup pour vos précieux conseils.
Il reste un détail à régler.
J'ai refait un exemple avec code (l'original comporte~1000 lignes).
Comment supprimer la numérotation de la mesure incomplète d'anacrouse notée  (1)  au début ?
```
\version "2.24.4"

\header {
  title = "numéros de mesures"
}

\paper {
  #(set-paper-size "a4")
}

global = {
  \key c \major
  \numericTimeSignature
  \partial 4
  \time 4/4
}

\layout {
  \context {
    \Score
    \remove "Bar_number_engraver"
  }
}
scoreAFlute = \relative c'' {
  \global
  % En avant la musique !
 b4 c1 c c c \repeat unfold 20 c \break
 \repeat unfold 20 g
}

scoreAOboe = \relative c'' {
  \global
  % En avant la musique !
fis4  g1 g g g \repeat unfold 30 c
}

scoreAClarinet = \relative c'' {
  \global
  \transposition bes
  % En avant la musique !
r4  e1 e e e \repeat unfold 30 c
}

scoreABassoon = \relative c {
  \global
  % En avant la musique !
 r4 c1 c c c \repeat unfold 30 c
}

scoreAHornF = \relative c'' {
  \global
  \transposition f
  % En avant la musique !
 b4  e1 e e e \repeat unfold 20 c
 \break
 \repeat unfold 20 g
}

scoreATrumpetBb = \relative c'' {
  \global
  \transposition bes
  % En avant la musique !
 r4 c1 c c c
}

scoreATrombone = \relative c {
  \global
  % En avant la musique !
 r4 c1 c c c \repeat unfold 30 c
}

scoreATuba = \relative c'' {
  \global
  \transposition bes,
  % En avant la musique !
 r4 c2 c c c
}

scoreATimpani = \relative c {
  \global
  % En avant la musique !
  c4 c \repeat unfold 50  c c c c c c
}

scoreAViolinI = \relative c'' {
  \global
  % En avant la musique !
 r4 c1 c c c
}

scoreAViolinII = \relative c'' {
  \global
  % En avant la musique !
 r4 g1 g g g
}

scoreAViola = \relative c' {
  \global
  % En avant la musique !
 r4 e1 e e e
}

scoreAContrabass = \relative c {
  \global
  % En avant la musique !
 r4 c1 c c c 
}

scoreAFlutePart = \new Staff \with {
  instrumentName = "Flûte"
  midiInstrument = "flute"
} \scoreAFlute

scoreAOboePart = \new Staff \with {
  instrumentName = "Hautbois"
  midiInstrument = "oboe"
} \scoreAOboe

scoreAClarinetPart = \new Staff \with {
  instrumentName = "Clarinette"
  midiInstrument = "clarinet"
} \scoreAClarinet

scoreABassoonPart = \new Staff \with {
  instrumentName = "Basson"
  midiInstrument = "bassoon"
} { \clef bass \scoreABassoon }

scoreAHornFPart = \new Staff \with {
  instrumentName = "Cor en fa"
  midiInstrument = "french horn"
} \scoreAHornF

scoreATrumpetBbPart = \new Staff \with {
  instrumentName = "Trompette en Sib"
  midiInstrument = "trumpet"
} \scoreATrumpetBb

scoreATrombonePart = \new Staff \with {
  instrumentName = "Trombone"
  midiInstrument = "trombone"
} { \clef bass \scoreATrombone }

scoreATubaPart = \new Staff \with {
  instrumentName = "Tuba"
  midiInstrument = "tuba"
} \scoreATuba

scoreATimpaniPart = \new Staff \with {
  instrumentName = "Timbales"
  midiInstrument = "timpani"
} { \clef bass \scoreATimpani }

scoreAViolinIPart = \new Staff \with {
  instrumentName = "Violon I"
  midiInstrument = "violin"
} \scoreAViolinI

scoreAViolinIIPart = \new Staff \with {
  instrumentName = "Violon II"
  midiInstrument = "violin"
} \scoreAViolinII

scoreAViolaPart = \new Staff \with {
  instrumentName = "Alto"
  midiInstrument = "viola"
} { \clef alto \scoreAViola }

scoreAContrabassPart = \new Staff \with {
  instrumentName = "Contrebasse"
  midiInstrument = "contrabass"
} { \clef bass \scoreAContrabass }

\score {

  <<
    \scoreAFlutePart
    \scoreAOboePart
    \scoreAClarinetPart
    \scoreABassoonPart
    
     \new Dynamics \with {
    \scoreAHornFPart
    \scoreATrumpetBbPart
    \scoreATrombonePart
    \scoreATubaPart
    \scoreATimpaniPart
    \scoreAViolinIPart
    \scoreAViolinIIPart
    \scoreAViolaPart
    \scoreAContrabassPart
  \layout {
   \set Score.barNumberVisibility = #all-bar-numbers-visible
   
      \override Score.BarNumber.stencil
    = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
  
  }
  \midi {
    \tempo 4=100
  }
}

Merci pour le dernier réglage.
Cordialement.
Christophe
```

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/4).

---

From: xavier via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 19:43:32 +0000

Bonsoir,

Martial vous avait répondu à ce sujet [ici](https://lilypond.community/t/resolu-numeros-de-mesures/5765/2).

Enfin je signale que vous n'utilisez pas le contexte `Dynamics` tel que je l'ai expliqué ci-dessus : celui-ci doit contenir des silences invisibles dont la durée totale correspond à la durée de la pièce. C'est la raison pour laquelle Lily râle si on compile le code tel que vous l'avez écrit.

Cordialement,
Xavier

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/5).

---

From: Christophe via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 20:44:28 +0000

Bonsoir,

[quote="xavier, post:5, topic:5780"]
Martial vous avait répondu à ce sujet [ici ](https://lilypond.community/t/resolu-numeros-de-mesures/5765/2).
[/quote]
Oui, je ne suis pas arrivé à reproduire la solution dans ce contexte particulier, d'où ma question. 
D'autre part, je me sers de Frescobaldi pour construire la structure de la partition. 
Saisie des notes par instrument, description des instruments, puis \score, \layout, midi.
Dans le code ci-dessus, j'ai adapté ce que vous m'avez donné sans comprendre pourquoi 2 \layout et pourquoi écrire des notes dans le \score. Je n'ai pas autant de souplesse que vous. Ceci dit Lily n'a pas spécialement râlé, la compilation est menée à son terme. Peut-être existe-t-il d'autres moyens que Frescobaldi pour construire ses templates, mais je ne les connais pas, pas encore ...
Désolé de ne pas comprendre et de ne pas savoir mettre en œuvre les solutions que vous exposez. J'ai encore besoin d'explications.
Cordialement.
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/6).

---

From: MartialR via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 21:06:49 +0000

voici la reprise de votre code avec la suppression du (1) 

```
\version "2.25.21"

\version "2.24.4"

\header {

\paper {
  #(set-paper-size "a4")
}

global = {
  \key c \major
  \numericTimeSignature
  \partial 4
  \time 4/4
}

\layout {
  %%on peut mettre ici pour les numéroi en boxe et grandeur
    \override BarNumber.font-size = #5
     \override Score.BarNumber.stencil   = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
 
 \context { 
    \Score

%%%% la partition 
\score {
    <<
    \scoreAFlutePart
    \scoreAOboePart
    \scoreAClarinetPart
    \scoreABassoonPart
    
     \new Dynamics \with {
      \consists "Bar_number_engraver"
      \override BarNumber.self-alignment-X = #LEFT
       barNumberVisibility = #all-bar-numbers-visible  
      \once \override Score.BarNumber.break-visibility = ##(#f #t #f)
    }
    \scoreAHornFPart
    \scoreATrumpetBbPart
    \scoreATrombonePart
    \scoreATubaPart
    \scoreATimpaniPart
    \scoreAViolinIPart
    \scoreAViolinIIPart
    \scoreAViolaPart
    \scoreAContrabassPart
  \layout { }
  \midi {
    \tempo 4=100
  }
}

```

Cordialment,

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/7).

---

From: MartialR via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 21:21:42 +0000

oops j'avais oublié de mettre les silencezs invisibles 
 
```
%..... 
     \new Dynamics \with {
  { s4 s1*34 }
 %etc... 
```

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/8).

---

From: MartialR via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 21:37:56 +0000

Le bloc `\layout` gère la mise en forme spécifique à la partition. La mise en forme de la musique peut concerner toutes les partitions d’un même ouvrage, auquel cas un bloc `\layout` indépendant se placera en tête de fichier. Dans le cas où la mise en forme concerne une partition en particulier, un bloc `\layout` se placera au sein du bloc `\score` en question :  [https://lilypond.org/doc/v2.24/Documentation/notation/the-layout-block.fr.html](https://lilypond.org/doc/v2.24/Documentation/notation/the-layout-block.fr.html)

Exemple (j'exagère évidement) 
```
%mise en forme globale de la partition 
\layout {
  indent = 2\cm
  \context {
    \StaffGroup
    \override StaffGrouper.staff-staff-spacing.basic-distance = #15
  }
}

\score { 
\new StaffGroup
<<
\new Staff { \repeat unfold 20 {  g'1 } }
\new Staff { \repeat unfold 20 {  c'1 } }
}

\score { 
\new StaffGroup
<<
\new Staff { \repeat unfold 20 {  g'1 } }
\new Staff { \repeat unfold 20 {  c'1 } }
  %mise fomre pour cette partition
  \layout {
  indent = 10\cm
  \context {
    \StaffGroup
    \override StaffGrouper.staff-staff-spacing.basic-distance = #2
  }
}
}

\score { 
\new StaffGroup
<<
\new Staff { \repeat unfold 20 {  g'1 } }
\new Staff { \repeat unfold 20 {  c'1 } }
}
```

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/9).

---

From: Christophe via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 21:42:39 +0000

Merci Martial pour votre indulgence et votre aide.

La compilation va à son terme avec les silences invisibles, mais elle indique des erreurs :

```
erreur de programmation : cyclic dependency: calculation-in-progress encountered for VerticalAxisGroup.adjacent-pure-heights
poursuite ; croisons les doigts.
erreur de programmation : cyclic dependency: calculation-in-progress encountered for VerticalAxisGroup.adjacent-pure-heights
poursuite ; croisons les doigts.
```

La mise en page se fait par le layout du début de code. Quelle est l'utilité du layout présent dans \score ? 
Je ne suis pas sûr non plus de comprendre l'intérêt des silences invisibles. Dans une portée, oui, ou lorsqu'il y a plusieurs voix. Les numéros de mesure ne sont-ils pas extérieurs à la portée ?
Merci pour vos explications et ... votre patience.
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/10).

---

From: MartialR via LilyPond <[email-masked]>
Date: Mon, 04 Nov 2024 21:59:23 +0000

j'ai repris votre code qui reprends la proposition de Xavier. 
Le layout dans le score n'est pas utile dans ce cas, mais ça gène pas. 
Pour les Barnumber dans le Dynamics je ne fais pas ainsi donc je n'ai pas trop la pratique ni l'explication. 
si on ne mets pas les silence ça fontionne aussi mais Lilypond hurle toujours un peu
m'enfin  la compilation va à son terme. 
Cordialement

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/11).

---

From: Christophe via LilyPond <[email-masked]>
Date: Tue, 05 Nov 2024 22:27:44 +0000

Bonjour,
Dans le code corrigé par Martial ci-dessus,  la disparition du (1) entraîne aussi la disparition du premier numéro de mesure des systèmes suivants, ici le 10. C'est gênant.
En modifiant 
```
  \once \override Score.BarNumber.break-visibility = ##(#f #t #f)
```
on a (1) avec 10 ou ni l'un ni l'autre.
Un remède pour supprimer seulement (1) ?

Merci Martial pour vos explications claires sur l'usage du layout.
Pas de précisions pour le message d'erreur de programmation pour l'instant.

Cordialement.
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/12).

---

From: MartialR via LilyPond <[email-masked]>
Date: Tue, 05 Nov 2024 23:13:45 +0000

ha je n'avais pas vu 
une solution 
```

%.... 
     \new Dynamics \with {
      \consists "Bar_number_engraver"
      \override BarNumber.self-alignment-X = #LEFT
       barNumberVisibility = #all-bar-numbers-visible 
 % aficher tous  les 1er barnumber
      \once \override Score.BarNumber.break-visibility = ##(#f #t #t)   
    }
%supprimer le 1er barnumber
   {  \once \override BarNumber.stencil = ##f  s4  s1*34 }
    \scoreAHornFPart
    \scoreATrumpetBbPart
    \scoreATrombonePart
% etc.... 

```

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/13).

---

From: Christophe via LilyPond <[email-masked]>
Date: Wed, 06 Nov 2024 08:30:26 +0000

Merci Martial pour le partage de vos compétences.
Cette solution fonctionne bien.
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/14).

---

From: Christophe via LilyPond <[email-masked]>
Date: Fri, 08 Nov 2024 09:58:10 +0000

Bonjour,
Ma partition compte 69 mesures à 2/4 avec une levée en croche.
Pourtant pour que les silences invisibles collent il n'en faut que 55 avec la même levée !
Faut-il veiller à un rapport particulier ?

Le code est identique à celui ci-dessus.
Un détail qui n'empêche pas la compilation. Seulement pour comprendre ce qu'il se passe.
Merci pour vos éclaircissements.
Cordialement.
Christophe

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/15).

---

From: MartialR via LilyPond <[email-masked]>
Date: Fri, 08 Nov 2024 13:53:06 +0000

Bonjour, 

Sans le code en 2/4on ne peut pas comprendre, envoyez nous  en fichier joint le code complet de votre partition. Cordialement

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/aligner-horizontalement-les-numeros-de-mesure/5780/16).