lilypond-devel
[Top][All Lists]
Advanced

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

Re: Reasons for cross-voice limitations?


From: Werner LEMBERG
Subject: Re: Reasons for cross-voice limitations?
Date: Mon, 30 Mar 2015 09:31:30 +0200 (CEST)

>> This would warrant a better mechanism to transplant spanners to a
>> different context: basically one would want a mechanism to listen
>> to slur endings in a different context than to slur starts.
>> Possibly optionally with a \once qualification.
>
> I think the idea of an analogy to \change Staff would be a good
> start.  Tell a slur that it is going to end in another voice,
> probably immediately before it is started.  Maybe something like
>
>   \once \override Slur.target = "another-voice-name"
>
> or
>
>   \once \override Slur.id = "my-changed-slur"
>   \once \override Slur.change-voice = ##t.
>
> The first one would require the target to be a named voice, the
> second would require all context to listen for that slur.
>
> (of course slurs and co. are only one part of the issue, dynamics
> and text spanners share the problem).

What about defining anchors?  Having a slur ending in a different
voice makes the `(' ... `)' notation extremely hard to read (if it
works at all).  Instead, I can imagine something like the following to
get a slur between voiceA and voiceB, starting on the second and
ending on the fourth quarter beat.

  in voiceA:  c4
              \connect #'Slur #'voiceB #'myanchor
              d e f

  in voiceB:  e4 f g
              \anchor #'myanchor
              a

The suggested `\connect' command would be generic enough to cover
(almost?) all spanner grobs; an optional fourth argument could hold
the necessary overrides.

As usual, this is brainstorming without knowing too much of the
internal Lilypond details :-)


     Werner



reply via email to

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