Selene_MQ
|
|
Group: Forum Members
Posts: 17,
Visits: 42
|
Good afternoon,
I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator.
Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this:
<item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item>
<item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors
<picture f1> /items = fillers /select = noreplace </picture>
<picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture>
This step seems to work fine.
Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition).
I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array.
I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!)
Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch!
Selene
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files.
|
|
|
Selene_MQ
|
|
Group: Forum Members
Posts: 17,
Visits: 42
|
+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic.
|
|
|
Selene_MQ
|
|
Group: Forum Members
Posts: 17,
Visits: 42
|
+x+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic. Absolutely brilliant, it works like a charm! Thanks so much Dav
|
|
|
Selene_MQ
|
|
Group: Forum Members
Posts: 17,
Visits: 42
|
+x+x+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic. Absolutely brilliant, it works like a charm! Thanks so much Dav Hi again Dave, Our experiment is almost finalised, and would just need a last little adjustment, I was wondering if you could help with. In the experiment, we have 40 "familiar targets" and 40 "unfamiliar targets". Each trial will present one target in a stream of images. I set the experiment to have 4 blocks of 60 trials, which means 240 trials in total. That means that each of the 80 targets will get to be presented exactly 3 times. I thought this would be straightforward, as the selection in the list of targets is set to no-replace, and selectionrate to Always, but unfortunately, it doesn't present each target exaclty 3 times (some targets are presented more, and others less). I would basically like the program to go through all the targets once, without replacement, then reset the list, etcc (3 times). I think this might have to do with the fact that in the 'getresponse' trial we also go and select the next value in the list, so it won't end up nice and square in the stream trials. Would you have any idea how to correct this? Thank you so much! Selene
|
|
|
Selene_MQ
|
|
Group: Forum Members
Posts: 17,
Visits: 42
|
+x+x+x+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic. Absolutely brilliant, it works like a charm! Thanks so much Dav Hi again Dave, Our experiment is almost finalised, and would just need a last little adjustment, I was wondering if you could help with. In the experiment, we have 40 "familiar targets" and 40 "unfamiliar targets". Each trial will present one target in a stream of images. I set the experiment to have 4 blocks of 60 trials, which means 240 trials in total. That means that each of the 80 targets will get to be presented exactly 3 times. I thought this would be straightforward, as the selection in the list of targets is set to no-replace, and selectionrate to Always, but unfortunately, it doesn't present each target exaclty 3 times (some targets are presented more, and others less). I would basically like the program to go through all the targets once, without replacement, then reset the list, etcc (3 times). I think this might have to do with the fact that in the 'getresponse' trial we also go and select the next value in the list, so it won't end up nice and square in the stream trials. Would you have any idea how to correct this? Thank you so much! Selene Sorry, the file did not upload properly with the last post. Please see attached
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+x+x+x+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic. Absolutely brilliant, it works like a charm! Thanks so much Dav Hi again Dave, Our experiment is almost finalised, and would just need a last little adjustment, I was wondering if you could help with. In the experiment, we have 40 "familiar targets" and 40 "unfamiliar targets". Each trial will present one target in a stream of images. I set the experiment to have 4 blocks of 60 trials, which means 240 trials in total. That means that each of the 80 targets will get to be presented exactly 3 times. I thought this would be straightforward, as the selection in the list of targets is set to no-replace, and selectionrate to Always, but unfortunately, it doesn't present each target exaclty 3 times (some targets are presented more, and others less). I would basically like the program to go through all the targets once, without replacement, then reset the list, etcc (3 times). I think this might have to do with the fact that in the 'getresponse' trial we also go and select the next value in the list, so it won't end up nice and square in the stream trials. Would you have any idea how to correct this? Thank you so much! Selene Sorry, the file did not upload properly with the last post. Please see attached You'll need to get rid of the list resets -- list.u_targets.reset() and list.f_targets.reset() -- in your experimental trials and you'll have to set up parallel lists with a /not constraint to sample the not-shown unfamiliar and familiar targets from in the response trial.
|
|
|
Selene_MQ
|
|
Group: Forum Members
Posts: 17,
Visits: 42
|
+x+x+x+x+x+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic. Absolutely brilliant, it works like a charm! Thanks so much Dav Hi again Dave, Our experiment is almost finalised, and would just need a last little adjustment, I was wondering if you could help with. In the experiment, we have 40 "familiar targets" and 40 "unfamiliar targets". Each trial will present one target in a stream of images. I set the experiment to have 4 blocks of 60 trials, which means 240 trials in total. That means that each of the 80 targets will get to be presented exactly 3 times. I thought this would be straightforward, as the selection in the list of targets is set to no-replace, and selectionrate to Always, but unfortunately, it doesn't present each target exaclty 3 times (some targets are presented more, and others less). I would basically like the program to go through all the targets once, without replacement, then reset the list, etcc (3 times). I think this might have to do with the fact that in the 'getresponse' trial we also go and select the next value in the list, so it won't end up nice and square in the stream trials. Would you have any idea how to correct this? Thank you so much! Selene Sorry, the file did not upload properly with the last post. Please see attached You'll need to get rid of the list resets -- list.u_targets.reset() and list.f_targets.reset() -- in your experimental trials and you'll have to set up parallel lists with a /not constraint to sample the not-shown unfamiliar and familiar targets from in the response trial. Thank you so much, this seems to work good. It's almost ready now, but there is still a counterbalancing issue that I cannot figure out. After piloting the study a couple of times, it turns out that the counterbalancing is almost perfect. In our case, we have 240 trials in total, that should be split equally across 8 conditions (2 lag values X 2 emotion valence X 2 familiarity of targets), so it should have exactly 30 trials per cell. However, the data has between 27 and 33 trials per cell, and it is not consistent across individuals. Because everything in the script seems to counterbalance things properly, I'm not sure where to look to fix this issue... Is there a way that I can share the web scripts that I uploaded with you? That way you could test it and have all the scripts and stimuli ready? The launch page is https://mili2nd.co/uisb and I have attached the script here (it's the thirs script that is presented in the sequence if you run the whole study. Thank you so much for your help! Selene
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+x+x+x+x+x+x+x+xGood afternoon, I am very new to Inquisit, with programming experience in other languages (Matlab, a bit of JS and Python). I have to program an emotion-induced blindness task, and have been adapting some code that I was given by a collaborator. Each trial in the task consists in 1- A rapid visual stream of images, that are drawn from a bunch of Filler images, one Distractor, and one Target, which can be drawn from Familiar or Unfamiliar items. These are defined like this: <item fillers> /1="scene35.jpg" /2="scene36.jpg" /3="scene37.jpg" ... </item> <item famtargetsitems> /1="FamScene1.jpg" /2="FamScene2.jpg" /3="FamScene3.jpg" ... </item> etc.. for the distractors <picture f1> /items = fillers /select = noreplace </picture> <picture f2> /items = fillers /select = noreplace </picture> ... <picture famtargets> /items = famtargetsitems /select = replace </picture> This step seems to work fine. Then step 2- I would like to have 9 images displayed at once (in a 3 x 3 array), and these need to include: - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition). I'm not sure where to start, as there are many things that need to be coded: 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3, and draw these at any of the random location on my 3x3 array. 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. I'm sorry this is such a complex thing (or maybe it's simpler than it looks to me!) Thank you so much in advance for any help that you may provide, I'm grateful for this forum that has already helped me a bunch! Selene > 1) I would need to have some sort of object that includes all the filler images that were presented in the stream, from which I can randomly draw 3. Store the item numbers of the presented images in a <list>, then sample from that list. > and draw these at any of the random location on my 3x3 array. Define your array as paired x/y coordinates via two linked <list>s, sample positions from those lists randomly. > 2) I would need to pick from the unselected Familiar and Unfamiliar targets, again at random and draw them at the random locations in the 3x3 array. Same as above. Use <list>s with item numbers for selection. I can give you a bunch of example code to illustrate further, but for this to make sense, I would need the working version of the existing RSVP code (the snippets aren't super useful) and the image files. Hi Dave, Thanks so much for your quick reply, I wasn't lied to when people told me the support on this forum was outstanding! Right, I think it makes sense to use lists, but I'm not sure how the syntax works... I would really appreciate some sample code for this. Because there are many pictures used, I dropped them all, and the working version of the script, to OSF, you can access it here: https://osf.io/75vnb/?view_only=f12b3c09b90a4a4f9692278eae270aca . Please note, the images starting with "g" are graphic (negative distractors). You should see them if you run only through the beginning of the experiment (practice trials). Thank you very much in advance for your help, Selene Thanks for the materials. That took some time to work through. For demonstration purposes, I've taken the practice portion of the script and extended it to display the 3x3 array with - 3 fillers that were present in the stream (but chosen randomly) - 3 Familiar targets (including the one target present in the stream, if they were in the Familiar condition) - 3 Unfamiliar targets (including the one target present in the stream, if they were in the Unfamiliar condition) after each RSVP stream. You can find that attached below. Incorporating the logic into the rest / the test phase of the procedure should be relatively straightforward once you've taken a couple of hours to review the added code / logic. Absolutely brilliant, it works like a charm! Thanks so much Dav Hi again Dave, Our experiment is almost finalised, and would just need a last little adjustment, I was wondering if you could help with. In the experiment, we have 40 "familiar targets" and 40 "unfamiliar targets". Each trial will present one target in a stream of images. I set the experiment to have 4 blocks of 60 trials, which means 240 trials in total. That means that each of the 80 targets will get to be presented exactly 3 times. I thought this would be straightforward, as the selection in the list of targets is set to no-replace, and selectionrate to Always, but unfortunately, it doesn't present each target exaclty 3 times (some targets are presented more, and others less). I would basically like the program to go through all the targets once, without replacement, then reset the list, etcc (3 times). I think this might have to do with the fact that in the 'getresponse' trial we also go and select the next value in the list, so it won't end up nice and square in the stream trials. Would you have any idea how to correct this? Thank you so much! Selene Sorry, the file did not upload properly with the last post. Please see attached You'll need to get rid of the list resets -- list.u_targets.reset() and list.f_targets.reset() -- in your experimental trials and you'll have to set up parallel lists with a /not constraint to sample the not-shown unfamiliar and familiar targets from in the response trial. Thank you so much, this seems to work good. It's almost ready now, but there is still a counterbalancing issue that I cannot figure out. After piloting the study a couple of times, it turns out that the counterbalancing is almost perfect. In our case, we have 240 trials in total, that should be split equally across 8 conditions (2 lag values X 2 emotion valence X 2 familiarity of targets), so it should have exactly 30 trials per cell. However, the data has between 27 and 33 trials per cell, and it is not consistent across individuals. Because everything in the script seems to counterbalance things properly, I'm not sure where to look to fix this issue... Is there a way that I can share the web scripts that I uploaded with you? That way you could test it and have all the scripts and stimuli ready? The launch page is https://mili2nd.co/uisb and I have attached the script here (it's the thirs script that is presented in the sequence if you run the whole study. Thank you so much for your help! Selene /trials = [1-60 =noreplace(neg2u,neg2f,neg8u,neg8f,neut2u,neut2f,neut8u,neut8f)]
You're running 60 trials per block, and are trying to sample from 8 trial elements in equal proportions. 60/8 = 7.5. There can be no such thing as half a trial, so you necessarily will get some trial types sampled more often than others.
|
|
|