lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Choisir le nombre de mesures par système


From: xtof pno
Subject: Re: Choisir le nombre de mesures par système
Date: Sat, 12 Feb 2022 11:45:01 +0000 (UTC)

Bonjour,
J'ai expérimenté \break et cela fonctionne parfaitement en correspondant à ma demande.
Je retiens les autres indications de David et garde  précieusement le code de Jean pour l'automatisation
des sauts de ligne.
Merci beaucoup pour votre aide généreuse.
Bien cordialement.
Christophe J.
 
Le vendredi 11 février 2022, 23:00:50 UTC+1, Jean Abou Samra <jean@abou-samra.fr> a écrit :


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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]