#(define (script x) (make-music 'TextScriptEvent 'direction #'DOWN 'text (markup #:vcenter #:circle #:finger x)) ) #(define (add-script m x) (if (equal? (ly:music-property m 'name) 'EventChord) (set! (ly:music-property m 'elements) (cons (script x) (ly:music-property m 'elements))) (let ((es (ly:music-property m 'elements)) (e (ly:music-property m 'element))) (map (lambda (y) (add-script y x)) es) (if (ly:music? e) (add-script e x)))) m) Strd = #(define-music-function (parser location script music ) ( string? ly:music? ) (add-script music script)) strd = #(define-music-function (parser location str music) (string? ly:music?) (let ((spanned-music (let ((first-element #f) (last-element #f) (first-found? #f)) (music-map (lambda (m) (if (equal? (ly:music-property m 'name) 'EventChord) (begin (if (not first-found?) (begin (set! first-found? #t) (set! first-element m))) (set! last-element m))) m) music) (if first-found? (begin (set! (ly:music-property first-element 'elements) (cons (make-music 'TextSpanEvent 'span-direction -1) (ly:music-property first-element 'elements))) (set! (ly:music-property last-element 'elements) (cons (make-music 'TextSpanEvent 'span-direction 1) (ly:music-property last-element 'elements))))) music))) (make-music 'SequentialMusic 'origin location 'elements (list #{ \once \override TextSpanner #'font-size = #-3 \once \override TextSpanner #'direction = #-1 \once \override TextSpanner #'style = #'solid \once \override TextSpanner #'dash-period = #4 \once \override TextSpanner #'bound-details = #'((left ( Y . 0)) (right (Y . 0) (spanner . 20)(attach-dir . 1))) \once \override TextSpanner #'bound-details #'left #'text = \markup { \vcenter \circle \finger $str } \once \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'( 0 . .7) }#} spanned-music)))) #(define (script x) (make-music 'TextScriptEvent 'direction #'UP 'text (markup #:vcenter #:circle #:finger x)) ) #(define (add-script m x) (if (equal? (ly:music-property m 'name) 'EventChord) (set! (ly:music-property m 'elements) (cons (script x) (ly:music-property m 'elements))) (let ((es (ly:music-property m 'elements)) (e (ly:music-property m 'element))) (map (lambda (y) (add-script y x)) es) (if (ly:music? e) (add-script e x)))) m) Str = #(define-music-function (parser location script music ) ( string? ly:music? ) (add-script music script)) str = #(define-music-function (parser location str music) (string? ly:music?) (let ((spanned-music (let ((first-element #f) (last-element #f) (first-found? #f)) (music-map (lambda (m) (if (equal? (ly:music-property m 'name) 'EventChord) (begin (if (not first-found?) (begin (set! first-found? #t) (set! first-element m))) (set! last-element m))) m) music) (if first-found? (begin (set! (ly:music-property first-element 'elements) (cons (make-music 'TextSpanEvent 'span-direction -1) (ly:music-property first-element 'elements))) (set! (ly:music-property last-element 'elements) (cons (make-music 'TextSpanEvent 'span-direction 1) (ly:music-property last-element 'elements))))) music))) (make-music 'SequentialMusic 'origin location 'elements (list #{ \once \override TextSpanner #'font-size = #-3 \once \override TextSpanner #'direction = #0 \once \override TextSpanner #'style = #'solid \once \override TextSpanner #'dash-period = #0.4 \once \override TextSpanner #'bound-details = #'((left (Y . 0)) (right (Y . 0) (padding . 0.25) (attach-dir . 2))) \once \override TextSpanner #'bound-details #'left #'text = \markup { \vcenter \circle \finger $str } \once \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'( 0 . -.7) }#} spanned-music)))) cofon ={\cadenzaOff \bar "|"\cadenzaOn} cofn ={\cadenzaOff \bar "|"\cadenzaOn} snu = { \set stringNumberOrientations = #'(up) } snd = { \set stringNumberOrientations = #'(down) } snl = { \set stringNumberOrientations = #'(left) } snr = { \set stringNumberOrientations = #'(right)} fou = { \set fingeringOrientations = #'(up) } fod = { \set fingeringOrientations = #'(down) } fol = { \set fingeringOrientations = #'(left) } for = { \set fingeringOrientations = #'(right) } sfou = { \set strokeFingerOrientations = #'(up) } sfod = { \set strokeFingerOrientations = #'(down) } sfol = { \set strokeFingerOrientations = #'(left) } sfor = { \set strokeFingerOrientations = #'(right) } gt = \override Glissando #'breakable = ##T gl = \glissando gT = \override Glissando #'thickness = #2 ignore = \override NoteColumn #'ignore-collision = ##t \version "2.12.2" \paper{ #(set-paper-size "a4") bottom-margin = 1.2\cm top-margin = 0.4\cm ragged-last-bottom = ##f ragged-bottom = ##f between-system-space = 5\cm %{between-system-padding = #5%} } manualBeam = #(define-music-function (parser location beg-end) (pair?) #{ \once \override Beam #'positions = #$beg-end #}) \layout { indent = 0.5\cm } #(set-global-staff-size 22) #(define (calc-custom-stroke-text grob) (let ((text (ly:event-property (event-cause grob) 'text))) (if (string? text) (markup #:center-column (#:lower 2.5 "^" text)) (stroke-finger::calc-text grob)))) #(define (make-stroke-finger location finger) (apply make-music (append (list 'StrokeFingerEvent 'origin location) (if (string? finger) (list 'text finger) (list 'digit finger))))) da = #(define-music-function (parser location) () (make-stroke-finger location "a")) dm = #(define-music-function (parser location) () (make-stroke-finger location "m")) di = #(define-music-function (parser location) () (make-stroke-finger location "i")) dp = #(define-music-function (parser location) () (make-stroke-finger location "p")) dan = #(define-music-function (parser location) () (make-stroke-finger location 4)) dmn = #(define-music-function (parser location) () (make-stroke-finger location 3)) din = #(define-music-function (parser location) () (make-stroke-finger location 2)) dpn = #(define-music-function (parser location) () (make-stroke-finger location 1)) \new Staff << \new Voice \relative c, { \clef "G_8" \key e \minor \time 3/4 \set strokeFingerOrientations = #'(up) \override StrokeFinger #'avoid-slur = #'inside \override StrokeFinger #'add-stem-support = ##t \override StrokeFinger #'font-size = #0 \override StrokeFinger #'text = #calc-custom-stroke-text %{ \once \override Staff.TimeSignature #'stencil = ##f%} \override StringNumber #'staff-padding = #'() \fol \snd \voiceOne \override Slur #'height-limit = #4 %1 rigo \stemUp \partial 4*1 4| %1 \manualBeam #'(6.5 . 6.5) 8 [ \once\override StrokeFinger #'extra-offset = #'(0 . 2) \sfou \acciaccatura \stemUp\snd\once\override Glissando #'bound-details #'left #'padding = #1 \once \override Glissando #'bound-details #'right #'padding = #2.5 16\gl \for\override Glissando #'bound-details #'right #'padding = #2 \override Glissando #'bound-details #'left #'padding = #2.2 < fis dis-3 >\gl] \fol< g e-3 > 8 [ \override Glissando#'bound-details #'right #'padding = #1 \override Glissando #'bound-details #'left #'padding = #1 < b g-2> 16\gl \for\override Glissando#'bound-details #'right #'padding = #2 \override Glissando #'bound-details #'left #'padding = #2.2 < ais fis-2 >\gl ] \override Glissando#'bound-details #'right #'padding = #2 \override Glissando #'bound-details #'left #'padding = #1 \fol< b g-2 > 8\gl [ ] | %2 < fis dis > 8 [ < fis dis > 16 < eis cis > ] < fis dis > 8 [ 16 < gis eis! > ] < a fis > 8 [ ]|\break\noPageBreak %3 < g e > 8 [ < g e > 16 < fis dis > ] < g e > 8 [ < b g > 16 ] < b g > 8 [ < g e > ] | %4 < a fis > 8 [ < a fis > 16 < gis eis > ] < a fis > 8 [ < fis d! > ] < g eis > [ < a fis > ] |\break\noPageBreak %5 < g b > 8 [ 16 \once \override NoteColumn #'force-hshift = #1 ] 8 [ 16 ] 8 [ ] | %6 8 [ 16 ] 8 [ 16 ] 8 [ ]|\break\noPageBreak %7 8 [ 16 ] 8 [ ] [ ] | %8 8 r r4 r8 b | \break\noPageBreak %9 \manualBeam #'(6.5 . 6.5) 8 [ \acciaccatura a'16 ] 8 [ 16 ] 8 [ ] | %10 8 [ 16 ] 8 [ 16 ] 8 [ ]| \break\noPageBreak %11 8 [ 16 ] 8 [ 16 ] 8 [ < g e> ] | %12 < fis a > 8 [ < a fis > 16 < gis eis > ] < a fis> 8 [ ] < g e> [ < fis a> ] |\break\noPageBreak %13 < b g > 8 [ < b g > 16 < ais fis > ] < b g > 8 [ < d b > 16 < cis ais > ] < d b > 8 [ < b g > ] | %14 < a fis > 8 [ < a fis > 16 < gis eis > ] < fis a > 8 [ < a c > ] < b gis! > [ < a fis > ] |\break\noPageBreak %15 b8\rest < g e b > r < fis c a > r < dis a fis > | %16 < e g, > 4 s s |\pageBreak \bar "||" } \new Voice %{\relative c,%} { \clef "G_8" \key e \minor \time 3/4 \voiceTwo \set strokeFingerOrientations = #'(down) \override StrokeFinger #'avoid-slur = #'inside \override StrokeFinger #'add-stem-support = ##t \override StrokeFinger #'font-size = #0 \override StrokeFinger #'text = #calc-custom-stroke-text \fol %note %1 rigo \partial 4*1 \stemDown \snr 4 | %1 \stemDown e, 8 c\rest r4 r8 e, | %2 \stemDown b, 8 r r4 r8 b, | %3 \stemDown e, 8 r r4 r8 e | %4 \stemDown d 8 r r \once \override NoteColumn #'force-hshift = #0.3 c' [ b a ] | %5 \stemDown g 8 r r4 r8 g | %6 \stemDown d 8 r r4 r8 dis | %7 \stemDown e 8 r r g [ a ais ] | %8 \stemDown b 8 [ \acciaccatura c'16 b ais ] b 8 [ b' ] \stemDown b, r | %9 \stemDown e, 8 r r4 r8 e, | %10 \stemDown b, 8 r r4 r8 b, | %11 \stemDown e, 8 r r4 r8 e | %12 \stemDown d 8 r r \once \override NoteColumn #'force-hshift = #0.3 c' [ b a ] | %13 \stemDown g 8 r r4 r8 g | %14 \stemDown d 8 r r4 r8 dis | %15 \stemDown e 8 r a, r b, r | %16 r8 \stemDown e e, 4 r | \bar "||" } \new Voice { \clef "G_8" \key e \minor \time 3/4 \voiceThree \set strokeFingerOrientations = #'(up) \override StrokeFinger #'avoid-slur = #'inside \override StrokeFinger #'add-stem-support = ##t \override StrokeFinger #'font-size = #0 \override StrokeFinger #'text = #calc-custom-stroke-text %1 \partial 4*1 \hideNotes \override NoteColumn #'force-hshift = #0 s4 s8 \override Glissando #'bound-details #'left#'padding = #0 \once \override Glissando #'bound-details #'right #'padding = #0.5 \once \override Glissando #'bound-details #'right #'padding = #1 g'16\gl \once\override Glissando#'bound-details #'right #'padding = #2 \once\override Glissando #'bound-details #'left #'padding = #2.2 \for \gl\fol8 \once\override Glissando#'bound-details #'right #'padding = #1 \once\override Glissando #'bound-details #'left #'padding = #1 16\gl \for\gl\fol8 } >>