- cresc_ = new Spanner (get_property ("Hairpin"));
- cresc_->set_grob_property ("grow-direction",
- gh_int2scm ((start_type == "crescendo")
- ? BIGGER : SMALLER));
-
+ programming_error ("unknown dynamic spanner type");
+ return;
+ }
+
+ /*
+ UGH. TODO: should read from original event, so appearance
+ may be altered with \tweak.
+ */
+ SCM s = get_property ((start_type + "Spanner").c_str ());
+ if (!scm_is_symbol (s) || s == ly_symbol2scm ("hairpin"))
+ {
+ cresc_ = make_spanner ("Hairpin", accepted_spanevents_drul_[START]->self_scm ());
+ if (finished_cresc_)
+ {
+ Pointer_group_interface::add_grob (finished_cresc_,
+ ly_symbol2scm ("adjacent-hairpins"),
+ cresc_);
+
+ Pointer_group_interface::add_grob (cresc_,
+ ly_symbol2scm ("adjacent-hairpins"),
+ finished_cresc_);
+ }