Millisecond Forums

How to put pairs of randomized pictures together?

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

By scubed - 1/31/2021

I have two sets of lists of pictures with certain traits that I want to be coupled together so that in a trial it shows a random picture from one of the lists and then a random picture from the list it's coupled to. For example, I have real faces that are blond with blue eyes and I have cartoon faces that are also blond haired and blue eyed, and so I want those groups of pictures to be shown together if that pairing is selected.
so the pairings I want to be randomized in the trial as well. so maybe the ones with brown hair show up in the trial instead. I tried to make this work with the following code:

<list humanblond>
/ items = ("Female-1.png" "Female-2.png")
</list>
<list virtualblond>
/ items = ("Cartoon-Eyes-Large-Blond.png" "Cartoon-Eyes-Small-Blond.png" "Cartoon-Lips-Large-Blond.png" "Cartoon-Lips-Small-Blond.png" "Cartoon-Medium-All-Blond.png")
/ selectionrate = trial
/ selectionmode = random
</list>


<list humanblbm>
/ items = ("Male-3.png" "Male-5.png")
</list>
<list virtualblbm>
/ items = ("Cartoon-eyes-large-blblm.png" "Cartoon-eyes-small-blblm.png" "Cartoon-lips-large-blblm.png" "Cartoon-lips-small-blblm.png" "Cartoon-medium-all-blblm.png")
</list>

<list humanbrown>
/ items = ("Female-3.png" "Female-4.png" "Female-9.png")
</list>
<list virtualbrown>
/ items = ("Cartoon-Eyes-Large.png" "Cartoon-Eyes-Small.png" "Cartoon-Lips-Large.png" "Cartoon-Lips-Small.png" "Cartoon-Medium-All.png")
</list>

<list humanbbm>
/ items = ("Male-1.png" "Male-4.png" "Male-10.png")
</list>
<list virtualbbm>
/ items = ("Cartoon-eyes-large-bbm.png" "Cartoon-eyes-small-bbm.png" "Cartoon-lips-large-bbm.png" "Cartoon-lips-small-bbm.png" "Cartoon-medium-all-bbm.png")
</list>

<list human>
/ items = (list.humanblond list.humanblbm list.humanbrown list.humanbbm)
</list>
<list virtual>
/ items = (list.virtualblond list.virtualblbm list.virtualbrown list.virtualbbm)
</list>


<counter facenum>
/ allowrepeats = false
/ select = noreplace(1-4)
/ selectionrate=trial
</counter>


<picture human>
/ items = ("<%list.human.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>



<trial faceTrial>
/ stimulustimes = [0 = virtual; 3500 = WhiteScreen; 4000 = human]
/ recorddata = false
/ timeout = 7500
</trial>

It's unusual because when I validate the script it finds no problems.
But when I try to run the trial, this code gives me the error:
 Unable to initialize <picture virtual> item number 1. Verify the item exists and is correctly defined.
By Dave - 2/1/2021

scubed - 1/31/2021
I have two sets of lists of pictures with certain traits that I want to be coupled together so that in a trial it shows a random picture from one of the lists and then a random picture from the list it's coupled to. For example, I have real faces that are blond with blue eyes and I have cartoon faces that are also blond haired and blue eyed, and so I want those groups of pictures to be shown together if that pairing is selected.
so the pairings I want to be randomized in the trial as well. so maybe the ones with brown hair show up in the trial instead. I tried to make this work with the following code:

<list humanblond>
/ items = ("Female-1.png" "Female-2.png")
</list>
<list virtualblond>
/ items = ("Cartoon-Eyes-Large-Blond.png" "Cartoon-Eyes-Small-Blond.png" "Cartoon-Lips-Large-Blond.png" "Cartoon-Lips-Small-Blond.png" "Cartoon-Medium-All-Blond.png")
/ selectionrate = trial
/ selectionmode = random
</list>


<list humanblbm>
/ items = ("Male-3.png" "Male-5.png")
</list>
<list virtualblbm>
/ items = ("Cartoon-eyes-large-blblm.png" "Cartoon-eyes-small-blblm.png" "Cartoon-lips-large-blblm.png" "Cartoon-lips-small-blblm.png" "Cartoon-medium-all-blblm.png")
</list>

<list humanbrown>
/ items = ("Female-3.png" "Female-4.png" "Female-9.png")
</list>
<list virtualbrown>
/ items = ("Cartoon-Eyes-Large.png" "Cartoon-Eyes-Small.png" "Cartoon-Lips-Large.png" "Cartoon-Lips-Small.png" "Cartoon-Medium-All.png")
</list>

<list humanbbm>
/ items = ("Male-1.png" "Male-4.png" "Male-10.png")
</list>
<list virtualbbm>
/ items = ("Cartoon-eyes-large-bbm.png" "Cartoon-eyes-small-bbm.png" "Cartoon-lips-large-bbm.png" "Cartoon-lips-small-bbm.png" "Cartoon-medium-all-bbm.png")
</list>

<list human>
/ items = (list.humanblond list.humanblbm list.humanbrown list.humanbbm)
</list>
<list virtual>
/ items = (list.virtualblond list.virtualblbm list.virtualbrown list.virtualbbm)
</list>


<counter facenum>
/ allowrepeats = false
/ select = noreplace(1-4)
/ selectionrate=trial
</counter>


<picture human>
/ items = ("<%list.human.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>



<trial faceTrial>
/ stimulustimes = [0 = virtual; 3500 = WhiteScreen; 4000 = human]
/ recorddata = false
/ timeout = 7500
</trial>

It's unusual because when I validate the script it finds no problems.
But when I try to run the trial, this code gives me the error:
 Unable to initialize <picture virtual> item number 1. Verify the item exists and is correctly defined.

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

This is not a valid syntax construction. It won't work.
By scubed - 2/1/2021

Dave - 2/1/2021
scubed - 1/31/2021
I have two sets of lists of pictures with certain traits that I want to be coupled together so that in a trial it shows a random picture from one of the lists and then a random picture from the list it's coupled to. For example, I have real faces that are blond with blue eyes and I have cartoon faces that are also blond haired and blue eyed, and so I want those groups of pictures to be shown together if that pairing is selected.
so the pairings I want to be randomized in the trial as well. so maybe the ones with brown hair show up in the trial instead. I tried to make this work with the following code:

<list humanblond>
/ items = ("Female-1.png" "Female-2.png")
</list>
<list virtualblond>
/ items = ("Cartoon-Eyes-Large-Blond.png" "Cartoon-Eyes-Small-Blond.png" "Cartoon-Lips-Large-Blond.png" "Cartoon-Lips-Small-Blond.png" "Cartoon-Medium-All-Blond.png")
/ selectionrate = trial
/ selectionmode = random
</list>


<list humanblbm>
/ items = ("Male-3.png" "Male-5.png")
</list>
<list virtualblbm>
/ items = ("Cartoon-eyes-large-blblm.png" "Cartoon-eyes-small-blblm.png" "Cartoon-lips-large-blblm.png" "Cartoon-lips-small-blblm.png" "Cartoon-medium-all-blblm.png")
</list>

<list humanbrown>
/ items = ("Female-3.png" "Female-4.png" "Female-9.png")
</list>
<list virtualbrown>
/ items = ("Cartoon-Eyes-Large.png" "Cartoon-Eyes-Small.png" "Cartoon-Lips-Large.png" "Cartoon-Lips-Small.png" "Cartoon-Medium-All.png")
</list>

<list humanbbm>
/ items = ("Male-1.png" "Male-4.png" "Male-10.png")
</list>
<list virtualbbm>
/ items = ("Cartoon-eyes-large-bbm.png" "Cartoon-eyes-small-bbm.png" "Cartoon-lips-large-bbm.png" "Cartoon-lips-small-bbm.png" "Cartoon-medium-all-bbm.png")
</list>

<list human>
/ items = (list.humanblond list.humanblbm list.humanbrown list.humanbbm)
</list>
<list virtual>
/ items = (list.virtualblond list.virtualblbm list.virtualbrown list.virtualbbm)
</list>


<counter facenum>
/ allowrepeats = false
/ select = noreplace(1-4)
/ selectionrate=trial
</counter>


<picture human>
/ items = ("<%list.human.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>



<trial faceTrial>
/ stimulustimes = [0 = virtual; 3500 = WhiteScreen; 4000 = human]
/ recorddata = false
/ timeout = 7500
</trial>

It's unusual because when I validate the script it finds no problems.
But when I try to run the trial, this code gives me the error:
 Unable to initialize <picture virtual> item number 1. Verify the item exists and is correctly defined.

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

This is not a valid syntax construction. It won't work.

I see, I was trying to use the counter to randomly pick a number between 1 and 4, then use that number as the index to get a list of faces and then run nextvalue on it to get the actual picture filename. How would I have to refactor this to achieve that?
By Dave - 2/1/2021

scubed - 2/1/2021
Dave - 2/1/2021
scubed - 1/31/2021
I have two sets of lists of pictures with certain traits that I want to be coupled together so that in a trial it shows a random picture from one of the lists and then a random picture from the list it's coupled to. For example, I have real faces that are blond with blue eyes and I have cartoon faces that are also blond haired and blue eyed, and so I want those groups of pictures to be shown together if that pairing is selected.
so the pairings I want to be randomized in the trial as well. so maybe the ones with brown hair show up in the trial instead. I tried to make this work with the following code:

<list humanblond>
/ items = ("Female-1.png" "Female-2.png")
</list>
<list virtualblond>
/ items = ("Cartoon-Eyes-Large-Blond.png" "Cartoon-Eyes-Small-Blond.png" "Cartoon-Lips-Large-Blond.png" "Cartoon-Lips-Small-Blond.png" "Cartoon-Medium-All-Blond.png")
/ selectionrate = trial
/ selectionmode = random
</list>


<list humanblbm>
/ items = ("Male-3.png" "Male-5.png")
</list>
<list virtualblbm>
/ items = ("Cartoon-eyes-large-blblm.png" "Cartoon-eyes-small-blblm.png" "Cartoon-lips-large-blblm.png" "Cartoon-lips-small-blblm.png" "Cartoon-medium-all-blblm.png")
</list>

<list humanbrown>
/ items = ("Female-3.png" "Female-4.png" "Female-9.png")
</list>
<list virtualbrown>
/ items = ("Cartoon-Eyes-Large.png" "Cartoon-Eyes-Small.png" "Cartoon-Lips-Large.png" "Cartoon-Lips-Small.png" "Cartoon-Medium-All.png")
</list>

<list humanbbm>
/ items = ("Male-1.png" "Male-4.png" "Male-10.png")
</list>
<list virtualbbm>
/ items = ("Cartoon-eyes-large-bbm.png" "Cartoon-eyes-small-bbm.png" "Cartoon-lips-large-bbm.png" "Cartoon-lips-small-bbm.png" "Cartoon-medium-all-bbm.png")
</list>

<list human>
/ items = (list.humanblond list.humanblbm list.humanbrown list.humanbbm)
</list>
<list virtual>
/ items = (list.virtualblond list.virtualblbm list.virtualbrown list.virtualbbm)
</list>


<counter facenum>
/ allowrepeats = false
/ select = noreplace(1-4)
/ selectionrate=trial
</counter>


<picture human>
/ items = ("<%list.human.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>



<trial faceTrial>
/ stimulustimes = [0 = virtual; 3500 = WhiteScreen; 4000 = human]
/ recorddata = false
/ timeout = 7500
</trial>

It's unusual because when I validate the script it finds no problems.
But when I try to run the trial, this code gives me the error:
 Unable to initialize <picture virtual> item number 1. Verify the item exists and is correctly defined.

<picture virtual>
/ items = ("<%list.virtual.item(counter.facenum.selectedvalue).nextvalue%>")
</picture>

This is not a valid syntax construction. It won't work.

I see, I was trying to use the counter to randomly pick a number between 1 and 4, then use that number as the index to get a list of faces and then run nextvalue on it to get the actual picture filename. How would I have to refactor this to achieve that?

Can you please provide the actual files the code requires to run (and also, please, code that's actually complete enough to run)?