lilypond-user
[Top][All Lists]
Advanced

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

Re: Is it right how oneVoice reverts direction settings?


From: Thomas Morley
Subject: Re: Is it right how oneVoice reverts direction settings?
Date: Wed, 11 Apr 2018 00:20:24 +0200

2018-04-10 22:45 GMT+02:00 Simon Albrecht <address@hidden>:
> Hello everybody,
>
> suppose I want to globally override the direction of slurs, as far as
> neutral voices go. If I do this:
>
> %%%%%%%%%%%%%%% \version "2.19.80" \layout {   \context {     \Voice
> \override Slur.direction = #UP   } } music = { c'( d' e' f') } {   \music
> \voiceTwo   \music   \oneVoice   \music } %%%%%%%%%%%%%%%%
>
> then in bar 3 the slur will go below the notes, i.e. \oneVoice reverted the
> direction without knowing that an override was in effect.
>
> I’d love to be able to redefine \voiceTwo & Co. such as to imply \temporary,
> but that’s not currently possible:
>
> warning: Cannot make PropertySet revertible.
>
> Does anybody have an idea for another solution?
>
> Best, Simon


\voiceXxx contain
\set Voice.graceSettings = ...

Setting a context-property revertible is not yet possible. All other
settings are overrides, so probably below may work.
Please be aware it's not tested beyond the given example!

foo =
#(define-music-function (mus)(ly:music?)
 (music-map
   (lambda (m)
     (if (music-is-of-type? m 'override-property-event)
         (begin
           (ly:music-set-property! m 'pop-first '())
           m)
         m))
   mus))

myVoiceOne = \foo \voiceOne
myVoiceTwo = \foo \voiceTwo
myVoiceThree = \foo \voiceThree
myVoiceFour = \foo \voiceFour

music = { c'4(-^ d'-1\startTrillSpan e' f'\stopTrillSpan) }


\markup \box \fill-line { "DEFAULT \\voiceXxx" }
{
  \music
  \voiceTwo
  \music
  \oneVoice
  \music
}

\markup \box \fill-line { "Custom \\voiceXxx" }

{
  \music
  \myVoiceTwo
  \music
  \oneVoice
  \music
}


Cheers,
  Harm



reply via email to

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