#include "event.hh"
#include "warn.hh"
-#include "event.hh"
-
+
Moment
Event::get_length () const
{
set_property ("duration", d ->compressed (m.main_part_).smobbed_copy ());
}
-void
-Event::transpose (Pitch delta)
-{
- /*
- TODO: should change music representation such that
- _all_ pitch values are transposed automatically.
- */
-
- Pitch *p = unsmob_pitch (get_property ("pitch"));
- if (!p)
- return ;
-
- Pitch np = p->transposed (delta);
-
- if (abs (np.get_alteration ()) > DOUBLE_SHARP)
- {
- warning (_f ("Transposition by %s makes alteration larger than two",
- delta.to_string ()));
- }
-
- set_property ("pitch", np.smobbed_copy ());
-}
Pitch
Event::to_relative_octave (Pitch last)
scm_to_int (scm_cdr (key)),
scm_to_int (alter));
- orig =orig.transposed (*p);
+ orig = orig.transposed (*p);
SCM key = scm_cons (scm_int2num (orig.get_octave ()),
scm_int2num (orig.get_notename ()));
Pitch orig (0, scm_to_int (key), scm_to_int (alter));
orig = orig.transposed (*p);
- key =scm_int2num (orig.get_notename ());
+ key = scm_int2num (orig.get_notename ());
alter = scm_int2num (orig.get_alteration ());
newlist = scm_cons (scm_cons (key, alter), newlist);
}
Key_change_ev::transpose (Pitch p)
{
SCM pa = get_property ("pitch-alist");
-
set_property ("pitch-alist", ly_transpose_key_alist (pa, p.smobbed_copy ()));
- Pitch tonic = *unsmob_pitch (get_property ("tonic"));
- set_property ("tonic",
- tonic.smobbed_copy ());
+
+ Event::transpose (p);
}
bool