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

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

Re: Masquer des portée identiques


From: Gilles
Subject: Re: Masquer des portée identiques
Date: Sun, 26 Aug 2012 10:34:03 +0200
User-agent: Opera Mail/12.01 (Win64)



En fait en prenant le code de "partcombine" et en mixant/modifiant
RemoveEmptyStaves pour qu'il supprime les portées lorsque la musique
est identique (comme partcombine) plutôt que lorsqu'il y a des silences
on devrait déjà s'approcher d'une version basique de cette
fonctionnalité il me semble.

J'ai bien lu le message envoyé à la liste anglaise.
Est-ce que quelque chose comme ça peut faire l'affaire ?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%  internal %%%%%%%%%%%%%%%%%%%
%% see http://lsr.dsi.unimi.it/LSR/Item?id=312
killPercentRepeats = {
 \set Staff.keepAliveInterfaces = #'(
    rhythmic-grob-interface
    lyric-interface
    stanza-number-interface
    ;;percent-repeat-interface ; we comment that
    )
}

staffApart = #(define-music-function (parser location musA musB) (ly:music? ly:music?)
#{
   <<
     $musA
     \context Staff = "B" {
        \override Staff.PercentRepeat #'stencil = ##f
        $musB
        \revert Staff.PercentRepeat #'stencil
     }
    >>
#})

%%%%%%%%%%%%%%%%%%% user %%%%%%%%%%%%%%%%%%%%%%%

musicA = { \repeat unfold 17 c''1
           \staffApart
               { \repeat unfold 5 c''1 }
               { \repeat unfold 5 f'1 }
           \repeat unfold 18 c''1

}
musicB = { \killPercentRepeats \repeat percent 40 s1 }


             %%%%%%%%% the score %%%%%%%%%%%

\layout {
  \context {
    \Staff
      \RemoveEmptyStaves
      \override VerticalAxisGroup #'remove-first = ##t
  }
}

\new GrandStaff {
  <<
    \context Staff = "A" \musicA
    \context Staff = "B" \musicB
  >>
 }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Gilles



reply via email to

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