X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmidi-def.cc;h=e42f2dce6e4e7c3fab47266dd8cb937566fda09b;hb=5d7a663ab5450018118c99fc48263c18f2df52dc;hp=1917ef03c6d22164a04546506f1e9666b30187d0;hpb=74aea94b4620d812567260532d74d386be8fb571;p=lilypond.git diff --git a/lily/midi-def.cc b/lily/midi-def.cc index 1917ef03c6..e42f2dce6e 100644 --- a/lily/midi-def.cc +++ b/lily/midi-def.cc @@ -3,28 +3,40 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Jan Nieuwenhuizen + (c) 1997--2003 Jan Nieuwenhuizen */ #include #include "misc.hh" #include "midi-def.hh" #include "performance.hh" -#include "debug.hh" -#include "scope.hh" +#include "warn.hh" +#include "scm-hash.hh" -Midi_def::Midi_def() +Midi_def::Midi_def () { // ugh - set_tempo (Moment (1, 4), 60); + set_tempo (Moment (Rational (1, 4)), 60); } int -Midi_def::get_tempo_i (Moment one_beat_mom) +Midi_def::get_tempo (Moment one_beat_mom) { - Moment w = *unsmob_moment (scope_p_->scm_elem ("whole-in-seconds")); - Moment wholes_per_min = Moment(60) /w; - int beats_per_min = wholes_per_min / one_beat_mom; + SCM wis = ly_symbol2scm ("whole-in-seconds"); + Moment *w = unsmob_moment (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 beats_per_min = int ((wholes_per_min / one_beat_mom).main_part_); return int (beats_per_min); } @@ -33,21 +45,7 @@ Midi_def::set_tempo (Moment one_beat_mom, int beats_per_minute_i) { Moment beats_per_second = Moment (beats_per_minute_i) / Moment (60); - Moment m = Moment(1)/Moment(beats_per_second * one_beat_mom); - scope_p_->set ("whole-in-seconds", m.smobbed_copy()); + Moment m = Moment (1)/Moment (beats_per_second * one_beat_mom); + set_variable (ly_symbol2scm ("whole-in-seconds"), m.smobbed_copy ()); } - -int Midi_def::score_count_i_=0; - -int -Midi_def::get_next_score_count () const -{ - return score_count_i_++; -} - -void -Midi_def::reset_score_count () -{ - score_count_i_ = 0; -}