- Grob *th = heads_to_tie_[i].head_;
- Music * right_mus = unsmob_music (h->get_property ("cause"));
- Music * left_mus = unsmob_music (th->get_property ("cause"));
-
- /*
- maybe should check positions too.
- */
- if (right_mus && left_mus
- && ly_c_equal_p (right_mus->get_property ("pitch"),
- left_mus->get_property ("pitch")))
- {
- Grob * p = new Spanner (heads_to_tie_[i].tie_definition_,
- context()->get_grob_key ("Tie"));
- announce_grob (p, heads_to_tie_[i].event_->self_scm ());
- Tie::set_interface (p); // cannot remove yet!
-
- Tie::set_head (p, LEFT, th);
- Tie::set_head (p, RIGHT, h);
+ Grob *p = new Spanner (heads_to_tie_[i].tie_definition_);
+
+ SCM cause = heads_to_tie_[i].tie_event_
+ ? heads_to_tie_[i].tie_event_->self_scm ()
+ : heads_to_tie_[i].tie_stream_event_->self_scm ();