// statics Midi_def
// ugh
+
int Midi_def::den_i_s = 4;
int Midi_def::num_i_s = 4;
Midi_def::Midi_def()
{
- outfile_str_ = "lelie.midi";
+ outfile_str_ = "";
itrans_p_ = 0;
- real_vars_p_ = new Assoc<String,Real>;
// ugh
set_tempo( Moment( 1, 4 ), 60 );
}
{
whole_seconds_f_ = s.whole_seconds_f_;
itrans_p_ = s.itrans_p_ ? new Input_translator( *s.itrans_p_ ) : 0;
- real_vars_p_ = new Assoc<String,Real> ( *s.real_vars_p_ );
outfile_str_ = s.outfile_str_;
}
Midi_def::~Midi_def()
{
delete itrans_p_;
- delete real_vars_p_;
}
Real
return itrans_p_->get_group_performer_p()->global_l();
}
-Real
-Midi_def::get_var( String s ) const
-{
- if ( !real_vars_p_->elt_b( s ) )
- error ( "unknown midi variable `" + s + "'" );
- return real_vars_p_->elem( s );
-}
-
int
Midi_def::get_tempo_i( Moment moment )
{
mtor << "Midi {";
mtor << "4/min: " << Real( 60 ) / ( whole_seconds_f_ * 4 );
mtor << "out: " << outfile_str_;
- for (Assoc_iter<String,Real> i( *real_vars_p_ ); i.ok(); i++) {
- mtor << i.key() << "= " << i.val() << "\n";
- }
mtor << "}\n";
#endif
}
whole_seconds_f_ = Moment( count_per_minute_i ) / Moment( 60 ) / moment;
}
-void
-Midi_def::set_var( String s, Real r )
-{
- real_vars_p_->elem( s ) = r;
-}
-
#include "main.hh"
#include "source.hh"
#include "source-file.hh"
-#include "midi-output.hh"
#include "midi-def.hh"
+#include "midi-stream.hh"
+#include "audio-score.hh"
#include "p-col.hh"
#include "music-iterator.hh"
#include "music.hh"
Score::Score()
{
pscore_p_=0;
+ audio_score_p_ = 0;
paper_p_ = 0;
midi_p_ = 0;
errorlevel_i_ = 0;
{
delete music_p_;
delete pscore_p_;
+ delete audio_score_p_;
delete paper_p_;
delete midi_p_;
}
trans_l);
iter->construct_children();
+ if ( ! iter->ok() ) {
+ delete iter;
+ warning ("Need music in a score");
+ errorlevel_i_ =1;
+ return ;
+ }
+
trans_l->start();
+
while ( iter->ok() || trans_l->moments_left_i() ) {
Moment w = infinity_mom;
if (iter->ok() ) {
w = iter->next_moment();
+ mtor << w;
iter->print();
}
trans_l->modify_next( w );
return;
*mlog << "\nCreating MIDI elements ..." << flush;
+ audio_score_p_ = new Audio_score( this );
Global_translator* score_trans= midi_p_->get_global_translator_p();
run_translator( score_trans );
// return;
}
*mlog << endl;
+
+ midi_output();
}
void
return;
*mlog << "\nCreating elements ..." << flush;
- pscore_p_ = new PScore(paper_p_);
+ pscore_p_ = new Paper_score(paper_p_);
Global_translator * score_trans= paper_p_->get_global_translator_p();
run_translator( score_trans );
// return;
}
- // debugging
*mlog << endl;
pscore_p_->process();
paper_output();
}
-
void
-Score::set(Paper_def *pap_p)
+Score::midi_output()
{
- delete paper_p_;
- paper_p_ = pap_p;
-}
-
-void
-Score::set(Midi_def* midi_p)
-{
- delete midi_p_;
- midi_p_ = midi_p;
-}
-
+ if ( midi_p_->outfile_str_ == "" )
+ midi_p_->outfile_str_ = default_out_fn + ".midi";
+ Midi_stream midi_stream( midi_p_->outfile_str_ );
+ *mlog << "MIDI output to " << midi_p_->outfile_str_ << " ..." << endl;
-void
-Score::print() const
-{
-#ifndef NPRINT
- mtor << "score {\n";
- music_p_->print();
- if (midi_p_)
- midi_p_->print();
-
- mtor << "}\n";
-#endif
+ audio_score_p_->output( midi_stream );
+ *mlog << endl;
}
void
Score::paper_output()
{
if (paper_p_->outfile_str_=="")
- paper_p_->outfile_str_ = default_out_fn + ".out";
+ paper_p_->outfile_str_ = default_out_fn + ".tex";
if ( errorlevel_i_ ) {
*mlog << "lilypond: warning: no output to: " << paper_p_->outfile_str_
the_output << "% outputting Score, defined at: " <<
location_str() << "\n";
pscore_p_->output(the_output);
-
}
void
-Score::midi_output()
+Score::print() const
{
-#if 0
- if (!midi_p_)
- return;
-
- if (midi_p_->outfile_str_ == "")
- midi_p_->outfile_str_ = default_out_fn + ".midi";
+#ifndef NPRINT
+ mtor << "score {\n";
+ music_p_->print();
+ if (midi_p_)
+ midi_p_->print();
- *mlog << "midi output to " << midi_p_->outfile_str_ << " ...\n";
- Midi_output(this, midi_p_);
+ mtor << "}\n";
#endif
}
+void
+Score::set(Paper_def *pap_p)
+{
+ delete paper_p_;
+ paper_p_ = pap_p;
+}
+
+void
+Score::set(Midi_def* midi_p)
+{
+ delete midi_p_;
+ midi_p_ = midi_p;
+}
+