Sorry for jumping in an old post, but I got a similar problem.
Basically, I need to alternate every single experimental trial with 3 filler sentences to be presented either visually (read&repeat) or aurally (listen&repeat). The modality of the fillers is pre-assigned, but I need to randomize the order throughout the experiment and across participants.
I used sepWith to alternate the experimental/filler trials, and I defined the Pick function as specified above. It was super useful and I solved the problem of randomizing the modality of the fillers as well as presenting only 3 fillers at every time.
However, I always get the same 3 filler sentences. I know I should store the set of used fillers in a new variable (the one you referred to as ‘liste’ in the example above). But I am not completely sure about how to add this detail in my sequence without having to apply a pick function+’liste’ variable to each and every of my experimental trials as well.
To make things even more complicated, it is a production experiment, so ideally I would want to have a sepWith asyncUpload to start uploading the recordings as they go.
So far, the sequence is specified as follow:
Sequence("welcome", "preload", "init", sepWith("asyncUpload",(randomize(anyOf("practice-listen","practice-read")))), sepWith( pick(randomize(anyOf("filler-listen","filler-read")),3), "exp-trial"), "upload", "send", "bye" )
– “filler-listen” is a trial with the specific code for audio (listen&repeat) stimuli;
– “filler-read” is a trial with the specific code for visual (read&repeat) stimuli;
– “exp-trial” is the actual experimental trial of listen&repeat(and record)-read&repeat(and record), with listen sentences and read sentences pre-paired together and stored in the same row in the csv table.
Thank you in advance for any help!