psychopy.org | Reference | Downloads | Github

New routine for each trial with different text?

OS: Win10
PsychoPy version : v3.2.4
**Standard Standalone? ** : yes
What are you trying to achieve?:
I’m building my first experiment. It’s a self-paced reading study, measuring keypress response times after reading sentence chunks at the participant’s own pace. I started to create the Flow of my experiment but I want to make sure I’m doing it in the most efficient way, i.e. whether I can simply copy routines instead of creating new ones for each trial.

What did you try to make it work?:
So far, I have a flow that looks like this (picture below)

So I have a first loop “trial” with the self-paced reading task and text (called from an Excel file). This loop is included in a second loop, together with a “break” routine that separates each trial. Some trials also have a third component (comprehension question) after them - I actually have problems with this but will ask them in a different post. I did this for all the trials and filler items (so far only 3 of each but I will end up with 40 stimuli + 60 fillers…), creating new routines and new loops all the time (except the “break” component, which is always the same).

All trials are then grouped in a big loop set to random order so that stimuli and fillers would be mixed.
Of course each trial has to display a different text. Stimuli and fillers come from two different Excel files, but I could merge them if necessary.

Am I doing this right ?

What specifically went wrong when you tried that?:
It works that way but I will end up with 100 different routines, and I’m not sure this is the most efficient way there is.

Thanks a lot !

Whoa there… Do you understand what loops actually do? Their pros is to repeatedly cycle over a routine. So ideally to present 100 trials, you would have a single loop that cycles 100 times over one or more enclosed routines. You certainly didn’t want 100 copies of your routines.

Thanks Michael. I thought so, but then I’m not sure how to structure the input file. It’s not a word-by-word task but segment-by-segment and the sentences are not cut at exactly the same places across trials or at a regular symbol. Here are some examples :
S1 / Mary doesn’t like to live in the city and / Paul wants to move to the country side
S2 / Sue doesn’t go to cheap hotels and / Tom always stays in fancy resorts

Is there a way that I could instruct the loop to move to the second part after a key press?
Grateful for any advice

This is fine. Let’s take this one step at a time. Construct your conditions file with just one column for your sentences, so it will look like this, with a variable name (say, sentence) at the top, and one complete sentence per row below it):

sentence
Mary doesn’t like to live in the city and / Paul wants to move to the country side
Sue doesn’t go to cheap hotels and / Tom always stays in fancy resorts
# etc

In a Builder file with just one loop (connected to that conditions file) containing just one routine (with a text stimulus and a keyboard component), can you get it to cycle through, showing each complete sentence per trial, moving on after a key press?

If this is not straight forward, just work through this 15 minute demo, which explains the basics (and a bit more):

Once you have this going with the complete sentences, I can show you easily how to extend that to split each sentence up at the /, but let’s walk before we can run.

Hi Michael, thanks again for your help. I found a solution close to what you’re suggesting somewhere else on this forum (Keyboard doesn't response in the second added routine), with symbols separating the chunks and a code component to instruct the split. It’s working now! (Not sure how to “close” this topic). Thank you.