2015-01-16 0:26 GMT+01:00 Thomas Morley <thomasmorle...@gmail.com>: > 2015-01-15 15:02 GMT+01:00 tisimst <tisimst.lilyp...@gmail.com>: >> On Wed, Jan 14, 2015 at 11:47 PM, Schneidy [via Lilypond] <[hidden email]> >> wrote: >> >> Hi Harm, >> >> 2015-01-15 3:22 GMT+01:00 Thomas Morley <[hidden email]>: >> >>> >>> foo = >>> #(define-music-function (parser location mus)(ly:music?) >>> (music-map >>> (lambda (m) >>> (if (music-is-of-type? m 'arpeggio-event) >>> (make-music >>> 'ArpeggioEvent >>> 'tweaks >>> (list >>> (cons 'arpeggio-direction >>> (ly:music-property m 'direction)))) >>> m)) >>> mus)) >>> >>> >>> \foo >>> \relative c'' { >>> \mark "sort of post-processing" >>> <g b d g>4\arpeggio >>> <g b d g>4^\arpeggio >>> <g b d g>4_\arpeggio >>> } >> >> >> I like this one. >> Cheers, >> Pierre >> >> >> +1! >> >> However, I'd rather not have to use another function (\foo) to do this. >> Otherwise, I don't think there's any benefit over what is currently required >> with \arpeggioArrowUp. Can't it be put directly into a command that supports >> the direction indicators? I can't seem to find in the documentation where >> the post-fix syntax is described. >> >> -Abraham > > > > The direction indicators _ and ^ are setting the 'direction, as their > name suggests ;). > Though the arpeggio-arrow is printed, if the _'arpeggio-direction_ is set! > Currently those are two different things. It may be discussable, if it > _should_ be this way, but it has some logic, if you think about it. > Nevertheless my 'foo'-function iterated through the music, setting > 'arpeggio-direction to the value of 'direction. > This is not very cheap, maybe better to use an engraver for this duty: > > \version "2.19.15" > > direction-to-arpeggio-direction-engraver = > #(lambda (context) > (let ((dir '())) > `((listeners > (arpeggio-event > . > ,(lambda (engraver event) > ;; Not sure about following 'set!' > ;; Is it save? > (set! dir (ly:event-property event 'direction))))) > (acknowledgers > (arpeggio-interface > . > ,(lambda (engraver grob source-engraver) > (set! (ly:grob-property grob 'arpeggio-direction) dir) > (set! dir '()))))))) >
%% c/p error, here the whole example: %%%%%%%%%%%%%%%%%%%% %% EXAMPLE %%%%%%%%%%%%%%%%%%%% \layout { \context { \Score \consists #direction-to-arpeggio-direction-engraver } } \relative c'' { <g b d g>4\arpeggio <g b d g>4^\arpeggio <g b d g>4_\arpeggio } _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user