Programming a CBM-I task


Author
Message
BasE
BasE
Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)Associate Member (163 reputation)
Group: Forum Members
Posts: 12, Visits: 47
Greetings all,

This is a big question but this is the first inquisit experiment I have programmed from scratch (and my first experience with programming in general). I am currently programming a CBM-I task that is intended to work like this:

After a brief primer (fixation cross), two stimuli images are presented that form an open-ended comic. These comic pictures are located under <Item targetC> for the first frame and <Item <TargetD> for the second frame respectively.
After the presentation for five seconds, the participant is presented two answers: a good ending and a bad ending to the comic. Clicking on the correct image gives a positive reinforcement message ("that is correct!"), and clicking on the negative ending gives a negative reinforcement message ("unfortunately, that is incorrect")

I have managed to set up a foundation (which you can see in the included file), but I still have some remaining questions:

So far I have managed to present two stimuli frames next to one another, but obviously the answer stimuli pairs need to follow up on the frame stimuli pairs. As it currently works, only one pair of frame stimuli (so not the answers) is presented in each trial, and the pictures of different are combined (so a picture from comic 1 can be paired with comic 2).

My question is how I can make exclusive stimulus pairs that a) belong to the same comic, b) are in the correct order for the comic frame trial (otherwise the comic wouldn't make sense and c) that each comic frame pair is followed by an answer pair in the same trial (which also belong to the same comic).

Again, this is a big question, so if it is too much to write out in one post I'd also immensly appreciate a redirection to any resources that might help me.

Attachments
CBM-I.iqx (279 views, 1.00 KB)
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
BasE - 7/12/2021
Greetings all,

This is a big question but this is the first inquisit experiment I have programmed from scratch (and my first experience with programming in general). I am currently programming a CBM-I task that is intended to work like this:

After a brief primer (fixation cross), two stimuli images are presented that form an open-ended comic. These comic pictures are located under <Item targetC> for the first frame and <Item <TargetD> for the second frame respectively.
After the presentation for five seconds, the participant is presented two answers: a good ending and a bad ending to the comic. Clicking on the correct image gives a positive reinforcement message ("that is correct!"), and clicking on the negative ending gives a negative reinforcement message ("unfortunately, that is incorrect")

I have managed to set up a foundation (which you can see in the included file), but I still have some remaining questions:

So far I have managed to present two stimuli frames next to one another, but obviously the answer stimuli pairs need to follow up on the frame stimuli pairs. As it currently works, only one pair of frame stimuli (so not the answers) is presented in each trial, and the pictures of different are combined (so a picture from comic 1 can be paired with comic 2).

My question is how I can make exclusive stimulus pairs that a) belong to the same comic, b) are in the correct order for the comic frame trial (otherwise the comic wouldn't make sense and c) that each comic frame pair is followed by an answer pair in the same trial (which also belong to the same comic).

Again, this is a big question, so if it is too much to write out in one post I'd also immensly appreciate a redirection to any resources that might help me.

https://www.millisecond.com/support/docs/v6/html/howto/howtopairs.htm
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
Dave - 7/12/2021
BasE - 7/12/2021
Greetings all,

This is a big question but this is the first inquisit experiment I have programmed from scratch (and my first experience with programming in general). I am currently programming a CBM-I task that is intended to work like this:

After a brief primer (fixation cross), two stimuli images are presented that form an open-ended comic. These comic pictures are located under <Item targetC> for the first frame and <Item <TargetD> for the second frame respectively.
After the presentation for five seconds, the participant is presented two answers: a good ending and a bad ending to the comic. Clicking on the correct image gives a positive reinforcement message ("that is correct!"), and clicking on the negative ending gives a negative reinforcement message ("unfortunately, that is incorrect")

I have managed to set up a foundation (which you can see in the included file), but I still have some remaining questions:

So far I have managed to present two stimuli frames next to one another, but obviously the answer stimuli pairs need to follow up on the frame stimuli pairs. As it currently works, only one pair of frame stimuli (so not the answers) is presented in each trial, and the pictures of different are combined (so a picture from comic 1 can be paired with comic 2).

My question is how I can make exclusive stimulus pairs that a) belong to the same comic, b) are in the correct order for the comic frame trial (otherwise the comic wouldn't make sense and c) that each comic frame pair is followed by an answer pair in the same trial (which also belong to the same comic).

Again, this is a big question, so if it is too much to write out in one post I'd also immensly appreciate a redirection to any resources that might help me.

https://www.millisecond.com/support/docs/v6/html/howto/howtopairs.htm

In a nutshell, the whole thing goes like this:

<defaults>
/ canvasaspectratio = (4,3)
/ screencolor = black
/ fontstyle = ("Arial", 3%)
/ txbgcolor = black
/ txcolor = white
/ inputdevice = mouse
</defaults>

<block exampleblock>
/ trials = [1-4 = exampletrial]
</block>

<trial exampletrial>
/ stimulustimes = [0=clearscreen, fixation; 500=clearscreen, comicframe1, comicframe2; 5500=clearscreen, question, goodending, badending]
/ validresponse = (goodending, badending)
/ correctresponse = (goodending)
/ correctmessage = true(correctmsg, 1000)
/ errormessage = true(errormsg, 1000)
</trial>

<text fixation>
/ items = ("+")
/ erase = false
</text>

<picture comicframe1>
/ items = comicframe1items
/ select = noreplace
/ erase = false
/ size = (30%, 30%)
/ position = (30%, 50%)
</picture>

<picture comicframe2>
/ items = comicframe2items
/ select = picture.comicframe1.currentindex
/ erase = false
/ size = (30%, 30%)
/ position = (70%, 50%)
</picture>

<text question>
/ items = ("How do you think the story ends?")
/ erase = false
/ position = (50%, 10%)
</text>

<list endingpositionrandomizer>
/ items = (30%, 70%)
/ selectionrate = always
</list>

<picture goodending>
/ items = goodendingitems
/ select = picture.comicframe1.currentindex
/ erase = false
/ size = (30%, 30%)
/ vposition = 50%
/ hposition = list.endingpositionrandomizer.nextvalue
</picture>

<picture badending>
/ items = badendingitems
/ select = picture.comicframe1.currentindex
/ erase = false
/ size = (30%, 30%)
/ vposition = 50%
/ hposition = list.endingpositionrandomizer.nextvalue
</picture>

<text correctmsg>
/ items = ("That is correct!")
/ txcolor = green
/ erase = false
/ position = (50%, 85%)
</text>

<text errormsg>
/ items = ("Unfortunately, that is incorrect!")
/ txcolor = red
/ erase = false
/ position = (50%, 85%)
</text>

<item comicframe1items>
/ 1 = "comic1frame1.jpg"
/ 2 = "comic2frame1.jpg"
/ 3 = "comic3frame1.jpg"
/ 4 = "comic4frame1.jpg"
</item>

<item comicframe2items>
/ 1 = "comic1frame2.jpg"
/ 2 = "comic2frame2.jpg"
/ 3 = "comic3frame2.jpg"
/ 4 = "comic4frame2.jpg"
</item>

<item goodendingitems>
/ 1 = "comic1good.jpg"
/ 2 = "comic2good.jpg"
/ 3 = "comic3good.jpg"
/ 4 = "comic4good.jpg"
</item>

<item badendingitems>
/ 1 = "comic1bad.jpg"
/ 2 = "comic2bad.jpg"
/ 3 = "comic3bad.jpg"
/ 4 = "comic4bad.jpg"
</item>


It's pretty straightforward, as you can see.
Edited 3 Years Ago by Dave
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search