Subject: Portées vides invisibles

From: Bernard Meylan <[email-masked]>
Date: Wed, 14 Jan 2015 03:08:11 -0700 (MST)

Bonjour à tous!

Pour rendre 2 portées (sur 4) invisibles en cours de partition (et non pas
dès le début, comme on pourrait le faire avec un \Staff \RemoveEmptyStaves
), j'ai utilisé ceci:

\stopStaff
\override Staff.KeySignature.stencil = ##f
\override Staff.Clef.stencil = ##f

et pour les faire réapparaître après quelque 90 mesures, j'ai utilisé 

\sartStaff
\override Staff.KeySignature.stencil = ##t
\override Staff.Clef.stencil = ##t

Est-ce la méthode acceptée et autorisée par les instances supérieures  ou y
a t-il plus simple?

Bernard

-----
Cordialement

Bernard
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Portees-vides-invisibles-tp7582098.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 14 Jan 2015 15:53:20 +0100

Bonjour Bernard,

Première remarque (on ne le dit jamais assez souvent), le pendant de :
 \override Staff.KeySignature.stencil = ##f
n'est pas :
 \override Staff.KeySignature.stencil = ##t
mais :
 \revert Staff.KeySignature.stencil

Pour le reste j'ai fait exactement ce que tu dis (en doublant avec \omit
...) et cela me pose quelques soucis avec les barres de mesures et les noms
d'instruments :

\version "2.18.2"

global = {
  \time 2/2
  \key a\major
}

musiqueUn = {
  \global
  \repeat unfold 20 { s1 }
  \stopStaff
  \break
  %{
  \omit Staff.Clef
  \omit Staff.TimeSignature
  \omit Staff.KeySignature
  %}
  \override Staff.Clef.stencil = ##f
  \override Staff.KeySignature.stencil = ##f
  \override Staff.TimeSignature.stencil = ##f
  \repeat unfold 90 { s1 }
  \startStaff
  %{
  \undo\omit Staff.Clef
  \undo\omit Staff.TimeSignature
  \undo\omit Staff.KeySignature
  %}
  \revert Staff.Clef.stencil
  \revert Staff.KeySignature.stencil
  \revert Staff.TimeSignature.stencil
  \break
  \repeat unfold 30 { s1 }
  \bar "|."
}

musiqueDeux = {
  \global
  \repeat unfold 140 { s1 }
  \bar "|."
}

\score {
  \new StaffGroup <<
    \new Staff \with {
      instrumentName = "Inst1"
      shortInstrumentName = "It1"
    } \musiqueUn
    \new Staff \with {
      instrumentName = "Inst2"
      shortInstrumentName = "It2"
    } \musiqueUn
    \new Staff \with {
      instrumentName = "Inst3"
      shortInstrumentName = "It3"
    } \musiqueDeux
    \new Staff \with {
      instrumentName = "Inst4"
      shortInstrumentName = "It4"
    } \musiqueDeux
}

Comment supprimes-tu ces objets ?
Je regarderai tout ça calmement dans la soirée.
Cordialement,
Pierre

Le 14 janvier 2015 11:08, Bernard Meylan <[email-masked]> a écrit :

> View this message in context:
> http://lilypond-french-users.1298960.n2.nabble.com/Portees-vides-invisibles-tp7582098.html
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 14 Jan 2015 16:11:13 +0100

Re,

Finalement j'arrive à quelque chose de potable en bidouillant un peu :

\version "2.18.2"

global = {
  \time 2/2
  \key a\major
}

musiqueUn = {
  \set Staff.shortInstrumentName = "It1"
  \global
  \repeat unfold 20 { s1 }
  \stopStaff
  \break
  %{
  \omit Staff.Clef
  \omit Staff.TimeSignature
  \omit Staff.KeySignature
  %}
  \override Staff.Clef.stencil = ##f
  \override Staff.KeySignature.stencil = ##f
  \override Staff.TimeSignature.stencil = ##f
  \unset Staff.shortInstrumentName
  s1
  %\omit Staff.BarLine
  \override Staff.BarLine.stencil = ##f
  \repeat unfold 89 { s1 }
  \startStaff
  %{
  \undo\omit Staff.Clef
  \undo\omit Staff.TimeSignature
  \undo\omit Staff.KeySignature
  %}
  \revert Staff.Clef.stencil
  \revert Staff.KeySignature.stencil
  \revert Staff.TimeSignature.stencil
  \set Staff.shortInstrumentName = "It1"
  \break
  s1
  %\undo\omit Staff.BarLine
  \revert Staff.BarLine.stencil
  \repeat unfold 29 { s1 }
  \bar "|."
}

musiqueDeux = {
  \global

\score {
  \new StaffGroup <<
    \new Staff \with {
      instrumentName = "Inst1"
    } \musiqueUn
    \new Staff \with {
      instrumentName = "Inst2"
    } \musiqueUn
    \new Staff \with {
      instrumentName = "Inst3"
}

... mais je serai curieux de savoir quel(s) problème(s) te pose
\RemoveEmptyStaves ?

Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 14 Jan 2015 16:15:29 +0100

Oups, avec les bons instruments c'est mieux :

\version "2.18.2"

global = {
  \time 2/2
  \key a\major
}

musiqueUn = {
  \tag instUn { \set Staff.shortInstrumentName = "It1" }
  \tag instDeux { \set Staff.shortInstrumentName = "It2" }

musiqueDeux = {
  \global

\score {
  \new StaffGroup <<
    \new Staff \with {
      instrumentName = "Inst1"
    } \keepWithTag instUn \musiqueUn
    \new Staff \with {
      instrumentName = "Inst2"
    } \keepWithTag instDeux \musiqueUn
    \new Staff \with {
      instrumentName = "Inst3"
      shortInstrumentName = "It3"
    } \musiqueDeux
    \new Staff \with {
      instrumentName = "Inst4"
      shortInstrumentName = "It4"
    } \musiqueDeux
}

Pierre

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Wed, 14 Jan 2015 18:18:08 +0100

> Oups, avec les bons instruments c'est mieux :
...........
J'ai probablement pas bien compris le problème. Et d'abord, pourquoi ne 
pas utiliser la formule adéquate pour ne pas faire apparaître les 
portées vides, à savoir
\layout { \context {
	 \RemoveEmptyStaffContext
\override VerticalAxisGroup #'remove-first = ##t

Pour résoudre le problème de notre ami Bernard comme dit plus haut, je 
ne sais pas ce qu'il recherche mais je remarque que Pierre, dans son 
exemple, met des \break après 20 mes. Cette commande ne doit 
(normalement) intervenir qu'une seule fois, pour la 1ère voix, les 
autres instruments suivant cette commande.

D'autre part, les instruments sont groupés par 2 (1_2 et 3_4). De plus, 
  la partition ne comporte que des silences.

Cependant, je me suis amusé à essayer de voir si tous les instruments 
étaient indépendants les uns des autres, avec des "vraies" notes et 
surtout, s'il ne s'arrêtent pas - et reprennent - à des endroits différents.

En deux mots, ça fait un beau cafouillage - mais sans erreur de Lilypond 
! Je mets le code ci-après que j'ai agrémenté de quelques petites 
fioritures destinées à avoir quelques points de repère.

\version "2.18.0"

global = {
   \time 2/2
   \key a\major
}

resetBarnum = \context Score \applyContext % pour la numérotation des 
mesures
   #(set-bar-number-visibility 3)

musiqueUn = {
   \set Staff.shortInstrumentName = "I_1"
   \global
   \repeat unfold 28 { cis'1 } %10 mesures de "do"
   \stopStaff
   \break
   %{
   \omit Staff.Clef
   \omit Staff.TimeSignature
   \omit Staff.KeySignature
   %}
   \override Staff.Clef.stencil = ##f
   \override Staff.KeySignature.stencil = ##f
   \override Staff.TimeSignature.stencil = ##f
   \unset Staff.shortInstrumentName
  \repeat unfold 20 {s1} %20 mes. de pause
   %\omit Staff.BarLine
   \override Staff.BarLine.stencil = ##f

   \startStaff
   %{
   \undo\omit Staff.Clef
   \undo\omit Staff.TimeSignature
   \undo\omit Staff.KeySignature
   %}
   \revert Staff.Clef.stencil
   \revert Staff.KeySignature.stencil
   \revert Staff.TimeSignature.stencil
   \set Staff.shortInstrumentName = "I_1"
   \break
   \repeat unfold 22 { cis'1} % 22 mesures de reprise
   %\undo\omit Staff.BarLine
   \revert Staff.BarLine.stencil
%  \repeat unfold 118 { b1 }
   \bar "|."
}
%%%%%%%%%%%    fin musique 1     %%%%%%%%%%%%%%
musiqueDeux = {

        \set Staff.shortInstrumentName = "I_2"
   \global
   \repeat unfold 20 { e'1 } %20 mesures de "mi"
   \stopStaff
%  \break
   %{
   \omit Staff.Clef
   \omit Staff.TimeSignature
   \omit Staff.KeySignature
   %}
   \override Staff.Clef.stencil = ##f
   \override Staff.KeySignature.stencil = ##f
   \override Staff.TimeSignature.stencil = ##f
   \unset Staff.shortInstrumentName
  \repeat unfold 35 {s1}
   %\omit Staff.BarLine
   \override Staff.BarLine.stencil = ##f

   \startStaff
   %{
   \undo\omit Staff.Clef
   \undo\omit Staff.TimeSignature
   \undo\omit Staff.KeySignature
   %}
   \revert Staff.Clef.stencil
   \revert Staff.KeySignature.stencil
   \revert Staff.TimeSignature.stencil
   \set Staff.shortInstrumentName = "I_2"
   \break
   \repeat unfold 15 { cis'1}
   %\undo\omit Staff.BarLine
   \revert Staff.BarLine.stencil
%  \repeat unfold 118 { b1 }

}

%%%%%%%%%%%%    fin musique 2     %%%%%%%%%%%%%%%%
musiqueTrois = {
   \set Staff.shortInstrumentName = "I_3"
   \global
   \repeat unfold 28 { a'1 } %28 mesures de "la"
   \stopStaff
%  \break
   %{
   \omit Staff.Clef
   \omit Staff.TimeSignature
   \omit Staff.KeySignature
   %}
   \override Staff.Clef.stencil = ##f
   \override Staff.KeySignature.stencil = ##f
   \override Staff.TimeSignature.stencil = ##f
   \unset Staff.shortInstrumentName
  \repeat unfold 30 {s1}
   %\omit Staff.BarLine
   \override Staff.BarLine.stencil = ##f

   \startStaff
   %{
   \undo\omit Staff.Clef
   \undo\omit Staff.TimeSignature
   \undo\omit Staff.KeySignature
   %}
   \revert Staff.Clef.stencil
   \revert Staff.KeySignature.stencil
   \revert Staff.TimeSignature.stencil
   \set Staff.shortInstrumentName = "I_3"
   \break
   \repeat unfold 12 { cis'1}
   %\undo\omit Staff.BarLine
   \revert Staff.BarLine.stencil

}

%%%%%%%%%%%%%%%    fin musique 3     %%%%%%%%%%%%%%%%%%%
musiqueQuatre = {
     \set Staff.shortInstrumentName = "I_4"
   \global
   \repeat unfold 25 { fis'1 } %10 mesures de "fa"
   \stopStaff
%  \break
   %{
   \omit Staff.Clef
   \omit Staff.TimeSignature
   \omit Staff.KeySignature
   %}
   \override Staff.Clef.stencil = ##f
   \override Staff.KeySignature.stencil = ##f
   \override Staff.TimeSignature.stencil = ##f
   \unset Staff.shortInstrumentName
  \repeat unfold 25 {s1}
   %\omit Staff.BarLine
   \override Staff.BarLine.stencil = ##f

   \startStaff
   %{
   \undo\omit Staff.Clef
   \undo\omit Staff.TimeSignature
   \undo\omit Staff.KeySignature
   %}
   \revert Staff.Clef.stencil
   \revert Staff.KeySignature.stencil
   \revert Staff.TimeSignature.stencil
   \set Staff.shortInstrumentName = "I_4"
   \break
   \repeat unfold 20 { cis'1} % on reprend pendant 20 mes.
   %\undo\omit Staff.BarLine
   \revert Staff.BarLine.stencil

}

%%%%%%%%%%%%    fin musique 4     %%%%%%%%%%%%%%%%%%

\score {
   \new StaffGroup <<

        {
          \override Score.BarNumber.break-visibility =#end-of-line-invisible
          \override Score.BarNumber #'font-size = #0.1
          \override Score.BarNumber #'font-shape = #'italic
	 \override Score.BarNumber #'color = #red
	 \override Score.BarNumber.self-alignment-X = #LEFT
	 \resetBarnum
   }
     \new Staff \with {
       instrumentName = "Inst1"
       shortInstrumentName = "I_1"
     } \musiqueUn

     \new Staff \with {
       instrumentName = "Inst2"
       shortInstrumentName = "I_2"
     } \musiqueDeux

     \new Staff \with {
       instrumentName = "Inst3"
       shortInstrumentName = "I_3"
     } \musiqueTrois

     \new Staff \with {
       instrumentName = "Inst4"
       shortInstrumentName = "I_4"
     } \musiqueQuatre

}

Mon exemple vaut ce qu'il vaut et je ne suis pas sûr qu'il va plaire à 
Bernard !  Avec la commande  "\RemoveEmptyStaffContext" le résultat est 
évidemment bien meilleur mais Bernard n'en veut pas.

C'est tout, bonne soirée.

-- 
JJG

utilisateur de gnu.linux depuis des années (mais toujours... débutant !)
http://www.radiosuisseclassique.ch/fr

---

From: Seventies <[email-masked]>
Date: Wed, 14 Jan 2015 10:51:40 -0700 (MST)

Il y a aussi une paire de fonction, qui m'a été fournie par un membre du
forum :

% showMultiRests - hideMultiTests
% Cache ou affiche les silences multi-mesure
% Permet le masquage des portées vides.
% Utilisation avec \RemoveEmptyStaves dans la construction des portées.
% Utilisation : \tag #'conductorScore \showMultiRests empêche les silences
multi-mesure de cacher la portée

% hideMultiRests : retourne au comportement par défaut

showMultiRests = {
  \set Staff.keepAliveInterfaces = #'(
                                       rhythmic-grob-interface
                                       multi-measure-rest-interface
                                       lyric-interface
                                       stanza-number-interface
                                       percent-repeat-interface)
}

hideMultiRests = \unset Staff.keepAliveInterfaces

Elle fonctionne très bien dans le cas d'une partition où les portées vides
ne doivent être masquées qu'en des endroits précis, contrairement à
\RemoveEmptyStaves qui est valable sur l'entièreté de la partition, sauf le
premier système.

Cordialement,

Jean-François

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Portees-vides-invisibles-tp7582098p7582103.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Bernard Meylan <[email-masked]>
Date: Wed, 14 Jan 2015 13:52:39 -0700 (MST)

Waow!! cette dernière solution est absolument parfaite à tous points de vue!

Pour Jean-Jacques: non, le fait de rémouver ( ;-) ) les empties staves
(faites pas attention, je viens de m'offrir une heure de Gotlib...) dans un
\context supprime justement ceux que je voudrais conserver. Il s'agir d'un
motet de Campra, 3 voix et continuo. Du début à la mesure 111, il y a bien
des mesures vides (avec silences), donc aussi des lignes entières vides
également, mais je veux les conserver telles quelles. Mais de la mesure 112
à la 195, l'éditeur de Campra, Ballard, sans doute pour gagner de la place,
n'utilise que 2 portées: celle de la basse continue bien sûr, et une autre,
dans laquelle vont se succéder les soli des 3 voix, les unes après les
autres, donc sans jamais chanter ensemble; il y a juste un changement de
clef à chaque voix (alto, ténor et... baryton!! clef de fa troisième ligne,
peu fréquente, celle-là...). Donc, il me faut rémouver les portées vides
uniquement de 112 à 195, et les récupérer ensuite. Voilà pourquoi la manip
de Seventies est parfaite...

Merci aussi à Pierre et JJacques!

Bernard

-----
Cordialement

Bernard
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Portees-vides-invisibles-tp7582098p7582104.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.