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