+pl 37.mb1
+ - Added property restStyle.
+ - mensural 4th, 8th and 16th rests.
+
+*************
- diamond heads (probably really ugly).
- cross head.
MAJOR_VERSION=1
MINOR_VERSION=1
PATCH_LEVEL=37
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=mb1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
--- /dev/null
+r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+\property Staff.restStyle = "mensural"
+\property Staff.textEmptyDimension = 1
+r\longa^"restStyle = \"mensural\"" r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+
Molecule flag (int, Direction) const;
Molecule hairpin (Real width, bool decresc, bool continued) const;
Molecule plet (Real dy, Real dx, Direction dir) const;
- Molecule rest (int, bool outside) const;
+ Molecule rest (int, bool outside, String) const;
Molecule rule_symbol (Real height, Real width) const;
Molecule script (String idx) const;
Molecule stem (Real y1_pos, Real y2_pos) const;
}
Molecule
-Lookup::rest (int j, bool o) const
+Lookup::rest (int j, bool o, String style) const
{
- return afm_find (String ("rests-") + to_str (j) + (o ? "o" : ""));
+ return afm_find (String ("rests-") + to_str (j) + (o ? "o" : "") + style);
}
Molecule
Molecule s;
if (measures_i_ == 1 || measures_i_ == 2 || measures_i_ == 4)
{
- s = (lookup_l ()->rest (- intlog2(measures_i_), 0));
+ s = (lookup_l ()->rest (- intlog2(measures_i_), 0, ""));
s.translate_axis (-s.extent ()[X_AXIS].length () / 2, X_AXIS);
}
else
{
- s = (lookup_l ()->rest (-4, 0));
+ s = (lookup_l ()->rest (-4, 0, ""));
}
mol_p->add_molecule (s);
Real interline_f = staff_line_leading_f ();
rest_p_->dots_l_ =dot_p_;
announce_element (Score_element_info (dot_p_,0));
}
+ if (rest_p_->balltype_i_ >= 2)
+ {
+ String reststyle = get_property ("restStyle", 0);
+ if (reststyle.length_i ())
+ rest_p_->set_elt_property (style_scm_sym,
+ gh_str02scm (reststyle.ch_C()));
+ }
announce_element (Score_element_info (rest_p_, rest_req_l_));
}
}
bool streepjes_b = abs(position_i_) > lines_i () / 2 &&
(balltype_i_ == 0 || balltype_i_ == 1);
- Molecule s(lookup_l ()->rest (balltype_i_, streepjes_b));
+ String style;
+ SCM style_sym =get_elt_property (style_scm_sym);
+ if (style_sym != SCM_BOOL_F)
+ {
+ style = ly_scm2string (SCM_CDR(style_sym));
+ }
+
+ Molecule s(lookup_l ()->rest (balltype_i_, streepjes_b, style));
Molecule * m = new Molecule ( Molecule (s));
m->translate_axis (position_i_ * staff_line_leading_f ()/2.0, Y_AXIS);
return m;
fet_endchar;
endgroup;
-fet_endgroup("rests");
+% Rest symbols for mensural notation:
+
+mensrestsize# = .8interline#;
+
+fet_beginchar("Mensural 4th rest","2mensural","minimarest")
+ set_char_box(0,mensrestsize#,0,mensrestsize#);
+ pickup pencircle scaled 2 stafflinethickness;
+ lft x1 = 0;
+ bot y1 = 0;
+ lft x2 = 0;
+ top y2 = h;
+ rt x3 = w;
+ bot y3 = h/2;
+ draw z1 .. z2;
+ draw z2 .. z3;
+fet_endchar
+
+fet_beginchar("Mensural 8th rest","3mensural","fusarest")
+ set_char_box(0,mensrestsize#,0,mensrestsize#);
+ pickup pencircle scaled 2 stafflinethickness;
+ rt x1 = w;
+ bot y1 = 0;
+ rt x2 = w;
+ top y2 = h;
+ lft x3 = 0;
+ bot y3 = h/2;
+ draw z1 .. z2;
+ draw z2 .. z3;
+fet_endchar
+
+fet_beginchar("Mensural 16th rest","4mensural","semifusarest")
+ set_char_box(0,mensrestsize#,0,interline#);
+ pickup pencircle scaled 2 stafflinethickness;
+ rt x1 = w;
+ bot y1 = 0;
+ rt x2 = w;
+ top y2 = h;
+
+ draw z1 .. z2;
+
+ pickup pencircle scaled 2 stafflinethickness;
+ rt x3 = w;
+ top y3 = h;
+ lft x4 = 0;
+ bot y4 = h/2;
+ rt x5 = w;
+ top y5 = 5/8h;
+ lft x6 = 0;
+ bot y6 = h/8;
+
+ draw z3 .. z4;
+ draw z5 .. z6;
+fet_endchar
+
+fet_endgroup("rests")
input feta-klef;
input feta-timesig;
else:
- input feta-bolletjes;
+% input feta-bolletjes;
% input feta-banier;
-% input feta-eindelijk;
+ input feta-eindelijk;
% input feta-klef;
% input feta-toevallig;
% input feta-schrift;