Howdy, Stranger!

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

Supported by

[solved] Present stimuli for different durations in a random order

edited February 2016 in OpenSesame

Hi all,

I am trying to create an experiment in which the stimuli will be presented for different duration taken from the variable list. So, I put [duration] in the duration box in the sketchtab which I put in a loop. Indeed, now the stimuli are presented for the durations in the variable list yet i need these durations to be in a random order and not fixed to the variables in the adjacent list. Is there a way to do this in OpenSesame?

I have searched for similar questions but did not fully understand the questions or the answers sinceI have very limited coding experience.

Any help will be appreciated.
Thanks
Amihai

Comments

  • Hello,

    One possibility is that you define at the beginning of every block a list with all possible durations:

    • Append an inline_script item to your block sequence, and place something like the following code in the Prepare tab:
    # Make a list with all possible duration values.
    # The list should be as long as you have trials in your block:
    
    # For example, if you want 5 different possible values for the variable
    # Duration, and every value should appear twice (i.e., every block
    # contains 10 trials):
    lDurations = [300,400,500,600,700] * 2
    
    # Shuffle the list:
    import random
    random.shuffle(lDurations)
    

    Next, pick one duration from this list at the beginning of every trial, without replacement.

    • Append an inline_script item to the beginning of your trial sequence, and place the following code in the Prepare tab:
    # Get duration on the current trial:
    var.duration = lDurations.pop()
    

    The above inline_script should be placed before the sketchpad item in which you want to use the duration. You can use the square-bracket method, that is [duration], as normally.

    Hope this helps!

    Cheers,

    Lotje

    Did you like my answer? Feel free to Buy Me A Coffee :)

  • Dear Lotje,

    I have done what you wrote and it solved my problem!
    Thank you very very much.

    One comment - i needed to make sure to put the lDurations function before in a preparation part before the loop.

    Amihai

Sign In or Register to comment.