Typing task Inquisit 4


Author
Message
Wenkuo
Wenkuo
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 27, Visits: 47
Hi there,
I'm new at Inquisit and this is my first time on the forums, so I have no idea if I'm raising the topic correctly.

I have been trying to create a typing task on Inquisit 4 that will allow me to know when someone first starts typing an answer
and when someone stops typing. This part is currently working now, thanks to a lot of help from others, but it is the ending where I'm stuck. 
I want to add in a button that can be clicked on with the mouse, so that people can move on when they are finished.
However,  I can't seem to get that to work in Inquisit. 

This is the current script: 

<trial exppos>
/ stimulustimes = [1=blank,black,answer]
/ inputdevice = keyboard
/ validresponse = (16,17,18,19,20,21,22,23,24,25,30,31,32,33,34,35,36,37,38,44,45,46,47,48,49,50,28,14,51,52,57,79,2)
/ ontrialend = [if (trial.exppos.response == 16) values.letter = "q"]
/ ontrialend = [if (trial.exppos.response == 17) values.letter = "w"]
/ ontrialend = [if (trial.exppos.response == 18) values.letter = "e"]
/ ontrialend = [if (trial.exppos.response == 19) values.letter = "r"]
/ ontrialend = [if (trial.exppos.response == 20) values.letter = "t"]
/ ontrialend = [if (trial.exppos.response == 21) values.letter = "y"]
/ ontrialend = [if (trial.exppos.response == 22) values.letter = "u"]
/ ontrialend = [if (trial.exppos.response == 23) values.letter = "i"]
/ ontrialend = [if (trial.exppos.response == 24) values.letter = "o"]
/ ontrialend = [if (trial.exppos.response == 25) values.letter = "p"]
/ ontrialend = [if (trial.exppos.response == 30) values.letter = "a"]
/ ontrialend = [if (trial.exppos.response == 31) values.letter = "s"]
/ ontrialend = [if (trial.exppos.response == 32) values.letter = "d"]
/ ontrialend = [if (trial.exppos.response == 33) values.letter = "f"]
/ ontrialend = [if (trial.exppos.response == 34) values.letter = "g"]
/ ontrialend = [if (trial.exppos.response == 35) values.letter = "h"]
/ ontrialend = [if (trial.exppos.response == 36) values.letter = "j"]
/ ontrialend = [if (trial.exppos.response == 37) values.letter = "k"]
/ ontrialend = [if (trial.exppos.response == 38) values.letter = "l"]
/ ontrialend = [if (trial.exppos.response == 44) values.letter = "z"]
/ ontrialend = [if (trial.exppos.response == 45) values.letter = "x"]
/ ontrialend = [if (trial.exppos.response == 46) values.letter = "c"]
/ ontrialend = [if (trial.exppos.response == 47) values.letter = "v"]
/ ontrialend = [if (trial.exppos.response == 48) values.letter = "b"]
/ ontrialend = [if (trial.exppos.response == 49) values.letter = "n"]
/ ontrialend = [if (trial.exppos.response == 50) values.letter = "m"]
/ ontrialend = [if (trial.exppos.response == 28) values.letter = "~n"]
/ ontrialend = [if (trial.exppos.response == 57) values.letter = " "]
/ ontrialend = [if (trial.exppos.response == 51) values.letter = ","]
/ ontrialend = [if (trial.exppos.response == 52) values.letter = "."]
/ ontrialend = [if (trial.exppos.response != 14) {setitem(item.letter,values.letter,1); setitem(item.answer,values.answer,1)}]
/ ontrialend = [if (trial.exppos.response != 14) values.answer = concat(getitem(item.answer,1),getitem(item.letter,1))]
/ ontrialend = [setitem(item.answer,values.answer,1)]
/ ontrialend = [if (trial.exppos.response == 14) values.answer = substring(getitem(item.answer,1),0,length(values.answer)-1)]
/ ontrialend = [if (trial.exppos.response == 14) setitem(item.answer,values.answer,1)]
/ ontrialend = [values.currenttime = values.currenttime + trial.exppos.latency]
/ branch = [if (trial.exppos.response == 2) trial.end]
/ branch = [trial.exppos]
</trial>

<trial end>
/ ontrialbegin = [values.amount = 0; values.cumulative_time = 0; values.answer = ""; values.letter = "";values.currenttime = 0;values.select = values.select+1]
/ stimulusframes = [1 = blank]
/ recorddata = true
/ timeout = 1
</trial>

<item letter>
/1 = ""
</item>

<item answer>
/1 = ""
</item>

<values>
/amount = 0
/cumulative_time = 0
/answer = ""
/letter = ""
/currenttime = 0
/select = 1
</values>

<text answer>
/ items = ("<%values.answer%>")
/ position = (50%,75.5%)
/ erase = false
/txbgcolor = (255,255,255)
/ txcolor = (0, 0, 0)
/ size = (39.5%,19%)
/ valign = top
</text>

<shape blank>
/ shape = rectangle
/ size = (100%,100%)
/ color = (255,255,255)
/ erase = false
</shape>

<shape black>
/ shape = rectangle
/ size = (40%,20%)
/ color = (0,0,0)
/ erase = false
/ position = (50%,75%)
/ valign = top
</shape>

Is there any way to add in a button so that people can move on from this task with a simple mouseclick?

A second question is: does it matter what kind of keyboard someone has? The current code makes use of the scancodes as a valid response,
however, would it matter if some uses an azerty keyboard instead of a qwerty keyboard? 

I hope my questions are clear.

Many thanks in advance,

Wenkuo
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: 13K, Visits: 104K
> I have been trying to create a typing task on Inquisit 4 that will allow me to know when someone first starts typing an answer
> and when someone stops typing

It would have been easier for you to use a simple <openended> element and log its firstcharlatency and lastcharlatency properties.

> I want to add in a button that can be clicked on with the mouse, so that people can move on when they are finished.

Set <trial end>'s /inputdevice to mouse, have it display a <text> or <picture> element to serve as your "button", define that object as the trial's /validresponse. It is not possible to have multiple /inputdevices in a given <trial> element, i.e., you cannot have <trial exppos> accept input from both mouse and keyboard -- it's either one or the other.

> A second question is: does it matter what kind of keyboard someone has? The current code makes use of the scancodes as
> a valid response, however, would it matter if some uses an azerty keyboard instead of a qwerty keyboard?

Yes, this matters. On a standard QWERTY keyboard, scancode 16 maps to "Q". On an AZERTY keyboard, scancode 16 maps to "A" (and so forth). The code you have in <trial exppos> will treat every keyboard as having a QWERTY layout.

Wenkuo
Wenkuo
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 27, Visits: 47
Hi Dave,

Thank you for the fast reply!

I'm still unfamiliar with Inquisit and programming in general unfortunately, so this might sound a bit stupid, 
but how do I go about combining the openended element and first/lastcharlatency? I've looked at the openended element before,
but I had no idea that something like that was possible.

Many thanks in advance,

Wenkuo
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: 13K, Visits: 104K
E.g.

<block myblock>
/ trials = [1=myopenended]
</block>

<openended myopenended>
...
</openended>

<data>
/ columns = [date, time, subject, ..., openended.myopenended.firstcharlatency, openended.myopenended.lastcharlatency, ...]
...
</data>

Wenkuo
Wenkuo
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 27, Visits: 47
Thank you! It's working perfectly now. 
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search