Aligner horizontalement les numéros de mesure

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 :

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

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

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.

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 {
      \consists "Bar_number_engraver"
      \override BarNumber.break-visibility = ##(#t #t #t)
      \override BarNumber.self-alignment-X = #LEFT
      \override BarNumber.font-size = #5
    }
    \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

Bonsoir,

Martial vous avait répondu à ce sujet ici.

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

Bonsoir,

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

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

\version "2.25.21"

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

%%%% 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)
    }
   {s4  s1*34}
    \scoreAHornFPart
    \scoreATrumpetBbPart
    \scoreATrombonePart
    \scoreATubaPart
    \scoreATimpaniPart
    \scoreAViolinIPart
    \scoreAViolinIIPart
    \scoreAViolaPart
    \scoreAContrabassPart
  >>
  \layout { }
  \midi {
    \tempo 4=100
  }
}

Cordialment,

oops j'avais oublié de mettre les silences invisibles

%..... 
     \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)
    }
  { s4 s1*34 }
 %etc... 

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

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

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

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 silences ça fontionne aussi mais Lilypond hurle toujours un peu
m'enfin la compilation va à son terme.
Cordialement

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

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

Bonne nuit

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

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

Bonjour,

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