+IMPLEMENT_IS_TYPE_B1(Melodic_req,Musical_req);
+
+bool
+Melodic_req::do_equal_b (Request*r) const
+{
+ Melodic_req* m= r->musical()->melodic ();
+ return !compare (*m, *this);
+}
+
+int
+Melodic_req::compare (Melodic_req const &m1 , Melodic_req const&m2)
+{
+ int o= m1.octave_i_ - m2.octave_i_;
+ int n = m1.notename_i_ - m2.notename_i_;
+ int a = m1.accidental_i_ - m2.accidental_i_;
+
+ if (o)
+ return o;
+ if (n)
+ return n;
+ if (a)
+ return a;
+ return 0;
+}