lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: adding 'HarmonicEvent?


From: Marc Hohl
Subject: Re: adding 'HarmonicEvent?
Date: Tue, 21 Sep 2010 08:10:30 +0200
User-agent: Thunderbird 2.0.0.24 (X11/20100317)

David Kastrup schrieb:
Marc Hohl <address@hidden> writes:

Hello all,

I try to write a function that changes its argument to harmonics,
so
\makeHarmonic c4

should have the same effect as
<c\harmonic>4

I read Notation Reference 6.3.4, but the 'HarmonicEvent is
deep inside the 'elements list, so I think the only way to get this done
is to read the full structure and rebuild it, including the 'HarmonicEvent.

I remembered to have seen something similar in ly/chord-repetition-init.ly
and tried to modify the code here, but after struggling with the code
for about an hour or so, it still doesn't work at all. Can somebody please
explain to me how I can rebuild the argument to \makeHarmonic so that
in includes
the desired 'HarmonicEvent entry?

Well, I would have suggested something like

makeHarmonic =
#(define-music-function (parser location music) (ly:music?)
  (let ((event (car (ly:music-property music 'elements))))
   #{
  < #(ly:export (ly:event-property $event 'pitch)) \harmonic>
    #(ly:export (ly:event-property $event 'duration)) #}))

{ <c\harmonic>4 \makeHarmonic c4 }


Except that it segfaults.
Hm, some code parts I came up with seqfaulted, too, but they were much longer ...
so while not working, it is some sort of improvement ;-)

Marc




reply via email to

[Prev in Thread] Current Thread [Next in Thread]