From 32a34ecec9f4a3b878a61507e69c8d2e16b50413 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:53:44 +0000 Subject: [PATCH] lilypond-0.1.7 --- lily/midi-def.cc | 23 ++----------- lily/score.cc | 84 ++++++++++++++++++++++++++---------------------- 2 files changed, 48 insertions(+), 59 deletions(-) diff --git a/lily/midi-def.cc b/lily/midi-def.cc index 280b6304d1..800c1e9cd1 100644 --- a/lily/midi-def.cc +++ b/lily/midi-def.cc @@ -23,14 +23,14 @@ // 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; // 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 ( *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 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; -} - diff --git a/lily/score.cc b/lily/score.cc index 861bf4b00f..53208cebc7 100644 --- a/lily/score.cc +++ b/lily/score.cc @@ -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; +} + -- 2.39.5