X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmidi-def.cc;h=47899ae06640c4c2ff45302ca4752ebdfd5b162b;hb=2b0aa2c5bbb4af4e7d0d3c057de066dc1d6d6b8d;hp=163105ab3c3906952420337cf2add5198a948056;hpb=813f755b266e091c9a9e66d09c45810aa1e060b7;p=lilypond.git diff --git a/lily/midi-def.cc b/lily/midi-def.cc index 163105ab3c..47899ae066 100644 --- a/lily/midi-def.cc +++ b/lily/midi-def.cc @@ -1,13 +1,17 @@ -// -// midi-def.cc -- implement midi output -// -// source file of the LilyPond music typesetter -// -// (c) 1997 Jan Nieuwenhuizen +/* + midi-def.cc -- implement Midi_def + source file of the GNU LilyPond music typesetter + + (c) 1997--1999 Jan Nieuwenhuizen + +*/ #include #include "misc.hh" #include "midi-def.hh" +#include "translator.hh" +#include "performance.hh" +#include "score-performer.hh" #include "debug.hh" // classes, alphasorted @@ -16,21 +20,10 @@ // destructor // routines, alphasorted -// statics Midi_def -// ugh -int Midi_def::den_i_s = 4; -int Midi_def::num_i_s = 4; - Midi_def::Midi_def() { - set_tempo( Moment( 1, 4 ), 60 ); - outfile_str_ = "lelie.midi"; -} - -Midi_def::Midi_def( Midi_def const& midi_c_r ) -{ - whole_seconds_f_ = midi_c_r.whole_seconds_f_; - outfile_str_ = midi_c_r.outfile_str_; + // ugh + set_tempo (Moment (1, 4), 60); } Midi_def::~Midi_def() @@ -38,32 +31,51 @@ Midi_def::~Midi_def() } Real -Midi_def::duration_to_seconds_f( Moment moment ) +Midi_def::length_mom_to_seconds_f (Moment mom) { - if (!moment) - return 0; - - return Moment( whole_seconds_f_ ) * moment; + if (!mom) + return 0; + + return Moment (whole_in_seconds_mom_) * mom; } + int -Midi_def::get_tempo_i( Moment moment ) +Midi_def::get_tempo_i (Moment one_beat_mom) +{ + Moment wholes_per_min = Moment(60) /Moment(whole_in_seconds_mom_); + int beats_per_min = wholes_per_min / one_beat_mom; + return int (beats_per_min); +} + +void +Midi_def::set_tempo (Moment one_beat_mom, int beats_per_minute_i) { - return Moment( whole_seconds_f_ ) * Moment( 60 ) * moment; + Moment beats_per_second = Moment (beats_per_minute_i) / Moment (60); + whole_in_seconds_mom_ = Moment(1)/Moment(beats_per_second * one_beat_mom); } void Midi_def::print() const { #ifndef NPRINT - mtor << "Midi {4/min: " << Real( 60 ) / ( whole_seconds_f_ * 4 ); - mtor << "out: " << outfile_str_; - mtor << "}\n"; + DEBUG_OUT << "MIDI {\n"; + Music_output_def::print (); + DEBUG_OUT << "4/min: " << Moment (60) / (whole_in_seconds_mom_ * Moment (4)); + DEBUG_OUT << "}\n"; #endif } +int Midi_def::default_count_i_=0; + +int +Midi_def::get_next_default_count () const +{ + return default_count_i_++; +} + void -Midi_def::set_tempo( Moment moment, int count_per_minute_i ) +Midi_def::reset_default_count () { - whole_seconds_f_ = Moment( count_per_minute_i ) / Moment( 60 ) / moment; + default_count_i_ = 0; }