JUCE VST2 Plugin Won’t Follow Playhead in Sibelius

My JUCE VST2 plugin syncs fine in Logic and Cubase but won’t follow the playhead in Sibelius. getPlayHead() is called, but CurrentPositionInfo doesn’t update correctly.

Tried:

  • Verified transport updates work in other DAWs.
  • Tested in Sibelius 2024.x on macOS and Windows.
  • Other JUCE plugins sync fine in Sibelius.

Anyone encountered this? Known workarounds?

You’re better off using getTimeInSamples() as this is always guaranteed to be updated.

I’ll try that, thanks!

Hi there!

Thnaks @leehu for your answer.

I’m working with @rdecosta.

We’ve triedgetTimeInSamples and getTimeInSeconds but they return numbers that doesnt make sense, even negative, for example

Time in Samples: 2307841200000
Time in Seconds: 5.2332e+07

And the song was 10 seconds long

Any help would be appreciated

Hi, then maybe the problem is with Sibelius reporting incorrect info? I’ve not used that DAW myself.

That’s my guess, but maybe someone know any workaround or has solved this

Thanks

How are you testing sync in other plugins?

CurrentPositionInfo is deprecated. The recommended approach is to call AudioPlayHead::getPosition(), which returns an optional<PositionInfo> which will be valid if the host provides position info, or null otherwise. Once you have a PositionInfo, you can call PositionInfo::getTimeInSamples() to determine its time. Note that this function also returns an optional value, because certain hosts provide only a subset of the possible position information.

Hi @reuk, thanks for your response.

Actually, thats exactly what we are doing, the weird thing is that the optional returns that has a value, but when we get the value is not whats expected as mentioned avobe.

Probably Sibelius team, for some reason, decided not to report the time I assume

Thanks!

In case anyone sees this in the future, was a Sibelius bug that should be solved in their next update

Thanks for the update!