X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmidi-def.cc;h=1b89f6533c6a8776469400a18d64b10bb7d993d7;hb=ab685a4504e0aef61caf91085e900e05b6aa0194;hp=47899ae06640c4c2ff45302ca4752ebdfd5b162b;hpb=8002fa018c81f70585c25232247c6dcba7f5cba0;p=lilypond.git diff --git a/lily/midi-def.cc b/lily/midi-def.cc index 47899ae066..1b89f6533c 100644 --- a/lily/midi-def.cc +++ b/lily/midi-def.cc @@ -1,81 +1,46 @@ /* - midi-def.cc -- implement Midi_def + midi-def.cc -- implement midi output def functions source file of the GNU LilyPond music typesetter - (c) 1997--1999 Jan Nieuwenhuizen - + (c) 1997--2005 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 -// statics -// constructors -// destructor -// routines, alphasorted -Midi_def::Midi_def() -{ - // ugh - set_tempo (Moment (1, 4), 60); -} -Midi_def::~Midi_def() -{ -} +#include "misc.hh" +#include "output-def.hh" +#include "moment.hh" +#include "warn.hh" +#include "scm-hash.hh" -Real -Midi_def::length_mom_to_seconds_f (Moment mom) +int +get_tempo (Output_def *def, + Moment one_beat_mom) { - if (!mom) - return 0; - - return Moment (whole_in_seconds_mom_) * mom; -} + SCM wis = ly_symbol2scm ("whole-in-seconds"); + Moment *w = unsmob_moment (def->lookup_variable (wis)); + Moment wholes_per_min = Moment (60); + if (!w) + { + programming_error ("wholes-in-seconds not set."); + wholes_per_min /= 4; + } + else + wholes_per_min /= *w; -int -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); + Rational beats_per_min = (wholes_per_min / one_beat_mom).main_part_; + return beats_per_min.to_int (); } void -Midi_def::set_tempo (Moment one_beat_mom, int beats_per_minute_i) +set_tempo (Output_def *def, + Moment one_beat_mom, + int beats_per_minute_i) { 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 - DEBUG_OUT << "MIDI {\n"; - Music_output_def::print (); - DEBUG_OUT << "4/min: " << Moment (60) / (whole_in_seconds_mom_ * Moment (4)); - DEBUG_OUT << "}\n"; -#endif + Moment m = Moment (1) / Moment (beats_per_second * one_beat_mom); + def->set_variable (ly_symbol2scm ("whole-in-seconds"), m.smobbed_copy ()); } -int Midi_def::default_count_i_=0; - -int -Midi_def::get_next_default_count () const -{ - return default_count_i_++; -} - -void -Midi_def::reset_default_count () -{ - default_count_i_ = 0; -}