Marc Hohl <[email protected]> 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.
--
David Kastrup
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user