From 352f79a03fc4ca56752bf730dbb198b9f40afa77 Mon Sep 17 00:00:00 2001 From: Denis Redozubov Date: Wed, 28 Jun 2023 17:04:06 +0400 Subject: [PATCH] Fix: bass tracks with -B now has correct length --- src/midi/core.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/midi/core.rs b/src/midi/core.rs index f16e100..0f6c62e 100644 --- a/src/midi/core.rs +++ b/src/midi/core.rs @@ -985,6 +985,7 @@ fn create_tracks<'a>( add_bass: bool ) -> Vec>> { let events_iter = merge_into_iterator(&parts_and_groups, time_signature); + let bars = events_iter.bars.clone(); let events: Vec> = events_iter.collect(); let track_time = match events.last() { @@ -1093,7 +1094,8 @@ fn create_tracks<'a>( delta: 0.into(), kind: TrackEventKind::Meta(MetaMessage::InstrumentName(b"Bass")), }); - map_notes(bass.to_delta(), &mut bass_track); + let times = bars * time_signature.to_128th() / kick.to_128th(); + map_notes(concat_grid(bass, Times(times as u16)).to_delta(), &mut bass_track); vec![drums_track, bass_track] } else { vec![drums_track]