Repeat block based on event input

In our experiment design, we like to train subjects to do a task in a series of training blocks. If they meet our criteria, they can move onto the experiment. If they do not meet the criteria, we have them repeat a block of the training trials until they are able to meet our criteria.

With SuperLab I can easily have block repeat until a certain number of trials have been executed. However, is it possible to have a block repeat based on input from an experimenter?

Currently I have four trials in a block that I show the subject repeatedly to a maximum of 16 trials. At the end of this block I would like to provide the experimenter an opportunity to press a key to either repeat the block or continue to the next block.

Is this possible in SuperLab and how would I do it if it is?

Thank you for your time,

Marnie

Hi Marnie,

When it’s time for the experimenter to respond, you can have the event set a code to a particular value. This is done in the Event Editor’s Feedback tab.

For example, you can create a code called “Experimenter Says” and give it two values: “continue” and “repeat”. Then set the correct response to be the space bar. If the experiment presses the space bar, nothing is done and SuperLab continues to the next block. If he or she presses any other key, you can set code “Experiment Says” to “repeat”.

Then you will need to create a macro that checks to see if the last trial had a code “Experiment Says” that was set to “repeat”, and branch accordingly.

I hope this helps,

Hisham.

Thanks Hisham!

I thought I might be able to do it through the codes, but couldn’t get it to work. I will try what you suggested tomorrow.

Marnie

I set up an event to be run at then end of 16 trials via a macro. This event asks the experimenter to evaluate whether to continue with the experiment (spacebar) or repeat the training ®. It then changes the “Experimenter Says” code accordingly.

I had got this far on my own before, but the last part of Hisham’s description is what I was having trouble with. How do I do this?

“Then you will need to create a macro that checks to see if the last trial had a code “Experiment Says” that was set to “repeat”, and branch accordingly.”

In the macro section of the block I can instruct the block to repeat, but I can’t see how to evaluate the code. The macro expression editor only seems to let me evaluate number of trials shown or time since block started. How do I evaluate whether a code is set to a certain value? Or are you talking about setting up macros in a different way?

I have attached a picture of the block macro to include additional info that might be needed.

Thanks

Marnie

Picture 1.png

Is there a sample experiment available anywhere that I can download to see this macro feature in action?

Thanks

Marnie

Hi Marnie,

In looking at the screen snapshot that you posted, try clicking on the Subset button in the Expression Editor. This is where you can tell SuperLab to look at only the last event that happens to have the code “Experimenter Says” and its code value set to “repeat” (as an example). Set the operator “Is Equal To” value 1.

If the expression returns true, this means that the last trial has the “Experimenter Says” code value set to “repeat”.

Hisham.