source file of the GNU LilyPond music typesetter
- (c) 1998--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1998--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "music-list.hh"
}
void
-Music_sequence::transpose (Pitch rq)
-{
- transpose_list (music_list (), rq);
-}
-
-void
-Music_sequence::transpose_list (SCM l, Pitch rq)
+transpose_music_list (SCM l, Pitch rq)
{
for (SCM s = l; gh_pair_p (s); s = ly_cdr (s))
unsmob_music (ly_car (s))->transpose (rq);
return cumulative;
}
-Pitch
-Music_sequence::to_relative_octave (Pitch p)
-{
- return do_relative_octave (p, false);
-}
-
-
Moment
Music_sequence::maximum_length (SCM l)
{
return dur;
}
-
Pitch
-Music_sequence::do_relative_octave (Pitch p, bool ret_first)
+music_list_to_relative (SCM l,Pitch p, bool ret_first)
{
- Pitch first;
+ Pitch first = p;
int count=0;
Pitch last = p;
- for (SCM s = music_list (); gh_pair_p (s); s = ly_cdr (s))
+ for (SCM s = l; gh_pair_p (s); s = ly_cdr (s))
{
- Music *m = unsmob_music (ly_car (s));
- if (!m)
- {
- programming_error ("Music_sequence should only contain music!");
- }
- else
+ if (Music *m = unsmob_music (ly_car (s)))
{
last = m->to_relative_octave (last);
if (!count ++)
}
}
- if (ret_first && first != last)
- {
- String str = _("Changing relative definition causes pitch change.");
- str += "\nWas: " + first.to_string ()
- + "Will be: " + last.to_string () + "\n";
-
- origin()->warning (str);
- }
- return last;
+ return (ret_first)? first : last;
}
-void
-Music_sequence::compress (Moment m)
-{
- compress_list (music_list (), m);
-}
void
-Music_sequence::compress_list (SCM l, Moment m)
+compress_music_list (SCM l, Moment m)
{
for (SCM s = l; gh_pair_p (s); s = ly_cdr (s))
unsmob_music (ly_car (s))->compress (m);