]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.7
authorfred <fred>
Sun, 24 Mar 2002 19:53:44 +0000 (19:53 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:53:44 +0000 (19:53 +0000)
lily/midi-def.cc
lily/score.cc

index 280b6304d17cbe2ba2286fd1dc95929081d7fe95..800c1e9cd17169d2b813f583c94f56b20f2e0685 100644 (file)
 
 // 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 );
 }
@@ -39,14 +39,12 @@ Midi_def::Midi_def( Midi_def const& s )
 {
     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
@@ -64,14 +62,6 @@ Midi_def::get_global_translator_p() const
     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 )
 {
@@ -85,9 +75,6 @@ Midi_def::print() const
     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
 }
@@ -105,9 +92,3 @@ Midi_def::set_tempo( Moment moment, int count_per_minute_i )
     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;
-}
-
index 861bf4b00f06271b3cdded50be1bef5e73007d3d..53208cebc7aa80921f07a5c1277475032b13e65f 100644 (file)
@@ -15,8 +15,9 @@
 #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"
@@ -27,6 +28,7 @@ extern String default_out_fn;
 Score::Score()
 {
     pscore_p_=0;
+    audio_score_p_ = 0;
     paper_p_ = 0;
     midi_p_ = 0;
     errorlevel_i_ = 0;
@@ -44,6 +46,7 @@ Score::~Score()
 {
     delete music_p_;
     delete pscore_p_;
+    delete audio_score_p_;
     delete paper_p_;
     delete midi_p_;
 }
@@ -56,11 +59,20 @@ Score::run_translator(Global_translator * trans_l)
                                                                  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 );
@@ -89,6 +101,7 @@ Score::midi()
        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 );
@@ -100,6 +113,8 @@ Score::midi()
 //     return;
     }
     *mlog << endl;
+
+    midi_output();
 }
     
 void
@@ -109,7 +124,7 @@ Score::paper()
        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 );
@@ -121,7 +136,6 @@ Score::paper()
 //     return;
     }
     
-    // debugging
     *mlog << endl;
     pscore_p_->process();
 
@@ -129,41 +143,24 @@ Score::paper()
     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_ 
@@ -178,21 +175,32 @@ Score::paper_output()
     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;
+}
+