]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.41
authorfred <fred>
Wed, 12 Mar 1997 01:05:01 +0000 (01:05 +0000)
committerfred <fred>
Wed, 12 Mar 1997 01:05:01 +0000 (01:05 +0000)
mi2mu/midi-event.cc
mi2mu/my-midi-parser.cc

index 2317fdb695fdca85ed43893ba7d7b3b65006fead..6bc15a4cf9fc34680fdbe9703534987e93eadf3a 100644 (file)
@@ -125,9 +125,7 @@ Midi_note::mom()
 Midi_tempo::Midi_tempo( int useconds_per_4_i )
 {
        useconds_per_4_i_ = useconds_per_4_i;
-// huh, is it not per 4?
-//     seconds_per_1_f_ = (Real)useconds_per_4_i_ * 4 / 1e6;
-       seconds_per_1_f_ = (Real)useconds_per_4_i_ * 8 / 1e6;
+       seconds_per_1_f_ = (Real)useconds_per_4_i_ * 4 / 1e6;
 }
 
 String
@@ -141,6 +139,12 @@ Midi_tempo::mudela_str( bool command_mode_bo )
        return str;
 }
 
+int 
+Midi_tempo::useconds_per_4_i()
+{
+       return useconds_per_4_i_;
+}
+
 int
 Midi_tempo::get_tempo_i( Moment moment )
 {
@@ -171,14 +175,14 @@ Midi_time::Midi_time( int num_i, int den_i, int clocks_4_i, int count_32_i )
        if ( count_32_i != 8 )
                warning( String( "#32 in quarter: " ) + String( count_32_i ), 0 );
        num_i_ = num_i;
-       den_i_ = 2 << den_i;
+       den_i_ = den_i;
        clocks_1_i_ = clocks_4_i * 4; 
 }
 
 Moment
 Midi_time::bar_mom()
 {
-       return Moment( num_i_ ) * Duration_convert::dur2_mom( Duration( den_i_ ) );
+       return Moment( num_i_ ) * Duration_convert::dur2_mom( Duration( 1 << den_i_ ) );
 }
 
 int
@@ -187,34 +191,23 @@ Midi_time::clocks_1_i()
        return clocks_1_i_;
 }
 
-Duration
-Midi_time::i2_dur( int time_i, int division_1_i )
+int
+Midi_time::den_i()
 {
-       Moment mom = Duration_convert::i2_mom( time_i, division_1_i );
-       mom /= sync_f_;
-
-       dtor << "\n% (" << time_i << ", " << mom << "): "
-               << sync_f_ << endl;
-
-       Duration dur = Duration_convert::mom2_dur( mom );
-       if ( !dur.type_i_ ) {
-               vtor << "\n% resyncing(" << time_i << ", " << mom << "): "
-                       << sync_f_ << " -> ";
-               mom *= sync_f_;
-               sync_f_ = Duration_convert::sync_f( sync_dur_, mom );
-               vtor << sync_f_ << endl;
-               mom /= sync_f_;
-               dur = Duration_convert::mom2_dur( mom );
-       }
+       return den_i_;
+}
 
-       return dur;
+int
+Midi_time::num_i()
+{
+       return num_i_;
 }
 
 String
 Midi_time::mudela_str( bool command_mode_bo )
 {
        String str = "meter { "
-               + String( num_i_ ) + "*" + String( den_i_ ) 
+               + String( num_i_ ) + "*" + String( 1 << den_i_ ) 
                + " }";
        if ( !command_mode_bo )
            str =  String( '\\' ) + str;
index e35369abfd81da4f64aa36f82a3a0cf92b44f099..5e6c2ced7d71e8e5549eece8e5e21b97effdc055 100644 (file)
@@ -47,9 +47,9 @@ My_midi_parser::reset()
        midi_key_p_ = new Midi_key( 0, 0 );
        // useconds per 4: 250000 === 60 4 per minute
        delete midi_tempo_p_;
-       midi_tempo_p_ = new Midi_tempo( 250000 );
+       midi_tempo_p_ = new Midi_tempo( 1000000 );
        delete midi_time_p_;
-       midi_time_p_ = new Midi_time( 4, 4, 384, 8 );
+       midi_time_p_ = new Midi_time( 4, 2, 24, 8 );
        now_i64_ = 0;
        bar_i_ = 1;
 
@@ -90,7 +90,7 @@ My_midi_parser::forward( int i )
 Moment
 My_midi_parser::mom()
 {
-       return Duration_convert::i2_mom( now_i64_, division_1_i_ );
+       return Moment( now_i64_, Duration::division_1_i_s );
 }
 
 void
@@ -110,7 +110,12 @@ My_midi_parser::note_end_midi_event_p( int channel_i, int pitch_i, int dyn_i )
 //     running_i64_i64_a_[ channel_i ][ pitch_i ] = -1;
 //     assert( start_i64 != -1 ); // did we start?
 
-       return new Midi_note( midi_key_p_->notename_str( pitch_i ), midi_time_p_->i2_dur( now_i64_ - start_i64, division_1_i_ ) );
+       Duration dur( 0 );
+       if ( Duration_convert::be_blonde_b_s )
+               dur = Duration_convert::ticks2_dur( (I64)now_i64_ - start_i64 );
+       else
+               dur = Duration_convert::ticks2standardised_dur( (I64)now_i64_ - start_i64 );
+       return new Midi_note( midi_key_p_->notename_str( pitch_i ), dur );
 }
 
 int
@@ -133,6 +138,7 @@ void
 My_midi_parser::set_division_4( int division_4_i )
 {
        division_1_i_ = division_4_i * 4;
+       Duration::division_1_i_s = division_1_i_;
        if ( division_4_i < 0 )
                warning( "seconds iso metrical time" , 0 );
 }
@@ -145,10 +151,10 @@ My_midi_parser::set_key( int accidentals_i, int minor_i )
 }
 
 void
-My_midi_parser::set_tempo( int useconds_i )
+My_midi_parser::set_tempo( int useconds_per_4_i )
 {
        delete midi_tempo_p_;
-       midi_tempo_p_ = new Midi_tempo( useconds_i );
+       midi_tempo_p_ = new Midi_tempo( useconds_per_4_i );
 }
 
 void