How to Randomize Blocks for Counterbalancing


To start off, my OS is MacOS Monterey version 12.6.5, and I have PsychoPy version 2020.2.10.

I am creating a Target Detection task where I have 3 versions of language A and 3 versions of language B (meaning I have 6 languages in total). For this task, I need to play a 6-minute exposure phase before participants actually complete the task. I figured out how to play the actual language, but I need to randomize it so that some participants are having exposure with LA1, some are having it with LA2, some are having it with LA3, some are having it with LB1, and so on. I currently have each of the languages saved in a separate spreadsheet with each cell representing a syllable in the language. I think I’d just have to create another Excel file and possibly put the path names to the original 6 spreadsheets and create an outer loop out of it, but when I am unsure.

Please let me know if you know how to do this! I am a beginner at PsychoPy, so any help would be appreciated.

Thank you!


you could use the participant number or assign participants to groups and use this information to load specific stimuli. See the example below for two groups.

if int(expInfo['participant'])%2 == 0:
    listNr = '1'
    listNr= '2'


Best wishes Jens