Pass-through keystrokes to iMotions?


Author
Message
beaslera
beaslera
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Forum Members
Posts: 15, Visits: 53
Dave - Monday, August 28, 2017
beaslera - Monday, August 28, 2017
beaslera - Monday, August 28, 2017
Dave - Monday, August 28, 2017
beaslera - Sunday, August 27, 2017
I am running Inquisit Lab from iMotions, and am trying to match their datasets.

I have determined that if I can get both of them to record the same keystroke, then I can align the two datasets on that one time, in post-processing.
Unfortunately once Inquisit starts it captures all the keystrokes and iMotions doesn't receive them, but I discovered that if I clicked on iMotions (on a secondary monitor), that both it and Inquisit would receive any keystrokes.
So currently I have iMotions run an AutoIt script.  The script starts Inquisit and then for the next several seconds it keeps activating (i.e., giving focus to) iMotions.  As long as iMotions has focus, both it and Inquisit will receive keystrokes and I can use that to match the data.  Then I just have to make sure iMotions has focus until after that one keystroke (say a few seconds).

While this approach works, it does mean that focus keeps going to iMotions for a few seconds.  This focus-change isn't noticeable to the participant for the most part, but it can be if they are trying to use the mouse. (When they mouse-down on the Inquisit screen it gets focus, and then when focus gets sent back to iMotions the mouse-up doesn't trigger in Inquisit.)  So I try to keep this focus-changing time short so they won't be using the mouse yet in my script, but if the participant clicks on the Inquisit window by accident before that one keystroke (they shouldn't be using the mouse at all then but participants can do unexpected things), then I wouldn't have the necessary data to match the datasets, so I want to make sure the time is long enough.

Is it possible to avoid this issue?  Perhaps I can pass-through keystrokes somehow so that they always go to both Inquisit and iMotions?
Perhaps Inquisit is in the process of implementing TCP/UDP outputs?  (That seems to be the only input that iMotions will accept.)
Perhaps the Inquisit-Tobii plugin is being rewritten for Tobii Pro SDK instead of Tobii Analytics SDK 3.0?  (The eyetracker I am using won't work with the Analytics SDK...previously that plugin has done the matching for me.)
Other ideas?

Thank you.

The Tobii plugin in fact is built using the Pro SDK (which has replaced the Analytics SDK), i.e. if your eyetracker is among those supported by the Pro SDK, it should work:
https://www.tobiipro.com/product-listing/tobii-pro-sdk/#Specifications

Note: If you use a recent, high-sampling-rate tracker like the TX300, please make sure you update your Inquisit Lab installation to the latest version 5.0.9.0 (https://www.millisecond.com/download/ ).

That's great news!
The plugin product page says "The Inquisit 5 Tobii Plugin uses the Tobii Analytics SDK 3.0".
https://www.millisecond.com/products/inquisit5/tobii.aspx

Previously I've been doing this in my trials to set a marker during the trial:
<trial trial302>
/ ontrialbegin = [values.markernum = 302;]
/ ontrialbegin = [port.xdat.setitem(values.markernum, 1);]
/ ontrialend = [values.markernum = "00000000";]
/ ontrialend = [port.xdat.setitem(values.markernum, 1);]
/ stimulusframes = [1=pic302, xdat]
</trial>

<eyetracker>
/ plugin = "tobii"
/ aoidurationthreshold = 500
</eyetracker>

<port xdat>
/ port = eyetracker
/ items = (0)
/ erase = true(0)
</port>

As a result, the data entries have an xdat column, and the eyetracking observations during that specific trial would list an xdat of 302, while other trials have other values I have specified.

Since xdat is in the stimulusframes, does the xdat column in the recorded data more closely track the on-screen stimuli than my attempts using script.elapsedtime in /ontrialbegin and /ontrialend in Topic #22305?

Thanks.

> The plugin product page says "The Inquisit 5 Tobii Plugin uses the Tobii Analytics SDK 3.0".

That info is outdated (I'll file a bug to correct it).

> Since xdat is in the stimulusframes, does the xdat column in the recorded data more closely track the on-screen
> stimuli than my attempts using script.elapsedtime in /ontrialbegin and /ontrialend in Topic #22305?

Yes, it should, and using markers would be the recommended way to go.

Thanks Dave.
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: 105K
beaslera - Monday, August 28, 2017
beaslera - Monday, August 28, 2017
Dave - Monday, August 28, 2017
beaslera - Sunday, August 27, 2017
I am running Inquisit Lab from iMotions, and am trying to match their datasets.

I have determined that if I can get both of them to record the same keystroke, then I can align the two datasets on that one time, in post-processing.
Unfortunately once Inquisit starts it captures all the keystrokes and iMotions doesn't receive them, but I discovered that if I clicked on iMotions (on a secondary monitor), that both it and Inquisit would receive any keystrokes.
So currently I have iMotions run an AutoIt script.  The script starts Inquisit and then for the next several seconds it keeps activating (i.e., giving focus to) iMotions.  As long as iMotions has focus, both it and Inquisit will receive keystrokes and I can use that to match the data.  Then I just have to make sure iMotions has focus until after that one keystroke (say a few seconds).

While this approach works, it does mean that focus keeps going to iMotions for a few seconds.  This focus-change isn't noticeable to the participant for the most part, but it can be if they are trying to use the mouse. (When they mouse-down on the Inquisit screen it gets focus, and then when focus gets sent back to iMotions the mouse-up doesn't trigger in Inquisit.)  So I try to keep this focus-changing time short so they won't be using the mouse yet in my script, but if the participant clicks on the Inquisit window by accident before that one keystroke (they shouldn't be using the mouse at all then but participants can do unexpected things), then I wouldn't have the necessary data to match the datasets, so I want to make sure the time is long enough.

Is it possible to avoid this issue?  Perhaps I can pass-through keystrokes somehow so that they always go to both Inquisit and iMotions?
Perhaps Inquisit is in the process of implementing TCP/UDP outputs?  (That seems to be the only input that iMotions will accept.)
Perhaps the Inquisit-Tobii plugin is being rewritten for Tobii Pro SDK instead of Tobii Analytics SDK 3.0?  (The eyetracker I am using won't work with the Analytics SDK...previously that plugin has done the matching for me.)
Other ideas?

Thank you.

The Tobii plugin in fact is built using the Pro SDK (which has replaced the Analytics SDK), i.e. if your eyetracker is among those supported by the Pro SDK, it should work:
https://www.tobiipro.com/product-listing/tobii-pro-sdk/#Specifications

Note: If you use a recent, high-sampling-rate tracker like the TX300, please make sure you update your Inquisit Lab installation to the latest version 5.0.9.0 (https://www.millisecond.com/download/ ).

That's great news!
The plugin product page says "The Inquisit 5 Tobii Plugin uses the Tobii Analytics SDK 3.0".
https://www.millisecond.com/products/inquisit5/tobii.aspx

Previously I've been doing this in my trials to set a marker during the trial:
<trial trial302>
/ ontrialbegin = [values.markernum = 302;]
/ ontrialbegin = [port.xdat.setitem(values.markernum, 1);]
/ ontrialend = [values.markernum = "00000000";]
/ ontrialend = [port.xdat.setitem(values.markernum, 1);]
/ stimulusframes = [1=pic302, xdat]
</trial>

<eyetracker>
/ plugin = "tobii"
/ aoidurationthreshold = 500
</eyetracker>

<port xdat>
/ port = eyetracker
/ items = (0)
/ erase = true(0)
</port>

As a result, the data entries have an xdat column, and the eyetracking observations during that specific trial would list an xdat of 302, while other trials have other values I have specified.

Since xdat is in the stimulusframes, does the xdat column in the recorded data more closely track the on-screen stimuli than my attempts using script.elapsedtime in /ontrialbegin and /ontrialend in Topic #22305?

Thanks.

> The plugin product page says "The Inquisit 5 Tobii Plugin uses the Tobii Analytics SDK 3.0".

That info is outdated (I'll file a bug to correct it).

> Since xdat is in the stimulusframes, does the xdat column in the recorded data more closely track the on-screen
> stimuli than my attempts using script.elapsedtime in /ontrialbegin and /ontrialend in Topic #22305?

Yes, it should, and using markers would be the recommended way to go.

beaslera
beaslera
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Forum Members
Posts: 15, Visits: 53
beaslera - Monday, August 28, 2017
Dave - Monday, August 28, 2017
beaslera - Sunday, August 27, 2017
I am running Inquisit Lab from iMotions, and am trying to match their datasets.

I have determined that if I can get both of them to record the same keystroke, then I can align the two datasets on that one time, in post-processing.
Unfortunately once Inquisit starts it captures all the keystrokes and iMotions doesn't receive them, but I discovered that if I clicked on iMotions (on a secondary monitor), that both it and Inquisit would receive any keystrokes.
So currently I have iMotions run an AutoIt script.  The script starts Inquisit and then for the next several seconds it keeps activating (i.e., giving focus to) iMotions.  As long as iMotions has focus, both it and Inquisit will receive keystrokes and I can use that to match the data.  Then I just have to make sure iMotions has focus until after that one keystroke (say a few seconds).

While this approach works, it does mean that focus keeps going to iMotions for a few seconds.  This focus-change isn't noticeable to the participant for the most part, but it can be if they are trying to use the mouse. (When they mouse-down on the Inquisit screen it gets focus, and then when focus gets sent back to iMotions the mouse-up doesn't trigger in Inquisit.)  So I try to keep this focus-changing time short so they won't be using the mouse yet in my script, but if the participant clicks on the Inquisit window by accident before that one keystroke (they shouldn't be using the mouse at all then but participants can do unexpected things), then I wouldn't have the necessary data to match the datasets, so I want to make sure the time is long enough.

Is it possible to avoid this issue?  Perhaps I can pass-through keystrokes somehow so that they always go to both Inquisit and iMotions?
Perhaps Inquisit is in the process of implementing TCP/UDP outputs?  (That seems to be the only input that iMotions will accept.)
Perhaps the Inquisit-Tobii plugin is being rewritten for Tobii Pro SDK instead of Tobii Analytics SDK 3.0?  (The eyetracker I am using won't work with the Analytics SDK...previously that plugin has done the matching for me.)
Other ideas?

Thank you.

The Tobii plugin in fact is built using the Pro SDK (which has replaced the Analytics SDK), i.e. if your eyetracker is among those supported by the Pro SDK, it should work:
https://www.tobiipro.com/product-listing/tobii-pro-sdk/#Specifications

Note: If you use a recent, high-sampling-rate tracker like the TX300, please make sure you update your Inquisit Lab installation to the latest version 5.0.9.0 (https://www.millisecond.com/download/ ).

That's great news!
The plugin product page says "The Inquisit 5 Tobii Plugin uses the Tobii Analytics SDK 3.0".
https://www.millisecond.com/products/inquisit5/tobii.aspx

Previously I've been doing this in my trials to set a marker during the trial:
<trial trial302>
/ ontrialbegin = [values.markernum = 302;]
/ ontrialbegin = [port.xdat.setitem(values.markernum, 1);]
/ ontrialend = [values.markernum = "00000000";]
/ ontrialend = [port.xdat.setitem(values.markernum, 1);]
/ stimulusframes = [1=pic302, xdat]
</trial>

<eyetracker>
/ plugin = "tobii"
/ aoidurationthreshold = 500
</eyetracker>

<port xdat>
/ port = eyetracker
/ items = (0)
/ erase = true(0)
</port>

As a result, the data entries have an xdat column, and the eyetracking observations during that specific trial would list an xdat of 302, while other trials have other values I have specified.

Since xdat is in the stimulusframes, does the xdat column in the recorded data more closely track the on-screen stimuli than my attempts using script.elapsedtime in /ontrialbegin and /ontrialend in Topic #22305?

Thanks.
beaslera
beaslera
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Forum Members
Posts: 15, Visits: 53
Dave - Monday, August 28, 2017
beaslera - Sunday, August 27, 2017
I am running Inquisit Lab from iMotions, and am trying to match their datasets.

I have determined that if I can get both of them to record the same keystroke, then I can align the two datasets on that one time, in post-processing.
Unfortunately once Inquisit starts it captures all the keystrokes and iMotions doesn't receive them, but I discovered that if I clicked on iMotions (on a secondary monitor), that both it and Inquisit would receive any keystrokes.
So currently I have iMotions run an AutoIt script.  The script starts Inquisit and then for the next several seconds it keeps activating (i.e., giving focus to) iMotions.  As long as iMotions has focus, both it and Inquisit will receive keystrokes and I can use that to match the data.  Then I just have to make sure iMotions has focus until after that one keystroke (say a few seconds).

While this approach works, it does mean that focus keeps going to iMotions for a few seconds.  This focus-change isn't noticeable to the participant for the most part, but it can be if they are trying to use the mouse. (When they mouse-down on the Inquisit screen it gets focus, and then when focus gets sent back to iMotions the mouse-up doesn't trigger in Inquisit.)  So I try to keep this focus-changing time short so they won't be using the mouse yet in my script, but if the participant clicks on the Inquisit window by accident before that one keystroke (they shouldn't be using the mouse at all then but participants can do unexpected things), then I wouldn't have the necessary data to match the datasets, so I want to make sure the time is long enough.

Is it possible to avoid this issue?  Perhaps I can pass-through keystrokes somehow so that they always go to both Inquisit and iMotions?
Perhaps Inquisit is in the process of implementing TCP/UDP outputs?  (That seems to be the only input that iMotions will accept.)
Perhaps the Inquisit-Tobii plugin is being rewritten for Tobii Pro SDK instead of Tobii Analytics SDK 3.0?  (The eyetracker I am using won't work with the Analytics SDK...previously that plugin has done the matching for me.)
Other ideas?

Thank you.

The Tobii plugin in fact is built using the Pro SDK (which has replaced the Analytics SDK), i.e. if your eyetracker is among those supported by the Pro SDK, it should work:
https://www.tobiipro.com/product-listing/tobii-pro-sdk/#Specifications

Note: If you use a recent, high-sampling-rate tracker like the TX300, please make sure you update your Inquisit Lab installation to the latest version 5.0.9.0 (https://www.millisecond.com/download/ ).

That's great news!
The plugin product page says "The Inquisit 5 Tobii Plugin uses the Tobii Analytics SDK 3.0".
https://www.millisecond.com/products/inquisit5/tobii.aspx

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: 105K
beaslera - Sunday, August 27, 2017
I am running Inquisit Lab from iMotions, and am trying to match their datasets.

I have determined that if I can get both of them to record the same keystroke, then I can align the two datasets on that one time, in post-processing.
Unfortunately once Inquisit starts it captures all the keystrokes and iMotions doesn't receive them, but I discovered that if I clicked on iMotions (on a secondary monitor), that both it and Inquisit would receive any keystrokes.
So currently I have iMotions run an AutoIt script.  The script starts Inquisit and then for the next several seconds it keeps activating (i.e., giving focus to) iMotions.  As long as iMotions has focus, both it and Inquisit will receive keystrokes and I can use that to match the data.  Then I just have to make sure iMotions has focus until after that one keystroke (say a few seconds).

While this approach works, it does mean that focus keeps going to iMotions for a few seconds.  This focus-change isn't noticeable to the participant for the most part, but it can be if they are trying to use the mouse. (When they mouse-down on the Inquisit screen it gets focus, and then when focus gets sent back to iMotions the mouse-up doesn't trigger in Inquisit.)  So I try to keep this focus-changing time short so they won't be using the mouse yet in my script, but if the participant clicks on the Inquisit window by accident before that one keystroke (they shouldn't be using the mouse at all then but participants can do unexpected things), then I wouldn't have the necessary data to match the datasets, so I want to make sure the time is long enough.

Is it possible to avoid this issue?  Perhaps I can pass-through keystrokes somehow so that they always go to both Inquisit and iMotions?
Perhaps Inquisit is in the process of implementing TCP/UDP outputs?  (That seems to be the only input that iMotions will accept.)
Perhaps the Inquisit-Tobii plugin is being rewritten for Tobii Pro SDK instead of Tobii Analytics SDK 3.0?  (The eyetracker I am using won't work with the Analytics SDK...previously that plugin has done the matching for me.)
Other ideas?

Thank you.

The Tobii plugin in fact is built using the Pro SDK (which has replaced the Analytics SDK), i.e. if your eyetracker is among those supported by the Pro SDK, it should work:
https://www.tobiipro.com/product-listing/tobii-pro-sdk/#Specifications

Note: If you use a recent, high-sampling-rate tracker like the TX300, please make sure you update your Inquisit Lab installation to the latest version 5.0.9.0 (https://www.millisecond.com/download/ ).

beaslera
beaslera
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Forum Members
Posts: 15, Visits: 53
I am running Inquisit Lab from iMotions, and am trying to match their datasets.

I have determined that if I can get both of them to record the same keystroke, then I can align the two datasets on that one time, in post-processing.
Unfortunately once Inquisit starts it captures all the keystrokes and iMotions doesn't receive them, but I discovered that if I clicked on iMotions (on a secondary monitor), that both it and Inquisit would receive any keystrokes.
So currently I have iMotions run an AutoIt script.  The script starts Inquisit and then for the next several seconds it keeps activating (i.e., giving focus to) iMotions.  As long as iMotions has focus, both it and Inquisit will receive keystrokes and I can use that to match the data.  Then I just have to make sure iMotions has focus until after that one keystroke (say a few seconds).

While this approach works, it does mean that focus keeps going to iMotions for a few seconds.  This focus-change isn't noticeable to the participant for the most part, but it can be if they are trying to use the mouse. (When they mouse-down on the Inquisit screen it gets focus, and then when focus gets sent back to iMotions the mouse-up doesn't trigger in Inquisit.)  So I try to keep this focus-changing time short so they won't be using the mouse yet in my script, but if the participant clicks on the Inquisit window by accident before that one keystroke (they shouldn't be using the mouse at all then but participants can do unexpected things), then I wouldn't have the necessary data to match the datasets, so I want to make sure the time is long enough.

Is it possible to avoid this issue?  Perhaps I can pass-through keystrokes somehow so that they always go to both Inquisit and iMotions?
Perhaps Inquisit is in the process of implementing TCP/UDP outputs?  (That seems to be the only input that iMotions will accept.)
Perhaps the Inquisit-Tobii plugin is being rewritten for Tobii Pro SDK instead of Tobii Analytics SDK 3.0?  (The eyetracker I am using won't work with the Analytics SDK...previously that plugin has done the matching for me.)
Other ideas?

Thank you.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search