[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Choisir le nombre de mesures par système
From: |
Jean Abou Samra |
Subject: |
Re: Choisir le nombre de mesures par système |
Date: |
Fri, 11 Feb 2022 23:00:47 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
Le 11/02/2022 à 22:13, xtof pno a écrit :
Bonjour,
Je souhaiterais choisir le nombre de mesures par portées (organisées
en système).
Pour être fidèle à une partition et se repérer plus facilement, je
voudrais 4 mesures par système.
Je ne trouve pas dans la documentation le moyen de le faire.
Comment procéder ?
Merci pour votre aide et conseils.
Christophe J
Comme l'explique bien David, \break est le moyen principal de le faire.
Pour le rendre récurrent, une technique est de mettre une voix invisible
dédiée aux sauts de ligne avec un \repeat unfold, par exemple :
\version "2.22.1"
<<
\new Devnull \repeat unfold 4 { s1*2 \break }
\new Staff { c'1 e' g' e' c' e' g' e' }
\new Staff { c'1 e' g' e' c' e' g' e' }
>>
Cela peut être aussi \new Voice plutôt que \new Devnull,
mais dans ce cas il faut le mettre avec l'une des
portées existantes pour éviter l'apparition d'une
portée supplémentaire. La documentation utilise \new Voice
dans l'exemple « Recours à une voix supplémentaire pour
gérer les sauts » sur
http://lilypond.org/doc/v2.23/Documentation/notation/line-breaking
À part cela, il y a plusieurs bouts de code qui traînent sur les
listes LilyPond, postés par diverses personnes, pour permettre
l'écriture des sauts de ligne et des sauts de page de manière un
peu plus pratique en se passant de la voix supplémentaire au milieu
de la musique. Voici une version remaniée d'un truc que j'ai utilisé
une fois, qui correspond assez précisément à votre demande :
\version "2.22.1"
%% À mettre éventuellement dans un fichier \include
#(define (Recurring_break_engraver context)
(let ((break-allowed #f)
(bar 0)
(was-start-partial #f))
(define (start-partial?)
(or (and (equal? ZERO-MOMENT (ly:context-current-moment context))
(ly:moment<? (ly:context-property context 'measurePosition)
ZERO-MOMENT))
(ly:context-property context 'partialBusy #f)))
(make-engraver
(acknowledgers
((bar-line-interface engraver grob source-engraver)
(if (not was-start-partial)
(begin
(set! break-allowed #t)
(set! bar (1+ bar)))
(set! was-start-partial #f))))
((stop-translation-timestep translator)
(if break-allowed
(let* ((column (ly:context-property context
'currentCommandColumn))
(layout (ly:grob-layout column))
(bars-per-line (ly:output-def-lookup layout
'bars-per-line)))
(if (index? bars-per-line)
(ly:grob-set-property!
column
'line-break-permission
(if (zero? (modulo bar bars-per-line))
'force
'())))))
(set! break-allowed #f)
(set! was-start-partial (start-partial?))))))
\layout {
\context {
\Score
\consists #Recurring_break_engraver
}
}
%% Exemple
\score {
\layout {
bars-per-line = 4
}
{
\partial 4
c'4
c'1 1 1 1 1 1
\partial 4
c'4
\repeat unfold 20 { c'1 }
}
}
Bien cordialement,
Jean