Problem with collecting voice response
Michiel Spape
Michiel.Spape at nottingham.ac.uk
Fri Jun 18 09:56:17 UTC 2010
Hi Gilis,
The problem, I expect, is that you wrote quite a number of lines of code and I, for one, can't really bring up the time to go through them and sort out what seems to be the problem. Without looking at your code, however, I don't immediately see why so much of it is necessary however. Given that the voicekey, at least in my previous lab, was routed to E-Prime as a SRBox code of 5, and that the mouse-clicks are either one or two, it shouldn't be too hard to have the following:
1: FirstStimulus: both SRBOX and mouse are input devices, SRBox allowable 5, Mouse 1 or 2
2: inline code:
If FirstStimulus.Resp = 5 then goto AfterVoice
3: VoiceStimulus with only SRBox as input device and JumpLabel: AfterMouse
4: label AfterVoice
5: MouseStimulus with only Mouse as input device
6: label AfterMouse
Shouldn't that do the trick? I'm sorry about not taking the time to go through your code; it's just a bit too much. Try to start simple and see where exactly it is you go wrong.
Michiel Spapé
Research Fellow
Perception & Action group
University of Nottingham
School of Psychology
-----Original Message-----
From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of gilis
Sent: 17 June 2010 21:25
To: E-Prime
Subject: Re: Problem with collecting voice response
No answer? Anyone?
On Jun 16, 6:44 pm, gilis <gilads... at gmail.com> wrote:
> In my experiment prticipants have to respond to stimuli both with
> mouse click and voice response, there is no importance to what come
> first (mouse click or voice response) but the program excpecting two
> responses (manual and vocal) in each trial.
>
> If on click the mouse more than once, then the program will collcet
> only his or her first response and regardless if he/she continue
> clicking the mouse, the next trial will start only after he/she will
> also give vocal response. And vice versa, the same goes in case when
> the vocal response came first.
>
> To make this, I wrote these three inlines:
>
> 'This inline is the first and main inline, it checks what was the
> first response in the trial, collect it and then go to the device yet
> not was used (i.e., mouse or SRB).
>
> Dim theResponseObject As RteRunnableInputObject
> Set theResponseObject =
> CRteRunnableInputObject(Rte.GetObject("Stimuli"))
>
> 'If the assert below fires, then the object named in the line above
> does not exist
> Debug.Assert Not theResponseObject Is Nothing
>
> Dim nIndex AS Integer
>
> For nIndex = 1 To theResponseObject.InputMasks.Responses.Count
>
> 'Access the response and check to see if it is a mouse response.
>
> Dim theSRBoxData As SRboxResponseData
> Set theSRBoxData = CSRBoxResponseData
> (theResponseObject.InputMasks.Responses(1))
>
> If Not theSRBoxData Is Nothing Then
>
> c.SetAttrib "VocalResponse" & 1 & "RT", theSRBoxData.RT
> c.SetAttrib "KeyPress" & 1 & "RESP", theSRBoxData.RESP
>
> Goto MouseLabel
> End If
>
> 'Access the response and check to see if it is a mouse response.
> Dim theMouseResponseData As MouseResponseData
> Set theMouseResponseData =
> CMouseResponseData(theResponseObject.InputMasks.Responses(1))
>
> If Not theMouseResponseData Is Nothing Then
>
> c.SetAttrib "MouseClick" & 1 & "RT", theMouseResponseData.RT
> c.SetAttrib "MouseClick" & 1 & "RESP", theMouseResponseData.RESP
>
> Goto SRBoxLabel
> End If
> NEXT nIndex
>
> 'These are the second and the third inlines:
>
> 'If in the first inline, the SRBox Data was not nothing then collect
> the mouse response now:
>
> Dim theResponseObject As RteRunnableInputObject
> Set theResponseObject =
> CRteRunnableInputObject(Rte.GetObject("MouseStimuli"))
>
> 'If the assert below fires, then the object named in the line above
> does not exist
> Debug.Assert Not theResponseObject Is Nothing
>
> Dim nIndex as Integer
>
> Dim theMouseResponseData As MouseResponseData
> Set theMouseResponseData =
> CMouseResponseData(theResponseObject.InputMasks.Responses(1))
>
> If Not theMouseResponseData Is Nothing Then
>
> 'Log reaction time and response for each mouse click.
> c.SetAttrib "MouseClick" & 1 & "RT", theMouseResponseData.RT
> c.SetAttrib "MouseClick" & 1 & "RESP", theMouseResponseData.RESP
>
> End If
>
> 'The third inline do the same as the second inline, but for the SRBox:
>
> Dim theResponseObject As RteRunnableInputObject
> Set theResponseObject =
> CRteRunnableInputObject(Rte.GetObject("SRBoxStimuli"))
>
> 'If the assert below fires, then the object named in the line above
> does not exist
> Debug.Assert Not theResponseObject Is Nothing
>
> Dim theSRBoxData As SRboxResponseData
> Set theSRBoxData =
> CSRBoxResponseData(theResponseObject.InputMasks.Responses(1))
>
> If Not theSRBoxData Is Nothing Then
>
> c.SetAttrib "VocalResponse" & 1 & "RT", theSRBoxData.RT
> c.SetAttrib "KeyPress" & 1 & "RESP", theSRBoxData.RESP
>
> End if
>
> Now, in when I used keyboard input instead of SRB, it worked fine. But
> now I get strange bug: Everything works well aside for trials where
> the participant first respond vocally-in this case the following
> mouse click is considered as the first response and then the program
> wait to another vocal response and the next trial start only after
> it's given. I understand where the problem is, would appreciate your
> help.
--
You received this message because you are subscribed to the Google Groups "E-Prime" group.
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.
This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.
--
You received this message because you are subscribed to the Google Groups "E-Prime" group.
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.
More information about the Eprime
mailing list