> 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