PennController for IBEX › Forums › Support › penn controller for (visual) masked priming? › Reply To: penn controller for (visual) masked priming?
Hi Jeremy,
many thanks for your response.
PennController’s Timer elements currently use JavaScript’s
setTimeout
function which is far from perfect and can be problematic for highly accurate measures. I wouldn’t rely on it if you need to compose with time windows under about 30ms (missing one refresh rate, you get 2 times 16ms = 32ms). Note that you can estimate how much time really elapsed if you call.settings.log()
on your Timer and then look at the difference between the timestamps of the results lines corresponding to the Start and End events.
Yes, this is a general problem with on-line experiments and it becomes crucial when the results dramatically depend on it! However, I guess that, as long as the prime word is masked (i.e., between 40 and 60 ms), I could be happy.
A better solution might be to rely on JavaScript’s
requestAnimationFrame
function, which I plan on using instead of setTimeout for Timer elements in future releases of PennController. I could prioritize working on this feature if you think the current Timer element will give you too poor performances regarding your masked priming needs.
I must say, I do not know much about JavaScript, but if you think that requestAnimationFrame
is a better and safer option, I’ll trust you!
I’ll give it a try in the weekend and see how it looks like. I’ll keep you posted!