+#include "debug.hh"
#include "inputmusic.hh"
#include "voice.hh"
{
voice_ = new Voice;
}
-
+Vertical_simple::Vertical_simple(Vertical_simple const&s)
+{
+ voice_ = new Voice(*s.voice_);
+}
void
Vertical_simple::add(Voice_element*v)
{
{
voice_->start += t;
}
+
Voice_list
Vertical_simple::convert()
{
Voice_list l;
- l.bottom().add(voice_);
+ l.bottom().add(new Voice(*voice_));
return l;
}
-
+Vertical_simple::~Vertical_simple()
+{
+ delete voice_;
+}
+
+void
+Vertical_simple::print() const
+{
+ mtor << "Vertical_simple {";
+ voice_->print();
+ mtor << "}\n";
+}
+
/****************/
+void
+Music_voice::print() const
+{
+ mtor << "Music_voice {";
+ for (PCursor<Vertical_music*> i(voice_); i.ok(); i++)
+ i->print();
+ mtor << "}\n";
+}
+
+void
+Music_voice::concatenate(Music_voice*h)
+{
+ for (PCursor<Vertical_music*> i(h->voice_); i.ok(); i++)
+ add(i->clone());
+}
+
+
+Music_voice::Music_voice(Music_voice const&s)
+{
+ for (PCursor<Vertical_music*> i(s.voice_); i.ok(); i++)
+ add(i->clone());
+}
void
Music_voice::add(Voice_element*v)
void
Music_voice::add(Vertical_music*v)
{
- // v->translate_time(length());
voice_.bottom().add(v);
}
Real here = 0.0;
for (PCursor<Vertical_music*> i(voice_); i.ok(); i++) {
- Real len = i->length(); // has to be stored, since translate_time doesn't work on copies of the contents of i.
+ Real len = i->length();
Voice_list k(i->convert());
k.translate_time(here);
l.concatenate(k);
/****************/
+void
+Music_general_chord::print() const
+{
+ mtor << "Music_general_chord {";
+ for (PCursor<Horizontal_music*> i(chord_); i.ok(); i++)
+ i->print();
+ mtor << "}\n";
+}
+
+void
+Music_general_chord::concatenate(Music_general_chord*v)
+{
+ for (PCursor<Horizontal_music*> i(v->chord_); i.ok(); i++)
+ add(i->clone());
+}
void
Music_general_chord::translate_time(Real t)
return l;
}
+
+Music_general_chord::Music_general_chord(
+ Music_general_chord const & s)
+{
+ for (PCursor<Horizontal_music*> i(s.chord_); i.ok(); i++) {
+ add(i->clone());
+ }
+}
+
/****************/
void