> Op 20 okt. 2017, om 18:32 heeft David Kastrup <d...@gnu.org> het volgende 
> geschreven:
> 
> Maurits Lamers <maur...@weidestraat.nl <mailto: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.

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

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

Reply via email to