print_alist (SCM a, SCM port)
{
/* SCM_EOL -> catch malformed lists. */
- for (SCM s = a; ly_c_pair_p (s); s = ly_cdr (s))
+ for (SCM s = a; scm_is_pair (s); s = scm_cdr (s))
{
- scm_display (ly_caar (s), port);
+ scm_display (scm_caar (s), port);
scm_puts (" = ", port);
- scm_write (ly_cdar (s), port);
+ scm_write (scm_cdar (s), port);
scm_puts ("\n", port);
}
}
void
Music::transpose (Pitch delta)
{
+ for (SCM s = this->get_property_alist (true); scm_is_pair (s); s = scm_cdr (s))
+ {
+ SCM entry = scm_car (s);
+ SCM val = scm_cdr (entry);
+
+ if (Pitch * p = unsmob_pitch (val))
+ {
+ Pitch transposed = p->transposed (delta);
+ scm_set_cdr_x (entry, transposed.smobbed_copy ());
+
+ if (abs (transposed.get_alteration ()) > DOUBLE_SHARP)
+ {
+ warning (_f ("Transposition by %s makes alteration larger than two",
+ delta.to_string ()));
+ }
+ }
+ }
+
SCM elt = get_property ("element");
if (Music* m = unsmob_music (elt))
{
SCM s = scm_sloppy_assq (sym, mutable_property_alist_);
if (s != SCM_BOOL_F)
- return ly_cdr (s);
+ return scm_cdr (s);
s = scm_sloppy_assq (sym, immutable_property_alist_);
- return (s == SCM_BOOL_F) ? SCM_EOL : ly_cdr (s);
+ return (s == SCM_BOOL_F) ? SCM_EOL : scm_cdr (s);
}
void
"of music objects.")
{
if (scm_list_p (lst) == SCM_BOOL_T)
- while (ly_c_pair_p (lst))
+ while (scm_is_pair (lst))
{
- if (!unsmob_music (ly_car (lst)))
+ if (!unsmob_music (scm_car (lst)))
return SCM_BOOL_F;
- lst = ly_cdr (lst);
+ lst = scm_cdr (lst);
}
return SCM_BOOL_T;
copy = unsmob_music (m)->clone ()->self_scm ();
scm_gc_unprotect_object (copy);
}
- else if (ly_c_pair_p (m))
- copy = scm_cons (ly_deep_mus_copy (ly_car (m)),
- ly_deep_mus_copy (ly_cdr (m)));
+ else if (scm_is_pair (m))
+ copy = scm_cons (ly_deep_mus_copy (scm_car (m)),
+ ly_deep_mus_copy (scm_cdr (m)));
return copy;
}