| @@ -537,29 +537,29 @@ public: | |||||
| const double framesPerBeat = 60.0 * fSampleRate / beatsPerMinute; | const double framesPerBeat = 60.0 * fSampleRate / beatsPerMinute; | ||||
| const double addedBarBeats = double(sampleCount) / framesPerBeat; | const double addedBarBeats = double(sampleCount) / framesPerBeat; | ||||
| if (fLastPositionData.bar >= 0) | |||||
| { | |||||
| fLastPositionData.bar += std::floor((fLastPositionData.barBeat+addedBarBeats)/ | |||||
| fLastPositionData.beatsPerBar); | |||||
| if (fLastPositionData.bar < 0) | |||||
| fLastPositionData.bar = 0; | |||||
| fTimePosition.bbt.bar = fLastPositionData.bar + 1; | |||||
| fTimePosition.bbt.barStartTick = fTimePosition.bbt.ticksPerBeat* | |||||
| fTimePosition.bbt.beatsPerBar* | |||||
| (fTimePosition.bbt.bar-1); | |||||
| } | |||||
| if (fLastPositionData.barBeat >= 0.0f) | if (fLastPositionData.barBeat >= 0.0f) | ||||
| { | { | ||||
| fLastPositionData.barBeat = std::fmod(fLastPositionData.barBeat+addedBarBeats, | fLastPositionData.barBeat = std::fmod(fLastPositionData.barBeat+addedBarBeats, | ||||
| fTimePosition.bbt.beatsPerBar); | |||||
| fLastPositionData.beatsPerBar); | |||||
| const double rest = std::fmod(fLastPositionData.barBeat, 1.0); | const double rest = std::fmod(fLastPositionData.barBeat, 1.0); | ||||
| fTimePosition.bbt.beat = fLastPositionData.barBeat-rest+1.0; | fTimePosition.bbt.beat = fLastPositionData.barBeat-rest+1.0; | ||||
| fTimePosition.bbt.tick = rest*fTimePosition.bbt.ticksPerBeat+0.5; | fTimePosition.bbt.tick = rest*fTimePosition.bbt.ticksPerBeat+0.5; | ||||
| if (fLastPositionData.bar >= 0) | |||||
| { | |||||
| fLastPositionData.bar += std::floor((fLastPositionData.barBeat+addedBarBeats)/ | |||||
| fLastPositionData.beatsPerBar); | |||||
| if (fLastPositionData.bar < 0) | |||||
| fLastPositionData.bar = 0; | |||||
| fTimePosition.bbt.bar = fLastPositionData.bar + 1; | |||||
| fTimePosition.bbt.barStartTick = fTimePosition.bbt.ticksPerBeat* | |||||
| fTimePosition.bbt.beatsPerBar* | |||||
| (fTimePosition.bbt.bar-1); | |||||
| } | |||||
| } | } | ||||
| fTimePosition.bbt.beatsPerMinute = std::abs(beatsPerMinute); | fTimePosition.bbt.beatsPerMinute = std::abs(beatsPerMinute); | ||||