[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
document.png
Description: PNG image