Hello! I’m in the process of porting a music app over to VST, mostly using the VST3PluginTestHost to test and validate it, as I presume this represents best practices for a host.
I’m seeing some odd behaviour, and wondering if it’s me. In my process callback, when VST3PluginTestHost has its timeline running, and a tempo set, the ProcessContext is the following:
(Steinberg::Vst::ProcessContext) $1 = {
state = 0
sampleRate = 48000
projectTimeSamples = 353536
systemTime = 0
continousTimeSamples = 0
projectTimeMusic = 0
barPositionMusic = 0
cycleStartMusic = 0
cycleEndMusic = 0
tempo = 120
timeSigNumerator = 0
timeSigDenominator = 0
chord = (keyNote = '\0', rootNote = '\0', chordMask = 0)
smpteOffsetSubframes = 0
frameRate = (framesPerSecond = 0, flags = 0)
samplesToNextClock = 0
}
In particular, “state” seems to be always zero. As I understood the header documentation for that structure, that member should contain a bit mask of flags indicating the contents of the rest of the structure – in this case, I’d expect it would at least be a combination of kPlaying | kTempoValid.
Further, when updating the tempo using VST3PluginTestHost’s UI to a value other 120, the change isn’t reflected within this structure.
I’m also seeing no value for projectTimeMusic, which I would have expected to be filled.
Am I missing something here?
Cheers,
Michael