@end ignore
+@item
+A snap-pizzicato (also known as Bartok-pizzicato) articulation was added:
+@lilypond[quote]
+\relative c'' {
+ c\snappizzicato
+}
+@end lilypond
+
@item
FretBoards now have a chordChanges property to keep repeated FretBoard objects
from being typeset.
+
@end itemize
c''\upbow c''\downbow c''\flageolet
c''\thumb c''^\lheel c''\rheel
c''^\ltoe c''\rtoe c''\open
- c''\stopped c''\turn c''\reverseturn
+ c''\stopped c''\snappizzicato c''\turn c''\reverseturn
c''\trill c''\prall c''\mordent
c''\prallprall c''\prallmordent c''\upprall
c''\downprall c''\upmordent c''\downmordent
upbow__ downbow__ flageolet__
thumb__ lheel__ rheel__
ltoe__ rtoe__ open__
- stopped__ turn__ reverseturn__
+ stopped__ snappizzicato__ turn__ reverseturn__
trill__ prall__ mordent__
prallprall__ prallmordent__ upprall__
downprall__ upmordent__ downmordent__
--- /dev/null
+\header {
+ texidoc = "The snappizzicato articulation adds a snappizzicato sign to the note."
+}
+\version "2.12.3"
+
+\relative c'' { c4\snappizzicato }
segno = #(make-articulation "segno")
coda = #(make-articulation "coda")
varcoda = #(make-articulation "varcoda")
+snappizzicato = #(make-articulation "snappizzicato")
labels(1a, 1b, 2a, 2b, 3a, 3b, 4a, 4b);
fet_endchar;
+
+fet_beginchar ("snap pizzicato (Bartok pizzicato)", "snappizzicato");
+ save height, width, thickness, superness;
+
+ height# = 4/15 staffsize#;
+ width# = height#;
+ thickness# = 1.3 linethickness#;
+ define_pixels (height, width);
+ define_whole_blacker_pixels (thickness);
+
+ set_char_box (width# / 2, width# / 2, height# / 2, height# / 2);
+
+ penpos1 (thickness, 90);
+ penpos2 (thickness, 180);
+ penpos3 (thickness, 270);
+ penpos4 (thickness, 0);
+
+ x1 = 0;
+ y1r = h;
+ x3 = x1;
+ y3r = -y1r;
+ x4r = w;
+ y4 = 0;
+ x2r = -x4r;
+ y2 = y4;
+
+ penlabels (1, 2, 3, 4);
+
+ % mf doesn't handle pixel dropouts in outline objects, so we use
+ % `draw' if not called by mpost
+ if known miterlimit:
+ penstroke z1e
+ .. z2e
+ .. z3e
+ .. z4e
+ .. cycle;
+ else:
+ pickup pencircle scaled thickness;
+ draw z1
+ .. z2
+ .. z3
+ .. z4
+ .. cycle;
+ fi;
+ z5 = (0, 0);
+ z6 = (x5, 1.5*y1r);
+ pickup pencircle scaled thickness;
+ draw z5 -- z6;
+fet_endchar;
+
fet_endgroup ("scripts");
((script-stencil . (feta . ("varcoda" . "varcoda")))
(padding . 0.20)
(avoid-slur . outside)
- (direction . 1)))))
+ (direction . 1)))
+ ("snappizzicato" .
+ ((script-stencil . (feta . ("snappizzicato" . "snappizzicato")))
+ (padding . 0.20)
+ (avoid-slur . outside)
+ (direction . 1)))
+ ))
needed_additional_definitions = []
additional_definitions = {
- "snappizzicato": """#(define-markup-command (snappizzicato layout props) ()
- (interpret-markup layout props
- (markup #:stencil
- (ly:stencil-translate-axis
- (ly:stencil-add
- (make-circle-stencil 0.7 0.1 #f)
- (ly:make-stencil
- (list 'draw-line 0.1 0 0.1 0 1)
- '(-0.1 . 0.1) '(0.1 . 1)))
- 0.7 X))))""",
-
"eyeglasses": """eyeglassesps = #"0.15 setlinewidth
-0.9 0 translate
1.1 1.1 scale
ev.type = mxl_event.get_text ()
return ev
-def musicxml_snappizzicato_event (mxl_event):
- needed_additional_definitions.append ("snappizzicato")
- ev = musicexp.MarkupEvent ()
- ev.contents = "\\snappizzicato"
- return ev
-
def musicxml_string_event (mxl_event):
ev = musicexp.NoDirectionArticulationEvent ()
ev.type = mxl_event.get_text ()
#"schleifer": "?",
#"scoop": "?",
#"shake": "?",
- "snap-pizzicato": musicxml_snappizzicato_event,
+ "snap-pizzicato": "snappizzicato",
#"spiccato": "?",
"staccatissimo": (musicexp.ShortArticulationEvent, "|"), # or "staccatissimo"
"staccato": (musicexp.ShortArticulationEvent, "."), # or "staccato"