lilypond-user
[Top][All Lists]
Advanced

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

Re: extending event-listener.ly to include a (numerical) voice id


From: David Kastrup
Subject: Re: extending event-listener.ly to include a (numerical) voice id
Date: Fri, 20 Oct 2017 18:32:22 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Maurits Lamers <address@hidden> 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



reply via email to

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