[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Passing music objects into scheme functions
From: |
David Kastrup |
Subject: |
Re: Passing music objects into scheme functions |
Date: |
Mon, 14 Aug 2017 19:32:33 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Charles Winston <address@hidden> writes:
>> 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).
>
> 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