Millisecond Forums

Skip block attribute

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

By Sko - 10/19/2020

Hello,

I have two types of stimuli, female and male, I want female stimuli to be presented to females and male stimuli to males. I don't know what is the best way to do it so I tried to create 2 blocks, one with conditions with female stimuli and one with conditions with male stimuli. What I tried to do then is to use  'skip' function to skip one of these blocks based on the gender that the participant put in earlier but it does not seem to work, 'invalid identifier' keeps popping up. Could anyone help me with that?

<block block_formal_female>
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con1,Con2,Con3,Con4,Con5,Con6,
                                                    Con7,Con8,Con9,Con10,Con11,Con12,
                                                    Con13,Con14,Con15,Con16,Con17,Con18,
                                                    Con19,Con20,Con21,Con22,Con23,Con24); 25 = trial_formal_feedback_female]
/ bgstim = (fixation)
/ recorddata = true
</block>

<block block_formal_male>
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con25,Con26,Con27,Con4,Con5,Con6,
                                                    Con28,Con29,Con30,Con10,Con11,Con12,
                                                    Con31,Con32,Con33,Con16,Con17,Con18,
                                                    Con34,Con35,Con36,Con22,Con23,Con24); 25 = trial_formal_feedback_male]
/ bgstim = (fixation)
/ recorddata = true
</block>

<expt SAT>
/ onexptbegin = [ values.res = list.balanceresp.nextvalue;
      if (values.res == "1") {values.mRes = "v"; values.nRes = "b"; values.mResHand = "index finger of your left hand"; values.nResHand = "index finger of your right hand"}
                 if (values.res == "2") {values.mRes = "b"; values.nRes = "v"; values.mResHand = "index finger of your right hand"; values.nResHand = "index finger of your left hand"}]
/ blocks = [1=block_info; 2=DotEstimationTask; 3=block_instr; 4=block_demo; 5=block.block_pra_selfpace; 6=block_pra_real; 7-10=block_formal_female; 11-14=block_formal_male]
/ skip = [block.block_formal_male(values.SubGender == "Female")]
/ skip = [block.block_formal_female(values.SubGender == "Male")]
</expt>
By Dave - 10/19/2020

Sko - 10/19/2020
Hello,

I have two types of stimuli, female and male, I want female stimuli to be presented to females and male stimuli to males. I don't know what is the best way to do it so I tried to create 2 blocks, one with conditions with female stimuli and one with conditions with male stimuli. What I tried to do then is to use  'skip' function to skip one of these blocks based on the gender that the participant put in earlier but it does not seem to work, 'invalid identifier' keeps popping up. Could anyone help me with that?

<block block_formal_female>
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con1,Con2,Con3,Con4,Con5,Con6,
                                                    Con7,Con8,Con9,Con10,Con11,Con12,
                                                    Con13,Con14,Con15,Con16,Con17,Con18,
                                                    Con19,Con20,Con21,Con22,Con23,Con24); 25 = trial_formal_feedback_female]
/ bgstim = (fixation)
/ recorddata = true
</block>

<block block_formal_male>
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con25,Con26,Con27,Con4,Con5,Con6,
                                                    Con28,Con29,Con30,Con10,Con11,Con12,
                                                    Con31,Con32,Con33,Con16,Con17,Con18,
                                                    Con34,Con35,Con36,Con22,Con23,Con24); 25 = trial_formal_feedback_male]
/ bgstim = (fixation)
/ recorddata = true
</block>

<expt SAT>
/ onexptbegin = [ values.res = list.balanceresp.nextvalue;
      if (values.res == "1") {values.mRes = "v"; values.nRes = "b"; values.mResHand = "index finger of your left hand"; values.nResHand = "index finger of your right hand"}
                 if (values.res == "2") {values.mRes = "b"; values.nRes = "v"; values.mResHand = "index finger of your right hand"; values.nResHand = "index finger of your left hand"}]
/ blocks = [1=block_info; 2=DotEstimationTask; 3=block_instr; 4=block_demo; 5=block.block_pra_selfpace; 6=block_pra_real; 7-10=block_formal_female; 11-14=block_formal_male]
/ skip = [block.block_formal_male(values.SubGender == "Female")]
/ skip = [block.block_formal_female(values.SubGender == "Male")]
</expt>

The /skip attributes belong in your respective <block> elements and the proper syntax is

<block block_formal_female>
/ skip = [values.SubGender == "Male"]
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con1,Con2,Con3,Con4,Con5,Con6,
                  Con7,Con8,Con9,Con10,Con11,Con12,
                  Con13,Con14,Con15,Con16,Con17,Con18,
                  Con19,Con20,Con21,Con22,Con23,Con24); 25 = trial_formal_feedback_female]
/ bgstim = (fixation)
/ recorddata = true
</block>

<block block_formal_male>
/ skip = [values.SubGender == "Female"]
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con25,Con26,Con27,Con4,Con5,Con6,
                  Con28,Con29,Con30,Con10,Con11,Con12,
                  Con31,Con32,Con33,Con16,Con17,Con18,
                  Con34,Con35,Con36,Con22,Con23,Con24); 25 = trial_formal_feedback_male]
/ bgstim = (fixation)
/ recorddata = true
</block>

By Sko - 10/19/2020

Dave - 10/19/2020
Sko - 10/19/2020
Hello,

I have two types of stimuli, female and male, I want female stimuli to be presented to females and male stimuli to males. I don't know what is the best way to do it so I tried to create 2 blocks, one with conditions with female stimuli and one with conditions with male stimuli. What I tried to do then is to use  'skip' function to skip one of these blocks based on the gender that the participant put in earlier but it does not seem to work, 'invalid identifier' keeps popping up. Could anyone help me with that?

<block block_formal_female>
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con1,Con2,Con3,Con4,Con5,Con6,
                                                    Con7,Con8,Con9,Con10,Con11,Con12,
                                                    Con13,Con14,Con15,Con16,Con17,Con18,
                                                    Con19,Con20,Con21,Con22,Con23,Con24); 25 = trial_formal_feedback_female]
/ bgstim = (fixation)
/ recorddata = true
</block>

<block block_formal_male>
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con25,Con26,Con27,Con4,Con5,Con6,
                                                    Con28,Con29,Con30,Con10,Con11,Con12,
                                                    Con31,Con32,Con33,Con16,Con17,Con18,
                                                    Con34,Con35,Con36,Con22,Con23,Con24); 25 = trial_formal_feedback_male]
/ bgstim = (fixation)
/ recorddata = true
</block>

<expt SAT>
/ onexptbegin = [ values.res = list.balanceresp.nextvalue;
      if (values.res == "1") {values.mRes = "v"; values.nRes = "b"; values.mResHand = "index finger of your left hand"; values.nResHand = "index finger of your right hand"}
                 if (values.res == "2") {values.mRes = "b"; values.nRes = "v"; values.mResHand = "index finger of your right hand"; values.nResHand = "index finger of your left hand"}]
/ blocks = [1=block_info; 2=DotEstimationTask; 3=block_instr; 4=block_demo; 5=block.block_pra_selfpace; 6=block_pra_real; 7-10=block_formal_female; 11-14=block_formal_male]
/ skip = [block.block_formal_male(values.SubGender == "Female")]
/ skip = [block.block_formal_female(values.SubGender == "Male")]
</expt>

The /skip attributes belong in your respective <block> elements and the proper syntax is

<block block_formal_female>
/ skip = [values.SubGender == "Male"]
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con1,Con2,Con3,Con4,Con5,Con6,
                  Con7,Con8,Con9,Con10,Con11,Con12,
                  Con13,Con14,Con15,Con16,Con17,Con18,
                  Con19,Con20,Con21,Con22,Con23,Con24); 25 = trial_formal_feedback_female]
/ bgstim = (fixation)
/ recorddata = true
</block>

<block block_formal_male>
/ skip = [values.SubGender == "Female"]
/ onblockbegin = [parameters.Stimduration = 500; parameters.responsetimeout = 3000; values.nblock += 1; values.TrialID = 0; ; values.tasktype = "SAT"]
/ trials = [1 = trial_formal_demo; 2-24 = noreplace(Con25,Con26,Con27,Con4,Con5,Con6,
                  Con28,Con29,Con30,Con10,Con11,Con12,
                  Con31,Con32,Con33,Con16,Con17,Con18,
                  Con34,Con35,Con36,Con22,Con23,Con24); 25 = trial_formal_feedback_male]
/ bgstim = (fixation)
/ recorddata = true
</block>


Works beautifully, thanks a lot!