Another question on using the mouse as the input device.
David McFarlane
mcfarla9 at msu.edu
Fri Jul 30 21:15:36 UTC 2010
Aoife,
At 7/30/2010 11:51 AM Friday, you wrote:
>I just spotted what you said about BART. I had not heard of this
>research, and a quick google search has whet my appetite (everyone
>elses research always seems infinitely more interesting than your own
>when you're stuck on something!). It is very different to what I am
>looking at
Ah, once again I read a post too hastily and filled in details from
my imagination. Looks like in your trials subjects merely click once
on a balloon to pop it and then move on, but because I was so
familiar with BART I simply assumed that they instead repeatedly
clicked on a balloon to inflate it until it popped. My error.
>I do have one question. This is one which I have already asked the PST web
>support but have yet to get a response.
>
>In BART participants are able to finish at any point, and bank their
>money (if what I just read was correct). When you did this using e-
>prime how did you give the participants the ability to end the
>experiment without aborting it? Is it a case of a jump label? I also
>would like to be able to time how long they continued the trials for,
>from the beginning of the first trial, to when they decided to end the
>experiment. My dependant variable is the length of time that they
>continue to burst balloons for.
Ending a List or Prrocedure at some indefinite limit (e.g., early)
does require a bit of code. In this case the user pressed a specific
button (instead of clicking a mouse) to stop pumping the balloon
before it popped, and I set "Correct" to that response value. I used
a List to run each inflation step of the trial, with Termination set
to the number of pumps until the balloon would pop, and then I just
used an If-Then with a List.Terminate to exit the List early, e.g.
If (BARTSlide.ACC or GetUserBreakState()) Then StepList.Terminate
You can look up things like If...Then and the List Terminate method
in the online E-Basic Help. Of course I then needed further code to
control what happened next, depending on whether the trial ended with
the subject stopping, the balloon bursting, or the
experimenter/tester requesting an early exit (that's the GetUserBreakState()).
That was back when I was in a phase using Lists in place of coded
loops wherever possible. Any ordinary EP user would have written
this as an ordinary For...Next, Do...Loop, or If...Then...Goto loop
in inline code (do NOT use While/Wend, this construct has long been
deprecated!!), and if I rewrote this today I might well do the
same. In that case I might use a loop like
Do
' code to run each step of trial here
Loop Until ( BARTSlide.ACC or GetUserBreakState() or _
(pumpCount >= nPumpsToPop) )
or rather, I would use a Label and inline Goto wrapped around my
stimulus objects in the trial Procedure, something like
- StepLoopLabel
- StepInitCode
- BARTSlide
- StepFinishCode
and my StepFinishCode would contain a line like
If Not( BARTSlide.ACC or GetUserBreakState() or _
(pumpCount >= nPumpsToPop) ) Then Goto StepLoopLabel
(note the "Not" at the start of that conditional expression!).
To record elapsed times beyond a single stimulus-response, you will
again need code, and most likely need to store some values in global
variables. Please see Chapter 4, "Using E-Basic", of the User's
Guide that comes with EP. You can always get the current time using
Clock.Read, although if you are clever you can get a strictly more
accurate starting time by referring to the .OnsetTime of the relevant
stimulus object.
>My ability at reading and writing in E-Basic is atrocious. This is why
>I like e-prime (most of the time) as it allows us less tech savvy
>researchers actually create our experiments. Unluckily for me I am the
>only one in my institution using e-prime, however for these kind of
>little niggly problems this group has been a constant source of
>information for me.
<editorial>
It is nice that we can do so much in EP without code (and I dismay
that some users revert to code long before they need to), but if you
do not learn to use code then you will severely limit the tasks that
you can program (e.g., in my BART, not only do I need code for the
early exits, I also use extensive code to generate random but
balanced numbers of pumps before a pop). Similarly, any task
programming system that does not include a provision to use code will
severely limit what you can do. That is why I continue to endorse
E-Prime, despite my lingering and public disagreements with the
company that sells it.
My instutiion (the Dept. of Psychology at Michigan State University,
USA) has taken the trouble to hire someone like me solely to tend to
these sorts of technical matters for research labs here. Every
research institution should do the same, anything less compromises
their research.
</editorial>
-- David McFarlane, Professional Faultfinder
--
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