[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Passing music objects into scheme functions
From: |
Charles Winston |
Subject: |
Re: Passing music objects into scheme functions |
Date: |
Mon, 14 Aug 2017 13:23:51 -0400 |
> On Aug 14, 2017, at 1:20 PM, David Kastrup <address@hidden> wrote:
>
> Charles Winston <address@hidden> writes:
>
>> Here is the function inside chord-name.scm
>>
>>
>> ;; chordmode-to-exceptions
>> (define-safe-public (chordmode-to-exceptions chord markup)
>> "Transform event-chord entered in chord mode to alist
>> entry in chordSemanticsNameExceptions list
>> "
>> (define (is-semantics-event? x)
>> (ly:in-event-class? x 'chord-semantics-event))
>
> Event classes are for stream events, not for music expressions.
>
>> (define (get-semantics chord)
>> (let* ((elts (ly:music-property chord 'elements))
>> (semantics-event (filter is-semantics-event? elts))
>> (semantics-list (ly:event-property semantics-event
>> 'chord-semantics)))
>
> ly:event-property is for stream events, not for music expressions.
>
>> semantics-list))
>> (list (cons (get-semantics chord) markup)))
>
> Stream events are generated from music expressions during iteration of
> music expressions (the interpretation phase making use of engravers
> etc).
>
> --
> David Kastrup
I believe these actually are stream events. Take a look at the branch I linked
to. I added a chord-semantics-event as a new stream event, which iterates
correctly and is used to create chord-names without the pitches.
Charles