From: Jan Nieuwenhuizen Date: Thu, 11 Sep 1997 13:39:19 +0000 (+0200) Subject: partial: 0.1.13.jcn X-Git-Tag: release/0.1.13~1 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=52437f320e68df6016805ae7ff8e6add1235fd68;p=lilypond.git partial: 0.1.13.jcn --- diff --git a/lily/audio-score.cc b/lily/audio-score.cc deleted file mode 100644 index 37125f6fc3..0000000000 --- a/lily/audio-score.cc +++ /dev/null @@ -1,119 +0,0 @@ -/* - audio-score.cc -- implement Audio_score - - source file of the GNU LilyPond music typesetter - - (c) 1997 Jan Nieuwenhuizen -*/ - -#include -#include "debug.hh" -#include "string.hh" -#include "string-convert.hh" -#include "main.hh" -#include "midi-def.hh" -#include "midi-item.hh" -#include "midi-stream.hh" -#include "audio-column.hh" -#include "audio-staff.hh" -#include "audio-score.hh" -#include "score.hh" - -Audio_score::Audio_score () -{ - midi_l_ =0; -} - -void -Audio_score::add (Audio_column* p) -{ - p->audio_score_l_ = this; - audio_column_p_list_.bottom().add (p); -} - -void -Audio_score::output (Midi_stream& midi_stream_r) -{ - int tracks_i = audio_staff_l_list_.size() + 1; - // ugh - int clocks_per_4_i = 384; - midi_stream_r << Midi_header (1, tracks_i, clocks_per_4_i); - output_header_track (midi_stream_r); - int n = 1; - for (PCursor i (audio_staff_l_list_); i.ok(); i++) - i->output (midi_stream_r, n++); -} - -void -Audio_score::output_header_track (Midi_stream& midi_stream_r) -{ - Midi_track midi_track; - - time_t t = time (0); - - // perhaps multiple text events? - String str = String ("Creator: ") + get_version_str() + "\n"; - - Midi_text creator (Midi_text::TEXT, str); - midi_track.add (Moment (0), &creator); - - str = "Automatically generated at "; - str += ctime (&t); - str = str.left_str (str.length_i() - 1); - str += "\n"; - Midi_text generate (Midi_text::TEXT, str); - midi_track.add (Moment (0), &generate); - - str = "from musical definition: "; - - str += origin_str_; - Midi_text from (Midi_text::TEXT, str); - midi_track.add (Moment (0), &from); - - Midi_text track_name (Midi_text::TRACK_NAME, "Track " - + String_convert::i2dec_str (0, 0, '0')); - midi_track.add (Moment (0), &track_name); - - Midi_tempo tempo (midi_l_->get_tempo_i (Moment (1, 4))); - midi_track.add (Moment (0), &tempo); - - midi_stream_r << midi_track; -} - -void -Audio_score::add_staff (Audio_staff* l) -{ - audio_staff_l_list_.bottom().add (l); -} - -void -Audio_score::add (Audio_element *p) -{ - audio_elem_p_list_.bottom().add (p); -} - -void -Audio_score::print() const -{ -#ifndef NPRINT - DOUT << "Audio_score { "; - DOUT << "\ncolumns: "; - for (PCursor i (audio_column_p_list_); i.ok(); i++) - i->print(); - DOUT << "}\n"; -#endif -} - -void -Audio_score::process() -{ - String out=midi_l_->outfile_str_; - if (out == "") - out = default_out_str_ + ".midi"; - - Midi_stream midi_stream (out); - *mlog << "MIDI output to " << out<< " ..." << endl; - - output (midi_stream); - *mlog << endl; -} diff --git a/lily/include/audio-score.hh b/lily/include/audio-score.hh deleted file mode 100644 index 0585a0b25d..0000000000 --- a/lily/include/audio-score.hh +++ /dev/null @@ -1,41 +0,0 @@ -/* - audio-score.hh -- declare Audio_score - - (c) 1997 Jan Nieuwenhuizen - */ - -#ifndef AUDIO_SCORE_HH -#define AUDIO_SCORE_HH - -#include "lily-proto.hh" -#include "plist.hh" -#include "music-output.hh" - -/** all stuff which goes onto midi. notes, signs, symbols in a score - #Audio_score# contains the items, the columns. - - */ - -class Audio_score : public Music_output { -public: - Audio_score (); - ~Audio_score () {} - - void add (Audio_column*); - void add_staff (Audio_staff* l); - void add (Audio_element*p); - - - void output (Midi_stream& midi_stream_r); - void output_header_track (Midi_stream& midi_stream_r); - - void print() const; - void process(); - - Pointer_list audio_column_p_list_; - Link_list audio_staff_l_list_; - Pointer_list audio_elem_p_list_; - Midi_def * midi_l_; -}; - -#endif // AUDIO_SCORE_HH diff --git a/lily/include/performance.hh b/lily/include/performance.hh new file mode 100644 index 0000000000..962f01fa4d --- /dev/null +++ b/lily/include/performance.hh @@ -0,0 +1,40 @@ +/* + performance.hh -- declare Performance + + (c) 1997 Jan Nieuwenhuizen + */ + +#ifndef PERFORMANCE_HH +#define PERFORMANCE_HH + +#include "lily-proto.hh" +#include "plist.hh" +#include "music-output.hh" + +/** all stuff which goes onto midi. notes, signs, symbols in a score + #Performance# contains the items, the columns. + */ + +class Performance : public Music_output { +public: + Performance (); + ~Performance () {} + + void add (Audio_column*); + void add_staff (Audio_staff* l); + void add (Audio_element*p); + + + void output (Midi_stream& midi_stream_r); + void output_header_track (Midi_stream& midi_stream_r); + + void print() const; + void process(); + + Pointer_list audio_column_p_list_; + Link_list audio_staff_l_list_; + Pointer_list audio_elem_p_list_; + Midi_def * midi_l_; +}; + +#endif // PERFORMANCE_HH diff --git a/lily/performance.cc b/lily/performance.cc new file mode 100644 index 0000000000..439e6c7190 --- /dev/null +++ b/lily/performance.cc @@ -0,0 +1,125 @@ +/* + audio-score.cc -- implement Performance + + source file of the GNU LilyPond music typesetter + + (c) 1997 Jan Nieuwenhuizen +*/ + +#include +#include "debug.hh" +#include "string.hh" +#include "string-convert.hh" +#include "main.hh" +#include "midi-def.hh" +#include "midi-item.hh" +#include "midi-stream.hh" +#include "audio-column.hh" +#include "audio-staff.hh" +#include "performance.hh" +#include "score.hh" + +Performance::Performance () +{ + midi_l_ =0; +} + +void +Performance::add (Audio_column* p) +{ + p->performance_l_ = this; + audio_column_p_list_.bottom().add (p); +} + +void +Performance::output (Midi_stream& midi_stream_r) +{ + int tracks_i = audio_staff_l_list_.size() + 1; + // ugh + int clocks_per_4_i = 384; + midi_stream_r << Midi_header (1, tracks_i, clocks_per_4_i); + output_header_track (midi_stream_r); + int n = 1; + for (PCursor i (audio_staff_l_list_); i.ok(); i++) + i->output (midi_stream_r, n++); +} + +void +Performance::output_header_track (Midi_stream& midi_stream_r) +{ + Midi_track midi_track; + + time_t t = time (0); + + // perhaps multiple text events? + String str = String ("Creator: ") + get_version_str() + "\n"; + + Midi_text creator (Midi_text::TEXT, str); + midi_track.add (Moment (0), &creator); + + str = "Automatically generated at "; + str += ctime (&t); + str = str.left_str (str.length_i() - 1); + str += "\n"; + Midi_text generate (Midi_text::TEXT, str); + midi_track.add (Moment (0), &generate); + + str = "from musical definition: "; + + str += origin_str_; + Midi_text from (Midi_text::TEXT, str); + midi_track.add (Moment (0), &from); + + Midi_text track_name (Midi_text::TRACK_NAME, "Track " + + String_convert::i2dec_str (0, 0, '0')); + midi_track.add (Moment (0), &track_name); + + Midi_tempo tempo (midi_l_->get_tempo_i (Moment (1, 4))); + midi_track.add (Moment (0), &tempo); + + midi_stream_r << midi_track; +} + +void +Performance::add_staff (Audio_staff* l) +{ + audio_staff_l_list_.bottom().add (l); +} + +void +Performance::add (Audio_element *p) +{ + audio_elem_p_list_.bottom().add (p); +} + +void +Performance::print() const +{ +#ifndef NPRINT + DOUT << "Performance { "; + DOUT << "Items: "; + for (PCursor i (audio_elem_p_list_.top ()); i.ok (); i++) + i->print (); + + DOUT << "\ncolumns: "; + for (PCursor i (audio_column_p_list_); i.ok(); i++) + i->print(); + DOUT << "}\n"; +#endif +} + +void +Performance::process() +{ + print (); + + String out=midi_l_->outfile_str_; + if (!out) + out = default_out_str_ + ".midi"; + + Midi_stream midi_stream (out); + *mlog << "MIDI output to " << out<< " ..." << endl; + + output (midi_stream); + *mlog << endl; +}