Wow, this is perfect, thank you so much! http://i.imgur.com/pqHVtXr.png - looks so nice.
Definitely saving this, so I never lose it! Pozdrawiam, Krzysztof Gutowski 2017-04-16 14:25 GMT+02:00 Thomas Morley <thomasmorle...@gmail.com>: > Hi Krzysztof , > > 2017-04-15 20:11 GMT+02:00 kmg <krzysztof.kolor...@gmail.com>: > > Hey, I'm working on re-typing some educational notes and I'm wondering if > > maybe someone had this problem and also came up with some Scheme to deal > > with this. > > > > http://i.imgur.com/T7z8Ty7.png - this is the source; > > > > http://i.imgur.com/IGocUKW.png - this is what I came up with (nevermind > > wrong notes) > > > > So, I'm basically using #parch scheme which I luckily found on german > > Lilypond forums (sadly seems to be down now).. > > I'm pretty furious about that ... > > > scheme for it is the > > following: > > > > parch = #(define-music-function (parser location gap) (number?) > > #{ > > \once \override Arpeggio.stencil = #(lambda (grob) > > (ly:stencil-add > > (ly:arpeggio::brew-chord-slur grob) > > (ly:stencil-translate-axis > > (ly:stencil-rotate (ly:arpeggio::brew-chord-slur grob) 180 0 0) > > gap X))) > > \once \override Arpeggio.X-extent = #(lambda (grob) > > (ly:stencil-extent (ly:arpeggio::brew-chord-slur grob) X)) > > \once \override Arpeggio.positions = #(lambda (grob) > > (interval-widen (ly:arpeggio::calc-positions grob) 1.5)) > > $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent))) > > #}) > > > > // usage: \parch #<distance of the right bracket> > > > > which I kinda made work by doing the chord on d# note with greater range, > > but with the upper note hidden, so the parenthese is not too small. > However, > > if I make the chord with super low note, staff will stretch and it's not > > working. > > > > I've been thinking, would there be an easy way to do this? I already use > > handy Scheme for Box markup (http://lsr.di.unimi.it/LSR/Item?id=953). I > > think it's superior in the sense that you can place it basically anywhere > > and offset it like you want it. So there are no problems with having to > do > > some gimmicks to make it work. > > > > Thought that chords will be trickier, but it seems that using harmony > scheme > > from Repository and doing \center-column in \figuremode with markups does > > the job nicely. > > > > I sometimes wonder if it should be that tricky (I mean, having to learn > > Scheme to do some things).. but then, I wonder if such thing would be > doable > > at all in other notation programs. . > > > > Anyway, thanks for your input guys and.. Happy Easter! > > > > > > Pozdrawiam, > > Krzysztof Gutowski > > > How about below (Hijacking GridPoint and GridLine)? > > Usage should be clear from doc-string/comments/example. If not, ask back. > > \version "2.19.56" > > parentheses = > #(define-music-function (shorten-pair padding dir) > ((pair? '(0 . 0)) number? ly:dir?) > "@var{dir} sets the opening/closing direction of the parentheses. > @var{padding} moves the parentheses in X-axis direction, recognized by > the > spacing-engine. See limitations below, though. > The optional @var{shorten-pair} may be used to adjust the parentheses in > Y-axis direction. > The final parentheses will cover all Staffs of the current system. > Limitation: > Accidentals, dots, etc are not taken into account. > To avoid collisions adjusting @var{padding} neds to be done manually." > #{ > \once \override Staff.GridPoint.X-offset = $padding > \once\override Score.GridLine.shorten-pair = $shorten-pair > \once \override Score.GridLine.stencil = > #(lambda (grob) > (let* ((stil (ly:grid-line-interface::print grob)) > (stil-y-ext (ly:stencil-extent stil Y)) > (thick (ly:grob-property grob 'thickness 0.1)) > ;; hijacking shorten-pair > (shorten-pair (ly:grob-property grob 'shorten-pair '(0 . > 0))) > ;; GridLine goes from the middle of top to bottom staff > ;; Thus we extend it by 2 (the default staff-space) and add > a > ;; little extra over-shoot, i.e 0.5. > ;; The new parentheses starts at '(- dir) in X-axis > direction to > ;; avoid collisions with preceding grobs > ;; The values are tweakable via overrides for > ;; Score.GridLine.shorten-pair. > ;; TODO get staff-space from layout > (start > (cons (- dir) > (- (car stil-y-ext) 2.5 (- (car shorten-pair))))) > (stop > (cons (- dir) > (+ (cdr stil-y-ext) 2.5 (- (cdr shorten-pair))))) > ;; see 'make-tie-stencil' from stencil.scm > (height-limit 0.7) > (ratio 0.33) > ;; taken from bezier-bow.cc > (F0_1 > (lambda (x) (* (/ 2 PI) (atan (* PI x 0.5))))) > (slur-height > (lambda (w h_inf r_0) (F0_1 (* (/ (* w r_0) h_inf) > h_inf)))) > (width (abs (- (cdr start) (cdr stop)))) > (angularity 0.5) > (height (slur-height width height-limit ratio))) > (make-bow-stencil > start > stop > thick angularity height (- dir)))) > #}) > > > > \layout { > \context { > \Staff > \consists "Grid_point_engraver" > %% adjust the value if needed > gridInterval = #(ly:make-moment 1/64) > } > \context { > \Score > \consists "Grid_line_span_engraver" > \override GridLine.stencil = ##f > } > } > > \new StaffGroup > << > \relative { > \parentheses #-2.5 #LEFT > cis''2 > \parentheses #'(9 . 0) #-1.5 #LEFT > d > > \parentheses #'(9 . 9) #-1.5 #LEFT > c > \parentheses #'(9 . 9) #2.5 #RIGHT > d > \parentheses #'(9 . 0) #2.5 #RIGHT > c > \parentheses #2.5 #RIGHT > d > } > \relative { c'' d c d c d } > \relative { c'' d c d c d } > >> > > > HTH and Happy Easter, > Harm >
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user