| Reference | Downloads | Github

Distribute large number of stimuli into multiple blocks

Hi everyone,

I’m new to psychopy and completely stuck with this issue I’m having - I’d really appreciate it if someone could help out.
In my experiment, I have a large number of stimuli, and I want to show every stimulus to every participant exactly once, but in a different random order for each one. So far, so easy, but I also want to split the trials into blocks of 20 in order to offer participants a break (after every 20th trial). There would be no differences between the blocks other than the respective selection of stimuli.
And after trying a few things and googling around, I feel like I have even less of an idea of how to achieve that than before, even though it seems simple enough. (Which is why I hope I’m not missing anything super obvious.)

Does anyone know how I could do that? If I need to specify my goals / the experiment more clearly, please let me know.
Thank you very much in advance!


I don’t know if bumping works / is allowed on this forum, but does anyone have suggestions?

There are two approaches.

  1. Have a single trials loop and a Break Routine which ends immediately unless trials.thisN%20==0 and trials.thisN>0

  2. Load the stimuli into an array using one loop and then pop or select them in later loops.

Based on what you’ve said I’d strongly recommend method 1. Method 2 would make more sense if you were using the stimuli for two or three different trial types.

Thanks, method 1 is great for my experiment. Seems pretty obvious in hindsight, haha. I’m new to GUI programming / the builder and thought there might be a solution just with the built-in loop mechanics.

But thank you very much! :smiley: