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