repeat stimulus, start new one

Tony Zuccolotto anthony.zuccolotto at pstnet.com
Thu Jan 9 19:40:27 UTC 2003


Wiltrud,

Wiltrud,

I don't think Feedback1.RESP property is returing what you think it is
as the backspace is somewhat of a 'special' key, i.e. the line...

> If (Feedback1.RESP) = "BACKSPACE" Then Goto Repeat

...is likely returning either an empty string (since BACKSPACE is not a
printable character and is processed internally) or it's possibly
returning "{BACKSPACE}".   By default, it is likely a null string.  If
you go to the Advanced properties for the Keyboard input mask you can go
to the Collection tab and tell the system to collect but not process the
backspace.

If this is confusing try using a letter key instead of a backspace
temporarily until you can investigate it further.  You can also use
Debug.Print during development to confirm exactly what Feedback1.RESP is
returning, e.g.
	Debug.Print "-" & Feedback1.RESP & "-"

As an aside, while your overall approach is valid and fine to use to
solve your problem, if you are creating 10 Feedback objects just to set
up different display arrangements you may be able to simplify things to
use a single Slide object and create multiple Tabs within the Slide to
represent the different visual states you want to show after the
response.   This solution would likely simplify your Inline script to
something similar to the following.

SlideDisplay.ActiveState = StimulusDisplay.RESP   ' assumes tabs/states
on the Slide are named 1, 2, 3, 4...etc.

If (SlideDisplay.RESP) = "{BACKSPACE}" Then Goto Repeat


With this you only need a single StimulusDisplay object and a single
Slide object(with 10 different tabs named appropriately).

Thanks,
Tony

 
> -----Original Message-----
> From: Wiltrud [mailto:amneris at telocity.com]
> Sent: Thursday, January 09, 2003 1:21 PM
> To: Tony Zuccolotto
> Subject: RE: repeat stimulus, start new one
> 
> Tony,
> 
> Thanks. The only place where I could get in a label object was under
the
> line "sub TrialProc_Run (c as Context). This has not worked. I only
want
> to log the final answer, so logging is not a problem. Any suggestions?
> 
> Wiltrud
> 
> 
> 
> 
> Sub TrialProc_Run(c as Context)
> 
> 	Repeat:
> 
> 	StimulusDisplay.Text = c.GetAttrib("stimulus") &_
> 				"\n\n\n|--|--|--|--|--|--|--|--|\n1
> 5           9"
> 
> 	StimulusDisplay.InputMasks.Reset
> 
> 	StimulusDisplayEchoClients.RemoveAll
> 	StimulusDisplay.InputMasks.Add
> Keyboard.CreateInputMask("123456789", "",
> CLng(StimulusDisplay.Duration), CLng("1"),
ebEndResponseActionTerminate,
> CLogical("Yes"), "", "", "ResponseMode:All ProcessBackspace:Yes")
> 
> 
> 	StimulusDisplay.Run
> 	c.SetAttrib "StimulusDisplay.RESP", StimulusDisplay.RESP
> 
> 
> 	'''''''''''''''''''''''''''''''''''''''''''''
> 	' InLine - InLine1 BEGIN
> 	'''''''''''''''''''''''''''''''''''''''''''''
> 	If(StimulusDisplay.RESP) = "1" Then Goto Feed1
> If(StimulusDisplay.RESP) = "2" Then Goto Feed2
> If(StimulusDisplay.RESP) = "3" Then Goto Feed3
> If(StimulusDisplay.RESP) = "4" Then Goto Feed4
> If(StimulusDisplay.RESP) = "5" Then Goto Feed5
> If(StimulusDisplay.RESP) = "6" Then Goto Feed6
> If(StimulusDisplay.RESP) = "7" Then Goto Feed7
> If(StimulusDisplay.RESP) = "8" Then Goto Feed8
> If(StimulusDisplay.RESP) = "9" Then Goto Feed9
> 
> 
> Feed1:
> 
> Feedback1.Text = c.GetAttrib("stimulus") &_
> 				"\n\nX--|--|--|--|--|--|--|--|\n1
> 5           9\n\n\n\n\n\nOK? Press spacebar\nChange? Press the
> Backspace-key"
> 
> 	Feedback1.InputMasks.Reset
> 
> 	Feedback1EchoClients.RemoveAll
> 	Feedback1.InputMasks.Add
> Keyboard.CreateInputMask("{SPACE}{BACKSPACE}", "",
> CLng(Feedback1.Duration), CLng("1"), ebEndResponseActionTerminate,
> CLogical("Yes"), "", "", "ResponseMode:All ProcessBackspace:Yes")
> 
> 
> 	Feedback1.Run
> 	c.SetAttrib "Feedback1.RESP", Feedback1.RESP
> 
> 
> If (Feedback1.RESP) = "BACKSPACE" Then Goto Repeat
> 
> 
> 
> -----Original Message-----
> From: eprime at mail.talkbank.org [mailto:eprime at mail.talkbank.org] On
> Behalf Of Tony Zuccolotto
> Sent: Thursday, January 09, 2003 9:21 AM
> To: eprime at mail.talkbank.org
> Subject: RE: repeat stimulus, start new one
> 
> Wiltrud,
> 
> In general if you need to repeat a trial you can put a Label object at
> the very beginning of the trial procedure and then use a Goto
statement
> within script at the end of the trial procedure to jump back up to the
> beginning.
> 
> If you want the current set of data to be logged as a trial then you
> also need to manually call c.Log from script to cause the current
values
> of attributes in the context to be logged prior to the Goto statement.
> 
> Note that since the attribute values of some dependent measures (e.g.
> Stimulus.RT, Stimulus.ACC, Stimulus.RESP, etc) are refreshed at the
very
> end of a Procedure immediately before the system issues its own c.Log
> command, if you are repeating a trial it is your responsibility to
make
> sure that all attributes in the context have the values you wish to
log
> at that time.   This mainly constitutes putting in a series of
> c.SetAttrib commands similar to the following...
> 
> 	c.SetAttrib "Stimulus.RT", Stimulus.RT
> 	c.SetAttrib "Stimulus.ACC", Stimulus.ACC
> 	c.SetAttrib "Stimulus.RESP", Stimulus.RESP
> 
> 
> If you only want to log the 'final' answer (or you are not using any
> extended Time Limits on your input masks) then none of the above
logging
> issues typically apply, but you should be aware of the issue and make
> that determination as it applies to your paradigm.   It is best to run
a
> few trials and closely examine the data collected in E-DataAid to
verify
> consistent logging with and without trial repeats.
> 
> Hope that helps,
> Tony
> 
> *** DISCLAIMER: ALL VIEWS EXPRESSED ARE MY OWN AND DO NOT NECESSARILY
> REFLECT THOSE OF PSYCHOLOGY SOFTWARE TOOLS ***
> Anthony P. Zuccolotto
> Vice President
> Psychology Software Tools, Inc.
> 2050 Ardmore Boulevard
> Suite 200
> Pittsburgh, PA 15221-4610
> Phone     412-271-5040
> FAX       412-271-7077
> Email     anthony.zuccolotto at pstnet.com
> Internet  http://www.pstnet.com
> 
> > -----Original Message-----
> > From: Wiltrud Fassbinder [mailto:amneris at telocity.com]
> > Sent: Wednesday, January 08, 2003 8:31 PM
> > To: eprime at mail.talkbank.org
> > Subject: repeat stimulus, start new one
> >
> >
> > Hi,
> >
> > I am a new user of E-prime, and am trying to write a script for
> meaning
> > similarity ratings for word pairs. My goal is to have participants
> judge
> > meaning similarity on a 1-9 analog scale. I also want to give visual
> > feedback for their judgment, so that they can go back and change it,
> if
> > possible.
> >
> > I have created two text displays. The first presents the stimulus
and
> > visual 1-9 analog scale, with number keys 1-9 as response options.
The
> > second presents an X on the visual analog scale corresponding to the
> > response, and the instruction to press "spacebar" for the next
> stimulus,
> > or the backspace key to repeat in the stimulus.
> >
> > I first created those 9 feedback text displays, one for each number,
> and
> > then I created an inline object. This has if-then statements of all
9
> > keys, and refers to the labeled text displays trial procedures I
> pasted
> > in from my 9 feedback displays.  Then I deleted the 9 feedback text
> > displays.
> >
> > The if-then statement works, the correct visual feedback appears for
> > each response.  But I don't know how to implement the option to
repeat
> > the stimulus, or moving on to the next stimulus.  Right now,
> regardless
> > of response key ("spacebar" or "backspace") a response opens the
> > feedback display of the next higher number key. How do I implement:
if
> > spacebar, got next stimulus, and if backspace, repeat this stimulus?
> >
> > Cheers,
> >
> > Wiltrud
> >
> 
> 
> 



More information about the Eprime mailing list