Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Assigning shapes from several lists to positions on circular array

Hi! I'm very new to any kind of programming at all, and I'm currently trying to create an visual search experiment on Open Sesame. I was wondering if I could get some help on how to best do this?

My experiment stimuli will consist of a circular visual search array with 6 positions on the circular array. I have 6 sets of shapes containing lists of shapes that each need to appear in a specific sequential order, but randomly in terms of location on the circular array. So for example, Set 1 of shapes will have to appear specifically in the order of ACBDFE with one shape appearing per trial, but on each trial, each one of the shapes will appear randomly at one of the locations on the circular array. The same thing has to happen for the other 5 sets of shapes, so that each trial will have one shape from each set, appearing at one of the six locations randomly. At the same time, the locations have to be counterbalanced across each shape set.

I've already calculated the x and y coordinates for each of the 6 positions, and I was initially hoping to be able to do this with the GUI, but I think some inline coding will be needed for this?


  • Update: I've managed to create pseudo randomised lists of all my shape sets and array locations with the inline script. However, I'm having problems trying to link/reference these lists in my block loop without printing the lists and directly copying and pasting them to the table in the block loop.

    Could I please get some help on how to go about doing this? Thanks!

  • Hi Hannah,

    If you add a variable to the block loop table that keeps track of the current trial number. You can use use that trial number to access the lists that you created before and define the variables per trial in your loop.
    For example, in the beginning of your loop, you can put an inline_script with this code:

    var.stim = stim_list[var.trial_no-1]
    var.cond = cond_list[var.trial_no-1]
    var.correct_response = corresp_list[var.trial_no-1]
    var.something_else = more_list[var.trial_no-1]

    From then on you can use the variables as if they were defined in the loop table.


  • Hi Eduard,

    Thanks! Can I just clarify how to define the number of trials in the block loop table?

  • Hi,

    Just add a column with the name trial_no and then that add as many rows as you need trials (numbering them starting at 1).


  • Great, thanks Eduard!

Sign In or Register to comment.