+ Pitch retval_1_8 = music_list_to_relative (copied, p, true);
+ if (retval_1_8 != retval)
+ lily_1_8_compatibility_used = true;
+
+ retval = retval_1_8;
+ }
+
+ return retval.smobbed_copy ();
+}
+
+MAKE_SCHEME_CALLBACK (Music_sequence, event_chord_relative_callback, 2);
+SCM
+Music_sequence::event_chord_relative_callback (SCM music, SCM pitch)
+{
+ Music *me = unsmob_music (music);
+ Pitch p = *unsmob_pitch (pitch);
+ return music_list_to_relative (me->get_property ("elements"),
+ p, true).smobbed_copy ();
+}
+
+MAKE_SCHEME_CALLBACK (Music_sequence, repeated_chord_relative_callback, 2);
+SCM
+Music_sequence::repeated_chord_relative_callback (SCM music, SCM pitch)
+{
+ Music *me = unsmob_music (music);
+ Music *repeated_chord = unsmob_music (me->get_property ("element"));
+ Music *original_chord = unsmob_music (me->get_property ("original-chord"));
+
+ /* A repeated chord octave is not computed from the previous pitch,
+ * (this function `pitch' argument), but from the original chord, so
+ * that repeated chords have the same octave have the original chord,
+ * even though other simple notes have been entered meanwhile.
+ */
+ assert (repeated_chord);
+ Pitch *p = 0;
+ /* Get the original chord first pitch */
+ if (original_chord)
+ {
+ for (SCM s = original_chord->get_property ("elements"); scm_is_pair (s); s = scm_cdr (s))