#include "debug.hh"
#include "inputmusic.hh"
#include "voice.hh"
+#include "musicalrequest.hh"
void
Simple_music::add(Voice_element*v)
voice_.add(v);
}
-Real
-Simple_music::length()
+Moment
+Simple_music::length()const
{
return voice_.last();
}
void
-Simple_music::translate_time(Real t)
+Simple_music::translate_time(Moment t)
{
voice_.start += t;
}
Voice_list
-Simple_music::convert()
+Simple_music::convert()const
{
Voice_list l;
l.bottom().add(new Voice(voice_));
mtor << "}\n";
}
-/****************/
+/* *************** */
void
Complex_music::add(Input_music*v)
void
Complex_music::print() const
{
- for (PCursor<Input_music*> i(elts); i.ok(); i++)
+ for (iter_top(elts,i); i.ok(); i++)
i->print();
}
void
Complex_music::concatenate(Complex_music*h)
{
- for (PCursor<Input_music*> i(h->elts); i.ok(); i++)
+ for (iter_top(h->elts,i); i.ok(); i++)
add(i->clone());
}
Complex_music::Complex_music(Complex_music const&s)
{
- for (PCursor<Input_music*> i(s.elts); i.ok(); i++)
+ for (iter_top(s.elts,i); i.ok(); i++)
add(i->clone());
}
-
-/****************************************************************/
+void
+Complex_music::set_default_group(String g)
+{
+ for (iter_top(elts,i); i.ok(); i++)
+ i->set_default_group(g);
+}
+/* *************************************************************** */
void
Music_voice::print() const
s->add(v);
}
-Real
-Music_voice::length()
+Moment
+Music_voice::length()const
{
- Real l = 0.0;
+ Moment l = 0;
- for (PCursor<Input_music*> i(elts); i.ok(); i++)
+ for (iter_top(elts,i); i.ok(); i++)
l += i->length();
return l;
}
Voice_list
-Music_voice::convert()
+Music_voice::convert()const
{
Voice_list l;
- Real here = 0.0;
+ Moment here = 0;
- for (PCursor<Input_music*> i(elts); i.ok(); i++) {
- Real len = i->length();
+ for (iter_top(elts,i); i.ok(); i++) {
+ Moment len = i->length();
Voice_list k(i->convert());
k.translate_time(here);
l.concatenate(k);
- here +=len;
-
+ here +=len;
}
return l;
}
void
-Music_voice::translate_time(Real t)
+Music_voice::translate_time(Moment t)
{
elts.bottom()->translate_time(t);
}
-/****************/
+/* *************** */
void
Music_general_chord::add_elt(Voice_element*v)
}
void
-Music_general_chord::translate_time(Real t)
+Music_general_chord::translate_time(Moment t)
{
- for (PCursor<Input_music*> i(elts); i.ok(); i++)
+ for (iter_top(elts,i); i.ok(); i++)
i->translate_time(t);
}
-Real
-Music_general_chord::length()
+Moment
+Music_general_chord::length()const
{
- Real l =0.0;
+ Moment l =0.0;
- for (PCursor<Input_music*> i(elts); i.ok(); i++)
+ for (iter_top(elts,i); i.ok(); i++)
l = l >? i->length();
return l;
}
Voice_list
-Music_general_chord::convert()
+Music_general_chord::convert()const
{
Voice_list l;
- for (PCursor<Input_music*> i(elts); i.ok(); i++) {
+ for (iter_top(elts,i); i.ok(); i++) {
Voice_list k(i->convert());
l.concatenate(k);
}
return l;
}
+/* *************** */
+
+void
+Multi_voice_chord::set_default_group(String g)
+{
+ int j=0;
+ for (iter_top(elts, i); i.ok(); i++) {
+ i->set_default_group(g + String(j));
+ j++;
+ }
+}
+
-/****************/
+/* *************** */
void
-Voice_list::translate_time(Real x)
+Voice_list::translate_time(Moment x)
{
- for (PCursor<Voice*> i(*this); i.ok(); i++)
+ for (iter_top(*this,i); i.ok(); i++)
i->start += x;
}