Just pulled the current JUCE aax wrapper and noticed a potential bug (around line 885)
“framesPerSec = 23.976” and “framesPerSec = 29.97002997”
these are truncations which can result in significant amounts of drift when calculating between real time and NTSC speed timecode values.
I think the usual trick is to use a nominal framerate (integer) and an NTSC flag (bool) - and then apply the speed change whenever it’s needed:
e.g. baseFrameRate * 1000/1001
or at the very least, define the NTSC speed with greater accuracy:
framesPerSec = 29.97002997002997002997002997002997002997
framesPerSec = 23.976023976023976023976023976023976023976