lilypond-es
[Top][All Lists]
Advanced

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

Re: [lilypond-es] ocultar compases y luego mostrar


From: Francisco Vila
Subject: Re: [lilypond-es] ocultar compases y luego mostrar
Date: Thu, 3 Mar 2016 17:07:25 +0100

El día 3 de marzo de 2016, 12:19, Oliver Carrasco
<address@hidden> escribió:
> Buenos días,
> Trabajo en una partitura coral a 4 voces en la que necesito ocultar los
> pentagramas vacíos sólo hasta una parte de la obra y luego volver a mostrar
> las 4 voces aunque una tenga silencios, esto sería a partir de un momento
> hasta el final.
> hace días que estoy intentando buscar la manera de hacer que la función
> \RemoveEmptyStaves se pueda revertir o "apagar" en un momento determinado
> pero no he podido lograrlo.
> A alguien se le ocurre alguna manera de hacerlo?

Kieren McMillan dio una solución hace unos meses. Se puede hacer que
un silencio de compás completo no oculte un pentagrama (la instrucción
showMMRs en el ejemplo), aunque normalmente lo haría porque cuenta
como "pentagrama vacío". Después puede indicarse de nuevo que el
silencio de compás completo cuente como "pentagrama vacío" y las
pautas se volverán a ocultar (la instrucción hideMMRs).
Además, hay que indicar que se oculten todos, desde el primer sistema
(lo normal es no ocultar las pautas del primer sistema, aunque estén
vacías). Esto se hace con la propiedad remove-first del objeto
VerticalAxisGroup en el contexto de Staff.

Así pues, en el ejemplo siguiente hay cuatro pentagramas, en los tres
primeros compases únicamente el pentagrama superior tiene contenido.
Se ocultan todas las pautas vacías. A partir del cuarto compás se
muestran todos los pentagramas, incluso uno que solamente tiene
silencios.

La solución proviene de
https://lists.gnu.org/archive/html/lilypond-user/2015-04/msg00092.html

\layout {
  line-width = 5\cm
  \context {
    \Staff \RemoveEmptyStaves
    \override VerticalAxisGroup.remove-first = ##t
  }
}

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

hideMMRs = \unset Staff.keepAliveInterfaces\score {

  {
    \new ChoirStaff <<
      \new Staff { c'1 c' c' \break
                   c' \break
                   c' c'
      }
      \new Staff { R1 R R
                   R \showMMRs
                   R
                   d'
      }
      \new Staff { R1 R R e' e' e' }
      \new Staff { R1 R R f' f' f' }

    >>
  }
}


La forma de encontrar este tipo de soluciones aportadas por los
usuarios es consultar los archivos de la lista "grande", en
https://lists.gnu.org/archive/html/lilypond-user/

-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org , www.csmbadajoz.com

Attachment: document.png
Description: PNG image


reply via email to

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