I did a little experiment and it seems it's not even deterministic. For a given note size and bpm, while recording, it is consistent (every note offset by about x samples), but when I change the bpm and come back, it is a new, different value:
eg. for 1/64th notes I got the following..
Code:
bpm sampleoffset
85 11
86 6
140 0
160 4
15 2
300 0
but when I came back to 86 again, it was now 5 samples too late, instead of 11 too early; checking out the others yielded similar results.
We're talking about +- 360us, so it's not
that significant, and for a given BPM, when I am recording, regardless of whether I change the note size, all offsets are the same.
Changing the BPM without playing, and changing it back has no effect.
Changing to another BPM, hitting play, and changing back does change it though.
Changing the BPM while playing I can't really tell, because of how the notes are positioned.
¯\_(ツ)_/¯
As far as I can tell the code that I wrote is supposed to be 100% deterministic, so this is pretty wild.
[using wdl-ol / reaper (latest)]