|
|
|
Forum Newbie
      
Group: Forum Members
Last Login: 9/4/2008 12:36:35 PM
Posts: 5,
Visits: 14
|
|
| I am a fairly new user and have been trying to figure this out for a few days now, and have decided I need help. I have a stimulus displaying for 1000ms. The participant will have 2000ms to respond, so time limit is set to 2000. The problem is that I want the stimulus to display for 1000ms, no matter if a response is made in that time. I have end action set to none, but still if a response is made in less than 1000ms, the stimulus ends. I don't understand how to make sure it stays on the screen for the set duration, regardless of response. I'm sure this is very simple, but I can't find a solution anywhere. Please help!
|
|
|
|
|
Forum MVP
      
Group: Forum Members
Last Login: Today @ 5:01:25 PM
Posts: 336,
Visits: 897
|
|
Wow, that's a stumper, at least for me. I usually do not look at people's programs (I have more than enough other work to keep up with), but your problem might be instructive and easy to solve once I look at it. So if you could post your program here I might take a look at it some time next week.
-- David McFarlane, Professional Faultfinder
|
|
|
|
|
Forum MVP
      
Group: Administrators
Last Login: Today @ 8:53:29 AM
Posts: 577,
Visits: 1,255
|
|
| If you have end resp action = none, then the Duration of the object should display no matter how many responses are received. The only way I can see this not being the case is if a previous object had a resp action other than none. To do what you described all you would need is... 1) Two TextDisplay back to back. 2) The first TextDisplay Duration = 1000, TimeLimit = 2000 3) The second text display Duration = 1000. -Brandon
|
|
|
|
|
Forum Newbie
      
Group: Forum Members
Last Login: 9/4/2008 12:36:35 PM
Posts: 5,
Visits: 14
|
|
| Thanks so much for your responses. I am fairly certain that I have it set up as you suggested, Brandon, but the stimulus is still terminating upon response. I have attached 1 run from the experiment. (There is probably a simpler way to do the overall design, but I've been teaching myself along the way here...) The issue is with 'stimuli'. If you have any clarification questions or suggestions, please let me know. This is much appreciated! Thanks, Melanie
|
|
|
|
|
Forum MVP
      
Group: Forum Members
Last Login: Today @ 5:01:25 PM
Posts: 336,
Visits: 897
|
|
Melanie,
Thank you for posting your program, that clarified everything without even having to run it. What we were missing is that you have defined two different input devices for your stimuli object, i.e., Mouse and Keyboard, and that makes things a bit more confusing. Better to decide which one you will use and just delete the other, but now I will describe what is going on (I don't know if this is explained anywhere in the manuals, Brandon if you know please give us a reference so I can use it in the future).
Each "input mask" uses its own set of Response Options. To see this, open the properties page for stimuli, and go to to the Duration/Input tab. Click on Mouse. You will see that it is set to Allow {ANY}, Correct [CorrectAnswer], Time Limit 2000, and End Action (none). Now click on Keyboard. You will see that keyboard response is set to Allow {ANY}, Correct is blank, Time Limit (same as duration), and End Action Terminate. So everything will work fine if you use the mouse for input, but if you use the keyboard then it will only allow 1000 ms for a response, and will terminate stimuli upon a response (and after that will fail to score it for correct/incorrect).
If you want to allow for two different input devices, you have to make sure that you set up the Response Options separately for each of them. This is a feature, since it allows different input devices to have different Response Options (e.g., the Correct might be different for Mouse vs. Keyboard). (Yet another way to allow for multiple input devices is to use the Emulate Device feature. We do this for developing fMRI experiments with a PST BrainLogics Button Response System, it connects as a Serial Response Box but using emulation we can treat it as a keyboard, which makes it easier to develop programs without the hardware on hand. But that's another lesson.)
BTW, you can remove trialproc from the Procedure column of your ITIDuration list. Nested lists do not run procedures, trialproc gets run directly from your TrialList. The program will run just fine either way, but leaving trialproc in ITIDuration just makes the program a little harder to read.
-- David McFarlane, Professional Faultfinder
|
|
|
|
|
Forum Newbie
      
Group: Forum Members
Last Login: 9/4/2008 12:36:35 PM
Posts: 5,
Visits: 14
|
|
| Great! What a relief, since I'm supposed to do a trial run tomorrow. I saw a similar issue such as this in a previous post, but didn't realize it applied here. I'm actually using the mouse (joystick) for the experiment, and had it programmed that way, but just added the keyboard so that I could test it on my computer... But, I guess that's where the problem ensued! I can just remove the keyboard now. Thanks for the other advice, on the nesting, as well. I thought it looked kind of inefficient as it was. Thanks so much!
|
|
|
|
|
Forum MVP
      
Group: Administrators
Last Login: Today @ 8:53:29 AM
Posts: 577,
Visits: 1,255
|
|
| Thanks for the response David. The Duration/Input property page as well as descripition of using multiple input masks can be found on page 22 of the Reference Guide. However, this is one of the more common areas where it is not clear at first pass that the input masks have independant properties. I've made a note to ask documentation to put one of those icons for "cool tip here" type of thing for this section and anywhere else input masks are used. On the Nested topic, please note that if your Nested List specifies a procedure it will use the NESTED specification and not that of your root List. This is (at this point) by design but you could get into trouble debugging if that was not intended. Specifically, let's say that TrialList specifies TrialProc for procedure. It uses MyList as a nested List. Inside of MyList, the procedure specifies MyPro | | | |