Ciao a tutti!
Non i pare che ci sia la possibilità di avere un glissando doppio con un solo
comando ma è necessario impostare una \voice per glissando.
La mia domanda è questa: è davvero così o sono io che ho preso un granchio?
Grazie!
--
oiram/bin/selom
#(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 <b''-0-\dm>4|
%1
\manualBeam #'(6.5 . 6.5) <e-3\3-\di> 8 [ \once\override StrokeFinger #'extra-offset = #'(0 . 2) \sfou \acciaccatura<a-4>
\stemUp\snd\once\override Glissando #'bound-details #'left #'padding = #1 \once \override Glissando
#'bound-details #'right #'padding = #2.5 <g-2-\dmn e-3\3-\din> 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 [ <e,\3-3 g-2 > ] |
%2
< fis dis > 8 [ < fis dis > 16 < eis cis > ] < fis dis > 8 [ <a fis > 16 < gis eis! > ] < a fis > 8 [
<fis dis >]|\break\noPageBreak
%3
< g e > 8 [ < g e > 16 < fis dis > ] < g e > 8 [ < b g > 16 <ais fis > ] < 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 [ <b g> 16 \once \override NoteColumn #'force-hshift = #1 <ais fis> ] <b g> 8 [ <d b> 16
<cis ais!> ] <d b> 8 [ <b g> ] |
%6
<a fis> 8 [ <a fis> 16 <gis eis> ] <a fis> 8 [ <a c> 16 <b gis!> ] <a c> 8 [ <a fis> ]|\break\noPageBreak
%7
<e g> 8 [ <g e> 16 <fis dis> ] <g e> 8 [ <b e,> ] <a fis> [ <g e> ] |
%8
<fis dis> 8 r r4 r8 b | \break\noPageBreak
%9
\manualBeam #'(6.5 . 6.5) <g, e'> 8 [ \acciaccatura a'16 <g e> <fis dis> ] <g e> 8 [ <b g> 16 <ais fis> ] <b g> 8 [ <g e> ] |
%10
<fis dis> 8 [ <fis dis> 16 <eis cis> ] <fis dis> 8 [ <a fis> 16 <gis eis!> ] <a fis> 8 [ <fis dis> ]|
\break\noPageBreak
%11
<g e> 8 [ <g e>16 <fis dis> ] <g e> 8 [ <b g> 16 <ais fis> ] <b g> 8 [ < g e> ] |
%12
< fis a > 8 [ < a fis > 16 < gis eis > ] < a fis> 8 [ <fis d> ] < 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<b,-1\6> 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 <fis'-2>\gl\fol<g'-2>8
\once\override Glissando#'bound-details #'right #'padding = #1 \once\override Glissando #'bound-details #'left #'padding = #1 <b'-1>16\gl
\for<ais'-1>\gl\fol<b'-1>8
}
>>_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user