@@ -622,7 +622,7 @@ void SeqSourceProcessor::processBlock(
622
622
int sourceOffsetInSample = std::floor (sourceOffset * sampleRate);
623
623
624
624
/* * Caculate Time */
625
- int sourceStartTimeInSample = sourceOffsetInSample;
625
+ int sourceStartTimeInSample = - sourceOffsetInSample;
626
626
int sourceEndTimeInSample = sourceStartTimeInSample + sourceLengthInSample;
627
627
int dataStartTimeInSample = std::max (blockStartTimeInSample, sourceStartTimeInSample);
628
628
int dataEndTimeInSample = std::min (blockEndTimeInSample, sourceEndTimeInSample);
@@ -634,13 +634,12 @@ void SeqSourceProcessor::processBlock(
634
634
635
635
if (hotLengthInSample > 0 ) {
636
636
int bufferOffsetInSample = hotStartTimeInSample - startTimeInSample;
637
- int sourceOffsetInSample = hotStartTimeInSample - sourceStartTimeInSample;
638
637
639
638
/* * Read Data */
640
639
this ->readAudioData (buffer, bufferOffsetInSample,
641
- sourceOffsetInSample, hotLengthInSample);
642
- this ->readMIDIData (midiMessages, sourceOffsetInSample,
643
- hotStartTimeInSample, hotEndTimeInSample);
640
+ hotStartTimeInSample + sourceOffsetInSample, hotLengthInSample);
641
+ this ->readMIDIData (midiMessages, startTimeInSample + sourceOffsetInSample,
642
+ hotStartTimeInSample + sourceOffsetInSample , hotEndTimeInSample + sourceOffsetInSample );
644
643
}
645
644
}
646
645
}
0 commit comments