Randomizing presentation of stimuli


Author
Message
Hannah_Razak
Hannah_Razak
Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)Expert (1K reputation)
Group: Forum Members
Posts: 6, Visits: 53
Hi everyone!

I'm pretty new to Inquisit and was hoping I could get some help with an experiment I'm trying to put together.

It's a standard gaze cue & spatial task in which the sequence of stimuli would be as follows:

(1) Fixation cross with left and right placeholders (remains on the screen for 500ms)
(2) Image of Face 1 - direct gaze appears (with left and right placeholders remaining on screen)(remains on the screen for 600ms)
(3) Image of Face 1 - averted gaze appears (with left and right placeholders remaining on screen)
(4) One of two targets appears in either the left or right placeholders
(5) Participants to respond by identifying targets presented

In summary, I currently have to randomise the presentation of : 2 face stimuli (face 1, face 2), 2 gaze directions (left, right), 2 targets (A, B) and 2 SOAs (300ms, 700ms)



So far, I've coded each stimuli combination individually and have all the trials randomise themselves :
For example, for the combination - Face 1 - gaze right - target A - target to appear on the right - SOA 700ms - I've coded it as such (with added conditions for the response and what data gets logged):

<trial face1_rightgaze_rightx>
/trialcode = "face1_rightgaze_rightx"

/stimulustimes = [1=fixation, target_placeholder_left, target_placeholder_right; 500=direct_face_1, target_placeholder_left, target_placeholder_right; 1100=rightgaze_face_1, target_placeholder_left, target_placeholder_right; 1800=rightgaze_face_1, target_placeholder_left, x_target_right]
/beginresponsetime = 1800 
/inputdevice=keyboard

/isvalidresponse=[trial.face1_rightgaze_rightx.response == values.responsekey1 || trial.face1_rightgaze_rightx.response == values.responsekey2]
/monkeyresponse=(30,38)
/iscorrectresponse=[trial.face1_rightgaze_rightx.beginresponsetime < values.trialduration && trial.face1_rightgaze_rightx.response == values.responsekey1]

/ontrialend = [if (trial.face1_rightgaze_rightx.correct) {values.face1rightgazerightx_countcorr += 1; values.sumrt_face1rightgazerightx += trial.face1_rightgaze_rightx.latency}
else {values.face1rightgazerightx_counterr += 1}]    

/recorddata = true
</trial>

<block block1>
/trials = [1-10=noreplace(face1_rightgaze_rightx, face1_rightgaze_leftx)]
/onblockend = [values.face1rightgazerightx_countcorr = 0; values.face1rightgazerightx_counterr = 0; values.face1rightgazeleftx_countcorr = 0; values.face1rightgazeleftx_counterr = 0]
</block>


I was wondering if there are simpler ways to randomise a set of stimuli like this while... 

(a) ...making sure that each stimuli (or in this case, direct gaze face) is linked to a subsequent stimuli (averted gaze face) for each trial
(b) ...that certain elements (i.e. the placeholders) remain on the screen as others change

I've also tried using the setstimulustimes function in this manner but got stuck when it came to linking the faces together.

Any help would be greatly appreciated! 

Thanks in advance! 



GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Reading This Topic

Explore
Messages
Mentions
Search