Re-Presenting Trials

[QUOTE=Hank;1914]I think the easiest way to prevent trials from being re-presented would be to use code values on the trials to mark which have already been presented.

First, you create a code value, “presented,” with values, “yes” and “no,” to be used on trials. Then, you set the value on your trial(s) to “no.” Next, you create a feedback that runs somewhere in the trial every time it’s presented that changes this code value to “yes.” Lastly, you set up an expression to skip the next trial if its code value is “yes.” Since this is dependent on traits specific to the next trial, this can only be done at the trial level–that is, in the trial editor.

I don’t remember if it was 4.0.6 or 4.0.7 that added this functionality, but it’s relatively new to SuperLab 4.[/QUOTE]

Hi, I’m trying to do the opposite - present half of my total trials at random to each participant, and then in subsequent blocks I only want to present the trials that the participant has seen before (in random order if possible). Each trial has two events (from stimulus lists), and between each of those blocks, I want a block that shows only the first event each of the from the presented trials (in random order if possible).

I’m having problems getting this work, and I did this: I created a PRESENTED TRIAL code and a PRESENTED EVENT code, and I set the last event in the trial to give feedback that changes these code values to YES. Then I created a second trial that has in the condition box “is not set to YES” so that a trial is not presented if it wasn’t set to yes. Unfortunately, when I run the experiment, it picks at random from the whole stimulus list again, when I really just want it to pick at random from the previously-selected trials. I also tried making a macro that runs before every trial and skips the next trial if 1 or more trials from the subset NO (by default, all the other trials) have been presented, but this doesn’t work either (I guess because it technically hasn’t been presented yet).

Your trials contain two events, each using a stimulus list. Presenting trials that have already been shown to the participant should not be a problem, even if they were presented at random the first time. However, I can’t think of a way to present just one of the two events without creating a code for each list item.

BTW, at the trial level, it might be easier to test for “Number of Times This Trial Has Been Presented” instead of testing for the trial’s code value.

[QUOTE=Hisham;3203]Your trials contain two events, each using a stimulus list. Presenting trials that have already been shown to the participant should not be a problem, even if they were presented at random the first time. However, I can’t think of a way to present just one of the two events without creating a code for each list item.

BTW, at the trial level, it might be easier to test for “Number of Times This Trial Has Been Presented” instead of testing for the trial’s code value.[/QUOTE]

How would that work? If I use the same trial (with stimulus lists) for each presentation of the block (either repeating a block or making a new block with the same trials), I can’t set a trial-level condition based on “Number of Times This Trial Has Been Presented” must not be less than 1, because in the first presentation of the block, none of the trials will have been presented, so none would meet that condition (although when I do this, it ends up selecting them randomly for every repetition of the block anyway). If I make a new trial with the same events (with stimulus lists), none of the trials in that set will have been presented for the second and third blocks. I have this problem no matter whether I repeat the block or whether I create a new block.

Thanks for your help.

To present half of total trials, the testing should be done at the block level, not the trial, to look for 50% of trials presented. See the When to Run tab in the Block Editor. In that tab, change the Present the trials in this block option from Always to While the condition expression is true, then create the expression by clicking on the + (New) icon near the bottom.

I have this set up already - I have no problem showing half of the trials, selected at random. My problem is that I want to show only those trials again in the next learning block. An outline of the first section of the learning block looks like this:

LEARNING BLOCK 1 - shows half of the trials (each trial is a graphic plus a sound) in a random order
LEARNING BLOCK 2 - shows ONLY the trials that were shown in block 1 again, in a new random order
TESTING BLOCK - half of the graphic events, selected randomly
LEARNING BLOCK 3 & 4 - same trials as 1 and 2, but in a new random order
TESTING BLOCK 2 - the half of the graphic events that weren’t shown in the testing block

I tried making feedback within the trial set a trial code to PRESENTED if it is presented in learning block 1, which works fine, but I can’t find a way to make Learning Block 2 only show trials with that code.

Thank you!

I have attached a sample experiment that shows how to set up “Learning Block 1” and 2. For “Learning Block 3”, there is no way to do this unless you physically turn down the volume.

Regarding “Testing Block”, can you clarify what you mean by “half of the graphic events?” Have these “graphic events” been previously presented?

We believe there is a way to do “Testing Block 2” within SuperLab. However, we are still trying to figure it out.

Forums (Sgoct).sl4 (6.78 KB)