lilypond-user
[Top][All Lists]
Advanced

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

Re: "Ghost" trills


From: David Sumbler
Subject: Re: "Ghost" trills
Date: Fri, 07 Aug 2020 14:10:45 +0100

On Thu, 2020-08-06 at 22:11 +0200, Rutger Hofman wrote:

> P.S. When you wrote 'Vaughan', did you actually mean 'Rutger'?

Yes, I certainly did.  Please accept my humble apologies.  I knew
perfectly well who had written the tutorial, but clearly my brain
dropped momentarily out of gear when I started writing my email.

> I think you have stumbled into one of the (many) limitations of 
> partCombine; it routinely messes up if a spanner stops at the end of
> a new partCombine mode. The problem is that these mode changes 
> (partCombine "Chords" mode to partCombine "Apart" mode at bar 3, and 
> back to partCombine "Chords" mode at bar 4) are implicit, and I
> haven't found a way to insert an extra explicit spanner end token
> (like \! for hairpins, or \stopTrillSpan for trills, etc. etc.).
> 
> However, in this case, it happens to be easy to fix by surrounding
> the second line of instOne with \partCombineApart ....
> \partCombineAutomatic:
> 
> instOne = \relative {
>    a'1 | a | a |
>    \partCombineApart a1 \startTrillSpan | a1 \stopTrillSpan |
>    \partCombineAutomatic a | a | a | a | a | a | a |
> }
> 
> If such a fix doesn't exist, one can revert to PMPChords and PMPApart
> as in my tutorial. These do allow insertion of an explicit spanner
> end token.

I confess that it hadn't occurred to me that one could add
\partCombineApart etc. in the instrumental parts, although it seems
obvious now you have suggested it.

In the actual clarinet parts where I first met the problem, this solves
the it.

However, I think that perhaps I should investigate your pmp.ily, as it
is highly likely that I shall need it at some point.

Thanks for your help.

David

> On 8/6/20 7:11 PM, David Sumbler wrote:
> > \version "2.21.2"
> > 
> > instOne = \relative {
> >    a'1 | a | a |
> >    a1 \startTrillSpan | a1 \stopTrillSpan |
> >    a | a | a | a | a | a | a |
> > }
> > 
> > instTwo = \relative {
> >    f'1 | f | f |
> >    f2 \startTrillSpan f2 \startTrillSpan | f1 \stopTrillSpan |
> >    f | f | f | f | f | f | f |
> > }
> > 
> > targetStaff = #(define-scheme-function (ctx) (string?)
> >    #{
> >      \set Staff.keepAliveInterfaces = #'()
> >      \context Staff = #ctx { \unset Staff.keepAliveInterfaces }
> >    #})
> > 
> > instScorePlan = {
> >    \targetStaff clarinetI s1*4
> >    \targetStaff bothClarinets s1*3
> >    \break s1*5 \break s1*5
> > }
> > 
> > \score {
> >      \new StaffGroup \with {
> >      \consists "Keep_alive_together_engraver" }
> >    <<
> >      \new Staff = bothClarinets \with {
> >        \RemoveAllEmptyStaves
> >        \override VerticalAxisGroup.remove-layer = 40 }
> >      << \partCombine \instOne \instTwo \instScorePlan >>
> >      %% Clarinets on 2 staves:
> >      \new Staff = clarinetI \with {
> >        \RemoveAllEmptyStaves
> >        \override VerticalAxisGroup.remove-layer = 20 }
> >      << \instOne \instScorePlan >>
> >      \new Staff = clarinetII \with {
> >        \RemoveAllEmptyStaves
> >        \override VerticalAxisGroup.remove-layer = 20 }
> >       << \instTwo \instScorePlan >>
> >    >>
> > }





reply via email to

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