psychopy.org | Reference | Downloads | Github

Conflicting specifications for order of components within a trial

I was planning for component B (a text component with feedback) to follow component A (a rating scale) in my trial routine. To that end, component B is set to start with condition “componentA.status==FINISHED”.

However, I now notice that I have, by mistake, placed component B ahead of (above) component A in the Builder’s routine view, instead of beneath it as I should have, in order for the visual diagram of the trial to be correct/congruent.

Am I correct that, in this conflict, the starting point specification takes precedence over the component order, such that in this case my trial’s intended timing is not messed up, i.e. that B still starts after - rather than before - A?

I know that component order can be crucial for code components (which sometimes need to be placed at either the top or the bottom of the routine) so wondered if it is here too.

Thanks!

You can change the order of components by right-clicking them and moving them up or down as required.

Also consider just putting the second component in a separate routine, after the routine containing the rating scale. This can avoid the need for any code at all.

Thanks Michael, and sorry, I wasn’t specific enough - this script already has data collected for it, so I’m wondering which rule took precedence in the already-collected data (I know components can be moved up/down, I just didn’t notice this reversal early enough)

I would guess that your text stimulus would start one screen refresh later than intended (e.g. by 16.666 ms on a 60 Hz display). i.e. on a given screen redraw cycle, the text stimulus checks if the rating scale has ended. The rating scale has already been clicked, but the its code hasn’t been checked yet, so the text stimulus doesn’t start. Then the rating scale code executes, and it finds that it has been clicked and its status is sent to FINISHED.

So now, the text stimulus will pick up the FINISHED status on the next cycle, roughly 16 ms later than you wanted. This may or may not be important?

(All above is assuming I understand this latest description correctly.)

That’s exactly what I needed to know (understand), many thanks Michael.