lilypond-devel
[Top][All Lists]
Advanced

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

Re: \change Voice


From: Keith OHara
Subject: Re: \change Voice
Date: Sat, 25 Apr 2015 03:59:34 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Dan Eble <dan <at> faithful.be> writes:

> 
> Would it be hard to make \change Voice work as below without relying on
> the extra “NoteSequence” context?
> 
> \layout {
>   \context {
>     \name "Thread"
>     \type "Engraver_group"
>   }
>   \context {
>     \Voice
>     \accepts "Thread"
>     \defaultchild "Thread"
>   }
> }
> 

I think it would be hard.

The code uses the concept that \change... takes a context from one enclosing
context into another.  Usually there is no context like NoteSequence that
lives inside a Voice.

(The code in change-iterator.cc is written in a general way, so that \change
GrandStaff="b" finds the highest context below the enclosing GrandStaff and
moves that context to GrandStaff "b", but I don't think anything other than
\change Staff works in a useful way.)

We probably don't want Thread to be created by default, because then
all \overrides for the Voice need an explicit 'Voice'.

Once I read old old mailing list message about contexts called "threads"
that would live inside Voice, which might be a similar idea.  I think
people decided the idea caused too much complication.


The thing you want to change is the "outlet" of the sequential iterator.
So rather than a \change event that is acted upon by change-iterator.cc
you might want a partCombineStatus event that is acted upon by sequential-
iterator.cc.

That, though, would look similar to the current part-combine iterator.

reply via email to

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