Trigger (stimulus) codes sent on response to EEG recording
JDB
j.dainerbest at gmail.com
Wed Apr 11 14:15:42 UTC 2012
And follow-through from PST:
At this time it is not possible to use Task Events as you describe, but we
> are considering whether it is possible to change this behavior in the
> future. I am glad you are able to use the other option for now.
Well, glad we can do it in some way.
J
El miércoles, 4 de abril de 2012 10:51:48 UTC-4, JDB escribió:
>
> Thanks, David.
>
> I've submitted a support request; I'll be sure to update here if anything
> useful comes of it. For now, I'll stick with the plan I began to outline:
> 1. Send a set code when the user responds (e.g., custom value = 54).
> 2. At the subsequent slide, send the actual response as done before (using
> If/Then) statements.
>
> While not particularly elegant, this solution should allow such analyses
> as I'm interested in doing. (Performing conditional operations on EEG data
> will be possible, as will time-locking to participants' responses.)
>
> J
>
>
>
>
> El martes 3 de abril de 2012 17:42:55 UTC-4, McFarlane, David escribió:
>>
>> Ooh, I did not think about Task Events having a
>> limited range of output options, thanks for
>> acting the pioneer and reporting back. I cannot
>> think of any way around that, so your best bet is
>> PST Web Support. We also use ActiView/Biosemi,
>> so I can confirm that for input it takes only
>> 8-bit values, i.e., integers in the range 0-255 (aka &h00 to &hFF).
>>
>> The bit of generated code that you supply does
>> not give us much hope either, it seems to confirm
>> that Task Events allows only a limited range of
>> fixed "Action" items. BTW, the "ebUCase_W" etc.
>> that you mention may be part of PST's effort to
>> reduce the use of quoted strings so as to avoid
>> "Script too big" problems, if you look in the KB
>> you can find some articles about this.
>>
>> So offhand I agree that your best bet is your
>> plan to output a simple signal at the time of
>> response and then follow that with a later signal
>> for the coded response value. Just one hint, if
>> the signal on the output line is usually 0, then
>> the external equipment will not see another 0
>> output because there is no change on the output,
>> you have to output something different (I explain
>> this in my fMRI & EEG lesson).
>>
>> BTW, I cannot resist a little programming style
>> note. The conventional way to indent your If-ElseIf-End If would be
>>
>> If TaskImage.RESP = "l" Then
>> resp = 55
>> ElseIf TaskImage.RESP = "s" Then
>> resp = 56
>> ElseIf TaskImage.RESP = "o" Then
>> resp = 57
>> ElseIf TaskImage.RESP = "w" Then
>> resp = 58
>> ElseIf TaskImage.RESP = "" Then
>> resp = 59
>> Else
>> resp = 60
>> End If
>>
>> At least you use ElseIf -- you wouldn't believe
>> how many people I see do this with an ugly and
>> inefficient sequence of plain If-Then-End If statements.
>>
>> Regards,
>> -- David McFarlane
>>
>>
>> At 4/3/2012 04:43 PM Tuesday, JDB wrote:
>> >I'm glad to hear from someone else that the code
>> >appears to work. I do wish it were more
>> >efficient, but I don't have the budget to do the
>> >online course, for the moment.
>> >
>> >I've followed David's suggestion and upgraded to
>> >E-Prime 2.0.10 Professional (it was time), which
>> >does indeed have Task Events that seem to fit my
>> >needs. The problem is that the TaskImage.RESP is
>> >not a number, which is (I believe) what my
>> >external device needs—it's a letter. I don't
>> >think I can use an IF,Then statement in the
>> >parameters under Task Events. Am I missing something?
>> >
>> >One option I can think of is to send the
>> >accuracy (a 1 or 0) when the participant
>> >responds as a Task Event, and to send the
>> >numeric code for response at the Offset via InLine code (as before).
>> >
>> >Better, though, would be to now code using the
>> >code it generates from the Task Events. Is this
>> >possible? When I Generate the experiment, the relevant lines are:
>> >If ParallelPort.GetState() = ebStateOpen Then
>> >
>> >TaskImage.Tasks.Add
>> >ParallelPort.CreateTask("TaskImage.Keyboard(1).Press",
>> >0, WriteByteACC, , Long, CLogical(Yes))
>> >
>> >End If
>> >
>> >
>> >(I've written out "WriteByteACC"—E-Studio writes
>> >it as "ebUCase_W, ebLCase_r", etc. I'm copying
>> >from another computer, but I'm also not sure
>> >whether the eb?Case letter-names are necessary.)
>> >
>> >In any case, could I insert this as InLine code
>> >instead (before the TaskImage), and include the
>> >code I suggested above (*updated below)? Or
>> >should I instead look into the other links
>> >recommended (e.g., using the IsPending() function)? Any thoughts?
>> >
>> >Barring suggestions, I will of course contact
>> >PST staff [and post their response here].
>> >
>> >Thanks!
>> >
>> >* Code to insert:
>> >
>> >''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>> >' InLine - Code START
>> >''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>> >If TaskImage.RESP = "l" Then
>> > resp = 55
>> > ElseIf TaskImage.RESP = "s" Then
>> > resp = 56
>> > ElseIf TaskImage.RESP = "o" Then
>> > resp = 57
>> > ElseIf TaskImage.RESP = "w" Then
>> > resp = 58
>> > ElseIf TaskImage.RESP = "" Then
>> > resp = 59
>> > Else resp = 60
>> >End If
>> >
>> >If ParallelPort.GetState() = ebStateOpen Then
>> >TaskImage.Tasks.Add
>> >ParallelPort.CreateTask("TaskImage.Keyboard(1).Press",
>> >0, WriteByte(custom), resp, Integer, CLogical(Yes))
>> >
>> >End If
>> >''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>> >' InLine - Code END
>> >''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>> >
>> >
>> >
>> >
>> >On Thursday, March 22, 2012 4:32:25 PM UTC-4, McFarlane, David wrote:
>> >If you use EP2.0.10.182 *Professional* or later then you are in luck
>> >-- see the new Task Events feature documented at
>> ><http://www.pstnet.com/support/kb.asp?TopicID=4803>
>> http://www.pstnet.com/support/kb.asp?TopicID=4803
>> >. (Remember, I
>> >have uniformly advised everyone to spend the extra money for
>> >Professional, no matter what PST advises.)
>> >
>> >If you do not have EP2.0.10.182 Pro, then you might look at
>> ><
>> http://groups.google.com/group/e-prime/browse_thread/thread/cfc3d0307d5c7fbd
>> >
>> http://groups.google.com/group/e-prime/browse_thread/thread/cfc3d0307d5c7fbd
>> >
>> >and
>> ><
>> http://groups.google.com/group/e-prime/browse_thread/thread/ef0e5a8d8b87aa0c
>> >
>> http://groups.google.com/group/e-prime/browse_thread/thread/ef0e5a8d8b87aa0c
>> >
>> >for hints. Or, of course, take this up with PST Web Support at
>> ><http://support.pstnet.com/e%2Dprime/support/login.asp>
>> http://support.pstnet.com/e%2Dprime/support/login.asp
>> >, where they
>> >strive to respond to all requests in 24-48 hours. And if you do get
>> >an answer from PST staff, please extend the courtesy of posting their
>> >reply back here for the sake of others.
>> >
>> >BTW, although your particular inline code for the stimulus signal
>> >works well enough (which is a virtue), it suffers in efficiency. I
>> >have an entire lesson about handling these sorts of things in my
>> >online course (although that lesson does not address your precise
>> >response signal question).
>> >
>> >-----
>> >David McFarlane
>> >E-Prime training
>> >online:
>> ><http://psychology.msu.edu/Workshops_Courses/eprime.aspx>
>> http://psychology.msu.edu/Workshops_Courses/eprime.aspx
>> >Twitter: @EPrimeMaster
>> >(<http://twitter.com/EPrimeMaster>twitter.com/EPrimeMaster)
>> >
>> >
>> >At 3/22/2012 03:52 PM Thursday, you wrote:
>> > >I'm working on a project that involves interfacing an E-Prime
>> > >experiment with the ActiView/Biosemi interface for EEG recording.
>> > >
>> > >I have this in the UserScript:
>> > >Const Sport as Integer = &H378
>> > >
>> > >Every time an image appears, this code is sent immediately before:
>> > >
>> > >InLine:
>> > >Intermediary.OnsetSignalEnabled = True
>> > >Intermediary.OnsetSignalPort = Sport
>> > >Intermediary.OnsetSignalData = c.GetAttrib("IntermediaryCode")
>> > >
>> > >Intermediary.OffsetSignalData = 0
>> > >Intermediary.OffsetSignalPort = Sport
>> > >Intermediary.OffsetSignalEnabled = True
>> > >
>> > >This works fine. The task then presents the participant with images,
>> > >to one of which they respond; the image is on-screen for 500ms,
>> > >followed by a fixation cross for another 500ms. They can respond at
>> > >any point, but the image & cross are on-screen for a set amount of
>> > >time. What I'd like is for the stimcode to be sent as soon as possible
>> > >after the response. I've been successful in sending a response code
>> > >after fixation cross goes away, using the following code:
>> > >
>> > >InLine:
>> > >If TaskImage.RESP = "l" Then
>> > > resp = 55
>> > > ElseIf TaskImage.RESP = "s" Then
>> > > resp = 56
>> > > ElseIf TaskImage.RESP = "o" Then
>> > > resp = 57
>> > > ElseIf TaskImage.RESP = "w" Then
>> > > resp = 58
>> > > ElseIf TaskImage.RESP = "" Then
>> > > resp = 59
>> > > Else resp = 60
>> > >End If
>> > >
>> > >FixationCross2.OnsetSignalEnabled = True
>> > >FixationCross2.OnsetSignalPort = Sport
>> > >FixationCross2.OnsetSignalData = resp
>> > >
>> > >FixationCross2.OffsetSignalEnabled = True
>> > >FixationCross2.OffsetSignalPort = Sport
>> > >FixationCross2.OffsetSignalData = 0
>> > >
>> > >However, this only works by sending itself at the beginning of a new
>> > >fixation cross. Ideally, subject responses would be sent WHEN they
>> > >respond. But I can't figure out how to do that. Is there some function
>> > >equivalent to "OnResponse"? It seems like it should be possible, but
>> > >I'm not sure how to do it.
>> > >
>> > >Thanks for your help!
>>
>>
--
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/FtSyBOPcHNMJ.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/eprime/attachments/20120411/cdc6c1fd/attachment.htm>
More information about the Eprime
mailing list