Skip to content

Commit

Permalink
Fixed issue where click track events would be added to the beginning …
Browse files Browse the repository at this point in the history
…of a loop when the status was .EnabledOnlyInPreRoll.
  • Loading branch information
kris2point0 committed Mar 18, 2016
1 parent 6698fad commit 2535c5b
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion Source/MIKMIDISequencer.m
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ @interface MIKMIDISequencer ()
@property (nonatomic, strong) NSMutableDictionary *pendingRecordedNoteEvents;

@property (nonatomic) MusicTimeStamp startingTimeStamp;
@property (nonatomic) MusicTimeStamp initialStartingTimeStamp;

@property (nonatomic, strong) NSMapTable *tracksToDestinationsMap;
@property (nonatomic, strong) NSMapTable *tracksToDefaultSynthsMap;
Expand Down Expand Up @@ -184,6 +185,7 @@ - (void)startPlaybackAtTimeStamp:(MusicTimeStamp)timeStamp MIDITimeStamp:(MIDITi

dispatch_sync(queue, ^{
self.startingTimeStamp = timeStamp;
self.initialStartingTimeStamp = timeStamp;

Float64 startingTempo = [self.sequence tempoAtTimeStamp:timeStamp];
if (!startingTempo) startingTempo = kDefaultTempo;
Expand Down Expand Up @@ -660,7 +662,7 @@ - (NSMutableArray *)clickTrackEventsFromTimeStamp:(MusicTimeStamp)fromTimeStamp

MusicTimeStamp clickTimeStamp = floor(fromTimeStamp);
while (clickTimeStamp <= toTimeStamp) {
if (clickTrackStatus == MIKMIDISequencerClickTrackStatusEnabledOnlyInPreRoll && clickTimeStamp >= self.startingTimeStamp + self.preRoll) break;
if (clickTrackStatus == MIKMIDISequencerClickTrackStatusEnabledOnlyInPreRoll && clickTimeStamp >= self.initialStartingTimeStamp + self.preRoll) break;

MIKMIDIMetaTimeSignatureEvent *event = [timeSignatureEvents firstObject];
if (event && event.timeStamp <= clickTimeStamp) {
Expand Down

0 comments on commit 2535c5b

Please sign in to comment.