Charles Winston <[email protected]> writes:

>> On Aug 14, 2017, at 1:20 PM, David Kastrup <[email protected]> wrote:
>> 
>> Charles Winston <[email protected]> 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).
>
> I believe these actually are stream events.

It doesn't matter what you believe.  After

> chordVar = \chordmode { c1:m7 }
> 
> markupVar = \markup { “min7” }
> 
> #(chordmode-to-exceptions chordVar markupVar)

chordVar most certainly is a music expression rather than a stream
event.  And chordmode-to-exceptions is a confused mess that sometimes
calls ly:music-property and sometimes ly:event-property on its
constituents.  There is no input (apart from empty chords) that it will
process sensibly unless your branch messes up \chordmode completely and
generates a mishmash of stream events and music expressions.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to