Subject: RE: Comment suspendre \RemoveAllEmptyStaves momentanément

From: <[email-masked]>
Date: Fri, 3 Mar 2023 10:47:27 +0100

Merci pour ta réponse Martial, cependant cela ne répond pas à ce que je voudrais voir la capture jointe. Avant la mesure 33, c’est d’abord la flûte seule pendant 8 mesures puis s’ajoutent les soprani, 8 mesures, puis les ténors 8 mesures puis les alti 8 mesures.  A partir de 33 les soprani se taisent et les basses entrent dans le système. Les soprani sont en silence 8 mesures et donc ici n’apparaissent plus. Puis, à partir de la mesure 47 et jusqu’à la fin toutes les portées jouent. Ce que je voudrais, c’est faire apparaitre R1. pour les soprani de la mesure 33 à la mesure 46 pour être certain qu’elles ne se trompent pas.  

Bien amicalement,

Daniel 

De : Martial R <[email-masked]> 
Envoyé : lundi 27 février 2023 13:33
À : [email-masked]
Cc : Lilypond Forum <[email-masked]>
Objet : Re: Comment suspendre \RemoveAllEmptyStaves momentanément

Bonjour, 

Est-ce que ceci répond à ta question ; 
Dans les partitions d'orchestre, il arrive que des instruments seuls ou des groupes d'instruments soient silencieux pendant un certain temps et leurs portées peuvent être supprimées pendant ce temps (avec \removeEmptyStaves). Lorsqu'ils jouent à nouveau, il est souvent préférable de montrer les portées de tous les instruments d'un tel groupe. Cela peut être fait en ajoutant le Keep_alive_together_engraver dans le groupeur (par exemple, un GrandStaff ou un StaffGroup). Dans l'exemple les violons sont muets dans le 2ème système et dans le 3ème système. Seul le premier violon joue la dernière mesure mais la portée du deuxième violon est également affichée.
https://lsr.di.unimi.it/LSR/Item?id=853 

code 
https://lsr.di.unimi.it/LSR/Snippet?id=853

Cordialement 
%---------------------------------------------

\layout {
  \context {
    \StaffGroup
    \consists Keep_alive_together_engraver
  }
  \context {
    \Staff
    \RemoveAllEmptyStaves
  }
}

\relative 
\new StaffGroup
<< 
   \new Staff \with { instrumentName = "1" shortInstrumentName =  "1" } {
    e'4 f g a \break
    b1 \break 
    a4 b c2
  }
  \new Staff  \with { instrumentName = "2"shortInstrumentName =  "2"  } { 
    c,4 d e f \break
    R1 \break
    f4 g c,2
  }
   \new Staff  \with { instrumentName = "3" shortInstrumentName =  "3"  }  { 
    R1 \break
    f4 g c,2 \break
    R1 
  }
%------------------------------

 

Le lun. 27 févr. 2023 à 11:45, <[email-masked] <mailto:[email-masked]> > a écrit :

Bonjour à Toute l’équipe,

J’utilise dans une partition ( Tourdion) dans laquelle les voix entrent séquentiellement, d’abord la flûte, puis s‘ajoutent les soprani, puis les ténors, puis les alti, puis les basses sans les soprani qui ont 8 mesures de silence, puis tous.

J’utilise \RemoveAllEmptyStaves qui fonctionne très bien mais je voudrais suspendre cette fonction au moment où les soprani doivent se taire. Comment faire à part décaler les mesures pour que les portées ne soient plus entièrement vides ? ce qui serait malheureux .

J’ai cherché dans le manuel mais je ne trouve pas. 

Merci de votre aide 

Daniel Bernair

-- 

Martial Rameaux

---

From: Xavier Scheuer <[email-masked]>
Date: Fri, 3 Mar 2023 11:35:40 +0100

On Fri, 3 Mar 2023 at 10:48, <[email-masked]> wrote:
>
> Merci pour ta réponse Martial, cependant cela ne répond pas à ce que je
voudrais voir la capture jointe. Avant la mesure 33, c’est d’abord la flûte
seule pendant 8 mesures puis s’ajoutent les soprani, 8 mesures, puis les
ténors 8 mesures puis les alti 8 mesures.  A partir de 33 les soprani se
taisent et les basses entrent dans le système. Les soprani sont en silence
8 mesures et donc ici n’apparaissent plus. Puis, à partir de la mesure 47
et jusqu’à la fin toutes les portées jouent. Ce que je voudrais, c’est
faire apparaitre R1. pour les soprani de la mesure 33 à la mesure 46 pour
être certain qu’elles ne se trompent pas.

Bonjour,

C'est toujours embêtant les questions sans exemple de code.

Je conseillerais d'ajouter
\override Staff.VerticalAxisGroup.remove-empty = ##f
dans la portée de soprano avant les mesures de silence à conserver.

Cordialement,
Xavier

-- 
Xavier Scheuer <[email-masked]>

---

From: Martial R <[email-masked]>
Date: Fri, 3 Mar 2023 11:45:29 +0100

Hélas Xavier
Cette solution n'a pas l'air de fonctionner

%------------------------------------
\version "2.24.1"
\layout {
  \context {
    \Staff
    \RemoveAllEmptyStaves
  }
}

music= \relative c' \repeat unfold  3  { c1 c1 c1 c1 c1 c1\break   }
musicS= \relative c'
{
  R1 R R R R R \break
 \override Score.VerticalAxisGroup.remove-empty = ##f
 \override Score.StaffSymbol.remove-empty = ##f
  R1 R R R R R\break
  g'1 g g g g g
}

\relative
\new StaffGroup
<<
  \new Staff \with { instrumentName = "1" shortInstrumentName =  "1" }
  {
    \music
  }
  \new Staff  \with { instrumentName = "2"shortInstrumentName =  "2"  }
  {
    \musicS
  }
  \new Staff  \with { instrumentName = "3" shortInstrumentName =  "3"  }
  {
    \music
  }

-- 
Martial Rameaux

---

From: Martial R <[email-masked]>
Date: Fri, 3 Mar 2023 12:00:56 +0100

Je vais vous paraître un peu brut  mais quand je ne trouve pas
je ruse, j'avance dans ma partition et je reviens dessus quand j'ai trouvé.
Astuce del'utilisation de Dynamics pour mettre un texte
%------------------------------
\version "2.24.1"
\layout {
  \context {
    \Staff
    \RemoveAllEmptyStaves
  }
}

music= \relative c' \repeat unfold  3  { c1 c1 c1 c1 \break   }
musicS= \relative c'
{
  R1 R R R \break
 \override Score.VerticalAxisGroup.remove-empty = ##f
 \override Score.StaffSymbol.remove-empty = ##f
  R1 R R R \break
  g'1 g g g
}

attentionOnjoue=  {
s1*4\break
s1_"les soprpani jouent dans 4 mesures" s1*3
}

\relative
\new StaffGroup
<<
  \new Staff \with { instrumentName = "1" shortInstrumentName =  "1" }
  {
    \music
  }
  \new Staff  \with { instrumentName = "2"shortInstrumentName =  "2"  }
  {
    \musicS
  }
  \new Dynamics { \attentionOnjoue }

-- 
Martial Rameaux

---

From: Xavier Scheuer <[email-masked]>
Date: Fri, 3 Mar 2023 14:18:55 +0100

Bonjour,

Effectivement, probablement qu'il n'est pas possible de modifier
VerticalAxisGroup en cours de route.
Ajouter multi-measure-interface et rest-interface à
Staff.keepAliveInterfaces fonctionne, mais seulement si le \set est mis
après le saut de ligne (et pas lors de celui-ci).

\set Staff.keepAliveInterfaces = #'(
  bass-figure-interface
  chord-name-interface
  cluster-beacon-interface
  dynamic-interface
  fret-diagram-interface
  lyric-syllable-interface
  note-head-interface
  tab-note-head-interface
  lyric-interface
  percent-repeat-interface
  multi-measure-interface
  rest-interface
)
après le premier R1 à conserver.

Cordialement,
Xavier

---

From: Martial R <[email-masked]>
Date: Fri, 3 Mar 2023 14:24:30 +0100

ha bravo, je cherchais une astuce de ce genre, mais ça dépasse les
limites de mes connaissances des arcanes de LilyPond !
top !

Le ven. 3 mars 2023 à 14:19, Xavier Scheuer <[email-masked]> a écrit :
> Effectivement, probablement qu'il n'est pas possible de modifier VerticalAxisGroup en cours de route.
> Ajouter multi-measure-interface et rest-interface à Staff.keepAliveInterfaces fonctionne, mais seulement si le \set est mis après le saut de ligne (et pas lors de celui-ci).
>

-- 
Martial Rameaux

---

From: Martial R <[email-masked]>
Date: Fri, 3 Mar 2023 14:28:59 +0100

ça donne ceci

Keep = \set Staff.keepAliveInterfaces = #'(
  bass-figure-interface
  chord-name-interface
  cluster-beacon-interface
  dynamic-interface
  fret-diagram-interface
  lyric-syllable-interface
  note-head-interface
  tab-note-head-interface
  lyric-interface
  percent-repeat-interface
  multi-measure-interface
  rest-interface
)

noKeep= \set Staff.keepAliveInterfaces = ##f

music= \relative c' \repeat unfold  5  { c1 c1 c1 c1 \break   }
musicS= \relative c'
{
  R1 R R R \break
  R1_"on joue dans 4 mesures"
  \Keep
  R R R \break
  g'1 g g g
  \noKeep
  R  R R R \break
  R \Keep R R R \break
  a a a a
}
%--------------------------------------

-- 
Martial Rameaux

---

From: <[email-masked]>
Date: Sat, 4 Mar 2023 18:18:39 +0100

Bon, pour vous aider à y voir plus clair voici le code complet et les fichiers … vk.ly appelé par le principal. . Cette complication est due au fait des danseurs : spécialisés dans les danses de Renaissance et par notre chef de chœur afin que cela dure un peu plus longtemps que le temps de la partition normale. Pour éviter que les chanteurs et danseurs ne se prennent les pieds dans les bretelles le chef a suggéré d’éclater cette partition. Je n’ai pas essayé, par manque de temps,  les dernières propositions de ceux qui ont cherché une solution. 

Bien amicalement,

Daniel Bernair

hé  

de : Xavier Scheuer <[email-masked]> 
Envoyé : vendredi 3 mars 2023 11:36
À : [email-masked]
Cc : [email-masked]; Lilypond Forum <[email-masked]>
Objet : Re: Comment suspendre \RemoveAllEmptyStaves momentanément

Bonjour,

Cordialement,

Xavier

-- 

Xavier Scheuer <[email-masked] <mailto:[email-masked]> >

---

From: <[email-masked]>
Date: Sat, 4 Mar 2023 19:05:15 +0100

Mer i à vous deux Martial et Xavier.

Dans la partie Soprani j’ai donc inséré ces instructions et cela fonctionne .

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

      R1.\set Staff.keepAliveInterfaces = #'(

  bass-figure-interface

  chord-name-interface

  cluster-beacon-interface

  dynamic-interface

  fret-diagram-interface

 lyric-syllable-interface

  note-head-interface

  tab-note-head-interface

  lyric-interface

  percent-repeat-interface

  multi-measure-interface

  rest-interface

)

R1.*7

\override Score.VerticalAxisGroup.remove-empty = ##f  \override Score.StaffSymbol.remove-empty = ##f

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

Merci, 

Daniel Bernair

De : Xavier Scheuer <[email-masked]> 
Envoyé : vendredi 3 mars 2023 14:19
À : [email-masked]
Cc : [email-masked]; Lilypond Forum <[email-masked]>
Objet : Re: Comment suspendre \RemoveAllEmptyStaves momentanément

Bonjour,

Cordialement,

Xavier

--

---

From: Martial R <[email-masked]>
Date: Sun, 5 Mar 2023 08:04:54 +0100

Bonjour

je me suis permis de simplifier le code de la partition (fichier joint)
Ces 2 fonctions  \mergeDifferentlyDottedOn et \mergeDifferentlyHeadedOn
sont inutiles ici puisque chaque voix est sur sa propre portée.
Pour la même raison, une seule voix par portée, il n'est pas
nécessaire d'instancier les voix et
d'utiliser \new Lyrics \lyricsto ...

Cordialement
-- 
Martial Rameaux

---

From: Martial R <[email-masked]>
Date: Sun, 5 Mar 2023 08:24:58 +0100

Oups j'ai fait des copier/coller des \with {}
et  instrumentName et shortInstrumentName n'étaient pas bons
voici les voix corrigées
Cordialement

-- 
Martial Rameaux

---

From: <[email-masked]>
Date: Mon, 6 Mar 2023 09:29:35 +0100

Bien entendu Martial, je cherche comme toi mais après avoir cherché des heures et des jours sans trouver, je fais appel au forum qui solutionne souvent très rapidement.
Bien amicalement.
Daniel Bernair 

-----Message d'origine-----
De : Martial R <[email-masked]> 
Envoyé : vendredi 3 mars 2023 12:01
À : Xavier Scheuer <[email-masked]>
Cc : [email-masked]; Lilypond Forum <[email-masked]>
Objet : Re: Comment suspendre \RemoveAllEmptyStaves momentanément

Je vais vous paraître un peu brut  mais quand je ne trouve pas je ruse, j'avance dans ma partition et je reviens dessus quand j'ai trouvé.
Astuce del'utilisation de Dynamics pour mettre un texte
%------------------------------
\version "2.24.1"
\layout {
  \context {
    \Staff
    \RemoveAllEmptyStaves
  }
}

attentionOnjoue=  {
s1*4\break
s1_"les soprpani jouent dans 4 mesures" s1*3 }

\relative
\new StaffGroup
<<

Le ven. 3 mars 2023 à 11:45, Martial R <[email-masked]> a écrit :
> > \override Staff.VerticalAxisGroup.remove-empty = ##f dans la portée 
> > de soprano avant les mesures de silence à conserver.
> >
> > Cordialement,
> > Xavier
> >
> > --

--
Martial Rameaux