unable to run project because pictures cannot be loaded


Author
Message
Jo_Wlhlm
Jo_Wlhlm
Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)
Group: Forum Members
Posts: 6, Visits: 49
Dave - 5/31/2021
Jo_Wlhlm - 5/29/2021
Thank you so much! It is working. I was wondering if there is a simple way in this script to balance the occurrence of the different combinations of face stimuli in such a way that each group combination occurs 18 times but still in a random order. 

18* UFF - UFF
18* UFF - IFF
18* UFF - UNF

18* IFF - IFF
18* IFF - INF
18* IFF - UFF

18* INF - INF
18* INF - UNF
18* INF - IFF

18* UNF - UNF
18* UNF - INF
18* UNF - UFF

I would then end up with my 216 task trials. The only thing that is important is a balanced group combination. For now it dosen't matter which face stimuli of the groups are presented together.

You should have mentioned this before. No, there is no easy way. First, you'll have to go back having separate lists, specifically you'll need four lists -- UFF, UNF, IFF, INF -- each containing the item numbers for the respective condition. Then you need two lists pairing your conditions as desired (i.e. 18 x the combination UFF-UFF, 18 x the combination UFF-IFF, etc.). At the start of each trial, sample the condition combination from those two paired lists. Then sample item numbers for face 1 and face 2 from the applicable one or two of the four item number lists (UFF, UNF, IFF, INF) accordingly.

Thanks for your reply! I think I managed it in the meantime. I created trials for each possible group combination and then used the block element to make sure they are balanced. Looks like this:

<block faces>
/ trials = [1-39, 41-79, 81-119, 121-159, 161-199, 201-239 = noreplace(UFFUFF,UFFUNF,UFFIFF,IFFIFF,IFFINF,IFFUFF,INFIFF,INFINF,INFUNF,UNFINF,UNFUFF,UNFUNF,catch); 40,80,120,160,200 = break]
</block>

If I am correct each of the group combinations and also the catch trials should be selected an equal amount of times separated by breaks after every 39th trial. So as I understood some comments in the forum regarding similar topics in trials 1-39 each of the different grouping trials and the catch trials should be taken 3 times (13 possible trials; 39 trial -> 39/13 = 3) followed by a break and so on. Might not be the nicest solution but I hope it'll work. 

But I have another question. I now implemented the experiment in such a way that the participants have 5 practice trials. After those 5 trials the participants get a text message telling them they can chose whether to go on and start the experiment or to go back to the instructions and have another 5 practice trials. I used the branch element for that. I want them to have the chance to repeat the instructions and 3 times. After the 3rd time they shouldn't get the text that they can go back to instructions anymore but a text telling them that the experiment will start now. I tried it the following way but it did not work as I hoped. It always presented the text about going back to instructions or to continue.


<trial repeat>
/ stimulustimes = [0= blank, text.repeat]
/ timeout = 10000
/ validresponse = (19,57)
/ correctresponse = (19,57)
/ stop = [
    trial.repeat.correct == true;
]
/ ontrialbegin = [
    values.nottext1 = 2;
    //values.practiceblocks = block.practice.count;
    if (values.practiceblocks < 3 == true){
        values.textrepeatnumber = list.textrepeatnumbers.nextvalue;
    } else if (values.practiceblocks = 3 == true){
        values.nottext1 = 1;
        values.textrepeatnumber = list.textrepeatnumbers.nextvalue;
    }
]
</trial>

<text repeat>
/ items = ("If you want to go back to the instruction page and repeat the practice trials press 'R'. If you want to start the experiment press 'Space'." , "The experiment will start now. Press space to continue. After 1 minute the experiment starts automatically." )
/ size = (100%, 50%)
/ position = (50%, 60%)
/ hjustify = center
/ select = values.textrepeatnumber
</text>

<block practice>
/ preinstructions = (htmlpage.visualinstruction, page.pinst)
/ trials = [1-5 = noreplace(practice); 6 = repeat]
/ stop = [
    trial.repeat.count >3;
]
/ branch = [
    if (trial.repeat.response == 19){
        block.practice
    }
]    
/ skip = [
    trial.repeat.response == 57
]
/ onblockbegin = [
    values.practiceblocks = block.practice.count;
</block>

Do you see my mistake? I thought maybe because due to the branch element the block starts over again and with it also the count of blocks which makes it alway 1. I hope I provided enough code for you to know what I am talking about.
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 99K
Jo_Wlhlm - 5/31/2021
Dave - 5/31/2021
Jo_Wlhlm - 5/29/2021
Thank you so much! It is working. I was wondering if there is a simple way in this script to balance the occurrence of the different combinations of face stimuli in such a way that each group combination occurs 18 times but still in a random order. 

18* UFF - UFF
18* UFF - IFF
18* UFF - UNF

18* IFF - IFF
18* IFF - INF
18* IFF - UFF

18* INF - INF
18* INF - UNF
18* INF - IFF

18* UNF - UNF
18* UNF - INF
18* UNF - UFF

I would then end up with my 216 task trials. The only thing that is important is a balanced group combination. For now it dosen't matter which face stimuli of the groups are presented together.

You should have mentioned this before. No, there is no easy way. First, you'll have to go back having separate lists, specifically you'll need four lists -- UFF, UNF, IFF, INF -- each containing the item numbers for the respective condition. Then you need two lists pairing your conditions as desired (i.e. 18 x the combination UFF-UFF, 18 x the combination UFF-IFF, etc.). At the start of each trial, sample the condition combination from those two paired lists. Then sample item numbers for face 1 and face 2 from the applicable one or two of the four item number lists (UFF, UNF, IFF, INF) accordingly.

Thanks for your reply! I think I managed it in the meantime. I created trials for each possible group combination and then used the block element to make sure they are balanced. Looks like this:

<block faces>
/ trials = [1-39, 41-79, 81-119, 121-159, 161-199, 201-239 = noreplace(UFFUFF,UFFUNF,UFFIFF,IFFIFF,IFFINF,IFFUFF,INFIFF,INFINF,INFUNF,UNFINF,UNFUFF,UNFUNF,catch); 40,80,120,160,200 = break]
</block>

If I am correct each of the group combinations and also the catch trials should be selected an equal amount of times separated by breaks after every 39th trial. So as I understood some comments in the forum regarding similar topics in trials 1-39 each of the different grouping trials and the catch trials should be taken 3 times (13 possible trials; 39 trial -> 39/13 = 3) followed by a break and so on. Might not be the nicest solution but I hope it'll work. 

But I have another question. I now implemented the experiment in such a way that the participants have 5 practice trials. After those 5 trials the participants get a text message telling them they can chose whether to go on and start the experiment or to go back to the instructions and have another 5 practice trials. I used the branch element for that. I want them to have the chance to repeat the instructions and 3 times. After the 3rd time they shouldn't get the text that they can go back to instructions anymore but a text telling them that the experiment will start now. I tried it the following way but it did not work as I hoped. It always presented the text about going back to instructions or to continue.


<trial repeat>
/ stimulustimes = [0= blank, text.repeat]
/ timeout = 10000
/ validresponse = (19,57)
/ correctresponse = (19,57)
/ stop = [
    trial.repeat.correct == true;
]
/ ontrialbegin = [
    values.nottext1 = 2;
    //values.practiceblocks = block.practice.count;
    if (values.practiceblocks < 3 == true){
        values.textrepeatnumber = list.textrepeatnumbers.nextvalue;
    } else if (values.practiceblocks = 3 == true){
        values.nottext1 = 1;
        values.textrepeatnumber = list.textrepeatnumbers.nextvalue;
    }
]
</trial>

<text repeat>
/ items = ("If you want to go back to the instruction page and repeat the practice trials press 'R'. If you want to start the experiment press 'Space'." , "The experiment will start now. Press space to continue. After 1 minute the experiment starts automatically." )
/ size = (100%, 50%)
/ position = (50%, 60%)
/ hjustify = center
/ select = values.textrepeatnumber
</text>

<block practice>
/ preinstructions = (htmlpage.visualinstruction, page.pinst)
/ trials = [1-5 = noreplace(practice); 6 = repeat]
/ stop = [
    trial.repeat.count >3;
]
/ branch = [
    if (trial.repeat.response == 19){
        block.practice
    }
]    
/ skip = [
    trial.repeat.response == 57
]
/ onblockbegin = [
    values.practiceblocks = block.practice.count;
</block>

Do you see my mistake? I thought maybe because due to the branch element the block starts over again and with it also the count of blocks which makes it alway 1. I hope I provided enough code for you to know what I am talking about.

See the documentation of the count property

https://www.millisecond.com/support/docs/v6/html/language/properties/count.htm

versus the totalcount property

https://www.millisecond.com/support/docs/v6/html/language/properties/totalcount.htm


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search