Hi Harm, thank you for your suggestions. I will definitely have a closer look but I've realized that I have to postpone this task because it massively interferes with a related one I'm currently at.
So I'll probably only comment after some more time. Best Urs Am 17.03.2017 um 00:34 schrieb Thomas Morley: > 2017-03-16 22:51 GMT+01:00 Thomas Morley <[email protected]>: >> 2017-03-16 14:23 GMT+01:00 Urs Liska <[email protected]>: >>> Hi, >>> >>> I'm trying to write a function to push a note column like this: >>> >>> pushLeftBroken = >>> #(define-music-function ()() >>> #{ >>> \once \override NoteColumn.X-offset = 3 >>> #}) >>> >>> But I need to make that "3" depend on some characteristics of the actual >>> note column. Basically I need the width of the note column, including >>> attached accidentals. >>> >>> I know how to get to the accidental(s) within a note column, but if I'm >>> not mistaken there's no actual grob inside that. >>> >>> Probably music-function isn't the right approach? >>> >>> What I need is a way to say something like >>> >>> \once \override NoteColumn.X-offset = #(+ 3 >>> extent-of-all-accidentals-in-the-note-column) >>> >>> Any ideas? >>> TIA >>> Urs >> >> >> Hi Urs, >> >> here my thoughts about the topic so far. >> Although I'm afraid it will not help, because it has to be done >> before-line-breaking. >> >> wanted-value = 20 >> >> { >> c'1( \break >> \override NoteColumn.before-line-breaking = >> #(lambda (nc) >> ;; TODOs >> ;; add fall-backs if certain grobs are not present, i.e >> ;; (DotColumn, Arpeggio, AccidentalPlacement) >> (let* ((dot-col (ly:note-column-dot-column nc)) >> (acc-placement (ly:note-column-accidentals nc)) >> (common-ref >> (ly:grob-common-refpoint nc acc-placement X)) >> (x-length-of-accs >> (interval-length >> (ly:relative-group-extent >> (map last (ly:grob-object acc-placement 'accidental-grobs)) >> common-ref >> X)))) >> >> (for-each >> (lambda (el) >> (ly:grob-translate-axis! >> el >> (+ x-length-of-accs wanted-value) >> X)) >> (filter >> (lambda (g) (ly:grob? g)) >> (list >> acc-placement >> dot-col >> nc))))) >> >> >> <cis'' dis'' fis'' gis''-1\2>2)\arpeggio ^"foo" >> } >> >> Cheers, >> Harm > Probably: > > { > c'1( \break > \override NoteColumn.after-line-breaking = > #(lambda (nc) > (ly:grob-translate-axis! (ly:grob-parent nc X) 5 X) > ;; uncomment for viewing > ;(ly:grob-set-property! > ; (ly:grob-parent nc X) > ; 'stencil > ; ly:paper-column::print) > ) > > > <cis'' dis'' fis'' gis''-1\2>2)\arpeggio ^"foo" > } > > Not tested beyond the above example, though. > > Cheers, > Harm -- [email protected] https://openlilylib.org http://lilypondblog.org _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
