Maurits Lamers <maur...@weidestraat.nl> writes:

> Hi all,
>
> I am trying to extend the default event-listener.ly to also include
> information about in which voice a specific note is being played.
> When the voice is defined using 
>
> \new Voice = voicename
>
> I can retrieve the retrieve that name through (ly:context-id
> (ly:translator-context engraver)).
> When the voice is defined in an anonymous way context-id is an empty string. 
> I have been trying to set the context-id when none is set using a
> counter, but that fails because of an "missing typecheck for property
> 'context-id'" error.
> I tried to use both a normal list as well as an asoc list to keep
> track of the different Voice contexts in order to tell them apart but
> I haven't been able to get that to work.
>
> I know that when lyrics are added, it is possible to refer to those
> anonymous voices by using "1" etc.

That's nonsense.  Voices in a << ... \\ ... \\ >> construct are not
anonymous but named "1", "2", "3" by default, and you can refer to
those.  But this has nothing whatsoever to do with lyrics.

> I would like to be able to mark a voice in Scheme in such a way that I
> can print to which voice a certain note belongs. Could anyone give a
> clue on how to achieve that?

Contexts are objects with identity.  You can just create something like

(define context-id (make-object-property))

And then you can set! and fetch (context-id ctx).


-- 
David Kastrup

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to