Howdy, Stranger!

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

Supported by

[open] Stimuli randomization & rating scale plugin design

edited September 2015 in OpenSesame

Hi all.

New to Open Sesame, solid experience with computers and all kinds of software, but not with codes/scripts.

I'm making a simple experiment in which 32 short video clips are played. After each clip, the participant is asked to provide a response on a Likert scale. The design is within-subjects, so I need to randomize the order of the stimuli (VLC items) for each participant (just the stimuli in the sequence, not the independent variables as in a loop). Then I would like OS to log all responses (where the logging process would of course "ignore" the randomization, i.e. give me a log file in which the results are correctly assigned to appropriate stimuli - say, according to the number or name of the video clip).

Any easy solution for this?

Also, I've downloaded the rating scale plugin, but it looks like its default (or sole?) design consists of little stars changing color from white to yellow when selected. Any chance this could be changed into something more "traditional" (numbers, custom labels...)?

I suspect some scripting is required for both these tasks. Any hints appreciated.

Thanks so much for the great work on this software.
Mihailo

Comments

  • edited 8:46AM

    Hi Mihailo,

    You can use so-called forms to collect your responses. Check out this page: http://osdoc.cogsci.nl/forms/ for detailed instructions (and the rating scale functions in particular).

    Previous questions about the likert scale:
    http://www.cogsci.nl/forum/index.php?p=/discussion/345/solved-likert-scale-trouble/p1

    The general idea for your experiment will be to have a sequence item in a loop item and in the loop indicate to run the sequence 32 times. In the sequence you'll have a video player item, a form that collects your response, and a logger to log the response to a save file.
    Before the loop, you want to create a list with all of your video files (which are also placed in the file pool) in the prepare phase of an inline_script, e.g.: video_list = ['video1.mp4', 'video2.mp4', 'video3.mp4']. And you also want to give that list a random shuffle:

      import random
      video_list = ['video1.mp4', 'video2.mp4', 'video3.mp4']
      random.shuffle('video_list')
    

    In the sequence, you place another inline script that will pick the video for that iteration:

      video = video_list.pop(0) # takes the first element from our shuffled list.
      exp.set('video', video) # makes item available outside of inline_script
    

    In the media player item, you simply insert [video] in the 'video file' box.

    Hope this helps.

    Cheers,

    Josh

  • edited 8:46AM

    Dear Josh,
    Thank you very much for your help.
    It has assisted me a lot in terms of the "logic" of the design and opened my eyes with regard to "how I should think" with Open Sesame.
    Alas, though, with the video list arranged as above, Open Sesame gives me a "Type Error" (str object does not support assignment type).
    I'm probably doing something wrong and will keep on trying.
    Thanks again for all the effort.
    Mihailo

Sign In or Register to comment.