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: Maurits Lamers
Subject: Re: extending event-listener.ly to include a (numerical) voice id
Date: Fri, 20 Oct 2017 20:38:17 +0200


Op 20 okt. 2017, om 18:32 heeft David Kastrup <address@hidden> het volgende geschreven:

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.

But those values are not retrievable through (ly:context-id context), are they? 

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).

That works perfect indeed. Thanks a lot!

cheers

Maurits


reply via email to

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