By eleonora_parr - 1/11/2021
Hi all, I am programming an experiment during which subjects are shown with a series of picture frames that in sequence create a brief video. After watching the video the item on the screen suddenly disappears, and that's when subjects have to use the mouse cursor to select where they think the item was before it disappeared. For this reason I don't want the mouse cursor to be on the screen for the whole trial, in order to prevent that subjects could trace with the mouse the position of the item before it disappears. So, my problem is that -as far as I know - the showmousecursor property could be set either to true or false, but I want the mouse cursor to show just at the end of the trial, specifically when the last frame is presented. Do you know any trick (i.e. conditional statements that could be used) to show the mouse cursor just at the end of trial (i.e. when participant have to make the response)??
Here is my code:
<values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values>
<trial safe_3_backward_inc> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_w, values.time_final_third)] / stimulusframes = [1 = safe_first_frame] / inputdevice = mouse / correctresponse =(lbuttondown) / validresponse = (lbuttondown) / responsetrial = (lbuttondown, space) / ontrialend = [values.x=trial.safe_3_backward_inc.responsex;values.y=trial.safe_3_backward_inc.responsey;] </trial>
Thank you in advance!
Eleonora
|
By Dave - 1/11/2021
+xHi all, I am programming an experiment during which subjects are shown with a series of picture frames that in sequence create a brief video. After watching the video the item on the screen suddenly disappears, and that's when subjects have to use the mouse cursor to select where they think the item was before it disappeared. For this reason I don't want the mouse cursor to be on the screen for the whole trial, in order to prevent that subjects could trace with the mouse the position of the item before it disappears. So, my problem is that -as far as I know - the showmousecursor property could be set either to true or false, but I want the mouse cursor to show just at the end of the trial, specifically when the last frame is presented. Do you know any trick (i.e. conditional statements that could be used) to show the mouse cursor just at the end of trial (i.e. when participant have to make the response)?? Here is my code: <values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values> <trial safe_3_backward_inc> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_w, values.time_final_third)] / stimulusframes = [1 = safe_first_frame] / inputdevice = mouse / correctresponse =(lbuttondown) / validresponse = (lbuttondown) / responsetrial = (lbuttondown, space) / ontrialend = [values.x=trial.safe_3_backward_inc.responsex;values.y=trial.safe_3_backward_inc.responsey;] </trial> Thank you in advance! Eleonora The only trick I can think of would be to split things into two trials, i.e. something like this:
<values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values>
<trial safe_3_backward_inc_present> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame); ] / stimulusframes = [1 = safe_first_frame] / validresponse = (0) / inputdevice = mousekey / showmousecursor = false / trialduration = values.time_final_third / branch = [ trial.safe_3_backward_inc_respond; ] / recorddata = false </trial>
<trial safe_3_backward_inc_respond> / stimulusframes = [1=safe_w] / inputdevice = mouse / showmousecursor = true / validresponse = (lbuttondown) / correctresponse = (lbuttondown) ... / ontrialend = [values.x=trial.safe_3_backward_inc_respond.responsex;values.y=trial.safe_3_backward_inc_respond.responsey;] </trial>
|
By eleonora_parr - 1/11/2021
+x+xHi all, I am programming an experiment during which subjects are shown with a series of picture frames that in sequence create a brief video. After watching the video the item on the screen suddenly disappears, and that's when subjects have to use the mouse cursor to select where they think the item was before it disappeared. For this reason I don't want the mouse cursor to be on the screen for the whole trial, in order to prevent that subjects could trace with the mouse the position of the item before it disappears. So, my problem is that -as far as I know - the showmousecursor property could be set either to true or false, but I want the mouse cursor to show just at the end of the trial, specifically when the last frame is presented. Do you know any trick (i.e. conditional statements that could be used) to show the mouse cursor just at the end of trial (i.e. when participant have to make the response)?? Here is my code: <values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values> <trial safe_3_backward_inc> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_w, values.time_final_third)] / stimulusframes = [1 = safe_first_frame] / inputdevice = mouse / correctresponse =(lbuttondown) / validresponse = (lbuttondown) / responsetrial = (lbuttondown, space) / ontrialend = [values.x=trial.safe_3_backward_inc.responsex;values.y=trial.safe_3_backward_inc.responsey;] </trial> Thank you in advance! Eleonora The only trick I can think of would be to split things into two trials, i.e. something like this: <values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values> <trial safe_3_backward_inc_present> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame); ] / stimulusframes = [1 = safe_first_frame] / validresponse = (0) / inputdevice = mousekey / showmousecursor = false / trialduration = values.time_final_third / branch = [ trial.safe_3_backward_inc_respond; ] / recorddata = false </trial> <trial safe_3_backward_inc_respond> / stimulusframes = [1=safe_w] / inputdevice = mouse / showmousecursor = true / validresponse = (lbuttondown) / correctresponse = (lbuttondown) ... / ontrialend = [values.x=trial.safe_3_backward_inc_respond.responsex;values.y=trial.safe_3_backward_inc_respond.responsey;] </trial> Hi Dave, Thank you for your answer. Do you mean that after your code I would then need to combine the trials within a block? Just to make sure that I am understanding correctly.. I've already tried the option of splitting the two but I would have preferred to keep everything into a single trial, that is why I was looking for a trick :) If that's not possible I will go with this option though
Thank you again,
Eleonora
|
By Dave - 1/11/2021
+x+x+xHi all, I am programming an experiment during which subjects are shown with a series of picture frames that in sequence create a brief video. After watching the video the item on the screen suddenly disappears, and that's when subjects have to use the mouse cursor to select where they think the item was before it disappeared. For this reason I don't want the mouse cursor to be on the screen for the whole trial, in order to prevent that subjects could trace with the mouse the position of the item before it disappears. So, my problem is that -as far as I know - the showmousecursor property could be set either to true or false, but I want the mouse cursor to show just at the end of the trial, specifically when the last frame is presented. Do you know any trick (i.e. conditional statements that could be used) to show the mouse cursor just at the end of trial (i.e. when participant have to make the response)?? Here is my code: <values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values> <trial safe_3_backward_inc> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame);trial.safe_3_backward_inc.insertstimulusframe(picture.safe_w, values.time_final_third)] / stimulusframes = [1 = safe_first_frame] / inputdevice = mouse / correctresponse =(lbuttondown) / validresponse = (lbuttondown) / responsetrial = (lbuttondown, space) / ontrialend = [values.x=trial.safe_3_backward_inc.responsex;values.y=trial.safe_3_backward_inc.responsey;] </trial> Thank you in advance! Eleonora The only trick I can think of would be to split things into two trials, i.e. something like this: <values> /Actiontype=0 /con = 0 /object = 0 /length = 0 /time_sound = (round(rand(60,180))) /time_second_frame = time_sound+60+5 /time_third_frame = time_sound+60+5+5 /time_final_third = time_sound+60+5+5+5 </values> <trial safe_3_backward_inc_present> / ontrialbegin = [values.Actiontype="Withdrawal"; values.con = "Incongruent"; values.object = "safe"; values.length = 3] / ontrialbegin = [trial.safe_3_backward_inc.insertstimulusframe(sound.take, values.time_sound); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_second_frame, values.time_second_frame); trial.safe_3_backward_inc.insertstimulusframe(picture.safe_minus_third_frame, values.time_third_frame); ] / stimulusframes = [1 = safe_first_frame] / validresponse = (0) / inputdevice = mousekey / showmousecursor = false / trialduration = values.time_final_third / branch = [ trial.safe_3_backward_inc_respond; ] / recorddata = false </trial> <trial safe_3_backward_inc_respond> / stimulusframes = [1=safe_w] / inputdevice = mouse / showmousecursor = true / validresponse = (lbuttondown) / correctresponse = (lbuttondown) ... / ontrialend = [values.x=trial.safe_3_backward_inc_respond.responsex;values.y=trial.safe_3_backward_inc_respond.responsey;] </trial> Hi Dave, Thank you for your answer. Do you mean that after your code I would then need to combine the trials within a block? Just to make sure that I am understanding correctly.. I've already tried the option of splitting the two but I would have preferred to keep everything into a single trial, that is why I was looking for a trick :) If that's not possible I will go with this option though Thank you again, Eleonora > Do you mean that after your code I would then need to combine the trials within a block?
You only need to run the first ("present") trial via a block or other means. That trial then automatically invokes the corresponding "respond" trial via /branch.
I really cannot think of any other option, so this would be the way to go.
|
|