Hello everyone, I am wanting to try out PsychoPy after struggling with E-prime!
I would like to set up an experiment which appears to participants as a reading task.
So participants would be asked to read some information, which is presented one paragraph at a time, and they would advance to the next paragraph themselves by pressing a button. (I have managed to set this bit up so far!)
However, I then would like to know whether it is possible to set up text probes to appear to participants as they are reading which as them as question,. So in other words, participants would be engaged in the reading task, then all of a sudden some text would appear on their screen asking them a question which they would then have to respond to (e.g., by pressing Y- yes or N - no) . After they respond to such probe, they would then carry on where they left off with the reading task.
I would like to then set this probes to appear at certain times within the experiment and collect all responses.
Does anyone know whether this is possible within PsychoPy? If so, would anyone be able to kindly point me in the right direction as to how I would go about setting up the probes?
Most things are possible but you need to describe your procedure exactly. Think of the level of detail needed for a methods section of a paper and then add some more. Also include the PsychoPy-specific description (e.g. is there nesting of loops, such as one loop for trials and an inner one for paragraphs?)
Many thanks for your reply! I’ve took some time to get back to you as I’m really struggling to know the best way to set up my experiment in the first place, so I’m not sure on whether it’s better to include nesting of loops or not.
I would like the probe text to pop up at certain time points, while participants are reading some paragraphs (which they press a button to self advance to the next para). So while they are reading the text, I would like probes to pop up at certain time points in relation to the start time of the previous probe. So, say for instance, I have probe 1 set at 3 seconds, probe 2 at 5 seconds and probe 3 at 8 seconds. I would like it to run so that probe 2 will pop up 5 seconds after the start of probe 1 and probe 3 will run 8 seconds after probe 2, and so on. I have an excel file of all the different timings, but I have no idea how I will set this up in PsychoPy. Will that involve coding?
I would like these probes to be applied to the whole of the reading task (so all 7 paragraphs, and not just to individual paragraphs). Further, when the probe pops up it will ask participants a question, they respond with a key and then it takes them back to the paragraph that they were originally reading before the probe popped up. This will go on till they have read the full text I give them.
So far, I have played around with PsychoPy setting it up in different ways. I have set it up using nested loops like here (in the pic attached) and I can get both the reading text paragraphs and the probes to display, (although at the min the probes are just set for random timings as I cant figure out how to make them run at times in relation to the previous probe , as described above), but they both are being displayed at the same time, when I only want one piece of text to show at one time .
I hope that helps give a little bit more detail, please let me know if you need more info on what I am hoping to do.
I don’t often give this advice these days, but I don’t think Builder is that well-suited to implementing your task. It is fundamentally structured around discrete trials and your paradigm isn’t really like that. You have two processes happening in parallel here: the probes, which initiate at fixed times (although there is the complication of them also requiring a response from the participant, which could break that timing), and the paragraphs, which are controlled by the user. So the nested loop arrangement doesn’t really work here, as it relies on the assumption that the inner loop iterations are completed before the outer loop runs again.
This could possibly be shoe-horned into Builder with lots of code component wizardry, but really I think the better approach to implement a task like this cleanly would be to do the whole thing in code. You have much more freedom to express looping and logic in code than within the constraints of a simplified graphical interface.
That would require getting up to speed with Python, or working with someone else who has those skills.