[Top][All Lists]
[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