Millisecond Forums

Limited responsetime

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

By DannyPilgrim - 6/20/2020

Hello everyone,

I'd like to know wether it's possible to specify a timelimit for the participants to push a button or not.
At the beginning the participants see a white cross which is the signal for them to push the button "d". After 2000ms an errormessage occurs which states "You did not push the button in time". Right now they can still push the button "d" when the message occurs which I'd like to avoid.
So: I know that you are able to specify the beginningresponsetime but in my Experiment they must not be able to push the button after 2000ms

This is my current trial:
<trial Cross>
/ontrialbegin = [
    values.congruency = 1;
]
/ correctresponse = ("d")
/ validresponse = ("d", 0)
/ beginresponsetime = 0 (Do I have to insert something here?)
/ stimulustimes = [0=picture.kreuz; 2000=errormessage]
/ trialduration = 4000
/ontrialend = [
if (trial.Kreuz.correct) {        
        trial.Cross.removestimulustime(6000) }
    list.responses.insertitem(trial.Cross.correct, 1);
    list.responses_congruent.insertitem(trial.Cross.correct, 1);
    
    if (trial.Cross.correct) {        
        list.latencies.insertitem(trial.Cross.latency, 1);
        list.latencies_congruent.insertitem(trial.Cross.latency, 1);        
    }
]
</trial>

Thank you very much!
Danny
By Dave - 6/22/2020

DannyPilgrim - 6/20/2020
Hello everyone,

I'd like to know wether it's possible to specify a timelimit for the participants to push a button or not.
At the beginning the participants see a white cross which is the signal for them to push the button "d". After 2000ms an errormessage occurs which states "You did not push the button in time". Right now they can still push the button "d" when the message occurs which I'd like to avoid.
So: I know that you are able to specify the beginningresponsetime but in my Experiment they must not be able to push the button after 2000ms

This is my current trial:
<trial Cross>
/ontrialbegin = [
    values.congruency = 1;
]
/ correctresponse = ("d")
/ validresponse = ("d", 0)
/ beginresponsetime = 0 (Do I have to insert something here?)
/ stimulustimes = [0=picture.kreuz; 2000=errormessage]
/ trialduration = 4000
/ontrialend = [
if (trial.Kreuz.correct) {        
        trial.Cross.removestimulustime(6000) }
    list.responses.insertitem(trial.Cross.correct, 1);
    list.responses_congruent.insertitem(trial.Cross.correct, 1);
    
    if (trial.Cross.correct) {        
        list.latencies.insertitem(trial.Cross.latency, 1);
        list.latencies_congruent.insertitem(trial.Cross.latency, 1);        
    }
]
</trial>

Thank you very much!
Danny

You should be able to do so via /isvalidresponse.

Something like

/ isvalidresponse = [if (trial.cross.latency > 2000) {false;}]
By DannyPilgrim - 6/22/2020

Dave - 6/22/2020
DannyPilgrim - 6/20/2020
Hello everyone,

I'd like to know wether it's possible to specify a timelimit for the participants to push a button or not.
At the beginning the participants see a white cross which is the signal for them to push the button "d". After 2000ms an errormessage occurs which states "You did not push the button in time". Right now they can still push the button "d" when the message occurs which I'd like to avoid.
So: I know that you are able to specify the beginningresponsetime but in my Experiment they must not be able to push the button after 2000ms

This is my current trial:
<trial Cross>
/ontrialbegin = [
    values.congruency = 1;
]
/ correctresponse = ("d")
/ validresponse = ("d", 0)
/ beginresponsetime = 0 (Do I have to insert something here?)
/ stimulustimes = [0=picture.kreuz; 2000=errormessage]
/ trialduration = 4000
/ontrialend = [
if (trial.Kreuz.correct) {        
        trial.Cross.removestimulustime(6000) }
    list.responses.insertitem(trial.Cross.correct, 1);
    list.responses_congruent.insertitem(trial.Cross.correct, 1);
    
    if (trial.Cross.correct) {        
        list.latencies.insertitem(trial.Cross.latency, 1);
        list.latencies_congruent.insertitem(trial.Cross.latency, 1);        
    }
]
</trial>

Thank you very much!
Danny

You should be able to do so via /isvalidresponse.

Something like

/ isvalidresponse = [if (trial.cross.latency > 2000) {false;}]


Thank your for your answer, Dave! :)
I inserted your command, but unfortunately right now it is not possbile to push the "d" button at all within a trial.
Am I missing something?

Thanks!
Daniel
By DannyPilgrim - 6/22/2020

DannyPilgrim - 6/22/2020
Dave - 6/22/2020
DannyPilgrim - 6/20/2020
Hello everyone,

I'd like to know wether it's possible to specify a timelimit for the participants to push a button or not.
At the beginning the participants see a white cross which is the signal for them to push the button "d". After 2000ms an errormessage occurs which states "You did not push the button in time". Right now they can still push the button "d" when the message occurs which I'd like to avoid.
So: I know that you are able to specify the beginningresponsetime but in my Experiment they must not be able to push the button after 2000ms

This is my current trial:
<trial Cross>
/ontrialbegin = [
    values.congruency = 1;
]
/ correctresponse = ("d")
/ validresponse = ("d", 0)
/ beginresponsetime = 0 (Do I have to insert something here?)
/ stimulustimes = [0=picture.kreuz; 2000=errormessage]
/ trialduration = 4000
/ontrialend = [
if (trial.Kreuz.correct) {        
        trial.Cross.removestimulustime(6000) }
    list.responses.insertitem(trial.Cross.correct, 1);
    list.responses_congruent.insertitem(trial.Cross.correct, 1);
    
    if (trial.Cross.correct) {        
        list.latencies.insertitem(trial.Cross.latency, 1);
        list.latencies_congruent.insertitem(trial.Cross.latency, 1);        
    }
]
</trial>

Thank you very much!
Danny

You should be able to do so via /isvalidresponse.

Something like

/ isvalidresponse = [if (trial.cross.latency > 2000) {false;}]


Thank your for your answer, Dave! :)
I inserted your command, but unfortunately right now it is not possbile to push the "d" button at all within a trial.
Am I missing something?

Thanks!
Daniel

Nevermind, I think I found the solution. :)
I inserted another /isvalidresponse command with following content:
/ isvalidresponse = [if (trial.cross.latency < 2000) {true;}]

Now it works!

Thanks again!
Danile
By Dave - 6/22/2020

DannyPilgrim - 6/22/2020
DannyPilgrim - 6/22/2020
Dave - 6/22/2020
DannyPilgrim - 6/20/2020
Hello everyone,

I'd like to know wether it's possible to specify a timelimit for the participants to push a button or not.
At the beginning the participants see a white cross which is the signal for them to push the button "d". After 2000ms an errormessage occurs which states "You did not push the button in time". Right now they can still push the button "d" when the message occurs which I'd like to avoid.
So: I know that you are able to specify the beginningresponsetime but in my Experiment they must not be able to push the button after 2000ms

This is my current trial:
<trial Cross>
/ontrialbegin = [
    values.congruency = 1;
]
/ correctresponse = ("d")
/ validresponse = ("d", 0)
/ beginresponsetime = 0 (Do I have to insert something here?)
/ stimulustimes = [0=picture.kreuz; 2000=errormessage]
/ trialduration = 4000
/ontrialend = [
if (trial.Kreuz.correct) {        
        trial.Cross.removestimulustime(6000) }
    list.responses.insertitem(trial.Cross.correct, 1);
    list.responses_congruent.insertitem(trial.Cross.correct, 1);
    
    if (trial.Cross.correct) {        
        list.latencies.insertitem(trial.Cross.latency, 1);
        list.latencies_congruent.insertitem(trial.Cross.latency, 1);        
    }
]
</trial>

Thank you very much!
Danny

You should be able to do so via /isvalidresponse.

Something like

/ isvalidresponse = [if (trial.cross.latency > 2000) {false;}]


Thank your for your answer, Dave! :)
I inserted your command, but unfortunately right now it is not possbile to push the "d" button at all within a trial.
Am I missing something?

Thanks!
Daniel

Nevermind, I think I found the solution. :)
I inserted another /isvalidresponse command with following content:
/ isvalidresponse = [if (trial.cross.latency < 2000) {true;}]

Now it works!

Thanks again!
Danile

Come to think of it,

/ response = timeout(2000)

should also work, without the need for any /isvalidresponse logic.