commit e0f66043fe5ba60c1ebbb0afe7c184dae158d820
parent 8f9b3658313e8f9c1cf934670ebfa4e6813fc415
Author: falkTX <falktx@gmail.com>
Date: Wed, 10 Sep 2014 12:57:41 +0100
Misc
Diffstat:
1 file changed, 12 insertions(+), 19 deletions(-)
diff --git a/distrho/src/DistrhoPluginVST.cpp b/distrho/src/DistrhoPluginVST.cpp
@@ -620,7 +620,7 @@ public:
void vst_processReplacing(const float** const inputs, float** const outputs, const int32_t sampleFrames)
{
#if DISTRHO_PLUGIN_WANT_TIMEPOS
- static const int kWantVstTimeFlags(kVstTransportPlaying|kVstPpqPosValid|kVstTempoValid|kVstBarsValid|kVstTimeSigValid);
+ static const int kWantVstTimeFlags(kVstTransportPlaying|kVstPpqPosValid|kVstTempoValid|kVstTimeSigValid);
if (const VstTimeInfo* const vstTimeInfo = (const VstTimeInfo*)fAudioMaster(fEffect, audioMasterGetTime, 0, kWantVstTimeFlags, nullptr, 0.0f))
{
@@ -636,32 +636,25 @@ public:
else
fTimePosition.bbt.beatsPerMinute = 120.0;
- if (vstTimeInfo->flags & kVstTimeSigValid)
- {
- fTimePosition.bbt.beatsPerBar = vstTimeInfo->timeSigNumerator;
- fTimePosition.bbt.beatType = vstTimeInfo->timeSigDenominator;
- }
- else
- {
- fTimePosition.bbt.beatsPerBar = 4.0f;
- fTimePosition.bbt.beatType = 4.0f;
- }
-
- if (vstTimeInfo->flags & kVstPpqPosValid)
+ if (vstTimeInfo->flags & kVstPpqPosValid|kVstTimeSigValid)
{
const int ppqPerBar = vstTimeInfo->timeSigNumerator * 4 / vstTimeInfo->timeSigDenominator;
const double barBeats = (std::fmod(vstTimeInfo->ppqPos, ppqPerBar) / ppqPerBar) * vstTimeInfo->timeSigDenominator;
const double rest = std::fmod(barBeats, 1.0);
- fTimePosition.bbt.bar = int(vstTimeInfo->ppqPos)/ppqPerBar + 1;
- fTimePosition.bbt.beat = barBeats-rest+1;
- fTimePosition.bbt.tick = rest*fTimePosition.bbt.ticksPerBeat+0.5;
+ fTimePosition.bbt.bar = int(vstTimeInfo->ppqPos)/ppqPerBar + 1;
+ fTimePosition.bbt.beat = barBeats-rest+1;
+ fTimePosition.bbt.tick = rest*fTimePosition.bbt.ticksPerBeat+0.5;
+ fTimePosition.bbt.beatsPerBar = vstTimeInfo->timeSigNumerator;
+ fTimePosition.bbt.beatType = vstTimeInfo->timeSigDenominator;
}
else
{
- fTimePosition.bbt.bar = 1;
- fTimePosition.bbt.beat = 1;
- fTimePosition.bbt.tick = 0;
+ fTimePosition.bbt.bar = 1;
+ fTimePosition.bbt.beat = 1;
+ fTimePosition.bbt.tick = 0;
+ fTimePosition.bbt.beatsPerBar = 4.0f;
+ fTimePosition.bbt.beatType = 4.0f;
}
fTimePosition.bbt.barStartTick = fTimePosition.bbt.ticksPerBeat*fTimePosition.bbt.beatsPerBar*(fTimePosition.bbt.bar-1);