Millisecond Forums

LDT stimuli timing problem

https://forums.millisecond.com/Topic3977.aspx

By Sammers52 - 2/22/2010

I am having problem with the input keys. The stimuli are supposed to be on the screen for 5 seconds or until a
 response is made
by pressing the "1" or "0" key but no matter what I try to do the stimuli
remain on the screen
 for 5 seconds.

Does anybody know how to fix this?

Also here is a sample of the code I think may be relevant to this issue:
<trial 2>
/ pretrialpause = 20
/ validresponse = ( "1", "0")
/ correctresponse = ("1")
/ stimulustimes = [100=target;600=erase; 750=neutralwords; 5000=erase; 750=neutralwords2; 5000=erase]
/ trialdata = [neutralwords,neutralwords2]
</trial>


The timing part of that trial is the same for all the trials.
By Dave - 2/22/2010

By default, Inquisit starts polling for subjects' responses only after completing the whole stimulus presentation sequence. So, in case of the <trial> definition you posted, Inquisit starts listening for a response after 5000=erase, i.e. 5 seconds into the trial. To override this behavior, you need to use either the '/ responseframe' or the '/ responsetime' attribute. Suppose you want to measure response latencies relative to the 'target' stimulus:


<trial 2>
/ pretrialpause = 20
/ validresponse = ( "1", "0")
/ correctresponse = ("1")
/ stimulustimes = [100=target;600=erase; 750=neutralwords; 5000=erase; 750=neutralwords2; 5000=erase]
/ trialdata = [neutralwords,neutralwords2]
/ responsetime = 100
</trial>


Suppose you want to measure response latencies relative to 'neutralwords2':


<trial 2>
/ pretrialpause = 20
/ validresponse = ( "1", "0")
/ correctresponse = ("1")
/ stimulustimes = [100=target;600=erase; 750=neutralwords; 5000=erase; 750=neutralwords2; 5000=erase]
/ trialdata = [neutralwords,neutralwords2]
/ responsetime = 750
</trial>


The Inquisit documentation has more info on this. You might want to read up on 'How to Control Response Timing', 'How to Control Trial Duration and Inter-Trial
Intervals' and the topics for the associated attributes.


~Dave

By Sammers52 - 2/22/2010

Thank you, I'll try those out and look at the 'How to Control Response Timing' and 'How to Control Trial Duration and Inter-Trial Intervals' articles.

By Sammers52 - 2/22/2010

That does seem to make it take the data at the right time, but it still leaves the stimuli up on the screen for 5 seconds.  How do you make erase after EITHER 5 seconds OR right after the participant gives thier response? (so that if they respond at 500 ms the stimuli disappears right after, and the next set comes up?)



-Sammers

By Dave - 2/22/2010

How do you make erase after EITHER 5 seconds OR right after the participant gives thier response? (so that if they respond at 500 ms the stimuli disappears right after, and the next set comes up?)


No need to SCREAM and actually this is Inquisit's default behavior, so it should work straight out of the box. So, either another portion of your script is interfering with this or you're encountering a bug. What build of Inquisit are you using (-> Help -> About Inquisit...)? In any case, the behavior can also be *explicitly* controlled via the '/ responseinterrupt' attribute. Give that a try (in your case '/ responseinterrupt = immediate'). If all of this doesn't work you might want to put your script and all supporting files (pictures, etc.) into a *.zip archive and attach it to this thread.


Best wishes from a fellow Inquisit user,


~Dave

By Blackadder - 2/22/2010

Hi you 2,


there is one thing I do not understand at all about the script.


/ stimulustimes = [100=target;600=erase; 750=neutralwords; 5000=erase; 750=neutralwords2; 5000=erase]


What in the name of the Lord is that supposed to accomplish? You present "neutralwords" at 750ms and then "neutralwords2" also at 750ms. I get the impression that Sammers52 isn't aware of the fact that Inquisit expects SOAs (stimulus onset asynchronies), not ISIs (inter stimulus intervals). If I interpret correctly what Sammers52 is trying to do, the following trial sequence is intended:


blank (for 100ms) - target (for 500ms) - blank (for 150ms) - neutralwords (for 5000ms) - blank (for 750ms) - neutralwords2 (for 5000ms) - blank (until response)


This translates into Inquisit as


/ stimulustimes = [100=target; 600=erase; 750=neutralwords; 5750=erase; 6500=neutralwords2; 11500=erase]


Maybe this is really a bug in Inquisit since a trial definition as done by Sammers52 should be highly unlikely in the real world. Having a stimulus that is to appear quite early within the trial course defined way later is something I have never seen once.


If, however, "neutralwords" and "neutralwords2" really ought to appear simultaneously, the script better be something like this:


/ stimulustimes = [100=target; 600=erase; 750=sequence(neutralwords,neutralwords2); 5000=erase]



Just a thought,
  Malte


By Dave - 2/22/2010

Dammit -- you're absolutely right, Malte! Absolutely didn't catch this. However, the parser should definitely throw an error for this type of stimulus sequence setup. I don't recall ever trying this with '/ stimulustimes' but I do know that the corresponding '/ stimulusframes' definition would throw a 'redefinition of event error'. Thanks!


~Dave

By Sammers52 - 2/22/2010

What we are attempting to accomplish is for the eye target (a small focus item that appears in the middle of the screen) to appear first, then erase, and then to have the two stimuli appear at the same time (at 750 ms) in a configuration similar to:


Neurtalword







Neutralword2


This is a particular way of setting up the Lexical Desision task that should give stronger effects than a forward or backwards mask.

After the two stimuli simultaneously appear we want them to erase either immediately after a response is given or after 5 seconds if there has been no response.
By Sammers52 - 2/22/2010

ok....my example did not appear correctly in the post. lets see if it works this way

Neutralword



Neutralword2
By Sammers52 - 2/22/2010

Gah!!!

Okay Neutralword is supposed to appear above Neutralword2 by a set amount so that they are both on screen and visible in different places on the screen (one about 3.5 inches about the other)
By Blackadder - 2/22/2010

Umh, don't know what to make of that last posting. Did you get your script to work?

By Sammers52 - 2/23/2010

Not yet, and sorry about the spastic last post. I was frustrated that I couldn't get my example of how the stimuli are supposed to be presented to the participants to work. Oh well. And we haven;t yet gotten it to do what we want, no. Thanks for asking though.
By Blackadder - 2/23/2010

It's hard to imagine what might be so complicated about your task to
implement. I just remembered a little fun script we coded a while ago
during an Inquisit 101 session. It does mostly what you proposed in
your first posting, including the interruption of stimulus presentation upon user response before a 5000ms timeout. Only thing it handles differently is that it
randomly assigns the texts to the top and bottom position. You set their order
fixed by changing the counter's selectionmode to "sequence". Maybe it
helps.


Best wishes,
Malte.

By Sammers52 - 3/1/2010

That is amazing.  Thank you.  The confusion you were seeing earlier was me not being a programmer, at ALL, and trying to program something.....and working with other fellow confused non-programmers.  The sample script you attached does exactly what we are looking for.  Thank you!!!!!  [:)][I][:)]