penn controller for (visual) masked priming?

Home Forums Support penn controller for (visual) masked priming?

This topic contains 1 reply, has 2 voices, and was last updated by Jeremy Jeremy 5 months ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
  • #2832



    I am about to run on-line visual masked priming experiments and I was wondering if PennController may be a good solution. Do you have any insight about whether that may be the case?



    Hi Roberto,

    Before I answer your question, let me point out that we have a new website ( ) where we also migrated the forums ( ). I will also clone this discussion there (without this line).

    I have not run masked priming myself, but I seem to remember hearing of people doing it with Ibex.

    As any javascript-based solution, Ibex, and therefore PennController as well, runs locally, on the client side, which means that quality of connection shouldn’t be an issue, as long as you make sure that all resources are preloaded before running trials.

    Then there’s the question of refresh rate. With online experiment, you really have no control over the participant’s monitor, but I doubt many people run under 60Hz nowadays, which still gives you a 16ms time window theoretically, it’s not bad.

    Then enters the question of performance, and the question of the alignment of your script’s frame-rate and the monitor’s refreshing cycle. 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.

    A better solution might be to rely on JavaScript’s request​Animation​Frame 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.

    In any case, it’s always a good idea to pilot this kind of things first. I would say, if you think you’d be fine with time windows between 40ms and 60ms, then maybe try to run a few participants and look at the actual data. The considerations above hold true of any javascript-based solution.

    Let me know if you have any questions.


Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.