summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfalkTX <falktx@falktx.com>2019-02-28 01:12:13 +0100
committerfalkTX <falktx@falktx.com>2019-02-28 01:12:13 +0100
commit45a27ab64a5abd5991d3397c911fe5a30d777913 (patch)
treec96009483d58a16017df5028458063ada4bc6df9
parent3daa6cdcdadeb37cb85601e48b6959a6289d268e (diff)
More tweaks to transport
Signed-off-by: falkTX <falktx@falktx.com>
-rw-r--r--distrho/src/DistrhoPluginVST.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/distrho/src/DistrhoPluginVST.cpp b/distrho/src/DistrhoPluginVST.cpp
index 58fcbac3..c5cdd6e2 100644
--- a/distrho/src/DistrhoPluginVST.cpp
+++ b/distrho/src/DistrhoPluginVST.cpp
@@ -973,12 +973,12 @@ public:
if (vstTimeInfo->flags & (kVstPpqPosValid|kVstTimeSigValid))
{
const double ppqPos = std::abs(vstTimeInfo->ppqPos);
- const double ppqPerBar = static_cast<double>(vstTimeInfo->timeSigNumerator * 4) / vstTimeInfo->timeSigDenominator;
+ const int ppqPerBar = vstTimeInfo->timeSigNumerator * 4 / vstTimeInfo->timeSigDenominator;
const double barBeats = (std::fmod(ppqPos, ppqPerBar) / ppqPerBar) * vstTimeInfo->timeSigNumerator;
const double rest = std::fmod(barBeats, 1.0);
- fTimePosition.bbt.bar = static_cast<int32_t>(ppqPos / ppqPerBar + 0.5) + 1;
- fTimePosition.bbt.beat = static_cast<int32_t>(barBeats + 0.5) + 1;
+ fTimePosition.bbt.bar = static_cast<int32_t>(ppqPos) / ppqPerBar + 1;
+ fTimePosition.bbt.beat = static_cast<int32_t>(barBeats - rest + 0.5) + 1;
fTimePosition.bbt.tick = static_cast<int32_t>(rest * fTimePosition.bbt.ticksPerBeat + 0.5);
fTimePosition.bbt.beatsPerBar = vstTimeInfo->timeSigNumerator;
fTimePosition.bbt.beatType = vstTimeInfo->timeSigDenominator;