Hi Jaime, On Sat, Jan 3, 2015 at 6:02 PM, Jaime E Oliver <jaime.oliv...@gmail.com> wrote:
> Hi everyone, > > I am not sure if this is a bug, or just improper use, but, when using a > single grace note expression with two notes such as: > \slashedGrace {a'32 a32} > I get the expected result. > > But when I use two subsequent ones such as: > \slashedGrace {a'32} \slashedGrace {a32} > I get the wrong score representation. > There is no support (as far as I know) for slashed grace note groups. There is a workaround, however. Try this: \version "2.19.15" %%%%% A better slash snippet %%% % The argument `ang' is the amount of slant, expressed in degrees. % % Stem-fraction is the distance between the point the slash crosses the stem % and the notehead-end of the stem. It is expressed as a number between 0 and 1. % % The argument `protrusion' is the extra distance the slash % extends beyond its intersection with stem and beam slash = #(define-music-function (parser location ang stem-fraction protrusion) (number? number? number?) (remove-grace-property 'Voice 'Stem 'direction) ; necessary? #{ \once \override Stem #'stencil = #(lambda (grob) (let* ((X-parent (ly:grob-parent grob X)) (is-rest? (ly:grob? (ly:grob-object X-parent 'rest)))) (if is-rest? empty-stencil (let* ((ang (degrees->radians ang)) ; We need the beam and its slope so that slash will ; extend uniformly past the stem and the beam (beam (ly:grob-object grob 'beam)) (beam-X-pos (ly:grob-property beam 'X-positions)) (beam-Y-pos (ly:grob-property beam 'positions)) (beam-slope (/ (- (cdr beam-Y-pos) (car beam-Y-pos)) (- (cdr beam-X-pos) (car beam-X-pos)))) (beam-angle (atan beam-slope)) (stem-Y-ext (ly:grob-extent grob grob Y)) ; Stem.length is expressed in half staff-spaces (stem-length (/ (ly:grob-property grob 'length) 2.0)) (dir (ly:grob-property grob 'direction)) ; if stem points up. car represents segment of stem ; closest to notehead; if down, cdr does (stem-ref (if (= dir 1) (car stem-Y-ext) (cdr stem-Y-ext))) (stem-segment (* stem-length stem-fraction)) ; Where does slash cross the stem? (slash-stem-Y (+ stem-ref (* dir stem-segment))) ; These are values for the portion of the slash that ; intersects the beamed group. (dx (/ (- stem-length stem-segment) (- (tan ang) (* dir beam-slope)))) (dy (* (tan ang) dx)) ; Now, we add in the wings (protrusion-dx (* (cos ang) protrusion)) (protrusion-dy (* (sin ang) protrusion)) (x1 (- protrusion-dx)) (y1 (- slash-stem-Y (* dir protrusion-dy))) (x2 (+ dx protrusion-dx)) (y2 (+ slash-stem-Y (* dir (+ dy protrusion-dy)))) (th (ly:staff-symbol-line-thickness grob)) (stil (ly:stem::print grob))) (ly:stencil-add stil (make-line-stencil th x1 y1 x2 y2)))))) #}) \new Staff { \relative c'' { a4 \grace { \slash 50 0.6 1.0 a'32 a } d,4 d2 } } Code comes from the following discussion: http://www.mail-archive.com/lilypond-user%40gnu.org/msg86544.html Hope this helps, David
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user