Method of Adjustment?

We are trying to figure out if we can do a “method of adjustment” experiment in SuperLab or if we are going to be limited to coding it in Matlab.

In this experiment we want to present a stimulus called a Gabor. This should be presented at a random orientation + or - 45 degrees from our desired orientation (for instance, if we are interested in obtaining what a participant believes is 90 degrees, the initial presentation of the Gabor could randomly be at 80 degrees). The participant needs to use either the 1 (counterclockwise) or 2 (clockwise) key to rotate the Gabor until he or she thinks it is straight up and down, at which point he or she would press 0. We would record the angle it was presented at when the participant indicated it was at the correct orientation and then move on to the next trial.

Can we have SuperLab rotate a Gabor using the rules? The only thing I can think of is to create a trial for each possible starting rotation, then a rule for each stating that if a 1 is pressed, move to Gabor -1 degree rotation, or if a 2 is pressed, move to Gabor +1 degree rotation. This would mean we need to create rules for each of 180 degrees possible Gabor orientations, so roughly 360 rules in total. I am concerned that SuperLab may crash on me with such a large file. I was having issues with that in a previous experiment.

Is it possible to have it rotate the Gabor within a single event until the participant indicates it is “correct”? Can we then have the participant’s response record the last presented angle?

Ultimately, we want to have three base orientations tested, so three blocks. One block for 90 degrees, one block for 45 degrees, and one for 180 degrees. Each block would be limited to + or - 45 degrees from the desired angle.

If we are limited to the solution I mentioned above, is there any way to ensure the experiment will not crash due to the large size?

Thank you for your time and assistance with this matter.

Additional issue

Hi Again,

Unfortunately, this question and the quick solution I proposed may not work. If image rotation is in a raster-format re-construction, it won’t work properly. I may just have to do it the longer way I mentioned above.

Sorry if I wasted anyone’s time.

A demo experiment is attached. What we suggest is to create one picture-trial per rotation using a Stimulus List. Then SuperLab can automatically generate a trial for each individual picture in the list. Starting at a random angle will be accomplished by using a randomized parameter of type Counter, a new feature in SuperLab 5. The parameters feature is found under the Experiment menu.

Also, only two Rules under the Trial Editor will be needed for this experiment. However, after creating the rules you will need to use “Expand Events That Use Lists”, found under the Experiment menu, to make one small edit on the front tab of each trial.

The demo uses ten letters, A-J. These ten letters could represent 10 rotated Gabor images. The experiment accepts keyboard input to decide whether to advance forward through the letters, or to move backwards. The screencast below demonstrates the most efficient way to create the experiment:

Here are the steps shown in the screencast:

  1. Create the stimulus list
  2. Create the counter parameter
  3. Enable looping on the block
  4. Create the two rules
  5. Create the “When to Present” expression
  6. Expand events that use lists
  7. Edit the expanded “When To Present” expressions

The feature that saves you time is creating the stimulus list first, then do as much configuration as possible prior to expanding the events. Using 180 Gabor images should in no way cause SuperLab to crash. Anytime you experience a crash, please report it to us. We are eager to diagnose and solve any such problems.

forward_backward.sl5 (12.8 KB)

Thank you and new issue

Hi Again,

Thank you for your reply. It definitely helped. Now I have two issues:

  1. I am trying to make two rules that if parameter 180 is presented and there is a clockwise press, it does not stop but rather moves to parameter 1, thereby making the Gabor appear to move seamlessly in a circle. Similarly, if a participant is at parameter 1 and pushes the counterclockwise key, it moves to parameter 180. When I tried to do this it stopped the random start value to use the previous rotation angle (thereby removing the randomization). In your example experiment above it would be like asking the A to move to J or the J to move to A based on the forward or reverse key press.

  2. I am trying to set a maximum number of presentations to 40, but since this experiment restarts the block after each “0” press, I can’t use the standard “percentage of trials presented in this block.” I tried to make it based on the timing since the start of the experiment, which is not preferable as each participant may require different lengths of time to complete a trial, but even then it would only move to that “Finish the Experiment” block if there was a mistake in key press by a participant.

Attached you will find my experiment package. Please let me know if there are any easy fixes to this issue or if I should be creating my rules differently.

Thank you so much for your time and guidance with this process. (908 KB)

Another demo is attached that uses the A-J concept as before.

For question 1:

  • Take the "forward" (or clockwise) rule and split it into two rules
  • Take the "backward" (or counterclockwise) rule and likewise split it into two

The forward/backward rules now have 2 criteria each, and also 2 actions each. The additional condition is needed to distinguish the “wrapping around” case from the “normal” case. The additional action is needed to immediately jump out and skip to the next block repetition after any single rule is triggered. This prevents the counter from being incremented twice.

For question 2:

  • Create a new counter parameter, "presentations"
  • Add another action to you block-rule "Repeat Fixation Block". This action needs to increment the "presentations" counter parameter
  • Edit the block-rule "Finish the experiment" so that instead of testing for time duration, it tests for a value of "presentations" greater than 39
  • Move up the rule "Finish the experiment" so that it is tested prior to repeating the fixation block. Otherwise you will be stuck repeating the fixation block over and over without ever giving Superlab a chance to evaluate the "Finish the experiment" rule

forward_backward2.sl5 (13.6 KB)


Thanks to you Monika and the software developers for the help with this experiment. It is working perfectly and I am really excited to begin testing on my participants with ASD later this afternoon. You guys are awesome!