Notationsspezifisch > Noten für Gitarre
Schlagpfeile / Schlagmuster
gfuellerer:
Ich habe mir Schlagpfeile über einen markup definiert:
--- Code: ---arrUp=_\markup {
\fontsize #5
\override #'(thickness . 2)
\combine
\arrow-head #Y #UP ##t
\draw-line #'(0 . -4)
}
--- Ende Code ---
und auch die Diskussion unter https://liarchiv.joonet.de/index.php?topic=1493.0 gelesen.
Die Schlagpfeile können mittels markup entweder über oder unter den Noten platziert werden. Wie bekomme ich sie über die Notenlinien (vgl. OriginalSchlgapfeile).
Frohe Weihnachten!
Pierre:
Hallo gfuellerer,
Siehe hier: http://lilypond.1069038.n5.nabble.com/arpeggio-line-td57703.html#a57704
--- Code: ---%% \version "2.19.34"
%% oder:
\version "2.18.2"
arpeggioStrikeDown = {
\override Arpeggio.stencil =
#(lambda (grob)
(let* ((pos (ly:grob-property grob 'positions))
(ln (grob-interpret-markup grob
(markup #:override (cons (quote thickness) 1.3) #:draw-line
`(0 . ,(- (interval-length pos))))))
(arrow-head (grob-interpret-markup grob (markup
#:arrow-head Y DOWN #f))))
(ly:stencil-add
(ly:stencil-translate-axis ln (interval-end pos) Y)
(ly:stencil-translate-axis arrow-head (interval-start pos) Y))))
% Perhaps you may want to adjust the 'X-extent-override
\override Arpeggio.X-extent = #'(-0.4 . 0.4)
\override Arpeggio.Y-extent =
#(ly:make-unpure-pure-container
ly:grob::stencil-height
(lambda (grob start end) (ly:grob::stencil-height grob)))
}
arpeggioStrikeUp = {
\override Arpeggio.stencil =
#(lambda (grob)
(let* ((pos (ly:grob-property grob 'positions))
(ln (grob-interpret-markup grob
(markup #:override (cons (quote thickness) 1.3) #:draw-line
`(0 . ,(- (interval-length pos))))))
(arrow-head (grob-interpret-markup grob (markup
#:arrow-head Y UP #f))))
(ly:stencil-add
(ly:stencil-translate-axis ln (interval-end pos) Y)
(ly:stencil-translate-axis arrow-head (interval-end pos) Y))))
% Perhaps you may want to adjust the 'X-extent-override
\override Arpeggio.X-extent = #'(-0.4 . 0.4)
\override Arpeggio.Y-extent =
#(ly:make-unpure-pure-container
ly:grob::stencil-height
(lambda (grob start end) (ly:grob::stencil-height grob)))
}
\relative c' {
\arpeggioStrikeDown
<c' e g bes>\arpeggio
<c, e g bes>\arpeggio
\arpeggioStrikeUp
<c' e g bes>\arpeggio
\arpeggioStrikeDown
<c, e g bes>
-\tweak positions #'(-4 . 3)
\arpeggio
\arpeggioStrikeUp
<c e g bes>
-\tweak positions #'(-3.5 . 2.5)
\arpeggio
\arpeggioNormal
<c e g bes>\arpeggio
}
\relative c {
\time 3/16
\arpeggioStrikeDown
<e c' fis dis'>16\mf
-\tweak positions #'(-6 . 3)
\arpeggio
}
--- Ende Code ---
Frohe Weihnachten!
Pierre
harm6:
Ich finde die Schlagpfeile ja übersichtlicher, wenn sie über oder unter dem System stehen, wie hier:
http://lsr.di.unimi.it/LSR/Item?id=409
Aber ich kenn' es auch anders.
ich würde Arpeggio überschreiben:
--- Code: ---\version "2.19.32"
#(define ((strike direction) grob)
(let* ((pos (ly:grob-property grob 'positions))
(thick (ly:grob-property grob 'thickness 1)))
(grob-interpret-markup grob
(markup
#:combine
#:translate
`(0 . ,(interval-end pos))
#:override `(thickness . ,thick)
#:draw-line
`(0 . ,(- (interval-length pos)))
#:translate
(cons
0
((if (= direction 1) interval-end interval-start)
(interval-widen pos 0.5)))
#:fontsize thick
#:arrow-head Y direction #f))))
strikeUp =
#(define-event-function ()()
#{
-\tweak stencil #(strike UP)
-\tweak X-extent #'(-0.5 . 0.5)
\arpeggio
#})
strikeDown =
#(define-event-function ()()
#{
-\tweak stencil #(strike DOWN)
-\tweak X-extent #'(-0.5 . 0.5)
\arpeggio
#})
\new Staff <<
\new Voice {
\time 3/8
\voiceOne
%\override Arpeggio.thickness = 2
gis'8 <b e' gis' b' e''>16\strikeUp 16\strikeDown 16\strikeUp 16\strikeDown
}
\new Voice {
\voiceTwo e'8 b16 16 16 16
}
>>
--- Ende Code ---
HTH,
Harm
P.S.
Hab' gerade gesehen, daß Pierre meinen früheren Code verlinkt hat.
Der obige ist neuer und eleganter :)
gfuellerer:
Danke für die prompte Rückmeldung - Ich habe den Code von Pierre verwendet.
Beim Code von Harm bekomme ich in Version 2.18.2 folgende Fehlermeldung, die ich nicht verstehe:
--- Code: ---Starte lilypond 2.18.2 [TestSchlagpfeile02_harm.ly]...
»/var/folders/ds/090bttvx3fsfkyn3xs_0m1sr0000gq/T/frescobaldi-mUaw9d/tmpcBPMUQ/TestSchlagpfeile02_harm.ly« wird verarbeitet
Analysieren.../Applications/LilyPond.app/Contents/Resources/share/lilypond/current/scm/ly-syntax-constructors.scm:56:23: In expression (apply (ly:music-function-extract fun) parser ...):
/Applications/LilyPond.app/Contents/Resources/share/lilypond/current/scm/ly-syntax-constructors.scm:56:23: Wrong number of arguments to #<procedure #f ()>
Wurde mit dem Return-Code 1 beendet.
--- Ende Code ---
Mit lilypond 2.19.34 klappt es wunderbar!
harm6:
--- Zitat ---Beim Code von Harm bekomme ich in Version 2.18.2 folgende Fehlermeldung, die ich nicht verstehe:
[...]
--- Ende Zitat ---
Deshalb hatte ich ja auch \version "2.19.32" geschrieben, damit klappt es.
Bitte gebe immer, die von Dir verwendete Version an!
Gruß,
Harm
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln