List Selectionmode


Author
Message
chuyunshen
chuyunshen
Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)Associate Member (255 reputation)
Group: Forum Members
Posts: 3, Visits: 13
Hi there,

In my code, I have two counterbalances of the stimuli that participants see. Half of the participants see 50 sets of audios that are paired with two images and the other half sees the other 50 sets. So I used "list" to code this. 

<item sound1>
/ 1 = "stim/Pair00_SoundA.wav"
/ 2 = "stim/Pair01_SoundA.wav"
/ 3 = "stim/Pair02_SoundA.wav"
/ 4 = "stim/Pair03_SoundA.wav"
/ 5 = "stim/Pair04_SoundA.wav"
/ 6 = "stim/Pair05_SoundA.wav"
....
/ 100 =  "stim/Pair99_SoundA.wav"
</item>

<item picture1>
/ 1 = "stim/Pair00_ImageA1.jpg"
/ 2 = "stim/Pair01_ImageA1.jpg"
/ 3 = "stim/Pair02_ImageA1.jpg"
/ 4 = "stim/Pair03_ImageA1.jpg"
/ 5 = "stim/Pair04_ImageA1.jpg"
/ 6 = "stim/Pair05_ImageA1.jpg"
...
/ 100 =  "stim/Pair99_ImageA1.wav"
</item>

<item picture2>
/ 1 = "stim/Pair00_ImageA2.jpg"
/ 2 = "stim/Pair01_ImageA2.jpg"
/ 3 = "stim/Pair02_ImageA2.jpg"
/ 4 = "stim/Pair03_ImageA2.jpg"
/ 5 = "stim/Pair04_ImageA2.jpg"
/ 6 = "stim/Pair05_ImageA2.jpg"
...
/ 100 =  "stim/Pair99_ImageA2.wav"
</item>

<list cb1>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
/ selectionmode = random
</list>

<list cb2>
/ items = (51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
/ selectionmode = random
</list>

<list sound>
/ selectionmode = values.cb
/ items = (list.cb1.nextvalue, list.cb2.nextvalue)
</list>

<list picture>
/ selectionmode = values.cb
/ items = (list.cb1.currentvalue, list.cb2.currentvalue)
</list>

<sound sound1>
/ items = sound1
/ select = list.sound.nextvalue
</sound>

<picture picture1>
/ items = picture1
/ select = list.picture.nextvalue
/ size = (values.pictureheight, values.picturewidth)
/ position = (30%, 50%)
</picture>

<picture picture2>
/ items = picture2
/ select = list.picture.nextvalue
/ size = (values.pictureheight, values.picturewidth)
/ position = (70%, 50%)
</picture>

I'm hoping to select items from the list with no repeat and go through all the items, but "selectionmode = random" repeats its selection, and I also don't want "sequence". "Noreplace" doesn't seem to work here. Is there another command?


Additionally, each participant is going to see 5 additional sets of stimuli that serve as attention checks. All the participants are seeing the same ones. But the stimuli don't seem to be updating properly in my code. How should I edit my code?  

<item soundMM>
/ 1 = "Mismatch/MM_Pair00_SoundA.wav"
/ 2 = "Mismatch/MM_Pair01_SoundA.wav"
/ 3 = "Mismatch/MM_Pair02_SoundA.wav"
/ 4 = "Mismatch/MM_Pair03_SoundA.wav"
/ 5 = "Mismatch/MM_Pair04_SoundA.wav"
</item>

<item pictureMM1>
/ 1 = "Mismatch/MM_Pair00_ImageA1.jpg"
/ 2 = "Mismatch/MM_Pair01_ImageA1.jpg"
/ 3 = "Mismatch/MM_Pair02_ImageA1.jpg"
/ 4 = "Mismatch/MM_Pair03_ImageA1.jpg"
/ 5 = "Mismatch/MM_Pair04_ImageA1.jpg"
</item>

<item pictureMM2>
/ 1 = "Mismatch/MM_Pair00_ImageA2.jpg"
/ 2 = "Mismatch/MM_Pair01_ImageA2.jpg"
/ 3 = "Mismatch/MM_Pair02_ImageA2.jpg"
/ 4 = "Mismatch/MM_Pair03_ImageA2.jpg"
/ 5 = "Mismatch/MM_Pair04_ImageA2.jpg"
</item>

<sound soundMM>
/ items = soundMM
/ select = noreplace
</sound>

<picture pictureMM1>
/ items = pictureMM1
/ select = sound.soundMM.currentindex
/ size = (values.pictureheight, values.picturewidth)
/ position = (30%, 50%)
</picture>

<picture pictureMM2>
/ items = pictureMM2
/ select = sound.soundMM.currentindex
/ size = (values.pictureheight, values.picturewidth)
/ position = (70%, 50%)
</picture>

Thank you so much!



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: 98K
chuyunshen - Tuesday, October 2, 2018
Hi there,

In my code, I have two counterbalances of the stimuli that participants see. Half of the participants see 50 sets of audios that are paired with two images and the other half sees the other 50 sets. So I used "list" to code this. 

<item sound1>
/ 1 = "stim/Pair00_SoundA.wav"
/ 2 = "stim/Pair01_SoundA.wav"
/ 3 = "stim/Pair02_SoundA.wav"
/ 4 = "stim/Pair03_SoundA.wav"
/ 5 = "stim/Pair04_SoundA.wav"
/ 6 = "stim/Pair05_SoundA.wav"
....
/ 100 =  "stim/Pair99_SoundA.wav"
</item>

<item picture1>
/ 1 = "stim/Pair00_ImageA1.jpg"
/ 2 = "stim/Pair01_ImageA1.jpg"
/ 3 = "stim/Pair02_ImageA1.jpg"
/ 4 = "stim/Pair03_ImageA1.jpg"
/ 5 = "stim/Pair04_ImageA1.jpg"
/ 6 = "stim/Pair05_ImageA1.jpg"
...
/ 100 =  "stim/Pair99_ImageA1.wav"
</item>

<item picture2>
/ 1 = "stim/Pair00_ImageA2.jpg"
/ 2 = "stim/Pair01_ImageA2.jpg"
/ 3 = "stim/Pair02_ImageA2.jpg"
/ 4 = "stim/Pair03_ImageA2.jpg"
/ 5 = "stim/Pair04_ImageA2.jpg"
/ 6 = "stim/Pair05_ImageA2.jpg"
...
/ 100 =  "stim/Pair99_ImageA2.wav"
</item>

<list cb1>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
/ selectionmode = random
</list>

<list cb2>
/ items = (51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
/ selectionmode = random
</list>

<list sound>
/ selectionmode = values.cb
/ items = (list.cb1.nextvalue, list.cb2.nextvalue)
</list>

<list picture>
/ selectionmode = values.cb
/ items = (list.cb1.currentvalue, list.cb2.currentvalue)
</list>

<sound sound1>
/ items = sound1
/ select = list.sound.nextvalue
</sound>

<picture picture1>
/ items = picture1
/ select = list.picture.nextvalue
/ size = (values.pictureheight, values.picturewidth)
/ position = (30%, 50%)
</picture>

<picture picture2>
/ items = picture2
/ select = list.picture.nextvalue
/ size = (values.pictureheight, values.picturewidth)
/ position = (70%, 50%)
</picture>

I'm hoping to select items from the list with no repeat and go through all the items, but "selectionmode = random" repeats its selection, and I also don't want "sequence". "Noreplace" doesn't seem to work here. Is there another command?


Additionally, each participant is going to see 5 additional sets of stimuli that serve as attention checks. All the participants are seeing the same ones. But the stimuli don't seem to be updating properly in my code. How should I edit my code?  

<item soundMM>
/ 1 = "Mismatch/MM_Pair00_SoundA.wav"
/ 2 = "Mismatch/MM_Pair01_SoundA.wav"
/ 3 = "Mismatch/MM_Pair02_SoundA.wav"
/ 4 = "Mismatch/MM_Pair03_SoundA.wav"
/ 5 = "Mismatch/MM_Pair04_SoundA.wav"
</item>

<item pictureMM1>
/ 1 = "Mismatch/MM_Pair00_ImageA1.jpg"
/ 2 = "Mismatch/MM_Pair01_ImageA1.jpg"
/ 3 = "Mismatch/MM_Pair02_ImageA1.jpg"
/ 4 = "Mismatch/MM_Pair03_ImageA1.jpg"
/ 5 = "Mismatch/MM_Pair04_ImageA1.jpg"
</item>

<item pictureMM2>
/ 1 = "Mismatch/MM_Pair00_ImageA2.jpg"
/ 2 = "Mismatch/MM_Pair01_ImageA2.jpg"
/ 3 = "Mismatch/MM_Pair02_ImageA2.jpg"
/ 4 = "Mismatch/MM_Pair03_ImageA2.jpg"
/ 5 = "Mismatch/MM_Pair04_ImageA2.jpg"
</item>

<sound soundMM>
/ items = soundMM
/ select = noreplace
</sound>

<picture pictureMM1>
/ items = pictureMM1
/ select = sound.soundMM.currentindex
/ size = (values.pictureheight, values.picturewidth)
/ position = (30%, 50%)
</picture>

<picture pictureMM2>
/ items = pictureMM2
/ select = sound.soundMM.currentindex
/ size = (values.pictureheight, values.picturewidth)
/ position = (70%, 50%)
</picture>

Thank you so much!



> I'm hoping to select items from the list with no repeat and go through all the items, but "selectionmode = random" repeats its selection.

No, /selectionmode = random will sample items without replacement by default, i.e. it is equivalent to

<list example>
...
/ selectionmode = random
/ replace = false
</list>

Sampling with replacement you would have to specify explicitly per

<list example>
...
/ selectionmode = random
/ replace = true
</list>

In other words: If you see repeats or not all items being sampled apparently, there's a mistake in your code somewhere. Since you didn't include the <trial> elements that actually display the stimuli and hence determine which list is sampled from first, it's impossible for me to say where the mistake is. For what it's worth, the 2nd list

<list sound>
/ selectionmode = values.cb
/ items = (list.cb1.nextvalue, list.cb2.nextvalue)
</list>

<list picture>
/ selectionmode = values.cb
/ items = (list.cb1.currentvalue, list.cb2.currentvalue)
</list>


here seems redundant, you should only need one list.

With respect to "Additionally, each participant is going to see 5 additional sets of stimuli that serve as attention checks. All the participants are seeing the same ones. But the stimuli don't seem to be updating properly in my code. How should I edit my code?", the selections in pictureMM1 and pictureMM2 _depend_ on the selection in soundMM

<sound soundMM>
/ items = soundMM
/ select = noreplace
</sound>

<picture pictureMM1>
/ items = pictureMM1
/ select = sound.soundMM.currentindex
/ size = (values.pictureheight, values.picturewidth)
/ position = (30%, 50%)
</picture>

<picture pictureMM2>
/ items = pictureMM2
/ select = sound.soundMM.currentindex
/ size = (values.pictureheight, values.picturewidth)
/ position = (70%, 50%)
</picture>

That can only work when the selection in soundMM is performed *first* in your trials, i.e.

<trial example>
/ stimulusframes = [1=soundMM, pictureMM1, pictureMM2]
...
</trial>

will perform correctly, whereas something like

<trial example>
/ stimulusframes = [1=pictureMM1, pictureMM2, soundMM ]
...
</trial>

would not.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search