From ucfmicah at gmail.com Wed Mar 9 13:34:05 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 05:34:05 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch Message-ID: Hello, This is probably a very easy to solve problem, but it's just about beaten me down. I am trying to make a training script for my error- awareness paradigm that can log inhibition and error-awareness performance and then report these to the subject at the end of the trial. The task is very simple and works fine, as does the performance logging. I can't seem to get my summation object to work though- everytime it gives me a 'type mismatch'. I've tried creating a variable from the logging vars in a double format but that does not fix it. Can someone take a look at my code and see what's up? I start with the following setup inline and usertab code: 'setup inline set stopaccuracy = New Summation set erroraware = New Summation 'usertab dim killme as integer dim stopaccuracy as Summation dim erroraware as Summation dim ogperf as double dim ogaware as double My inline that logs awareness and performance, and (is supposed to) fill the summation object with these information for reporting to the subject, looks like this: If c.GetAttrib("trialtype") = "lure" then if TextDisplay1.RT = 0 then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if end if if c.GetAttrib("awaretrial") = "1" and killme = 1 then if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if c.GetAttrib("ogperf") = "0" then killme = 1 else killme = 0 end if stopaccuracy.AddObservation c.GetAttrib("ogperf") errorawareness.AddObservation c.GetAttrib("ogaware") Debug.Print stopaccuracy.Mean Debug.Print erroraware.Mean c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") It's these lines that give me the type mismatch: stopaccuracy.AddObservation c.GetAttrib("ogperf") errorawareness.AddObservation c.GetAttrib("ogaware") Link to script: http://bit.ly/hKCcmo Best, Micah -- 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. From baltimore.ben at gmail.com Wed Mar 9 14:17:21 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Wed, 9 Mar 2011 09:17:21 -0500 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: try changing them to: stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) or CDbl(...) if CInt(...) isn't what you need. i think the problem might be that when you c.GetAttrib the value it pulls from the list is understood as a string, rather than some sort of number... On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > Hello, > > This is probably a very easy to solve problem, but it's just about > beaten me down. I am trying to make a training script for my error- > awareness paradigm that can log inhibition and error-awareness > performance and then report these to the subject at the end of the > trial. The task is very simple and works fine, as does the performance > logging. I can't seem to get my summation object to work though- > everytime it gives me a 'type mismatch'. I've tried creating a > variable from the logging vars in a double format but that does not > fix it. Can someone take a look at my code and see what's up? > > I start with the following setup inline and usertab code: > 'setup inline > set stopaccuracy = New Summation > set erroraware = New Summation > > 'usertab > dim killme as integer > dim stopaccuracy as Summation > dim erroraware as Summation > dim ogperf as double > dim ogaware as double > > > My inline that logs awareness and performance, and (is supposed to) > fill the summation object with these information for reporting to the > subject, looks like this: > > > If c.GetAttrib("trialtype") = "lure" then > if TextDisplay1.RT = 0 then > c.SetAttrib "ogperf", 1 > else > c.SetAttrib "ogperf", 0 > end if > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > if TextDisplay1.RESP = "2" then > c.SetAttrib "ogaware", 0 > else > c.SetAttrib "ogaware", 1 > end if > end if > > if c.GetAttrib("ogperf") = "0" then > killme = 1 > else > killme = 0 > end if > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Debug.Print stopaccuracy.Mean > Debug.Print erroraware.Mean > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > It's these lines that give me the type mismatch: > stopaccuracy.AddObservation c.GetAttrib("ogperf") > errorawareness.AddObservation c.GetAttrib("ogaware") > > Link to script: http://bit.ly/hKCcmo > > Best, > Micah > > > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucfmicah at gmail.com Wed Mar 9 15:19:10 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 07:19:10 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hi Ben, Sincere thanks for your suggestion. Helped me to feel like I'm getting somewhere in my understanding of E-basic, as I had the same idea. Sadly neither CInt or CDbl used in that way change the error. I also tried declaring erroraware and stopaccuracy as doubles, and tried converting them into new variables that would be numbers. I'm not sure I did that correctly however. Thanks for your help- i'll be really excited if we can solve this. On Mar 9, 3:17 pm, ben robinson wrote: > try changing them to: > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > or CDbl(...) if CInt(...) isn't what you need. > i think the problem might be that when you c.GetAttrib the value it pulls > from the list is understood as a string, rather than some sort of number... > > > > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > Hello, > > > This is probably a very easy to solve problem, but it's just about > > beaten me down. I am trying to make a training script for my error- > > awareness paradigm that can log inhibition and error-awareness > > performance and then report these to the subject at the end of the > > trial. The task is very simple and works fine, as does the performance > > logging. I can't seem to get my summation object to work though- > > everytime it gives me a 'type mismatch'. I've tried creating a > > variable from the logging vars in a double format but that does not > > fix it. Can someone take a look at my code and see what's up? > > > I start with the following setup inline and usertab code: > > 'setup inline > > set stopaccuracy = New Summation > > set erroraware = New Summation > > > 'usertab > > dim killme as integer > > dim stopaccuracy as Summation > > dim erroraware as Summation > > dim ogperf as double > > dim ogaware as double > > > My inline that logs awareness and performance, and (is supposed to) > > fill the summation object with these information for reporting to the > > subject, looks like this: > > > If c.GetAttrib("trialtype") = "lure" then > >        if TextDisplay1.RT = 0 then > >                c.SetAttrib "ogperf", 1 > >        else > >                c.SetAttrib "ogperf", 0 > >        end if > > end if > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > >        if TextDisplay1.RESP = "2" then > >                c.SetAttrib "ogaware", 0 > >        else > >                c.SetAttrib "ogaware", 1 > >        end if > > end if > > > if c.GetAttrib("ogperf") = "0" then > >        killme = 1 > > else > >        killme = 0 > > end if > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Debug.Print stopaccuracy.Mean > > Debug.Print erroraware.Mean > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > It's these lines that give me the type mismatch: > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Link to script:http://bit.ly/hKCcmo > > > Best, > > Micah > > > -- > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group.> To post to this group, send email toe-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. -- 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 9 15:55:32 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 9 Mar 2011 15:55:32 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <87470c1f-444c-4454-8207-265b6c953d68@t8g2000vbd.googlegroups.com> Message-ID: Hiya, Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > dim stopaccuracy as Summation > > dim erroraware as Summation > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. If you want to find out what's going on with the mismatch (one of the more simpler things to solve): >stopaccuracy.AddObservation c.GetAttrib("ogperf") Then try change this into: stopaccuracy.AddObservation 0 if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. Cheers, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 09 March 2011 15:19 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hi Ben, Sincere thanks for your suggestion. Helped me to feel like I'm getting somewhere in my understanding of E-basic, as I had the same idea. Sadly neither CInt or CDbl used in that way change the error. I also tried declaring erroraware and stopaccuracy as doubles, and tried converting them into new variables that would be numbers. I'm not sure I did that correctly however. Thanks for your help- i'll be really excited if we can solve this. On Mar 9, 3:17 pm, ben robinson wrote: > try changing them to: > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > or CDbl(...) if CInt(...) isn't what you need. > i think the problem might be that when you c.GetAttrib the value it pulls > from the list is understood as a string, rather than some sort of number... > > > > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > Hello, > > > This is probably a very easy to solve problem, but it's just about > > beaten me down. I am trying to make a training script for my error- > > awareness paradigm that can log inhibition and error-awareness > > performance and then report these to the subject at the end of the > > trial. The task is very simple and works fine, as does the performance > > logging. I can't seem to get my summation object to work though- > > everytime it gives me a 'type mismatch'. I've tried creating a > > variable from the logging vars in a double format but that does not > > fix it. Can someone take a look at my code and see what's up? > > > I start with the following setup inline and usertab code: > > 'setup inline > > set stopaccuracy = New Summation > > set erroraware = New Summation > > > 'usertab > > dim killme as integer > > dim stopaccuracy as Summation > > dim erroraware as Summation > > dim ogperf as double > > dim ogaware as double > > > My inline that logs awareness and performance, and (is supposed to) > > fill the summation object with these information for reporting to the > > subject, looks like this: > > > If c.GetAttrib("trialtype") = "lure" then > >        if TextDisplay1.RT = 0 then > >                c.SetAttrib "ogperf", 1 > >        else > >                c.SetAttrib "ogperf", 0 > >        end if > > end if > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > >        if TextDisplay1.RESP = "2" then > >                c.SetAttrib "ogaware", 0 > >        else > >                c.SetAttrib "ogaware", 1 > >        end if > > end if > > > if c.GetAttrib("ogperf") = "0" then > >        killme = 1 > > else > >        killme = 0 > > end if > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Debug.Print stopaccuracy.Mean > > Debug.Print erroraware.Mean > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > It's these lines that give me the type mismatch: > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Link to script:http://bit.ly/hKCcmo > > > Best, > > Micah > > > -- > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group.> To post to this group, send email toe-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. -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From ucfmicah at gmail.com Wed Mar 9 16:05:31 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 08:05:31 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA362@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hi Michiel, Thanks for the useful reply! Ogperf and ogaware are actually list objects, and the related code is designed to log stops and successful error reports. So the first bit of code should be resolving to either a '1' or a '0' for either accurate/inaccurate stop or correct error report/missed error report. That being said I see your point with the need to simplify and had wondered if I could get by without the summation object. My worry is that, sense the accuracy data is not generated directly by the list or procedure, I need this summation object to collect data from the ogperf ogaware inline. The last bit ( c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent")) is supposed to then format the summation object for placement in the end of block report ("Congratulations, you successfully inhibited on [stopaccuracy] of trials and reported your errors [erroraware] of the time"). Will try to wrap my head around how to do this without the summation- appreciate your help! On Mar 9, 4:55 pm, Michiel Spape wrote: > Hiya, > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > Then try change this into: > stopaccuracy.AddObservation 0 > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > Cheers, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 15:19 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Ben, > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > somewhere in my understanding of E-basic, as I had the same idea. > Sadly neither CInt or CDbl used in that way change the error. I also > tried declaring erroraware and stopaccuracy as doubles, and tried > converting them into new variables that would be numbers. I'm not sure > I did that correctly however. > > Thanks for your help- i'll be really excited if we can solve this. > > On Mar 9, 3:17 pm, ben robinson wrote: > > try changing them to: > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > or CDbl(...) if CInt(...) isn't what you need. > > i think the problem might be that when you c.GetAttrib the value it pulls > > from the list is understood as a string, rather than some sort of number... > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > Hello, > > > > This is probably a very easy to solve problem, but it's just about > > > beaten me down. I am trying to make a training script for my error- > > > awareness paradigm that can log inhibition and error-awareness > > > performance and then report these to the subject at the end of the > > > trial. The task is very simple and works fine, as does the performance > > > logging. I can't seem to get my summation object to work though- > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > variable from the logging vars in a double format but that does not > > > fix it. Can someone take a look at my code and see what's up? > > > > I start with the following setup inline and usertab code: > > > 'setup inline > > > set stopaccuracy = New Summation > > > set erroraware = New Summation > > > > 'usertab > > > dim killme as integer > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > dim ogperf as double > > > dim ogaware as double > > > > My inline that logs awareness and performance, and (is supposed to) > > > fill the summation object with these information for reporting to the > > > subject, looks like this: > > > > If c.GetAttrib("trialtype") = "lure" then > > >        if TextDisplay1.RT = 0 then > > >                c.SetAttrib "ogperf", 1 > > >        else > > >                c.SetAttrib "ogperf", 0 > > >        end if > > > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > >        if TextDisplay1.RESP = "2" then > > >                c.SetAttrib "ogaware", 0 > > >        else > > >                c.SetAttrib "ogaware", 1 > > >        end if > > > end if > > > > if c.GetAttrib("ogperf") = "0" then > > >        killme = 1 > > > else > > >        killme = 0 > > > end if > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Debug.Print stopaccuracy.Mean > > > Debug.Print erroraware.Mean > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > It's these lines that give me the type mismatch: > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Link to script:http://bit.ly/hKCcmo > > > > Best, > > > Micah > > > > -- > > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. From ucfmicah at gmail.com Wed Mar 9 16:06:27 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 08:06:27 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Er, not list objects but rather, variables in the list. They are of course empty ("?"'s) until the trial level inline resolves. On Mar 9, 5:05 pm, Micah wrote: > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > On Mar 9, 4:55 pm, Michiel Spape > wrote: > > > > > > > > > Hiya, > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > Then try change this into: > > stopaccuracy.AddObservation 0 > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > Cheers, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 15:19 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Ben, > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > somewhere in my understanding of E-basic, as I had the same idea. > > Sadly neither CInt or CDbl used in that way change the error. I also > > tried declaring erroraware and stopaccuracy as doubles, and tried > > converting them into new variables that would be numbers. I'm not sure > > I did that correctly however. > > > Thanks for your help- i'll be really excited if we can solve this. > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > try changing them to: > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > or CDbl(...) if CInt(...) isn't what you need. > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > from the list is understood as a string, rather than some sort of number... > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > Hello, > > > > > This is probably a very easy to solve problem, but it's just about > > > > beaten me down. I am trying to make a training script for my error- > > > > awareness paradigm that can log inhibition and error-awareness > > > > performance and then report these to the subject at the end of the > > > > trial. The task is very simple and works fine, as does the performance > > > > logging. I can't seem to get my summation object to work though- > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > variable from the logging vars in a double format but that does not > > > > fix it. Can someone take a look at my code and see what's up? > > > > > I start with the following setup inline and usertab code: > > > > 'setup inline > > > > set stopaccuracy = New Summation > > > > set erroraware = New Summation > > > > > 'usertab > > > > dim killme as integer > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > dim ogperf as double > > > > dim ogaware as double > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > fill the summation object with these information for reporting to the > > > > subject, looks like this: > > > > > If c.GetAttrib("trialtype") = "lure" then > > > >        if TextDisplay1.RT = 0 then > > > >                c.SetAttrib "ogperf", 1 > > > >        else > > > >                c.SetAttrib "ogperf", 0 > > > >        end if > > > > end if > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > >        if TextDisplay1.RESP = "2" then > > > >                c.SetAttrib "ogaware", 0 > > > >        else > > > >                c.SetAttrib "ogaware", 1 > > > >        end if > > > > end if > > > > > if c.GetAttrib("ogperf") = "0" then > > > >        killme = 1 > > > > else > > > >        killme = 0 > > > > end if > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Debug.Print stopaccuracy.Mean > > > > Debug.Print erroraware.Mean > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > It's these lines that give me the type mismatch: > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Link to script:http://bit.ly/hKCcmo > > > > > Best, > > > > Micah > > > > > --> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, sendemailtoe-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. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-pr... at googlegroups.com.To unsubscribe from this group, send emailtoe-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > > 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 9 16:39:01 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 9 Mar 2011 16:39:01 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hiya, Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. So, every trial, I tend to have an inline with the following: TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: TrialNum = 30 'just as an example, 30 trials done so far TrialsCorrect = 10 'just as an example, 10 trials correct Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" This returns "33% correct" (in the output). So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). Cheers, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 09 March 2011 16:06 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hi Michiel, Thanks for the useful reply! Ogperf and ogaware are actually list objects, and the related code is designed to log stops and successful error reports. So the first bit of code should be resolving to either a '1' or a '0' for either accurate/inaccurate stop or correct error report/missed error report. That being said I see your point with the need to simplify and had wondered if I could get by without the summation object. My worry is that, sense the accuracy data is not generated directly by the list or procedure, I need this summation object to collect data from the ogperf ogaware inline. The last bit ( c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent")) is supposed to then format the summation object for placement in the end of block report ("Congratulations, you successfully inhibited on [stopaccuracy] of trials and reported your errors [erroraware] of the time"). Will try to wrap my head around how to do this without the summation- appreciate your help! On Mar 9, 4:55 pm, Michiel Spape wrote: > Hiya, > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > Then try change this into: > stopaccuracy.AddObservation 0 > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > Cheers, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 15:19 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Ben, > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > somewhere in my understanding of E-basic, as I had the same idea. > Sadly neither CInt or CDbl used in that way change the error. I also > tried declaring erroraware and stopaccuracy as doubles, and tried > converting them into new variables that would be numbers. I'm not sure > I did that correctly however. > > Thanks for your help- i'll be really excited if we can solve this. > > On Mar 9, 3:17 pm, ben robinson wrote: > > try changing them to: > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > or CDbl(...) if CInt(...) isn't what you need. > > i think the problem might be that when you c.GetAttrib the value it pulls > > from the list is understood as a string, rather than some sort of number... > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > Hello, > > > > This is probably a very easy to solve problem, but it's just about > > > beaten me down. I am trying to make a training script for my error- > > > awareness paradigm that can log inhibition and error-awareness > > > performance and then report these to the subject at the end of the > > > trial. The task is very simple and works fine, as does the performance > > > logging. I can't seem to get my summation object to work though- > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > variable from the logging vars in a double format but that does not > > > fix it. Can someone take a look at my code and see what's up? > > > > I start with the following setup inline and usertab code: > > > 'setup inline > > > set stopaccuracy = New Summation > > > set erroraware = New Summation > > > > 'usertab > > > dim killme as integer > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > dim ogperf as double > > > dim ogaware as double > > > > My inline that logs awareness and performance, and (is supposed to) > > > fill the summation object with these information for reporting to the > > > subject, looks like this: > > > > If c.GetAttrib("trialtype") = "lure" then > > >        if TextDisplay1.RT = 0 then > > >                c.SetAttrib "ogperf", 1 > > >        else > > >                c.SetAttrib "ogperf", 0 > > >        end if > > > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > >        if TextDisplay1.RESP = "2" then > > >                c.SetAttrib "ogaware", 0 > > >        else > > >                c.SetAttrib "ogaware", 1 > > >        end if > > > end if > > > > if c.GetAttrib("ogperf") = "0" then > > >        killme = 1 > > > else > > >        killme = 0 > > > end if > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Debug.Print stopaccuracy.Mean > > > Debug.Print erroraware.Mean > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > It's these lines that give me the type mismatch: > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Link to script:http://bit.ly/hKCcmo > > > > Best, > > > Micah > > > > -- > > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From alex.genevsky at gmail.com Wed Mar 9 17:24:37 2011 From: alex.genevsky at gmail.com (Alex G) Date: Wed, 9 Mar 2011 09:24:37 -0800 Subject: E-prime help In-Reply-To: <4B0AA69A.3050804@ucl.ac.uk> Message-ID: Hello everyone, Although I see that this thread has been dormant for a while, I just worked through a similar problem and wanted to leave some documentation of what I identified as the problem and what worked as a solution. Problem: BMP images cause an error during runtime in EP1. These images were indeed processed in osx on a Mac and transferred into Windows on a amachine running Parallels. Solution: I tried many permutations of save specifications in photoshop (on Mac) and found this to work. Save As BMP, 32 bit, UNCHECK Flip Row Order. All the images I have reprocessed this way are working without error. Hope that helps someone. - Alex -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jens.bernhardsson at gmail.com Wed Mar 9 18:32:49 2011 From: jens.bernhardsson at gmail.com (jens) Date: Wed, 9 Mar 2011 10:32:49 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: Thank you for taking your time and answering this. Unfortunately I’m not able to get this to work properly. By adding the code after every slide instead of just using the menus to log and jump, I’m now getting all ACC = 0. “I got to suspect that the problem lies with your hittest code” The thing is when I'm not using any code at all and just Space to respond, I’m still getting the same results. It’s weird that the default mode of accuracy, or response, logging is that it’s remembered from trial to trial when using the end action jump element. What I want it to do is just to log the response given to a specific slide, end that trial and then start a new trial without remembering previous responses. It is such a stupid thing that makes me suspect that I have missed something really basic, or is it supposed to behave in this matter? Do you think that there might be an easier way than what you are describing liwenna? Something like acc or resp reset? -- 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. From liwenna at gmail.com Wed Mar 9 21:45:48 2011 From: liwenna at gmail.com (liwenna) Date: Wed, 9 Mar 2011 13:45:48 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: "when using the end action jump element." So glad you added that sentence! Indeed, you shouldn't use the end action jump element :) What it does is make the program jump the moment the response is made, thus bypassing the inline with the hittest. Therefore the accuracy remains '0'. Set the end actions back to terminate and add a 'goto labelname' line to your hittest codes as described in my second post. I think that might well solve your probs. On Mar 9, 7:32 pm, jens wrote: > Thank you for taking your time and answering this. Unfortunately I’m > not able to get this to work properly. By adding the code after every > slide instead of just using the menus to log and jump, I’m now getting > all ACC = 0. > > “I got to suspect that the problem lies with your hittest code” > The thing is when I'm not using any code at all and just Space to > respond, I’m still getting the same results. It’s weird that the > default mode of accuracy, or response, logging is that it’s remembered > from trial to trial when using the end action jump element. > > What I want it to do is just to log the response given to a specific > slide, end that trial and then start a new trial without remembering > previous responses. It is such a stupid thing that makes me suspect > that I have missed something really basic, or is it supposed to behave > in this matter? > > Do you think that there might be an easier way than what you are > describing liwenna? Something like acc or resp reset? -- 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. From liwenna at gmail.com Thu Mar 10 11:04:43 2011 From: liwenna at gmail.com (liwenna) Date: Thu, 10 Mar 2011 03:04:43 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: hmmz... with the code you describe pretty much any response will be logged as 1, unless the response is identical to the one specified under 'correctresp' so I'd tend to think that there then is something wrong with he correct responses you specified there. What is the true response slide?? I do think it's puzzling that the whole thing doesn't respond in the way you would expect but if you got your program working than that's great news :) On Mar 10, 11:15 am, jens wrote: > The thing is that it doesn’t seem to matter if I use E-primes own jump > element or if that is set to terminate and I do the jump with an > inline. I get the same results; that response is logged on the slides > following the “true” response –slide. > Also, and this is weird, in your code I need to shift the > identification of the Stimulis.ACC like this > >  If strHit = c.GetAttrib("Correctresp") Then >                         Stimulus.ACC = 0 >                         Else >                          Stimulus.ACC = 1 >                         End If > > to logg the response as 1. Which makes me think that if a response is > made, then it’s wrong and logged as 1? Also, the problem still > remains. > > Thank you so much for trying to solve this but please do not put any > more effort into it as I’m using the RT from the first slide and that > works as it should, and also ‘true’ accuracy from the hit test > performed after a response. This is only something that puzzled me, > and it’s not crucial for this experiment. > > On 9 mar, 22:45, liwenna wrote: > > > "when using the end action jump element." > > > So glad you added that sentence! > > > Indeed, you shouldn't use the end action jump element :) What it does > > is make the program jump the moment the response is made, thus > > bypassing the inline with the hittest. Therefore the accuracy remains > > '0'. > > Set the end actions back to terminate and add a 'goto labelname' line > > to your  hittest codes as described in my second post. I think that > > might well solve your probs. > > > On Mar 9, 7:32 pm, jens wrote: > > > > Thank you for taking your time and answering this. Unfortunately I’m > > > not able to get this to work properly. By adding the code after every > > > slide instead of just using the menus to log and jump, I’m now getting > > > all ACC = 0. > > > > “I got to suspect that the problem lies with your hittest code” > > > The thing is when I'm not using any code at all and just Space to > > > respond, I’m still getting the same results. It’s weird that the > > > default mode of accuracy, or response, logging is that it’s remembered > > > from trial to trial when using the end action jump element. > > > > What I want it to do is just to log the response given to a specific > > > slide, end that trial and then start a new trial without remembering > > > previous responses. It is such a stupid thing that makes me suspect > > > that I have missed something really basic, or is it supposed to behave > > > in this matter? > > > > Do you think that there might be an easier way than what you are > > > describing liwenna? Something like acc or resp reset? -- 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. From jens.bernhardsson at gmail.com Thu Mar 10 10:15:44 2011 From: jens.bernhardsson at gmail.com (jens) Date: Thu, 10 Mar 2011 02:15:44 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: <9e575d8a-e21c-43e0-a8ff-2147dd4b373f@dn9g2000vbb.googlegroups.com> Message-ID: The thing is that it doesn’t seem to matter if I use E-primes own jump element or if that is set to terminate and I do the jump with an inline. I get the same results; that response is logged on the slides following the “true” response –slide. Also, and this is weird, in your code I need to shift the identification of the Stimulis.ACC like this If strHit = c.GetAttrib("Correctresp") Then Stimulus.ACC = 0 Else Stimulus.ACC = 1 End If to logg the response as 1. Which makes me think that if a response is made, then it’s wrong and logged as 1? Also, the problem still remains. Thank you so much for trying to solve this but please do not put any more effort into it as I’m using the RT from the first slide and that works as it should, and also ‘true’ accuracy from the hit test performed after a response. This is only something that puzzled me, and it’s not crucial for this experiment. On 9 mar, 22:45, liwenna wrote: > "when using the end action jump element." > > So glad you added that sentence! > > Indeed, you shouldn't use the end action jump element :) What it does > is make the program jump the moment the response is made, thus > bypassing the inline with the hittest. Therefore the accuracy remains > '0'. > Set the end actions back to terminate and add a 'goto labelname' line > to your  hittest codes as described in my second post. I think that > might well solve your probs. > > On Mar 9, 7:32 pm, jens wrote: > > > Thank you for taking your time and answering this. Unfortunately I’m > > not able to get this to work properly. By adding the code after every > > slide instead of just using the menus to log and jump, I’m now getting > > all ACC = 0. > > > “I got to suspect that the problem lies with your hittest code” > > The thing is when I'm not using any code at all and just Space to > > respond, I’m still getting the same results. It’s weird that the > > default mode of accuracy, or response, logging is that it’s remembered > > from trial to trial when using the end action jump element. > > > What I want it to do is just to log the response given to a specific > > slide, end that trial and then start a new trial without remembering > > previous responses. It is such a stupid thing that makes me suspect > > that I have missed something really basic, or is it supposed to behave > > in this matter? > > > Do you think that there might be an easier way than what you are > > describing liwenna? Something like acc or resp reset? -- 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. From ucfmicah at gmail.com Thu Mar 10 11:43:14 2011 From: ucfmicah at gmail.com (Micah) Date: Thu, 10 Mar 2011 03:43:14 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA365@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hey Michiel, Awesome reply. My only question is how this can incorporate the specifics of my experiment where I have two 'accuracy' measures that are not actually incorporated in the Stimulus.ACC object. Both inhibition performance and error-awareness in this case are calculated by the post-trial in-line, and so I'm not sure I understand how TextDisplay1.ACC would gather any information on them. I could set it collect inhibition accuracy easily enough, but error-awareness needs the scripting to determine when there was a failed stop (there can only be awareness for errors, so there's nothing to report on successful stops). Anyway, I will poke around with your idea and see what happens. Best, Micah On Mar 9, 5:39 pm, Michiel Spape wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > On Mar 9, 4:55 pm, Michiel Spape > wrote: > > Hiya, > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > Then try change this into: > > stopaccuracy.AddObservation 0 > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > Cheers, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 15:19 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Ben, > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > somewhere in my understanding of E-basic, as I had the same idea. > > Sadly neither CInt or CDbl used in that way change the error. I also > > tried declaring erroraware and stopaccuracy as doubles, and tried > > converting them into new variables that would be numbers. I'm not sure > > I did that correctly however. > > > Thanks for your help- i'll be really excited if we can solve this. > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > try changing them to: > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > or CDbl(...) if CInt(...) isn't what you need. > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > from the list is understood as a string, rather than some sort of number... > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > Hello, > > > > > This is probably a very easy to solve problem, but it's just about > > > > beaten me down. I am trying to make a training script for my error- > > > > awareness paradigm that can log inhibition and error-awareness > > > > performance and then report these to the subject at the end of the > > > > trial. The task is very simple and works fine, as does the performance > > > > logging. I can't seem to get my summation object to work though- > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > variable from the logging vars in a double format but that does not > > > > fix it. Can someone take a look at my code and see what's up? > > > > > I start with the following setup inline and usertab code: > > > > 'setup inline > > > > set stopaccuracy = New Summation > > > > set erroraware = New Summation > > > > > 'usertab > > > > dim killme as integer > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > dim ogperf as double > > > > dim ogaware as double > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > fill the summation object with these information for reporting to the > > > > subject, looks like this: > > > > > If c.GetAttrib("trialtype") = "lure" then > > > >        if TextDisplay1.RT = 0 then > > > >                c.SetAttrib "ogperf", 1 > > > >        else > > > >                c.SetAttrib "ogperf", 0 > > > >        end if > > > > end if > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > >        if TextDisplay1.RESP = "2" then > > > >                c.SetAttrib "ogaware", 0 > > > >        else > > > >                c.SetAttrib "ogaware", 1 > > > >        end if > > > > end if > > > > > if c.GetAttrib("ogperf") = "0" then > > > >        killme = 1 > > > > else > > > >        killme = 0 > > > > end if > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Debug.Print stopaccuracy.Mean > > > > Debug.Print erroraware.Mean > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > It's these lines that give me the type mismatch: > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Link to script:http://bit.ly/hKCcmo > > > > > Best, > > > > Micah > > > > > --> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, sendemailtoe-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. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-pr... at googlegroups.com.To unsubscribe from this group, send emailtoe-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > > 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 > > ... > > read more » -- 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. From Michiel.Spape at nottingham.ac.uk Thu Mar 10 12:08:41 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 12:08:41 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hiya, Sorry, that is indeed just bad reading on my part :) It remains a sometimes worthy suggestion for other people here though, as I've often seen "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC looks very nice and clean. For a truly suitable answer, I should really have a look at your script and see what exactly you mean, but alas, no time! Cheers, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 10 March 2011 11:43 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hey Michiel, Awesome reply. My only question is how this can incorporate the specifics of my experiment where I have two 'accuracy' measures that are not actually incorporated in the Stimulus.ACC object. Both inhibition performance and error-awareness in this case are calculated by the post-trial in-line, and so I'm not sure I understand how TextDisplay1.ACC would gather any information on them. I could set it collect inhibition accuracy easily enough, but error-awareness needs the scripting to determine when there was a failed stop (there can only be awareness for errors, so there's nothing to report on successful stops). Anyway, I will poke around with your idea and see what happens. Best, Micah On Mar 9, 5:39 pm, Michiel Spape wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > On Mar 9, 4:55 pm, Michiel Spape > wrote: > > Hiya, > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > Then try change this into: > > stopaccuracy.AddObservation 0 > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > Cheers, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 15:19 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Ben, > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > somewhere in my understanding of E-basic, as I had the same idea. > > Sadly neither CInt or CDbl used in that way change the error. I also > > tried declaring erroraware and stopaccuracy as doubles, and tried > > converting them into new variables that would be numbers. I'm not sure > > I did that correctly however. > > > Thanks for your help- i'll be really excited if we can solve this. > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > try changing them to: > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > or CDbl(...) if CInt(...) isn't what you need. > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > from the list is understood as a string, rather than some sort of number... > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > Hello, > > > > > This is probably a very easy to solve problem, but it's just about > > > > beaten me down. I am trying to make a training script for my error- > > > > awareness paradigm that can log inhibition and error-awareness > > > > performance and then report these to the subject at the end of the > > > > trial. The task is very simple and works fine, as does the performance > > > > logging. I can't seem to get my summation object to work though- > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > variable from the logging vars in a double format but that does not > > > > fix it. Can someone take a look at my code and see what's up? > > > > > I start with the following setup inline and usertab code: > > > > 'setup inline > > > > set stopaccuracy = New Summation > > > > set erroraware = New Summation > > > > > 'usertab > > > > dim killme as integer > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > dim ogperf as double > > > > dim ogaware as double > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > fill the summation object with these information for reporting to the > > > > subject, looks like this: > > > > > If c.GetAttrib("trialtype") = "lure" then > > > >        if TextDisplay1.RT = 0 then > > > >                c.SetAttrib "ogperf", 1 > > > >        else > > > >                c.SetAttrib "ogperf", 0 > > > >        end if > > > > end if > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > >        if TextDisplay1.RESP = "2" then > > > >                c.SetAttrib "ogaware", 0 > > > >        else > > > >                c.SetAttrib "ogaware", 1 > > > >        end if > > > > end if > > > > > if c.GetAttrib("ogperf") = "0" then > > > >        killme = 1 > > > > else > > > >        killme = 0 > > > > end if > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Debug.Print stopaccuracy.Mean > > > > Debug.Print erroraware.Mean > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > It's these lines that give me the type mismatch: > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Link to script:http://bit.ly/hKCcmo > > > > > Best, > > > > Micah > > > > > --> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, sendemailtoe-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. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-pr... at googlegroups.com.To unsubscribe from this group, send emailtoe-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > > 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 > > ... > > read more » -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From jens.bernhardsson at gmail.com Thu Mar 10 12:24:38 2011 From: jens.bernhardsson at gmail.com (jens) Date: Thu, 10 Mar 2011 04:24:38 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: "What is the true response slide??" A bad name for trying to name the slide where the actual response is made. "...so I'd tend to think that there then is something wrong with he correct responses you specified there." Probably. I respond by left mouse button, and the 'correctresp' in a list is set to 1. Also, the Allowable response is set to 1. So i don't know what's wrong there Best Jens On 10 mar, 12:04, liwenna wrote: > hmmz... with the code you describe pretty much any response will be > logged as 1, unless the response is identical to the one specified > under 'correctresp' so I'd tend to think that there then is something > wrong with he correct responses you specified there. > > What is the true response slide?? > > I do think it's puzzling that the whole thing doesn't respond in the > way you would expect but if you got your program working than that's > great news :) > > On Mar 10, 11:15 am, jens wrote: > > > The thing is that it doesn’t seem to matter if I use E-primes own jump > > element or if that is set to terminate and I do the jump with an > > inline. I get the same results; that response is logged on the slides > > following the “true” response –slide. > > Also, and this is weird, in your code I need to shift the > > identification of the Stimulis.ACC like this > > >  If strHit = c.GetAttrib("Correctresp") Then > >                         Stimulus.ACC = 0 > >                         Else > >                          Stimulus.ACC = 1 > >                         End If > > > to logg the response as 1. Which makes me think that if a response is > > made, then it’s wrong and logged as 1? Also, the problem still > > remains. > > > Thank you so much for trying to solve this but please do not put any > > more effort into it as I’m using the RT from the first slide and that > > works as it should, and also ‘true’ accuracy from the hit test > > performed after a response. This is only something that puzzled me, > > and it’s not crucial for this experiment. > > > On 9 mar, 22:45, liwenna wrote: > > > > "when using the end action jump element." > > > > So glad you added that sentence! > > > > Indeed, you shouldn't use the end action jump element :) What it does > > > is make the program jump the moment the response is made, thus > > > bypassing the inline with the hittest. Therefore the accuracy remains > > > '0'. > > > Set the end actions back to terminate and add a 'goto labelname' line > > > to your  hittest codes as described in my second post. I think that > > > might well solve your probs. > > > > On Mar 9, 7:32 pm, jens wrote: > > > > > Thank you for taking your time and answering this. Unfortunately I’m > > > > not able to get this to work properly. By adding the code after every > > > > slide instead of just using the menus to log and jump, I’m now getting > > > > all ACC = 0. > > > > > “I got to suspect that the problem lies with your hittest code” > > > > The thing is when I'm not using any code at all and just Space to > > > > respond, I’m still getting the same results. It’s weird that the > > > > default mode of accuracy, or response, logging is that it’s remembered > > > > from trial to trial when using the end action jump element. > > > > > What I want it to do is just to log the response given to a specific > > > > slide, end that trial and then start a new trial without remembering > > > > previous responses. It is such a stupid thing that makes me suspect > > > > that I have missed something really basic, or is it supposed to behave > > > > in this matter? > > > > > Do you think that there might be an easier way than what you are > > > > describing liwenna? Something like acc or resp reset? -- 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. From Michiel.Spape at nottingham.ac.uk Thu Mar 10 13:38:25 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 13:38:25 +0000 Subject: Inaccurate logging of accuracy In-Reply-To: <29b27e1a-af60-4d44-ae04-c32341acd19c@k10g2000prh.googlegroups.com> Message-ID: Sorry for barging in... Just one thing I recently found out: the allowable and correct response can be set for each response device different. If you are like me and have both keyboard AND mouse as response-devices, make sure you have the correct response set for each one separately. Don't know if something like this is happening - probably not, so ignore me - but it drove me insane the other day (it's very easy to overlook) and I hope to spare the rest such. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of jens Sent: 10 March 2011 12:25 To: E-Prime Subject: Re: Inaccurate logging of accuracy "What is the true response slide??" A bad name for trying to name the slide where the actual response is made. "...so I'd tend to think that there then is something wrong with he correct responses you specified there." Probably. I respond by left mouse button, and the 'correctresp' in a list is set to 1. Also, the Allowable response is set to 1. So i don't know what's wrong there Best Jens On 10 mar, 12:04, liwenna wrote: > hmmz... with the code you describe pretty much any response will be > logged as 1, unless the response is identical to the one specified > under 'correctresp' so I'd tend to think that there then is something > wrong with he correct responses you specified there. > > What is the true response slide?? > > I do think it's puzzling that the whole thing doesn't respond in the > way you would expect but if you got your program working than that's > great news :) > > On Mar 10, 11:15 am, jens wrote: > > > The thing is that it doesn't seem to matter if I use E-primes own jump > > element or if that is set to terminate and I do the jump with an > > inline. I get the same results; that response is logged on the slides > > following the "true" response -slide. > > Also, and this is weird, in your code I need to shift the > > identification of the Stimulis.ACC like this > > >  If strHit = c.GetAttrib("Correctresp") Then > >                         Stimulus.ACC = 0 > >                         Else > >                          Stimulus.ACC = 1 > >                         End If > > > to logg the response as 1. Which makes me think that if a response is > > made, then it's wrong and logged as 1? Also, the problem still > > remains. > > > Thank you so much for trying to solve this but please do not put any > > more effort into it as I'm using the RT from the first slide and that > > works as it should, and also 'true' accuracy from the hit test > > performed after a response. This is only something that puzzled me, > > and it's not crucial for this experiment. > > > On 9 mar, 22:45, liwenna wrote: > > > > "when using the end action jump element." > > > > So glad you added that sentence! > > > > Indeed, you shouldn't use the end action jump element :) What it does > > > is make the program jump the moment the response is made, thus > > > bypassing the inline with the hittest. Therefore the accuracy remains > > > '0'. > > > Set the end actions back to terminate and add a 'goto labelname' line > > > to your  hittest codes as described in my second post. I think that > > > might well solve your probs. > > > > On Mar 9, 7:32 pm, jens wrote: > > > > > Thank you for taking your time and answering this. Unfortunately I'm > > > > not able to get this to work properly. By adding the code after every > > > > slide instead of just using the menus to log and jump, I'm now getting > > > > all ACC = 0. > > > > > "I got to suspect that the problem lies with your hittest code" > > > > The thing is when I'm not using any code at all and just Space to > > > > respond, I'm still getting the same results. It's weird that the > > > > default mode of accuracy, or response, logging is that it's remembered > > > > from trial to trial when using the end action jump element. > > > > > What I want it to do is just to log the response given to a specific > > > > slide, end that trial and then start a new trial without remembering > > > > previous responses. It is such a stupid thing that makes me suspect > > > > that I have missed something really basic, or is it supposed to behave > > > > in this matter? > > > > > Do you think that there might be an easier way than what you are > > > > describing liwenna? Something like acc or resp reset? -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From ucfmicah at gmail.com Thu Mar 10 14:38:42 2011 From: ucfmicah at gmail.com (Micah) Date: Thu, 10 Mar 2011 06:38:42 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA3D2@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hi, I know everyone is very busy. Maybe I can get some help just by narrowing the issue a bit. I'm trying to implement the counter technique and have got the TrialNum working correctly. Now, I had the thought that I could create another variable that adds one each time there is an 'aware trial' (i.e., where the attributed awaretrial=1 and the variable killme=1 (indicating an aware trial where the participant failed to stop. Globally, I declared both Trialnum and Awaretrials. I then used the following inline to try and sum up the total aware trials. My thinking is that if this works, I can then do the same thing for a variable called 'correctaware' and easily calculate the mean % in a debug as you suggested. Here is the inline (new parts in bold) If c.GetAttrib("trialtype") = "lure" then 'this part determines the inhibition accuracy, 1=successful 'stop' if TextDisplay1.RT = 0 then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if end if if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part determines the awaresness, 1=aware of an error, killme=1 means participant failed to stop on an awaretrial (and hence should report) if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if c.GetAttrib("ogperf") = "0" then 'this part is needed to determine when a participant has failed to stop killme = 1 else killme = 0 end if if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new parts. I expect it to add one to 'awaretrials' each trial if criterion are satisfied awaretrials=awaretrials+1 end if trialnum=trialnum+1 'this part adds total trials Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit out a counter. the trialnum works correctly, but awaretrial just spits out a '0' over and over Debug.print trialnum If someone can help me get the awareness counter working, I think I'll be home free. On Mar 10, 1:08 pm, Michiel Spape wrote: > Hiya, > Sorry, that is indeed just bad reading on my part :) It remains a sometimes worthy suggestion for other people here though, as I've often seen "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC looks very nice and clean. For a truly suitable answer, I should really have a look at your script and see what exactly you mean, but alas, no time! > > Cheers, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 10 March 2011 11:43 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hey Michiel, > > Awesome reply. My only question is how this can incorporate the > specifics of my experiment where I have two 'accuracy' measures that > are not actually incorporated in the Stimulus.ACC object. Both > inhibition performance and error-awareness in this case are calculated > by the post-trial in-line, and so I'm not sure I understand how > TextDisplay1.ACC would gather any information on them. I could set it > collect inhibition accuracy easily enough, but error-awareness needs > the scripting to determine when there was a failed stop (there can > only be awareness for errors, so there's nothing to report on > successful stops). Anyway, I will poke around with your idea and see > what happens. > > Best, > Micah > > On Mar 9, 5:39 pm, Michiel Spape > wrote: > > Hiya, > > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > So, every trial, I tend to have an inline with the following: > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > > TrialNum = 30 'just as an example, 30 trials done so far > > TrialsCorrect = 10 'just as an example, 10 trials correct > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > This returns "33% correct" (in the output). > > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > > Cheers, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 16:06 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Michiel, > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > objects, and the related code is designed to log stops and successful > > error reports. So the first bit of code should be resolving to either > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > report/missed error report. That being said I see your point with the > > need to simplify and had wondered if I could get by without the > > summation object. My worry is that, sense the accuracy data is not > > generated directly by the list or procedure, I need this summation > > object to collect data from the ogperf ogaware inline. The last bit > > ( c.SetAttrib "errorawareness", > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > the summation object for placement in the end of block report > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > trials and reported your errors [erroraware] of the time"). > > > Will try to wrap my head around how to do this without the summation- > > appreciate your help! > > > On Mar 9, 4:55 pm, Michiel Spape > > wrote: > > > Hiya, > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > Then try change this into: > > > stopaccuracy.AddObservation 0 > > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > > Cheers, > > > Mich > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > > Sent: 09 March 2011 15:19 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > > Hi Ben, > > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > > somewhere in my understanding of E-basic, as I had the same idea. > > > Sadly neither CInt or CDbl used in that way change the error. I also > > > tried declaring erroraware and stopaccuracy as doubles, and tried > > > converting them into new variables that would be numbers. I'm not sure > > > I did that correctly however. > > > > Thanks for your help- i'll be really excited if we can solve this. > > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > > try changing them to: > > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > > or CDbl(...) if CInt(...) isn't what you need. > > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > > from the list is understood as a string, rather than some sort of number... > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > > Hello, > > > > > > This is probably a very easy to solve problem, but it's just about > > > > > beaten me down. I am trying to make a training script for my error- > > > > > awareness paradigm that can log inhibition and error-awareness > > > > > performance and then report these to the subject at the end of the > > > > > trial. The task is very simple and works fine, as does the performance > > > > > logging. I can't seem to get my summation object to work though- > > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > > variable from the logging vars in a double format but that does not > > > > > fix it. Can someone take a look at my code and see what's up? > > > > > > I start with the following setup inline and usertab code: > > > > > 'setup inline > > > > > set stopaccuracy = New Summation > > > > > set erroraware = New Summation > > > > > > 'usertab > > > > > dim killme as integer > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > dim ogperf as double > > > > > dim ogaware as double > > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > > fill the summation object with these information for reporting to the > > > > > subject, looks like this: > > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > >        if TextDisplay1.RT = 0 then > > > > >                c.SetAttrib "ogperf", 1 > > > > >        else > > > > >                c.SetAttrib "ogperf", 0 > > > > >        end if > > > > > end if > > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > >        if TextDisplay1.RESP = "2" then > > > > >                c.SetAttrib "ogaware", 0 > > > > >        else > > > > >                c.SetAttrib "ogaware", 1 > > > > >        end if > > > > > end if > > > > > > if c.GetAttrib("ogperf") = "0" then > > > > >        killme = 1 > > > > > else > > > > >        killme = 0 > > > > > end if > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > Debug.Print stopaccuracy.Mean > > > > > Debug.Print erroraware.Mean > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", > > ... > > read more » -- 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. From Michiel.Spape at nottingham.ac.uk Thu Mar 10 14:56:45 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 14:56:45 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <472d0c7c-6b18-472b-84f7-cef061919336@u6g2000vbh.googlegroups.com> Message-ID: Hiya, It's a no-HTML mailinglist, sadly - some code formatting would be nice. I copy-pasted it into eprime and fiddled around with it: ------------ trialnum=trialnum+1 'this part adds total trials (moved this to beginning) If c.GetAttrib("trialtype") = "lure" AND TextDisplay1.RESP = "" then'I prefer 'no response' to '0 RT', as the other suggests there's a very fast RT! c.SetAttrib "ogperf", 1 killme = 0 else c.SetAttrib "ogperf", 0 killme = 1 end if 'here's a debugging thingy for you: Debug.Print "I'm currently getting Awaretrial= " & c.GetAttrib("awaretrial") & "killme = " & cstr(killme) 'However, I notice killme is undeclared up to this point (followed later, now earlier) if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part determines the awaresness, 1=aware of an error, killme=1 means participant failed to stop on an awaretrial (and hence should report) awaretrials=awaretrials+1 'as far as i saw, this came a bit later, saves a few lines if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if 'i did the killme above (since it is based on ogperf, it might as well be done in the same loop, no? Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit out a counter. the trialnum works correctly, but awaretrial just spits out a '0' over and over Debug.print trialnum ---------------- Maybe it works now? If it doesn't, the debug.print which immediately precedes the IF statement which leads to awaretrials counter being updated should spit out exactly why not. But I think it's the killme, which was defined AFTER polling whether it's 1 or 0 (hence, presumably always 0). I've also cleaned a bit. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 10 March 2011 14:39 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hi, I know everyone is very busy. Maybe I can get some help just by narrowing the issue a bit. I'm trying to implement the counter technique and have got the TrialNum working correctly. Now, I had the thought that I could create another variable that adds one each time there is an 'aware trial' (i.e., where the attributed awaretrial=1 and the variable killme=1 (indicating an aware trial where the participant failed to stop. Globally, I declared both Trialnum and Awaretrials. I then used the following inline to try and sum up the total aware trials. My thinking is that if this works, I can then do the same thing for a variable called 'correctaware' and easily calculate the mean % in a debug as you suggested. Here is the inline (new parts in bold) If c.GetAttrib("trialtype") = "lure" then 'this part determines the inhibition accuracy, 1=successful 'stop' if TextDisplay1.RT = 0 then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if end if if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part determines the awaresness, 1=aware of an error, killme=1 means participant failed to stop on an awaretrial (and hence should report) if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if c.GetAttrib("ogperf") = "0" then 'this part is needed to determine when a participant has failed to stop killme = 1 else killme = 0 end if if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new parts. I expect it to add one to 'awaretrials' each trial if criterion are satisfied awaretrials=awaretrials+1 end if trialnum=trialnum+1 'this part adds total trials Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit out a counter. the trialnum works correctly, but awaretrial just spits out a '0' over and over Debug.print trialnum If someone can help me get the awareness counter working, I think I'll be home free. On Mar 10, 1:08 pm, Michiel Spape wrote: > Hiya, > Sorry, that is indeed just bad reading on my part :) It remains a sometimes worthy suggestion for other people here though, as I've often seen "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC looks very nice and clean. For a truly suitable answer, I should really have a look at your script and see what exactly you mean, but alas, no time! > > Cheers, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 10 March 2011 11:43 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hey Michiel, > > Awesome reply. My only question is how this can incorporate the > specifics of my experiment where I have two 'accuracy' measures that > are not actually incorporated in the Stimulus.ACC object. Both > inhibition performance and error-awareness in this case are calculated > by the post-trial in-line, and so I'm not sure I understand how > TextDisplay1.ACC would gather any information on them. I could set it > collect inhibition accuracy easily enough, but error-awareness needs > the scripting to determine when there was a failed stop (there can > only be awareness for errors, so there's nothing to report on > successful stops). Anyway, I will poke around with your idea and see > what happens. > > Best, > Micah > > On Mar 9, 5:39 pm, Michiel Spape > wrote: > > Hiya, > > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > So, every trial, I tend to have an inline with the following: > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > > TrialNum = 30 'just as an example, 30 trials done so far > > TrialsCorrect = 10 'just as an example, 10 trials correct > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > This returns "33% correct" (in the output). > > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > > Cheers, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 16:06 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Michiel, > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > objects, and the related code is designed to log stops and successful > > error reports. So the first bit of code should be resolving to either > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > report/missed error report. That being said I see your point with the > > need to simplify and had wondered if I could get by without the > > summation object. My worry is that, sense the accuracy data is not > > generated directly by the list or procedure, I need this summation > > object to collect data from the ogperf ogaware inline. The last bit > > ( c.SetAttrib "errorawareness", > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > the summation object for placement in the end of block report > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > trials and reported your errors [erroraware] of the time"). > > > Will try to wrap my head around how to do this without the summation- > > appreciate your help! > > > On Mar 9, 4:55 pm, Michiel Spape > > wrote: > > > Hiya, > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > Then try change this into: > > > stopaccuracy.AddObservation 0 > > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > > Cheers, > > > Mich > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > > Sent: 09 March 2011 15:19 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > > Hi Ben, > > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > > somewhere in my understanding of E-basic, as I had the same idea. > > > Sadly neither CInt or CDbl used in that way change the error. I also > > > tried declaring erroraware and stopaccuracy as doubles, and tried > > > converting them into new variables that would be numbers. I'm not sure > > > I did that correctly however. > > > > Thanks for your help- i'll be really excited if we can solve this. > > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > > try changing them to: > > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > > or CDbl(...) if CInt(...) isn't what you need. > > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > > from the list is understood as a string, rather than some sort of number... > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > > Hello, > > > > > > This is probably a very easy to solve problem, but it's just about > > > > > beaten me down. I am trying to make a training script for my error- > > > > > awareness paradigm that can log inhibition and error-awareness > > > > > performance and then report these to the subject at the end of the > > > > > trial. The task is very simple and works fine, as does the performance > > > > > logging. I can't seem to get my summation object to work though- > > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > > variable from the logging vars in a double format but that does not > > > > > fix it. Can someone take a look at my code and see what's up? > > > > > > I start with the following setup inline and usertab code: > > > > > 'setup inline > > > > > set stopaccuracy = New Summation > > > > > set erroraware = New Summation > > > > > > 'usertab > > > > > dim killme as integer > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > dim ogperf as double > > > > > dim ogaware as double > > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > > fill the summation object with these information for reporting to the > > > > > subject, looks like this: > > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > > if TextDisplay1.RT = 0 then > > > > > c.SetAttrib "ogperf", 1 > > > > > else > > > > > c.SetAttrib "ogperf", 0 > > > > > end if > > > > > end if > > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > > if TextDisplay1.RESP = "2" then > > > > > c.SetAttrib "ogaware", 0 > > > > > else > > > > > c.SetAttrib "ogaware", 1 > > > > > end if > > > > > end if > > > > > > if c.GetAttrib("ogperf") = "0" then > > > > > killme = 1 > > > > > else > > > > > killme = 0 > > > > > end if > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > Debug.Print stopaccuracy.Mean > > > > > Debug.Print erroraware.Mean > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", > > ... > > read more » -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From micah at cfin.dk Thu Mar 10 16:09:29 2011 From: micah at cfin.dk (Micah Allen) Date: Thu, 10 Mar 2011 17:09:29 +0100 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA3FF@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hi Michiel, I'm afraid that did not fix it. I can see from the debug that if on 'no awareness' trials Awaretrial resolves to " ". I think the problem might just be my syntax, as it seems to add nothing every time. Is there a particular way to use if-then statements to add incrementally to a variable? Best, Micah On Thu, Mar 10, 2011 at 3:56 PM, Michiel Spape < Michiel.Spape at nottingham.ac.uk> wrote: > Hiya, > It's a no-HTML mailinglist, sadly - some code formatting would be nice. I > copy-pasted it into eprime and fiddled around with it: > > ------------ > > trialnum=trialnum+1 'this part adds total trials (moved this to > beginning) > > If c.GetAttrib("trialtype") = "lure" AND TextDisplay1.RESP = "" then'I > prefer 'no response' to '0 RT', as the other suggests there's a very fast > RT! > c.SetAttrib "ogperf", 1 > killme = 0 > else > c.SetAttrib "ogperf", 0 > killme = 1 > end if > > 'here's a debugging thingy for you: > Debug.Print "I'm currently getting Awaretrial= " & > c.GetAttrib("awaretrial") & "killme = " & cstr(killme) > 'However, I notice killme is undeclared up to this point (followed later, > now earlier) > if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part > determines the awaresness, 1=aware of an error, killme=1 means participant > failed to stop on an awaretrial (and hence should report) > awaretrials=awaretrials+1 'as far as i saw, this came a bit later, > saves a few lines > if TextDisplay1.RESP = "2" then > c.SetAttrib "ogaware", 0 > else > c.SetAttrib "ogaware", 1 > end if > end if > > 'i did the killme above (since it is based on ogperf, it might as well be > done in the same loop, no? > > Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit > out a counter. the trialnum works correctly, but awaretrial just spits out a > '0' over and over > Debug.print trialnum > ---------------- > > Maybe it works now? If it doesn't, the debug.print which immediately > precedes the IF statement which leads to awaretrials counter being updated > should spit out exactly why not. But I think it's the killme, which was > defined AFTER polling whether it's 1 or 0 (hence, presumably always 0). I've > also cleaned a bit. > Best, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf > Of Micah > Sent: 10 March 2011 14:39 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > Hi, > > I know everyone is very busy. Maybe I can get some help just by > narrowing the issue a bit. I'm trying to implement the counter > technique and have got the TrialNum working correctly. Now, I had the > thought that I could create another variable that adds one each time > there is an 'aware trial' (i.e., where the attributed awaretrial=1 and > the variable killme=1 (indicating an aware trial where the participant > failed to stop. > > Globally, I declared both Trialnum and Awaretrials. I then used the > following inline to try and sum up the total aware trials. My thinking > is that if this works, I can then do the same thing for a variable > called 'correctaware' and easily calculate the mean % in a debug as > you suggested. Here is the inline (new parts in bold) > > If c.GetAttrib("trialtype") = "lure" then 'this part > determines the inhibition accuracy, 1=successful 'stop' > if TextDisplay1.RT = 0 then > c.SetAttrib "ogperf", 1 > else > c.SetAttrib "ogperf", 0 > end if > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this > part determines the awaresness, 1=aware of an error, killme=1 means > participant failed to stop on an awaretrial (and hence should report) > if TextDisplay1.RESP = "2" then > c.SetAttrib "ogaware", 0 > else > c.SetAttrib "ogaware", 1 > end if > end if > > if c.GetAttrib("ogperf") = "0" then 'this part is > needed to determine when a participant has failed to stop > killme = 1 > else > killme = 0 > end if > > if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new > parts. I expect it to add one to 'awaretrials' each trial if criterion > are satisfied > awaretrials=awaretrials+1 > end if > > trialnum=trialnum+1 'this part adds total trials > > Debug.print awaretrials & " = awaretrialtotal" ' these parts should > spit out a counter. the trialnum works correctly, but awaretrial just > spits out a '0' over and over > > Debug.print trialnum > > > If someone can help me get the awareness counter working, I think I'll > be home free. > > On Mar 10, 1:08 pm, Michiel Spape > wrote: > > Hiya, > > Sorry, that is indeed just bad reading on my part :) It remains a > sometimes worthy suggestion for other people here though, as I've often seen > "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC > looks very nice and clean. For a truly suitable answer, I should really have > a look at your script and see what exactly you mean, but alas, no time! > > > > Cheers, > > Mich > > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > > > > > > > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto: > e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 10 March 2011 11:43 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > > > Hey Michiel, > > > > Awesome reply. My only question is how this can incorporate the > > specifics of my experiment where I have two 'accuracy' measures that > > are not actually incorporated in the Stimulus.ACC object. Both > > inhibition performance and error-awareness in this case are calculated > > by the post-trial in-line, and so I'm not sure I understand how > > TextDisplay1.ACC would gather any information on them. I could set it > > collect inhibition accuracy easily enough, but error-awareness needs > > the scripting to determine when there was a failed stop (there can > > only be awareness for errors, so there's nothing to report on > > successful stops). Anyway, I will poke around with your idea and see > > what happens. > > > > Best, > > Micah > > > > On Mar 9, 5:39 pm, Michiel Spape > > wrote: > > > Hiya, > > > Well, let's see how far you'll get :) I thought I might add that I > generally have two global variables (i.e. declared in the User tab), one > being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > > So, every trial, I tend to have an inline with the following: > > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also > useful if you want to present a break > > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN > object. > > > > > Visual basic tends to be a bit tricky in terms of variables being > converted on the spot, whether you like it or not, but if you just want to > know the percentage, the following tends to work pretty well: > > > TrialNum = 30 'just as an example, 30 trials done so far > > > TrialsCorrect = 10 'just as an example, 10 trials correct > > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > > This returns "33% correct" (in the output). > > > > > So, if you would just dump that into a new attribute (don't add it to > the list, it confuses things sometimes): > > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > > > and have a slide, saying "You had [thismuch]% correct", you're > basically there (just tested it). Not to say you can't do the same with > summation objects, but the above, taking out my debug, takes only 3 lines of > code (excluding 2 lines of user script variable declarations). > > > Cheers, > > > Mich > > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto: > e-prime at googlegroups.com]On Behalf Of Micah > > > Sent: 09 March 2011 16:06 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > > > > Hi Michiel, > > > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > > objects, and the related code is designed to log stops and successful > > > error reports. So the first bit of code should be resolving to either > > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > > report/missed error report. That being said I see your point with the > > > need to simplify and had wondered if I could get by without the > > > summation object. My worry is that, sense the accuracy data is not > > > generated directly by the list or procedure, I need this summation > > > object to collect data from the ogperf ogaware inline. The last bit > > > ( c.SetAttrib "errorawareness", > > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > > the summation object for placement in the end of block report > > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > > trials and reported your errors [erroraware] of the time"). > > > > > Will try to wrap my head around how to do this without the summation- > > > appreciate your help! > > > > > On Mar 9, 4:55 pm, Michiel Spape > > > wrote: > > > > Hiya, > > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be > lazy and simply won't read long threads. I've never had any use for this > "summation object" deal, but your code is really quite confusing: > > > > > > > > dim stopaccuracy as Summation > > > > > > dim erroraware as Summation > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > > c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent") > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > What exactly are you doing here? Stopaccuracy is both a "summation" > and an "attribute in a list". Errorwareness is only semi-overlapping with > this attribute, although I see no reason why you would want this. Ogperf is > not even an attribute but a local variable. If you have declared it > somewhere, it probably looks into a list anyway, finds a question mark, > tries to put this into stopaccuracy. Thus, what you get is > StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > > > > If you want to find out what's going on with the mismatch (one of the > more simpler things to solve):>stopaccuracy.AddObservation > c.GetAttrib("ogperf") > > > > > > Then try change this into: > > > > stopaccuracy.AddObservation 0 > > > > if the latter works but the former doesn't, then > c.GetAttrib("ogperf") probably receives a string instead, or, in other > words, Ben would be right. See what ogperf is by doing "debug.print > c.GetAttrib("ogperf"). So, try beginning simple with working code, then add > - rather than the opposite. > > > > > > So, start with as clean and working code as possible. My suggestion > would be to start with getting rid of the summation stuff (after all, what > more is stopaccuracy.mean then merely numberofstopaccuratetrials / > numberoftrials?) and the c.getattrib/set stuff until you can get everything > working on one level. > > > > Cheers, > > > > Mich > > > > > > Michiel Spapé > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychologywww.cognitology.eu > > > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto: > e-prime at googlegroups.com]On Behalf Of Micah > > > > Sent: 09 March 2011 15:19 > > > > To: E-Prime > > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > > > > > Hi Ben, > > > > > > Sincere thanks for your suggestion. Helped me to feel like I'm > getting > > > > somewhere in my understanding of E-basic, as I had the same idea. > > > > Sadly neither CInt or CDbl used in that way change the error. I also > > > > tried declaring erroraware and stopaccuracy as doubles, and tried > > > > converting them into new variables that would be numbers. I'm not > sure > > > > I did that correctly however. > > > > > > Thanks for your help- i'll be really excited if we can solve this. > > > > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > > > try changing them to: > > > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > > > > or CDbl(...) if CInt(...) isn't what you need. > > > > > i think the problem might be that when you c.GetAttrib the value it > pulls > > > > > from the list is understood as a string, rather than some sort of > number... > > > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > > > Hello, > > > > > > > > This is probably a very easy to solve problem, but it's just > about > > > > > > beaten me down. I am trying to make a training script for my > error- > > > > > > awareness paradigm that can log inhibition and error-awareness > > > > > > performance and then report these to the subject at the end of > the > > > > > > trial. The task is very simple and works fine, as does the > performance > > > > > > logging. I can't seem to get my summation object to work though- > > > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > > > variable from the logging vars in a double format but that does > not > > > > > > fix it. Can someone take a look at my code and see what's up? > > > > > > > > I start with the following setup inline and usertab code: > > > > > > 'setup inline > > > > > > set stopaccuracy = New Summation > > > > > > set erroraware = New Summation > > > > > > > > 'usertab > > > > > > dim killme as integer > > > > > > dim stopaccuracy as Summation > > > > > > dim erroraware as Summation > > > > > > dim ogperf as double > > > > > > dim ogaware as double > > > > > > > > My inline that logs awareness and performance, and (is supposed > to) > > > > > > fill the summation object with these information for reporting to > the > > > > > > subject, looks like this: > > > > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > > > if TextDisplay1.RT = 0 then > > > > > > c.SetAttrib "ogperf", 1 > > > > > > else > > > > > > c.SetAttrib "ogperf", 0 > > > > > > end if > > > > > > end if > > > > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > > > if TextDisplay1.RESP = "2" then > > > > > > c.SetAttrib "ogaware", 0 > > > > > > else > > > > > > c.SetAttrib "ogaware", 1 > > > > > > end if > > > > > > end if > > > > > > > > if c.GetAttrib("ogperf") = "0" then > > > > > > killme = 1 > > > > > > else > > > > > > killme = 0 > > > > > > end if > > > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > > > Debug.Print stopaccuracy.Mean > > > > > > Debug.Print erroraware.Mean > > > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > > c.SetAttrib "errorawareness", > > > > ... > > > > read more » > > -- > 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 and any attachment are intended solely for the addressee and > may contain confidential information. If you have received this message in > error, please send it back to me, and immediately delete it. Please do not > use, copy or disclose the information contained in this message or in any > attachment. Any views or opinions expressed by the author of this email do > not necessarily reflect the views of the University of Nottingham. > > 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. > > -- Micah Allen PhD Student in Cognitive Neuroscience Interacting Minds Group Center for Functionally Integrative Neuroscience Aarhus University, Denmark Tel.: +45 89 49 99 33 http://www.interacting-minds.net http://au.academia.edu/MicahAllen -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From liwenna at gmail.com Thu Mar 10 16:13:35 2011 From: liwenna at gmail.com (liwenna) Date: Thu, 10 Mar 2011 08:13:35 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA3F2@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: you wrote " Probably. I respond by left mouse button, and the 'correctresp' in a list is set to 1. Also, the Allowable response is set to 1. So i don't know what's wrong there " Well.. the allowable response is simply all the keys that are actually allowed to 'count as responses' in this case (a mouse I got to assume, and do check Michiel's suggestion as it is a good one) the allowable response is set to 1 (left mouse button) and therefore a right mouse button click (2) will not be regarded to be a response. The weird thing is: why do you have your correct response set to 1? I'd just empty it for a starters and then have a good look at your hittest code... what does it DO exactly, could you paste a version of it here? The thing is: the whole point of the hit test (at least the one that I think you are using) is to define whether a response is correct or not based on the name of slideobject (i.e. image or textbox) that the subject has clicked on. Therefore... not the button used (1/2 for left/right button) defines the correct response (and you probably be better of nowhere defining cresp as such) but the location of the cursor when the button press was made. -> so also do not forget to actually give your text and/or imageobjects (the ones that people can click on) the correct names and then define the name of the correct response slideobject (the one that has to be clicked on) in an attribute called "correctresp" (or whatever attribute name your specific hit test code is using for the comparison). If you want this solved after all I propose that you past your code so that I (we) can have a look at it. Do must say that I'll be out of the country tomorrow to wednesday. best, liw On Mar 10, 2:38 pm, Michiel Spape wrote: > Sorry for barging in... > Just one thing I recently found out: the allowable and correct response can be set for each response device different. If you are like me and have both keyboard AND mouse as response-devices, make sure you have the correct response set for each one separately. > > Don't know if something like this is happening - probably not, so ignore me - but it drove me insane the other day (it's very easy to overlook) and I hope to spare the rest such. > Best, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of jens > Sent: 10 March 2011 12:25 > To: E-Prime > Subject: Re: Inaccurate logging of accuracy > > "What is the true response slide??" > > A bad name for trying to name the slide where the actual response is > made. > > "...so I'd tend to think that there then is something >       wrong with he correct responses you specified there." > > Probably. I respond by left mouse button, and the 'correctresp' in a > list is set to 1. Also, the Allowable response is set to 1. So i don't > know what's wrong there > > Best > Jens > > On 10 mar, 12:04, liwenna wrote: > > hmmz... with the code you describe pretty much any response will be > > logged as 1, unless the response is identical to the one specified > > under 'correctresp' so I'd tend to think that there then is something > > wrong with he correct responses you specified there. > > > What is the true response slide?? > > > I do think it's puzzling that the whole thing doesn't respond in the > > way you would expect but if you got your program working than that's > > great news :) > > > On Mar 10, 11:15 am, jens wrote: > > > > The thing is that it doesn't seem to matter if I use E-primes own jump > > > element or if that is set to terminate and I do the jump with an > > > inline. I get the same results; that response is logged on the slides > > > following the "true" response -slide. > > > Also, and this is weird, in your code I need to shift the > > > identification of the Stimulis.ACC like this > > > >  If strHit = c.GetAttrib("Correctresp") Then > > >                         Stimulus.ACC = 0 > > >                         Else > > >                          Stimulus.ACC = 1 > > >                         End If > > > > to logg the response as 1. Which makes me think that if a response is > > > made, then it's wrong and logged as 1? Also, the problem still > > > remains. > > > > Thank you so much for trying to solve this but please do not put any > > > more effort into it as I'm using the RT from the first slide and that > > > works as it should, and also 'true' accuracy from the hit test > > > performed after a response. This is only something that puzzled me, > > > and it's not crucial for this experiment. > > > > On 9 mar, 22:45, liwenna wrote: > > > > > "when using the end action jump element." > > > > > So glad you added that sentence! > > > > > Indeed, you shouldn't use the end action jump element :) What it does > > > > is make the program jump the moment the response is made, thus > > > > bypassing the inline with the hittest. Therefore the accuracy remains > > > > '0'. > > > > Set the end actions back to terminate and add a 'goto labelname' line > > > > to your  hittest codes as described in my second post. I think that > > > > might well solve your probs. > > > > > On Mar 9, 7:32 pm, jens wrote: > > > > > > Thank you for taking your time and answering this. Unfortunately I'm > > > > > not able to get this to work properly. By adding the code after every > > > > > slide instead of just using the menus to log and jump, I'm now getting > > > > > all ACC = 0. > > > > > > "I got to suspect that the problem lies with your hittest code" > > > > > The thing is when I'm not using any code at all and just Space to > > > > > respond, I'm still getting the same results. It's weird that the > > > > > default mode of accuracy, or response, logging is that it's remembered > > > > > from trial to trial when using the end action jump element. > > > > > > What I want it to do is just to log the response given to a specific > > > > > slide, end that trial and then start a new trial without remembering > > > > > previous responses. It is such a stupid thing that makes me suspect > > > > > that I have missed something really basic, or is it supposed to behave > > > > > in this matter? > > > > > > Do you think that there might be an easier way than what you are > > > > > describing liwenna? Something like acc or resp reset? > > -- > 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 athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. From ucfmicah at gmail.com Thu Mar 10 16:25:22 2011 From: ucfmicah at gmail.com (Micah) Date: Thu, 10 Mar 2011 08:25:22 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Scratch that, I had an error in my debugging that led me to conclude it wasn't working. The new version you provided IS working to count aware trials! Thanks so much- I am pretty sure from here I can scale this up to logging everything I need and providing feedback. Karma + a billion! On Mar 10, 5:09 pm, Micah Allen wrote: > Hi Michiel, > > I'm afraid that did not fix it. I can see from the debug that if on 'no > awareness' trials Awaretrial resolves to " ". I think the problem might just > be my syntax, as it seems to add nothing every time. Is there a particular > way to use if-then statements to add incrementally to a variable? > > Best, > Micah > > On Thu, Mar 10, 2011 at 3:56 PM, Michiel Spape < > > > > > > > > Michiel.Sp... at nottingham.ac.uk> wrote: > > Hiya, > > It's a no-HTML mailinglist, sadly - some code formatting would be nice. I > > copy-pasted it into eprime and fiddled around with it: > > > ------------ > > > trialnum=trialnum+1      'this part adds total trials (moved this to > > beginning) > > > If c.GetAttrib("trialtype") = "lure" AND TextDisplay1.RESP = "" then'I > > prefer 'no response' to '0 RT', as the other suggests there's a very fast > > RT! > >        c.SetAttrib "ogperf", 1 > >        killme = 0 > >         else > >        c.SetAttrib "ogperf", 0 > >         killme = 1 > > end if > > > 'here's a debugging thingy for you: > > Debug.Print "I'm currently getting Awaretrial= " & > > c.GetAttrib("awaretrial") & "killme = " & cstr(killme) > > 'However, I notice killme is undeclared up to this point (followed later, > > now earlier) > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then        'this part > > determines the awaresness, 1=aware of an error, killme=1  means participant > > failed to stop on an awaretrial (and hence should report) > >         awaretrials=awaretrials+1 'as far as i saw, this came a bit later, > > saves a few lines > >         if TextDisplay1.RESP = "2" then > >                c.SetAttrib "ogaware", 0 > >        else > >                c.SetAttrib "ogaware", 1 > >        end if > > end if > > > 'i did the killme above (since it is based on ogperf, it might as well be > > done in the same loop, no? > > > Debug.print awaretrials  & " = awaretrialtotal" ' these parts should spit > > out a counter. the trialnum works correctly, but awaretrial just spits out a > > '0' over and over > > Debug.print trialnum > > ---------------- > > > Maybe it works now? If it doesn't, the debug.print which immediately > > precedes the IF statement which leads to awaretrials counter being updated > > should spit out exactly why not. But I think it's the killme, which was > > defined AFTER polling whether it's 1 or 0 (hence, presumably always 0). I've > > also cleaned a bit. > > Best, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > >www.cognitology.eu > > > -----Original Message-----> From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf > > Of Micah > > Sent: 10 March 2011 14:39 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type > > Mismatch > > > Hi, > > > I know everyone is very busy. Maybe I can get some help just by > > narrowing the issue a bit. I'm trying to implement the counter > > technique and have got the TrialNum working correctly. Now, I had the > > thought that I could create another variable that adds one each time > > there is an 'aware trial' (i.e., where the attributed awaretrial=1 and > > the variable killme=1 (indicating an aware trial where the participant > > failed to stop. > > > Globally, I declared both Trialnum and Awaretrials. I then used the > > following inline to try and sum up the total aware trials. My thinking > > is that if this works, I can then do the same thing for a variable > > called 'correctaware' and easily calculate the mean % in a debug as > > you suggested. Here is the inline (new parts in bold) > > > If c.GetAttrib("trialtype") = "lure" then         'this part > > determines the inhibition accuracy, 1=successful 'stop' > >        if TextDisplay1.RT = 0 then > >                c.SetAttrib "ogperf", 1 > >        else > >                c.SetAttrib "ogperf", 0 > >        end if > > end if > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then        'this > > part determines the awaresness, 1=aware of an error, killme=1  means > > participant failed to stop on an awaretrial (and hence should report) > >        if TextDisplay1.RESP = "2" then > >                c.SetAttrib "ogaware", 0 > >        else > >                c.SetAttrib "ogaware", 1 > >        end if > > end if > > > if c.GetAttrib("ogperf") = "0" then                      'this part is > > needed to determine when a participant has failed to stop > >        killme = 1 > > else > >        killme = 0 > > end if > > > if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new > > parts. I expect it to add one to 'awaretrials' each trial if criterion > > are satisfied > > awaretrials=awaretrials+1 > >        end if > > > trialnum=trialnum+1      'this part adds total trials > > > Debug.print awaretrials  & " = awaretrialtotal" ' these parts should > > spit out a counter. the trialnum works correctly, but awaretrial just > > spits out a '0' over and over > > > Debug.print trialnum > > > If someone can help me get the awareness counter working, I think I'll > > be home free. > > > On Mar 10, 1:08 pm, Michiel Spape > > wrote: > > > Hiya, > > > Sorry, that is indeed just bad reading on my part :) It remains a > > sometimes worthy suggestion for other people here though, as I've often seen > > "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC > > looks very nice and clean. For a truly suitable answer, I should really have > > a look at your script and see what exactly you mean, but alas, no time! > > > > Cheers, > > > Mich > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:>e-prime at googlegroups.com]OnBehalf Of Micah > > > Sent: 10 March 2011 11:43 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > > Mismatch > > > > Hey Michiel, > > > > Awesome reply. My only question is how this can incorporate the > > > specifics of my experiment where I have two 'accuracy' measures that > > > are not actually incorporated in the Stimulus.ACC object. Both > > > inhibition performance and error-awareness in this case are calculated > > > by the post-trial in-line, and so I'm not sure I understand how > > > TextDisplay1.ACC would gather any information on them. I could set it > > > collect inhibition accuracy easily enough, but error-awareness needs > > > the scripting to determine when there was a failed stop (there can > > > only be awareness for errors, so there's nothing to report on > > > successful stops). Anyway, I will poke around with your idea and see > > > what happens. > > > > Best, > > > Micah > > > > On Mar 9, 5:39 pm, Michiel Spape > > > wrote: > > > > Hiya, > > > > Well, let's see how far you'll get :) I thought I might add that I > > generally have two global variables (i.e. declared in the User tab), one > > being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > > > So, every trial, I tend to have an inline with the following: > > > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also > > useful if you want to present a break > > > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN > > object. > > > > > Visual basic tends to be a bit tricky in terms of variables being > > converted on the spot, whether you like it or not, but if you just want to > > know the percentage, the following tends to work pretty well: > > > > TrialNum = 30 'just as an example, 30 trials done so far > > > > TrialsCorrect = 10 'just as an example, 10 trials correct > > > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > > > This returns "33% correct" (in the output). > > > > > So, if you would just dump that into a new attribute (don't add it to > > the list, it confuses things sometimes): > > > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > > > and have a slide, saying "You had [thismuch]% correct", you're > > basically there (just tested it). Not to say you can't do the same with > > summation objects, but the above, taking out my debug, takes only 3 lines of > > code (excluding 2 lines of user script variable declarations). > > > > Cheers, > > > > Mich > > > > > Michiel Spapé > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychologywww.cognitology.eu > > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto:>e-prime at googlegroups.com]OnBehalf Of Micah > > > > Sent: 09 March 2011 16:06 > > > > To: E-Prime > > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > > Mismatch > > > > > Hi Michiel, > > > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > > > objects, and the related code is designed to log stops and successful > > > > error reports. So the first bit of code should be resolving to either > > > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > > > report/missed error report. That being said I see your point with the > > > > need to simplify and had wondered if I could get by without the > > > > summation object. My worry is that, sense the accuracy data is not > > > > generated directly by the list or procedure, I need this summation > > > > object to collect data from the ogperf ogaware inline. The last bit > > > > ( c.SetAttrib "errorawareness", > > > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > > > the summation object for placement in the end of block report > > > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > > > trials and reported your errors [erroraware] of the time"). > > > > > Will try to wrap my head around how to do this without the summation- > > > > appreciate your help! > > > > > On Mar 9, 4:55 pm, Michiel Spape > > > > wrote: > > > > > Hiya, > > > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be > > lazy and simply won't read long threads. I've never had any use for this > > "summation object" deal, but your code is > > ... > > read more » -- 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. From ucfmicah at gmail.com Thu Mar 10 17:08:16 2011 From: ucfmicah at gmail.com (Micah Allen) Date: Thu, 10 Mar 2011 18:08:16 +0100 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA365@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: woops, so close- The last bit where I dump the variables into an attribute is giving an overflow error. Any ideas? On Mar 9, 2011 5:39 PM, "Michiel Spape" wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > > > On Mar 9, 4:55 pm, Michiel Spape > wrote: >> Hiya, >> Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: >> >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. >> >> If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") >> >> Then try change this into: >> stopaccuracy.AddObservation 0 >> if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. >> >> So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. >> Cheers, >> Mich >> >> Michiel Spapé >> Research Fellow >> Perception & Action group >> University of Nottingham >> School of Psychologywww.cognitology.eu >> >> >> >> >> >> >> >> -----Original Message-----From:e-prime at googlegroups.com[mailto: e-prime at googlegroups.com]On Behalf Of Micah >> Sent: 09 March 2011 15:19 >> To: E-Prime >> Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch >> >> Hi Ben, >> >> Sincere thanks for your suggestion. Helped me to feel like I'm getting >> somewhere in my understanding of E-basic, as I had the same idea. >> Sadly neither CInt or CDbl used in that way change the error. I also >> tried declaring erroraware and stopaccuracy as doubles, and tried >> converting them into new variables that would be numbers. I'm not sure >> I did that correctly however. >> >> Thanks for your help- i'll be really excited if we can solve this. >> >> On Mar 9, 3:17 pm, ben robinson wrote: >> > try changing them to: >> > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) >> > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) >> >> > or CDbl(...) if CInt(...) isn't what you need. >> > i think the problem might be that when you c.GetAttrib the value it pulls >> > from the list is understood as a string, rather than some sort of number... >> >> > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: >> > > Hello, >> >> > > This is probably a very easy to solve problem, but it's just about >> > > beaten me down. I am trying to make a training script for my error- >> > > awareness paradigm that can log inhibition and error-awareness >> > > performance and then report these to the subject at the end of the >> > > trial. The task is very simple and works fine, as does the performance >> > > logging. I can't seem to get my summation object to work though- >> > > everytime it gives me a 'type mismatch'. I've tried creating a >> > > variable from the logging vars in a double format but that does not >> > > fix it. Can someone take a look at my code and see what's up? >> >> > > I start with the following setup inline and usertab code: >> > > 'setup inline >> > > set stopaccuracy = New Summation >> > > set erroraware = New Summation >> >> > > 'usertab >> > > dim killme as integer >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > dim ogperf as double >> > > dim ogaware as double >> >> > > My inline that logs awareness and performance, and (is supposed to) >> > > fill the summation object with these information for reporting to the >> > > subject, looks like this: >> >> > > If c.GetAttrib("trialtype") = "lure" then >> > > if TextDisplay1.RT = 0 then >> > > c.SetAttrib "ogperf", 1 >> > > else >> > > c.SetAttrib "ogperf", 0 >> > > end if >> > > end if >> >> > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then >> > > if TextDisplay1.RESP = "2" then >> > > c.SetAttrib "ogaware", 0 >> > > else >> > > c.SetAttrib "ogaware", 1 >> > > end if >> > > end if >> >> > > if c.GetAttrib("ogperf") = "0" then >> > > killme = 1 >> > > else >> > > killme = 0 >> > > end if >> >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Debug.Print stopaccuracy.Mean >> > > Debug.Print erroraware.Mean >> >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> >> > > It's these lines that give me the type mismatch: >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Link to script:http://bit.ly/hKCcmo >> >> > > Best, >> > > Micah >> >> > > -- >> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. >> >> -- >> You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. >> For more options, visit this group athttp:// groups.google.com/group/e-prime?hl=en. >> >> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. >> >> 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. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michiel.Spape at nottingham.ac.uk Thu Mar 10 17:51:37 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 17:51:37 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hi, No problem! This one should be easy (I get it all the time with languages less forgiving than basic): I bet numtrials equals to 0, therefore cint(cstr(trialscorrect / numtrials / 0.01)) ... which wasn't correct anyway (should have tested), it is cstr(cint(trialscorrect / numtrials / 0.01)) ... but that's not the problem (presumably) - also the cstr is unnecessary, so let's make it cint(trialscorrect / numtrials / 0.01) but finally, this, I'm pretty sure, results somewhere along the line in trialscorrect / 0. Divided by zero, or infinity, which doesn't fit in a mere integer, it will tell you overflow. Notice however that somewhere along the line, numtrials and trialnum are used interchangeably, a very common mistake if you're me: c.SetAttrib "thismuch", cint(trialscorrect / TrialNum / 0.01) sorted! Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Allen Sent: 10 March 2011 17:08 To: e-prime at googlegroups.com Subject: RE: Can't get AddObservation to work, or plague of the Type Mismatch woops, so close- The last bit where I dump the variables into an attribute is giving an overflow error. Any ideas? On Mar 9, 2011 5:39 PM, "Michiel Spape" > wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > > > On Mar 9, 4:55 pm, Michiel Spape > > wrote: >> Hiya, >> Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: >> >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. >> >> If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") >> >> Then try change this into: >> stopaccuracy.AddObservation 0 >> if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. >> >> So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. >> Cheers, >> Mich >> >> Michiel Spapé >> Research Fellow >> Perception & Action group >> University of Nottingham >> School of Psychologywww.cognitology.eu >> >> >> >> >> >> >> >> -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah >> Sent: 09 March 2011 15:19 >> To: E-Prime >> Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch >> >> Hi Ben, >> >> Sincere thanks for your suggestion. Helped me to feel like I'm getting >> somewhere in my understanding of E-basic, as I had the same idea. >> Sadly neither CInt or CDbl used in that way change the error. I also >> tried declaring erroraware and stopaccuracy as doubles, and tried >> converting them into new variables that would be numbers. I'm not sure >> I did that correctly however. >> >> Thanks for your help- i'll be really excited if we can solve this. >> >> On Mar 9, 3:17 pm, ben robinson > wrote: >> > try changing them to: >> > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) >> > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) >> >> > or CDbl(...) if CInt(...) isn't what you need. >> > i think the problem might be that when you c.GetAttrib the value it pulls >> > from the list is understood as a string, rather than some sort of number... >> >> > On Wed, Mar 9, 2011 at 8:34 AM, Micah > wrote: >> > > Hello, >> >> > > This is probably a very easy to solve problem, but it's just about >> > > beaten me down. I am trying to make a training script for my error- >> > > awareness paradigm that can log inhibition and error-awareness >> > > performance and then report these to the subject at the end of the >> > > trial. The task is very simple and works fine, as does the performance >> > > logging. I can't seem to get my summation object to work though- >> > > everytime it gives me a 'type mismatch'. I've tried creating a >> > > variable from the logging vars in a double format but that does not >> > > fix it. Can someone take a look at my code and see what's up? >> >> > > I start with the following setup inline and usertab code: >> > > 'setup inline >> > > set stopaccuracy = New Summation >> > > set erroraware = New Summation >> >> > > 'usertab >> > > dim killme as integer >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > dim ogperf as double >> > > dim ogaware as double >> >> > > My inline that logs awareness and performance, and (is supposed to) >> > > fill the summation object with these information for reporting to the >> > > subject, looks like this: >> >> > > If c.GetAttrib("trialtype") = "lure" then >> > > if TextDisplay1.RT = 0 then >> > > c.SetAttrib "ogperf", 1 >> > > else >> > > c.SetAttrib "ogperf", 0 >> > > end if >> > > end if >> >> > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then >> > > if TextDisplay1.RESP = "2" then >> > > c.SetAttrib "ogaware", 0 >> > > else >> > > c.SetAttrib "ogaware", 1 >> > > end if >> > > end if >> >> > > if c.GetAttrib("ogperf") = "0" then >> > > killme = 1 >> > > else >> > > killme = 0 >> > > end if >> >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Debug.Print stopaccuracy.Mean >> > > Debug.Print erroraware.Mean >> >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> >> > > It's these lines that give me the type mismatch: >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Link to script:http://bit.ly/hKCcmo >> >> > > Best, >> > > Micah >> >> > > -- >> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. >> >> -- >> You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. >> For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. >> >> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. >> >> 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. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. > -- 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. -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Fri Mar 11 17:44:51 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 11 Mar 2011 12:44:51 -0500 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA431@EXCHANGE3.ad.no ttingham.ac.uk> Message-ID: Micah, I didn't see this thread until today, I know I'm late and you have already gone off in a different direction. And I very rarely look at other people's code, but I rather like the Summation object and I wanted to see how you managed to get a "Type mismatch" error, and I wanted to address this for others who may chance across this thread. (You also did a nice job of posting your program for download, and you kept the problem program to a small scale). So here goes. So, the error takes place at the line stopaccuracy.AddObservation c.GetAttrib("ogperf") As others may have noted, when the program reaches this line, the "ogperf" attribute is empty. And you cannot add an empty observation to a Summation object, you must have a numeric value (BTW, no real need to cast it to a numeric type, E-Basic will take care of that for you automatically, but go ahead and use CInt() if it makes you feel better :) ). Reading the code further, you give a value to "ogperf" only when "trialtype" = "lure". As it turns out, your first trial in List3 has a trialtype of "gotrial", thus "ogperf" does not get a value and you get the the Type mismatch error. Just to test this out, I used a "lure" trial for the first trial, and sure enough that worked without any error. (So you see, the problem would not be apparent from reading the code alone, it has to be seen in the context of the List that runs it.) So as I understand it, you only really want to gather observations for "lure" type trials. In that case, you should put your .AddObservation into the If(trialtype) clause, so that your code looks more like If (c.GetAttrib("trialtype") = "lure") then if (TextDisplay1.RT = 0) then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if stopaccuracy.AddObservation c.GetAttrib("ogperf") end if if ( (c.GetAttrib("awaretrial") = "1") and (killme = 1) ) then if (TextDisplay1.RESP = "2") then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if (c.GetAttrib("ogperf") = "0") then killme = 1 else killme = 0 end if etc. I tried this out and it worked without error, though I did not go as far as seeing whether it produces the computations that you desire. You might also do more to generally clean up the logic. I leave all that as an exercise for you. -- David McFarlane, Professional Faultfinder At 3/10/2011 12:51 PM Thursday, Michiel Spape wrote: >Hi, >No problem! This one should be easy (I get it >all the time with languages less forgiving than >basic): I bet numtrials equals to 0, therefore >cint(cstr(trialscorrect / numtrials / 0.01)) >… which wasn’t correct anyway (should have tested), it is >cstr(cint(trialscorrect / numtrials / 0.01)) >… but that’s not the problem (presumably) – also >the cstr is unnecessary, so let’s make it >cint(trialscorrect / numtrials / 0.01) > >but finally, this, I’m pretty sure, results >somewhere along the line in trialscorrect / 0. >Divided by zero, or infinity, which doesn’t fit >in a mere integer, it will tell you overflow. >Notice however that somewhere along the line, >numtrials and trialnum are used interchangeably, >a very common mistake if you’re me: > >c.SetAttrib "thismuch", cint(trialscorrect / TrialNum / 0.01) > >sorted! >Best, >Mich > > >Michiel Spapé >Research Fellow >Perception & Action group >University of Nottingham >School of Psychology >www.cognitology.eu > >From: e-prime at googlegroups.com >[mailto:e-prime at googlegroups.com] On Behalf Of Micah Allen >Sent: 10 March 2011 17:08 >To: e-prime at googlegroups.com >Subject: RE: Can't get AddObservation to work, or plague of the Type Mismatch > > >woops, so close- > >The last bit where I dump the variables into an >attribute is giving an overflow error. Any ideas? >On Mar 9, 2011 5:39 PM, "Michiel Spape" ><Michiel.Spape at nottingham.ac.uk> wrote: > > Hiya, > > Well, let's see how far you'll get :) I > thought I might add that I generally have two > global variables (i.e. declared in the User > tab), one being TrialNum, which just adds one > up to the trial, and one TrialsCorrect. > > So, every trial, I tend to have an inline with the following: > > TrialNum = TrialNum + 1 'just so that number > of trials is counted, also useful if you want to present a break > > TrialsCorrect = TrialsCorrect + > myStimulus.ACC 'which saves one IF/THEN object. > > > > Visual basic tends to be a bit tricky in > terms of variables being converted on the spot, > whether you like it or not, but if you just > want to know the percentage, the following tends to work pretty well: > > TrialNum = 30 'just as an example, 30 trials done so far > > TrialsCorrect = 10 'just as an example, 10 trials correct > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > This returns "33% correct" (in the output). > > > > So, if you would just dump that into a new > attribute (don't add it to the list, it confuses things sometimes): > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > > and have a slide, saying "You had [thismuch]% > correct", you're basically there (just tested > it). Not to say you can't do the same with > summation objects, but the above, taking out my > debug, takes only 3 lines of code (excluding 2 > lines of user script variable declarations). > > Cheers, > > Mich > > > > > > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > www.cognitology.eu > > > > > > -----Original Message----- > > From: > e-prime at googlegroups.com > [mailto:e-prime at googlegroups.com] On Behalf Of Micah > > Sent: 09 March 2011 16:06 > > To: E-Prime > > Subject: Re: Can't get AddObservation to > work, or plague of the Type Mismatch > > > > Hi Michiel, > > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > objects, and the related code is designed to log stops and successful > > error reports. So the first bit of code should be resolving to either > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > report/missed error report. That being said I see your point with the > > need to simplify and had wondered if I could get by without the > > summation object. My worry is that, sense the accuracy data is not > > generated directly by the list or procedure, I need this summation > > object to collect data from the ogperf ogaware inline. The last bit > > ( c.SetAttrib "errorawareness", > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > the summation object for placement in the end of block report > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > trials and reported your errors [erroraware] of the time"). > > > > Will try to wrap my head around how to do this without the summation- > > appreciate your help! > > > > > > > > On Mar 9, 4:55 pm, Michiel Spape > <Michiel.Sp... at nottingham.ac.uk> > > wrote: > >> Hiya, > >> Ugh, lots of code. Forgive me, like many > coding people, I tend to be lazy and simply > won't read long threads. I've never had any use > for this "summation object" deal, but your code is really quite confusing: > >> > >> > > dim stopaccuracy as Summation > >> > > dim erroraware as Summation > >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > > errorawareness.AddObservation c.GetAttrib("ogaware") > >> > >> What exactly are you doing here? > Stopaccuracy is both a "summation" and an > "attribute in a list". Errorwareness is only > semi-overlapping with this attribute, although > I see no reason why you would want this. Ogperf > is not even an attribute but a local variable. > If you have declared it somewhere, it probably > looks into a list anyway, finds a question > mark, tries to put this into stopaccuracy. > Thus, what you get is > StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > >> > >> If you want to find out what's going on with > the mismatch (one of the more simpler things to > solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > >> Then try change this into: > >> stopaccuracy.AddObservation 0 > >> if the latter works but the former doesn't, > then c.GetAttrib("ogperf") probably receives a > string instead, or, in other words, Ben would > be right. See what ogperf is by doing > "debug.print c.GetAttrib("ogperf"). So, try > beginning simple with working code, then add - rather than the opposite. > >> > >> So, start with as clean and working code as > possible. My suggestion would be to start with > getting rid of the summation stuff (after all, > what more is stopaccuracy.mean then merely > numberofstopaccuratetrials / numberoftrials?) > and the c.getattrib/set stuff until you can get > everything working on one level. > >> Cheers, > >> Mich > >> > >> Michiel Spapé > >> Research Fellow > >> Perception & Action group > >> University of Nottingham > >> School of > Psychologywww.cognitology.eu > >> > >> > >> > >> > >> > >> > >> > >> -----Original > Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On > Behalf Of Micah > >> Sent: 09 March 2011 15:19 > >> To: E-Prime > >> Subject: Re: Can't get AddObservation to > work, or plague of the Type Mismatch > >> > >> Hi Ben, > >> > >> Sincere thanks for your suggestion. Helped me to feel like I'm getting > >> somewhere in my understanding of E-basic, as I had the same idea. > >> Sadly neither CInt or CDbl used in that way change the error. I also > >> tried declaring erroraware and stopaccuracy as doubles, and tried > >> converting them into new variables that would be numbers. I'm not sure > >> I did that correctly however. > >> > >> Thanks for your help- i'll be really excited if we can solve this. > >> > >> On Mar 9, 3:17 pm, ben robinson > <baltimore.... at gmail.com> wrote: > >> > try changing them to: > >> > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > >> > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > >> > >> > or CDbl(...) if CInt(...) isn't what you need. > >> > i think the problem might be that when you > c.GetAttrib the value it pulls > >> > from the list is understood as a string, > rather than some sort of number... > >> > >> > On Wed, Mar 9, 2011 at 8:34 AM, Micah > <ucfmi... at gmail.com> wrote: > >> > > Hello, > >> > >> > > This is probably a very easy to solve problem, but it's just about > >> > > beaten me down. I am trying to make a training script for my error- > >> > > awareness paradigm that can log inhibition and error-awareness > >> > > performance and then report these to the subject at the end of the > >> > > trial. The task is very simple and works fine, as does the performance > >> > > logging. I can't seem to get my summation object to work though- > >> > > everytime it gives me a 'type mismatch'. I've tried creating a > >> > > variable from the logging vars in a double format but that does not > >> > > fix it. Can someone take a look at my code and see what's up? > >> > >> > > I start with the following setup inline and usertab code: > >> > > 'setup inline > >> > > set stopaccuracy = New Summation > >> > > set erroraware = New Summation > >> > >> > > 'usertab > >> > > dim killme as integer > >> > > dim stopaccuracy as Summation > >> > > dim erroraware as Summation > >> > > dim ogperf as double > >> > > dim ogaware as double > >> > >> > > My inline that logs awareness and performance, and (is supposed to) > >> > > fill the summation object with these information for reporting to the > >> > > subject, looks like this: > >> > >> > > If c.GetAttrib("trialtype") = "lure" then > >> > > if TextDisplay1.RT = 0 then > >> > > c.SetAttrib "ogperf", 1 > >> > > else > >> > > c.SetAttrib "ogperf", 0 > >> > > end if > >> > > end if > >> > >> > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > >> > > if TextDisplay1.RESP = "2" then > >> > > c.SetAttrib "ogaware", 0 > >> > > else > >> > > c.SetAttrib "ogaware", 1 > >> > > end if > >> > > end if > >> > >> > > if c.GetAttrib("ogperf") = "0" then > >> > > killme = 1 > >> > > else > >> > > killme = 0 > >> > > end if > >> > >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > > errorawareness.AddObservation c.GetAttrib("ogaware") > >> > >> > > Debug.Print stopaccuracy.Mean > >> > > Debug.Print erroraware.Mean > >> > >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > >> > >> > > It's these lines that give me the type mismatch: > >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > > errorawareness.AddObservation c.GetAttrib("ogaware") > >> > >> > > Link to script:http://bit.ly/hKCcmo > >> > >> > > Best, > >> > > Micah -- 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. From francesco.biondi1 at gmail.com Mon Mar 21 16:11:46 2011 From: francesco.biondi1 at gmail.com (francesco biondi) Date: Mon, 21 Mar 2011 09:11:46 -0700 Subject: Time drift between 2 different data streams Message-ID: Hello!! I m using eprime in a experiment where a subject, driving a simulator, has to use a microphone connected with a SRBox. After merged the data from the 2 different data streams, i ve noticed a time drift occurred between the 2 streams : e-prime times - synchronized with the simulator times during the first part of the exp - were drifted by the simulator times of 2.5 seconds at the end of the experiment. Do you know how i can solve this problem? rescaling the eprime clock could help me? -- 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. From Michiel.Spape at nottingham.ac.uk Tue Mar 22 09:33:41 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 22 Mar 2011 09:33:41 +0000 Subject: Time drift between 2 different data streams In-Reply-To: Message-ID: Hi, This is a weird problem, but I would assume (hope?) that the time you get from the simulator is the problem, not the one from E-Prime. If you think it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you running E-Prime on some kind of laptop or computer with dynamic processor? Anyway, this is why, generally, if you use two different data streams, you synchronise more often - try to implement that. Scaling the clock is unlikely to work, since it's very probable that the time drift isn't linear, so if, for instance, the time drift occurred halfway during the experiment, a linear correction would make ALL your data invalid, rather than half of it. Also, you could try send live pulses from E-Prime to the simulator and just use all the data in there (or vice versa). A bit of work, but it saves despairing afterwards. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi Sent: 21 March 2011 16:12 To: E-Prime Subject: Time drift between 2 different data streams Hello!! I m using eprime in a experiment where a subject, driving a simulator, has to use a microphone connected with a SRBox. After merged the data from the 2 different data streams, i ve noticed a time drift occurred between the 2 streams : e-prime times - synchronized with the simulator times during the first part of the exp - were drifted by the simulator times of 2.5 seconds at the end of the experiment. Do you know how i can solve this problem? rescaling the eprime clock could help me? -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From nusphd at gmail.com Tue Mar 22 12:05:55 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Tue, 22 Mar 2011 20:05:55 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Dear all, I have dowloaded (from PST support) the latest version of Eprime2Prof in a Vista PC and the experiments are working fine. Before, there were stimuli presentation delays (when using audio files) or the experiment crashed. However, I cannot run the RefreshClockTest in Vista or Windows 7. When I am trying to run the RefreshClockTest, a message keeps popping up indicating that the Standby or Hibernated functions are enabled. I have disabled/turned off all that can affect the RefreshClockTest (e.g., anti-virus, screensaver...) but still the message pops up. This only occurs when using Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest works fine)...Has this happened to you before? I have also asked PST but I know they will take some time to respond...wondering if you have gone through this before...Please advise. Thanks. Regards, Lidia -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francesco.biondi at ymail.com Tue Mar 22 12:14:27 2011 From: francesco.biondi at ymail.com (francesco.biondi at ymail.com) Date: Tue, 22 Mar 2011 13:14:27 +0100 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Hi!! I am using Windows XP and i didnt find this kind of problem with E-Primi 1.1. Before running the test, i turned off the screen saver and the powersave modality by the control panel. Maybe the problem is due to the powersave I hope I helped you 2011/3/22 Lidia Suarez > Dear all, > > I have dowloaded (from PST support) the latest version of Eprime2Prof in a > Vista PC and the experiments are working fine. Before, there were stimuli > presentation delays (when using audio files) or the experiment crashed. > However, I cannot run the RefreshClockTest in Vista or Windows 7. When I am > trying to run the RefreshClockTest, a message keeps popping up indicating > that the Standby or Hibernated functions are enabled. I have disabled/turned > off all that can affect the RefreshClockTest (e.g., anti-virus, > screensaver...) but still the message pops up. This only occurs when using > Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest works > fine)...Has this happened to you before? I have also asked PST but I know > they will take some time to respond...wondering if you have gone through > this before...Please advise. Thanks. > > > > Regards, > Lidia > > -- > 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. > -- *Francesco Biondi* -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Mar 22 14:19:06 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 22 Mar 2011 10:19:06 -0400 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Lidia, Yes, I have seen the same message running RefreshClockTest with EP2 under Vista. Have not tried yet under Win7. I just ignore it and proceed. The message means to tell you that the measured results might not reflect what is possible under ideal conditions with that machine, so if you still get good results under the test conditions then all should work well under your desired operating conditions. I suspect however that Microsoft changed how programs can detect Standby/Hibernate functions and RefreshClockTest has not kept up with the change, in which case the measured results probably do reflect your desired operating conditions. I will also be interested to know what PST says about this when they reply to you. -- David McFarlane, Professsional Faultfinder At 3/22/2011 08:05 AM Tuesday, you wrote: >I have dowloaded (from PST support) the latest version of >Eprime2Prof in a Vista PC and the experiments are working fine. >Before, there were stimuli presentation delays (when using audio >files) or the experiment crashed. However, I cannot run the >RefreshClockTest in Vista or Windows 7. When I am trying to run the >RefreshClockTest, a message keeps popping up indicating that the >Standby or Hibernated functions are enabled. I have disabled/turned >off all that can affect the RefreshClockTest (e.g., anti-virus, >screensaver...) but still the message pops up. This only occurs when >using Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest >works fine)...Has this happened to you before? I have also asked PST >but I know they will take some time to respond...wondering if you >have gone through this before...Please advise. Thanks. > >Regards, >Lidia -- 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. From Michiel.Spape at nottingham.ac.uk Tue Mar 22 14:38:46 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 22 Mar 2011 14:38:46 +0000 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Hiya, No idea, having no Windows Vista/7 - Eprime combination (which I think PST doesn't support anyway - I expect the common advice people will give you is "get XP, despite it not being supported by Microsoft), nor E-Prime2. Despite that, you mention "Standby or Hibernation" should be off but *only* mention you turned off other things. Now, since I do have Win7 at home, I know it sits in a fairly awkward position of the configuration panel - indeed, I had to especially look it up on the Help thingy, and how often do computer-geeks read manuals, despite their liking for shouting RTFM? Anyway, so just to ask: - Have you indeed turned off "Sleep Mode" (otherwise known as hibernation)? Furthermore, when you say "this only happens in Eprime2 in Vista and Windows 7, do you mean, "IF (EPRIME 2 && VISTA && WIN7) THEN CRASH"? That is to say, it doesn't happen in EPrime 1? OR, it does not happen in Windows XP? On the same computer? So, no, it may have happened to me before that RefreshClockTest didn't run for me on a Win98SE computer running E-Prime 1.2, but that's not what you're after, I take it. If it is, though, it turned out I actually hadn't changed all the power options/schemes to "always on", screensaver OFF (not blank) and hibernation OFF. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Lidia Suarez Sent: 22 March 2011 12:06 To: e-prime at googlegroups.com Subject: Re: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? Dear all, I have dowloaded (from PST support) the latest version of Eprime2Prof in a Vista PC and the experiments are working fine. Before, there were stimuli presentation delays (when using audio files) or the experiment crashed. However, I cannot run the RefreshClockTest in Vista or Windows 7. When I am trying to run the RefreshClockTest, a message keeps popping up indicating that the Standby or Hibernated functions are enabled. I have disabled/turned off all that can affect the RefreshClockTest (e.g., anti-virus, screensaver...) but still the message pops up. This only occurs when using Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest works fine)...Has this happened to you before? I have also asked PST but I know they will take some time to respond...wondering if you have gone through this before...Please advise. Thanks. Regards, Lidia -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Mar 22 14:52:57 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 22 Mar 2011 10:52:57 -0400 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD8208F4F@EXCHANGE3.ad.no ttingham.ac.uk> Message-ID: Mich, > how often do computer-geeks read manuals, despite their liking for > shouting RTFM? Hmm, then I must be the exception, because I always start by thoroughly reading whatever documentation I can find, and complain at any lack of documentation (e.g., E-Prime). I often say of myself & my job, "I'm the guy who reads the manuals." Best, -- David McFarlane, Professional Faultfinder (E.g, just read the manual for my new iPod, two manuals for Camtasia Studio, and still working through manuals for iPad and Evernote, etc.) -- 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. From nusphd at gmail.com Wed Mar 23 02:49:38 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Wed, 23 Mar 2011 10:49:38 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <4d88b7ce.08412b0a.6a12.ffff9378SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hi all, Thanks for your replies. I will keep you informed about PST's reply as soon as I get it. I agree with David's reply: "I suspect however that Microsoft changed how programs can detect Standby/Hibernate functions and RefreshClockTest has not kept up with the change" Just to summarise: I am testing Eprime2 Prof (no Eprime 1.2). The RefreshClockTest needs to be run with the anti-virus, screensaver, standby, and hibernated functions off. Otherwise, a message prompts you to turn them off before continuing. If I turn off these on XP, RefreshClockTest works. If I turn these on Vista, RefreshClockTest ask me again to turn them off (when they are already turned off) and it cannot proceed with the test (this is different to David's case, who can proceed with the test). The same happened when I tried Windows 7. Eprime2 comes with the same manual than Eprime1.2...(no more information about new OS such as Vista). Thanks. Let's see what PST says... -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francesco.biondi1 at gmail.com Wed Mar 23 09:37:43 2011 From: francesco.biondi1 at gmail.com (francesco biondi) Date: Wed, 23 Mar 2011 02:37:43 -0700 Subject: Time drift between 2 different data streams In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD8208EEB@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Thanks for the answer. I m trying to send signals from the simulator to e-prime. i want e-prime to read this signal several times during the exp; how can i do it? best, which command i have to use to let e-prime do it? do you think it's possible let e-prime to read the signal every, for example, 20 minutes , or it's better send this signal from the simulator every cycle (100 cycles - 100 identical item - in 35 minutes) and let e-prime read it everytime? On Mar 22, 10:33 am, Michiel Spape wrote: > Hi, > This is a weird problem, but I would assume (hope?) that the time you get from the simulator is the problem, not the one from E-Prime. If you think it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you running E-Prime on some kind of laptop or computer with dynamic processor? > Anyway, this is why, generally, if you use two different data streams, you synchronise more often - try to implement that. Scaling the clock is unlikely to work, since it's very probable that the time drift isn't linear, so if, for instance, the time drift occurred halfway during the experiment, a linear correction would make ALL your data invalid, rather than half of it. > Also, you could try send live pulses from E-Prime to the simulator and just use all the data in there (or vice versa). A bit of work, but it saves despairing afterwards. > > Best, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi > Sent: 21 March 2011 16:12 > To: E-Prime > Subject: Time drift between 2 different data streams > > Hello!! > I m using eprime in a experiment where a subject, driving a simulator, > has to use a microphone connected with a SRBox. > After merged the data from the 2 different data streams, i ve noticed > a time drift occurred between the 2 streams : e-prime times - > synchronized with the simulator times during the first part of the exp > - were drifted by the simulator times of 2.5 seconds at the end of the > experiment. > Do you know how i can solve this problem? > rescaling the eprime clock could help me? > > -- > 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 athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 23 10:01:56 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 23 Mar 2011 10:01:56 +0000 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Hi, I agree with David - it's pretty likely that the screensavers states are polled changed between XP and Vista, so it presumably just detects it incorrectly. Since the refreshclocktest is just an .es, I suppose you can easily hack it... Yes, checked now. The inline "powercheck" executes several functions, which you find, in turn, in the User script are, and which return true or false depending on the check, e.g.: Function IsScreenSaverEnabled() As Boolean 'Default IsScreenSaverEnabled = False Dim strActive As String strActive = Rct_Registry_QueryValueString(RCT_REGISTRY_HKEY_CURRENT_USER, "Control Panel\\Desktop", "ScreenSaveActive") 'Should represent a string integer If IsNumeric(strActive) Then 'If not zero, then screen saver is on If CLng(strActive) <> 0 Then IsScreenSaverEnabled = True End If End Function ... so you can see, it's not exactly the best way to have this script working in later OS'es, since it just polls the registry. Suppose there's not even this key in the registry (pretty likely), then chances are, you won't get far. But all that, if you don't like programming, or, like me, only have so many minutes, you could of course, safely ignore. See the experiment, and where it fails: "It has been determined..." But, don't skip the small print! "Press the letter P key to enable simulating mouse responses. This is only recommended if your network policies do not permit adjusting your power or screen saver settings." And press P instead. Voila, it continues. Also possible, in the inline: "If Not bFail Then Goto PowerCheckPassLabel" Change this to: "If bFail Then Goto PowerCheckPassLabel" Also works. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Lidia Suarez Sent: 23 March 2011 02:50 To: e-prime at googlegroups.com Subject: Re: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? Hi all, Thanks for your replies. I will keep you informed about PST's reply as soon as I get it. I agree with David's reply: "I suspect however that Microsoft changed how programs can detect Standby/Hibernate functions and RefreshClockTest has not kept up with the change" Just to summarise: I am testing Eprime2 Prof (no Eprime 1.2). The RefreshClockTest needs to be run with the anti-virus, screensaver, standby, and hibernated functions off. Otherwise, a message prompts you to turn them off before continuing. If I turn off these on XP, RefreshClockTest works. If I turn these on Vista, RefreshClockTest ask me again to turn them off (when they are already turned off) and it cannot proceed with the test (this is different to David's case, who can proceed with the test). The same happened when I tried Windows 7. Eprime2 comes with the same manual than Eprime1.2...(no more information about new OS such as Vista). Thanks. Let's see what PST says... -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michiel.Spape at nottingham.ac.uk Wed Mar 23 10:10:16 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 23 Mar 2011 10:10:16 +0000 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <4d88b7ce.08412b0a.6a12.ffff9378SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hiya, I read the E-Basic Help and such (mainly MSDN SDKs) and the manual of my motherboard, but generally not VCR manuals! I find it rather depends on the inverse relationship between quality and complexity of the software, to be honest - Cubase (complex, good quality): guide/helpfiles are extremely necessary; FreeUndelete (simple, bad quality): guide/helpdfiles necessary. Even easier to work this out is by blindly walking forward with some new techy bit, stumbling over everything, then try to work it out from manuals, forums, helpfiles, friends. ... That said, I had to consult the manual of my hoover the other day :) Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 22 March 2011 14:53 To: e-prime at googlegroups.com Subject: RE: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? Mich, > how often do computer-geeks read manuals, despite their liking for > shouting RTFM? Hmm, then I must be the exception, because I always start by thoroughly reading whatever documentation I can find, and complain at any lack of documentation (e.g., E-Prime). I often say of myself & my job, "I'm the guy who reads the manuals." Best, -- David McFarlane, Professional Faultfinder (E.g, just read the manual for my new iPod, two manuals for Camtasia Studio, and still working through manuals for iPad and Evernote, etc.) -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From fblanco81 at gmail.com Wed Mar 23 20:58:56 2011 From: fblanco81 at gmail.com (Gilgamesh) Date: Wed, 23 Mar 2011 13:58:56 -0700 Subject: Logging multiple incorrect responses and their RT Message-ID: Hello everybody, I am currently programming a sequence learning task. It should work as follows: 1) Slide presenting stimulus. Responses are made via the keyword. 2) If the answer is correct, then it jumps to next trial. 3) If the answer is incorrect, then a sound is played and the slide stays on the screen. I have come up with several ways of doing this, but they are all unsatisfactory. The main problem is that I would like to log the number of incorrect responses as well as their reaction times. I wonder whether there is an elegant way of programming this. So far, my best attempt involves crazily looping: If slide.ACC = 0, then it jumps to a label placed right before the slide. The only RT that I am able to collect this way is that of the last, correct, response. The number of cycles in the loop (updated by a script) serves as a means to know the number of errors, but the RT data are overwritten on each cycle. In sum, awful solution. I'm sure it must be an elegant way to (a) make advancement of the slide contingent on the correct response and (b) collect both the number of incorrect attempts and their RTs. Any suggestion? Thanks in advance, Fernando -- 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. From pfc.groot at gmail.com Wed Mar 23 22:01:11 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Wed, 23 Mar 2011 23:01:11 +0100 Subject: Logging multiple incorrect responses and their RT In-Reply-To: <96427048-d0d1-41cc-bdec-c8f613337dd3@n10g2000yqf.googlegroups.com> Message-ID: Hi Fernando, The quick-and-dirty solution with the goto-to-label construction will actually work if you also add a c.log call before every goto-call (eprime will automatically call c.log at the end of the trial once). But you’re right. This is probably not considered an elegant solution. Another way to implement arbitrary loops is to add an additional ‘level’ to your experiment by using an extra list object for the repeating trials (i.e. place a new list object on the trial procedure). This list will loop ‘forever’ by setting the ‘exit list’ parameter to high value. Then move all trial objects to the procedure of this new list. Finally add a small inline script at the end of the subtrial that will terminate the sublist when a specific condition is met (i.e. if stim.ACC=1 then sublist.Terminate end if) Hope this helps, Paul 2011/3/23 Gilgamesh : > Hello everybody, > I am currently programming a sequence learning task. It should work as > follows: > 1) Slide presenting stimulus. Responses are made via the keyword. > 2) If the answer is correct, then it jumps to next trial. > 3) If the answer is incorrect, then a sound is played and the slide > stays on the screen. > > I have come up with several ways of doing this, but they are all > unsatisfactory. The main problem is that I would like to log the > number of incorrect responses as well as their reaction times. I > wonder whether there is an elegant way of programming this. > > So far, my best attempt involves crazily looping: If slide.ACC = 0, > then it jumps to a label placed right before the slide. The only RT > that I am able to collect this way is that of the last, correct, > response. The number of cycles in the loop (updated by a script) > serves as a means to know the number of errors, but the RT data are > overwritten on each cycle. In sum, awful solution. > > I'm sure it must be an elegant way to (a) make advancement of the > slide contingent on the correct response and (b) collect both the > number of incorrect attempts and their RTs. > Any suggestion? > > Thanks in advance, > Fernando > > -- > 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. > > -- 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. From francesco.biondi1 at gmail.com Thu Mar 24 11:23:09 2011 From: francesco.biondi1 at gmail.com (francesco biondi) Date: Thu, 24 Mar 2011 04:23:09 -0700 Subject: Time Sync Message-ID: hi everyone im new to e-prime and to this group too. I m trying to send signals from a simulator to e-prime in order to sync 2 data streams i want e-prime to read this signal several times during the exp (a 35 min experiment in which the subject has to response with a mic when an item - 100 in total - appears) my design consists in a "display object->vocal response->feedback" and so on for 100 items my question is, how can i implement inside the e-prime design a command that let e-prime reads this signal every loop (100 item = 100 loop)?' can you help me?? -- 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. From baltimore.ben at gmail.com Thu Mar 24 13:17:36 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Thu, 24 Mar 2011 09:17:36 -0400 Subject: Logging multiple incorrect responses and their RT In-Reply-To: Message-ID: if you expect only a small, finite number of incorrect responses, my solution might be to add that many additional objects to the procedure time-line, each one set up to collect responses, and each one set to Jump to an End-Of-Trial Label once a correct response is made. to use the Jump functionality of the response collecting objects isn't always super intuitive. you would add one keyboard Input Mask with Allowable Responses set to your incorrect response possibilities and End Action set to Terminate, and another keyboard Input Mask with only your correct response included in the Allowable Responses with the End Action set to Jump, then add the name of your End-Of-Trial Label to the Jump Label field. ben On Wed, Mar 23, 2011 at 6:01 PM, Paul Groot wrote: > Hi Fernando, > > The quick-and-dirty solution with the goto-to-label construction will > actually work if you also add a c.log call before every goto-call > (eprime will automatically call c.log at the end of the trial once). > But you’re right. This is probably not considered an elegant solution. > > Another way to implement arbitrary loops is to add an additional > ‘level’ to your experiment by using an extra list object for the > repeating trials (i.e. place a new list object on the trial > procedure). This list will loop ‘forever’ by setting the ‘exit list’ > parameter to high value. Then move all trial objects to the procedure > of this new list. Finally add a small inline script at the end of the > subtrial that will terminate the sublist when a specific condition is > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > Hope this helps, > Paul > > 2011/3/23 Gilgamesh : > > Hello everybody, > > I am currently programming a sequence learning task. It should work as > > follows: > > 1) Slide presenting stimulus. Responses are made via the keyword. > > 2) If the answer is correct, then it jumps to next trial. > > 3) If the answer is incorrect, then a sound is played and the slide > > stays on the screen. > > > > I have come up with several ways of doing this, but they are all > > unsatisfactory. The main problem is that I would like to log the > > number of incorrect responses as well as their reaction times. I > > wonder whether there is an elegant way of programming this. > > > > So far, my best attempt involves crazily looping: If slide.ACC = 0, > > then it jumps to a label placed right before the slide. The only RT > > that I am able to collect this way is that of the last, correct, > > response. The number of cycles in the loop (updated by a script) > > serves as a means to know the number of errors, but the RT data are > > overwritten on each cycle. In sum, awful solution. > > > > I'm sure it must be an elegant way to (a) make advancement of the > > slide contingent on the correct response and (b) collect both the > > number of incorrect attempts and their RTs. > > Any suggestion? > > > > Thanks in advance, > > Fernando > > > > -- > > 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. > > > > > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michiel.Spape at nottingham.ac.uk Thu Mar 24 14:18:44 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 24 Mar 2011 14:18:44 +0000 Subject: Time drift between 2 different data streams In-Reply-To: <223099d9-6f3d-4b61-a52a-2b39276c86a8@d16g2000yqd.googlegroups.com> Message-ID: Hi, Did you just repeat the question? Anyway, the answer isn't much use, I would think; gigo, one might say. "i want e-prime to read this signal several times during the exp; how can i do it? best, which command i have to use to let e-prime do it? do you think it's possible let e-prime to read the signal every, for example, 20 minutes , or it's better send this signal from the simulator every cycle (100 cycles - 100 identical item - in 35 minutes) and let e-prime read it everytime?" This betrays a lack of knowledge of E-Prime, or poor wording, but in any case: E-Prime isn't very good at doing things in parallel or in terms of "read signal every 20 minutes", because it is heavily structured around principles that make sense for psychologists: trials, blocks, sessions. So, yes, if you want to read something every trial, or block, it shouldn't be too hard. But this depends on whatever you're doing with the experiment and your structuring so I, nor other people who lack telepathic abilities, cannot tell you. You might wish to start by explaining how the two systems are connected: serial cable? LAN? What are they doing? Is E-Prime merely logging your voice-key data, not presenting anything? In order to cope with drift, the two systems have to sync sometimes, therefore, connecting them will probably prove inevitable. This, in turn, may be less straightforward than you might think, so careful explanation is required for me to help you. Also, if E-Prime doesn't do much (other than logging voice-key), you might wish to just get rid of E-Prime and do everything in the simulator - have that log the voicekey thing. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi Sent: 23 March 2011 09:38 To: E-Prime Subject: Re: Time drift between 2 different data streams Thanks for the answer. I m trying to send signals from the simulator to e-prime. i want e-prime to read this signal several times during the exp; how can i do it? best, which command i have to use to let e-prime do it? do you think it's possible let e-prime to read the signal every, for example, 20 minutes , or it's better send this signal from the simulator every cycle (100 cycles - 100 identical item - in 35 minutes) and let e-prime read it everytime? On Mar 22, 10:33 am, Michiel Spape wrote: > Hi, > This is a weird problem, but I would assume (hope?) that the time you get from the simulator is the problem, not the one from E-Prime. If you think it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you running E-Prime on some kind of laptop or computer with dynamic processor? > Anyway, this is why, generally, if you use two different data streams, you synchronise more often - try to implement that. Scaling the clock is unlikely to work, since it's very probable that the time drift isn't linear, so if, for instance, the time drift occurred halfway during the experiment, a linear correction would make ALL your data invalid, rather than half of it. > Also, you could try send live pulses from E-Prime to the simulator and just use all the data in there (or vice versa). A bit of work, but it saves despairing afterwards. > > Best, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi > Sent: 21 March 2011 16:12 > To: E-Prime > Subject: Time drift between 2 different data streams > > Hello!! > I m using eprime in a experiment where a subject, driving a simulator, > has to use a microphone connected with a SRBox. > After merged the data from the 2 different data streams, i ve noticed > a time drift occurred between the 2 streams : e-prime times - > synchronized with the simulator times during the first part of the exp > - were drifted by the simulator times of 2.5 seconds at the end of the > experiment. > Do you know how i can solve this problem? > rescaling the eprime clock could help me? > > -- > 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 athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it.   Please do not use, copy or disclose the information contained in this message or in any attachment.  Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From fluencystudy at gmail.com Thu Mar 24 17:26:43 2011 From: fluencystudy at gmail.com (signy) Date: Thu, 24 Mar 2011 10:26:43 -0700 Subject: programming a test for assessing order memory Message-ID: Hi all, I am having some trouble programming a new experiment. in this experiment, participants are shown 8 words, one at a time. in a test phase, they are then given 2,4 or 6 words and asked to state the order that these words were presented. I can program the study phase fine, but I am unsure how to present multiple stim on one screen for the order test phase. The way I have it set up now is there are blocked test phases: arrange 2 words test phase arrange 4 words test phase arrange 6 words test phase What I am unsure about is presenting 2,4or 6 words, randomly selected from the study list of 8 words on the screen at once (the response will be verbal, so input is not necessary). Thanks for any help! best, Signy -- 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. From mcfarla9 at msu.edu Thu Mar 24 19:03:06 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 24 Mar 2011 15:03:06 -0400 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: At 3/22/2011 10:49 PM Tuesday, Lidia Suarez wrote: >Thanks for your replies. I will keep you informed about PST's reply >as soon as I get it. I agree with David's reply: >"I suspect however that Microsoft changed how programs can detect >Standby/Hibernate functions and RefreshClockTest has not kept up >with the change" > > Just to summarise: >I am testing Eprime2 Prof (no Eprime 1.2). The RefreshClockTest >needs to be run with the anti-virus, screensaver, standby, and >hibernated functions off. Otherwise, a message prompts you to turn >them off before continuing. If I turn off these on XP, >RefreshClockTest works. If I turn these on Vista, RefreshClockTest >ask me again to turn them off (when they are already turned off) and >it cannot proceed with the test (this is different to David's case, >who can proceed with the test). Just to clarify, by "I just ignore it and proceed" I meant that I press P, as Mich explained (thanks). > The same happened when I tried Windows 7. Eprime2 comes with the > same manual than Eprime1.2...(no more information about new OS such as Vista). Indeed. The Getting Started Guide for EP2 is new, and so is the New Features Guide (which looks like manual pages that will later get incorporated into the User's Guide, so do not ignore this). But, as explicitly spelled out on p. 3 or 4 of the .pdf files for the EP2 User's Guide and Reference Guide, "This documentation is a work in progress. What follows is the original Version 1 documentation." >Thanks. Let's see what PST says... -- 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. From nusphd at gmail.com Fri Mar 25 02:56:19 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Fri, 25 Mar 2011 10:56:19 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <4d8b956c.4e40e70a.6876.027eSMTPIN_ADDED@gmr-mx.google.com> Message-ID: Dear Mich and David, Thanks again. Now everything is alright. I learnt my lesson: 1. Read the small letter (press P) when using RefreshClockTest in Vista or Windows 7. 2. Read the manuals (in detail and the latest ones). Re-read the manual and look for answers in all the guides (no just one). 3. Download from PST the updated versions and test them before complaining... I really appreciate your help. PST has not replied to these questions yet. I do not know what I would do without all the help received from this forum. Thanks. Regards, Lidia -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonello.puglia at gmail.com Fri Mar 25 09:50:11 2011 From: antonello.puglia at gmail.com (Antonello Puglia) Date: Fri, 25 Mar 2011 10:50:11 +0100 Subject: programming a test for assessing order memory In-Reply-To: <1b8e2b4b-65b3-40d0-a6c0-75008d1414c6@i39g2000prd.googlegroups.com> Message-ID: Hi Signy, I had the same problem, but with 9 pictures. I tried this and it works! Check it out This can be done using a nested List object. For example, you would have your TrialList set up with 9 attributes (e.g., Image1, Image2, etc or words). In the Nested column of the TrialList, you would enter StimList. This will create a new nested List object. Inside the StimList, add 8 rows to make 9 total, and add a single attribute named "Stim". Under the Stim attribute, list all of the possible image files that will be presented on the Slide. Click the Property Pages icon and set the sampling to random. In the TrialList, you will use colon syntax to sample 9 items randomly from the StimList. Under the Image1 attribute, enter [Stim:0] under Image2, enter [Stim:1] and so on up to [Stim:8]. At run-time, E-Prime will select the sequence of images randomly. On your Slide object, each SlideImage sub-object should have its filename property set to [Image1] [Image2] and so on. E-Prime will randomly select the image presented in each SlideImage, creating a different sequence for each subject. Please be sure to take a look at the E-Prime User's Guide for more information on nested List objects and colon syntax. I hope that this has been helpful. Best regards Antonello 2011/3/24 signy > Hi all, > I am having some trouble programming a new experiment. > in this experiment, participants are shown 8 words, one at a time. > in a test phase, they are then given 2,4 or 6 words and asked to state > the order that these words were presented. > > I can program the study phase fine, but I am unsure how to present > multiple stim on one screen for the order test phase. > The way I have it set up now is there are blocked test phases: > arrange 2 words test phase > arrange 4 words test phase > arrange 6 words test phase > > What I am unsure about is presenting 2,4or 6 words, randomly selected > from the study list of 8 words on the screen at once (the response > will be verbal, so input is not necessary). > > Thanks for any help! > > best, > Signy > > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ashtyster at gmail.com Fri Mar 25 16:50:13 2011 From: ashtyster at gmail.com (Ashtyster) Date: Fri, 25 Mar 2011 09:50:13 -0700 Subject: frequency of cursor position recording Message-ID: Hi! I've gotten a bit confused trying to understand how to set the frequency of cursor position recording in E-Prime. I am presenting images and recording mouse cursor positions while subjects view the images. I would like to set the "sampling rate" for the cursor position recording to 50 Hz. The in-line script has the following sampling rate preset: 'Give some time back (required) - i.e. sampling rate. Sleep 20 DoEvents What I am confused about is what does this '20' value mean? Does it mean 20 cycles per second? I would appreciate if somebody could answer this question. All best, Ashtyster -- 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. From francesco.biondi at ymail.com Fri Mar 25 18:43:52 2011 From: francesco.biondi at ymail.com (francesco.biondi at ymail.com) Date: Fri, 25 Mar 2011 19:43:52 +0100 Subject: Time drift between 2 different data streams In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DDC30BCBC@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: thank you for the reply!! about the first question, the systems are connnectend by parallel cable. About the experiment, it s structured as follow stimulus (sent by the simulator) -> vocal response given by the subject using a mic connected with a SRBox ->Feedback (and so on with the other 99 loops) About what e-prime is doing Yes, E-prime merely logging voice-key data. Every stimuli are sent from a driving simulator. The simulator send a signal (via parallel port) at the start, and another at the end, of the experiment. With two "while loops" we control the start and the and of the experiment. E-prime exits from "while loop" when it reads the signal sent from the simulator. we know the time when the simulator send the signal and the time when E-prime reads this signal. So I can calculate the time difference between the simultator and the PC.The difference at the start is less than the difference at the end. But I don't know if this difference linearly increases. I m trying to read signal from the simulator during the experiment, but we can't create a loop while the experiment runs, maybe because the stimulus is presented when E-prime "is waiting the signal" and we don't want so. So far, I didnt find any script line that makes this sync (i.e. read the signal sent from the simulator) during the experiment, but only at the start and at the end as described above. About the possibility to use the simulator both for driving and for logging mic responses, I cant do it; we need to use another pc. I wish you can help me! Thank you in advance Francesco Biondi 2011/3/24 Michiel Spape > Hi, > Did you just repeat the question? Anyway, the answer isn't much use, I > would think; gigo, one might say. > "i want e-prime to read this signal several times during the exp; how can i > do it? best, which command i have to use to let e-prime do it? do you think > it's possible let e-prime to read the signal every, for example, 20 minutes > , or it's better send this signal from the simulator every cycle (100 cycles > - 100 identical item - in 35 minutes) and let e-prime read it everytime?" > > This betrays a lack of knowledge of E-Prime, or poor wording, but in any > case: E-Prime isn't very good at doing things in parallel or in terms of > "read signal every 20 minutes", because it is heavily structured around > principles that make sense for psychologists: trials, blocks, sessions. So, > yes, if you want to read something every trial, or block, it shouldn't be > too hard. But this depends on whatever you're doing with the experiment and > your structuring so I, nor other people who lack telepathic abilities, > cannot tell you. You might wish to start by explaining how the two systems > are connected: serial cable? LAN? What are they doing? Is E-Prime merely > logging your voice-key data, not presenting anything? In order to cope with > drift, the two systems have to sync sometimes, therefore, connecting them > will probably prove inevitable. This, in turn, may be less straightforward > than you might think, so careful explanation is required for me to help you. > Also, if E-Prime doesn't do much (other than logging voice-key), you might > wish to just get rid of E-Prime and do everything in the simulator - have > that log the voicekey thing. > > > Best, > Mich > > > > > > > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf > Of francesco biondi > Sent: 23 March 2011 09:38 > To: E-Prime > Subject: Re: Time drift between 2 different data streams > > Thanks for the answer. > I m trying to send signals from the simulator to e-prime. > i want e-prime to read this signal several times during the exp; how > can i do it? > best, which command i have to use to let e-prime do it? > do you think it's possible let e-prime to read the signal every, for > example, 20 minutes , or it's better > send this signal from the simulator every cycle (100 cycles - 100 > identical item - in 35 minutes) and let e-prime read it everytime? > > On Mar 22, 10:33 am, Michiel Spape > wrote: > > Hi, > > This is a weird problem, but I would assume (hope?) that the time you get > from the simulator is the problem, not the one from E-Prime. If you think > it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you > running E-Prime on some kind of laptop or computer with dynamic processor? > > Anyway, this is why, generally, if you use two different data streams, > you synchronise more often - try to implement that. Scaling the clock is > unlikely to work, since it's very probable that the time drift isn't linear, > so if, for instance, the time drift occurred halfway during the experiment, > a linear correction would make ALL your data invalid, rather than half of > it. > > Also, you could try send live pulses from E-Prime to the simulator and > just use all the data in there (or vice versa). A bit of work, but it saves > despairing afterwards. > > > > Best, > > Mich > > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > > > > > > > > > > > > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On > Behalf Of francesco biondi > > Sent: 21 March 2011 16:12 > > To: E-Prime > > Subject: Time drift between 2 different data streams > > > > Hello!! > > I m using eprime in a experiment where a subject, driving a simulator, > > has to use a microphone connected with a SRBox. > > After merged the data from the 2 different data streams, i ve noticed > > a time drift occurred between the 2 streams : e-prime times - > > synchronized with the simulator times during the first part of the exp > > - were drifted by the simulator times of 2.5 seconds at the end of the > > experiment. > > Do you know how i can solve this problem? > > rescaling the eprime clock could help me? > > > > -- > > 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 athttp:// > groups.google.com/group/e-prime?hl=en. > > > > This message and any attachment are intended solely for the addressee and > may contain confidential information. If you have received this message in > error, please send it back to me, and immediately delete it. Please do not > use, copy or disclose the information contained in this message or in any > attachment. Any views or opinions expressed by the author of this email do > not necessarily reflect the views of the University of Nottingham. > > > > 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. > > This message and any attachment are intended solely for the addressee and > may contain confidential information. If you have received this message in > error, please send it back to me, and immediately delete it. Please do not > use, copy or disclose the information contained in this message or in any > attachment. Any views or opinions expressed by the author of this email do > not necessarily reflect the views of the University of Nottingham. > > 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. > > -- *Francesco Biondi* -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Fri Mar 25 21:54:51 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Fri, 25 Mar 2011 22:54:51 +0100 Subject: frequency of cursor position recording In-Reply-To: <137451c7-2e50-4483-8fa1-dd26c597779e@k15g2000prk.googlegroups.com> Message-ID: Hi Ashtyster, The sleep instruction simple puts the running script in 'idle'mode for the specified number of milliseconds. Windows can use this time to allow other processes to consume some CPU time. This construction is often used in loops to prevent the system to become stalled. A duration of about 20 milliseconds might be sensible on systems that are connected to a display at 50Hz. The value could even slightly less on systems with a typical refresh rate of 70-80Hz. However, windows will probably update the mouse cursor position completely independend of the refresh cycle, so the temporal resolution might be very different... Also, the DoEvent function is probably a leftover from the standard basic language. It is used to allow other applications to handle the message queue. I would normally not include this call in eprime experiments. best, Paul 2011/3/25 Ashtyster : > Hi! > > I've gotten a bit confused trying to understand how to set the > frequency of cursor position recording in E-Prime. > > I am presenting images and recording mouse cursor positions while > subjects view the images. I would like to set the "sampling rate" for > the cursor position recording to 50 Hz. The in-line script has the > following sampling rate preset: > > 'Give some time back (required) - i.e. sampling rate. > Sleep 20 > DoEvents > > What I am confused about is what does this '20' value mean? Does it > mean 20 cycles per second? > > I would appreciate if somebody could answer this question. > > All best, > Ashtyster > > -- > 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. > > -- 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. From nusphd at gmail.com Mon Mar 28 06:17:16 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Mon, 28 Mar 2011 14:17:16 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Dear all, If any of you is having problems with sound and Vista or Windows 7, this may be useful. *This is the reply I have received from PST regarding this problem:* Here is what you should know about running E-Prime 2.0 and 1.x on Vista and 7 machines. This article provides more details on running 1.x on Vista/7 machines: INFO: E-Prime 1.x Support for Windows Vista. Until formal timing tests can be performed on a number of Windows Vista machines running E-Prime, PST encourages the use of E-Prime and Windows Vista only for design and testing purposes. Subject stations that are collecting data should be directed to Windows XP and Windows 2000 machines. I suggest that you keep using E-Prime 2.0 because the only version of E-Prime that has been tested and verified on Vista/7 machines is version 2.0.8.90. While PST has not officially published timing results for Windows 7, E-Prime 2.0.8.90 and later versions have been approved for Windows 7 x86/x64, Windows Vista SP2 x86/x64, and Windows XP SP3 x86 with the exception of Windows 7 or Vista paradigms that require sound startup latency values of less than 30ms. We have delayed publishing the timing results while we continue to work on consistent audio timing. PST is currently verifying a variety of sound drivers and recommends the use of Windows XP for experiments with sound related timing until further notice. PST intends to provide a more formal statement about Windows 7 shortly. Please check this article for updates: INFO: Windows 7 support in E-Prime. All of this said, I was able to run your experiment without any crashing on a Windows 7 machine. This leads me to believe that you can make some changes to your computer that should stop the crashes. Here are some steps to try: 1) Ensure that you have the latest version of E-Prime, which is 2.0.8.90. You can verify this by opening E-Studio and going to Help - About E-Studio. If you want to download the latest version, you can access the download via the Download/E-Prime/E-Prime 2.0 Release Candidate links to the left. Make sure that you download and install the version that matches the license you purchased (i.e., E-Prime 2.0 Standard or E-Prime 2.0 Professional). 2) Please use CodecConfig to check the codecs on your computer. This article contains instructions on this as well as links to codecs you may want to download and install: FEATURE: CodecConfig provides ability to choose codecs used for Movie and Sound rendering . 3) Disable or shutdown any background applications that may be causing a conflict. Here is an article with more information on that: INFO: How to use MSCONFIG to troubleshoot machine configuration and reduce background applications . -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ashtyster at gmail.com Mon Mar 28 09:17:08 2011 From: ashtyster at gmail.com (Ashtyster) Date: Mon, 28 Mar 2011 02:17:08 -0700 Subject: frequency of cursor position recording In-Reply-To: Message-ID: Hi Paul, thank you for your reply. So if I understand you correctly, I should just calculate temporal resolution from the output, and adjust the sleep value according to the temporal resolution I'd like to have? All best, A. On Mar 25, 11:54 pm, Paul Groot wrote: > Hi Ashtyster, > > The sleep instruction simple puts the running script in 'idle'mode for > the specified number of milliseconds. Windows can use this time to > allow other processes to consume some CPU time. This construction is > often used in loops to prevent the system to become stalled. A > duration of about 20 milliseconds might be sensible on systems that > are connected to a display at 50Hz. The value could even slightly less > on systems with a typical refresh rate of 70-80Hz. However, windows > will probably update the mouse cursor position completely independend > of the refresh cycle, so the temporal resolution might be very > different... > > Also, the DoEvent function is probably a leftover from the standard > basic language. It is used to allow other applications to handle the > message queue. I would normally not include this call in eprime > experiments. > > best, > Paul > > 2011/3/25 Ashtyster : > > > > > > > > > Hi! > > > I've gotten a bit confused trying to understand how to set the > > frequency of cursor position recording in E-Prime. > > > I am presenting images and recording mouse cursor positions while > > subjects view the images. I would like to set the "sampling rate" for > > the cursor position recording to 50 Hz. The in-line script has the > > following sampling rate preset: > > > 'Give some time back (required) - i.e. sampling rate. > > Sleep 20 > > DoEvents > > > What I am confused about is what does this '20' value mean? Does it > > mean 20 cycles per second? > > > I would appreciate if somebody could answer this question. > > > All best, > > Ashtyster > > > -- > > 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 athttp://groups.google.com/group/e-prime?hl=en. -- 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. From mcfarla9 at msu.edu Mon Mar 28 18:26:03 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 28 Mar 2011 14:26:03 -0400 Subject: frequency of cursor position recording In-Reply-To: <3de46ffc-ad23-4c8b-babd-978037f721c7@g3g2000prg.googlegrou ps.com> Message-ID: Ashtyster, If I may jump in here... So, e.g., for a sampling rate of 50 Hz, you could use Sleep 20 (i.e., same as your example), or, for slightly better documentation, Sleep 1000/50 or, for even better documentation without "magic numbers", Const SampleRate_Hz as Long = 50 Sleep 1000/SampleRate_Hz Now, I don't quite trust the Sleep command myself -- what happens if some process interrupts during the Sleep? Then the effective duration of the Sleep will be a little longer, and with each delay things get more desynchronized (note that this acts exactly the same as E-Prime's Event timing mode, see Chapter 3 of the User's Guide that came with E-Prime). If you need to keep things better synchronized (i.e., more like E-Prime's Cumulative timing mode), then you will have to roll your own delay loop, something like Const SampleRate_Hz as Long = 50 Const tSample_ms as Long = 1000/SampleRate_Hz Dim tDelay as Long tNext = Clock.Read ' initialize *once* at the start of the sampling loop Do Until tNext = tNext + tSample_ms Do Until Clock.Read >= tNext Loop Loop Now the mouse cursor will be sampled on more or less exact 20 ms boundaries, with minimal drift. Note that this method also does not completely stall your program in between mouse cursor samples. BTW, you can find the Sleep command, and much more besides, documented in the online E-Basic Help. -- David McFarlane, Professional Faultfinder At 3/28/2011 05:17 AM Monday, you wrote: >Hi Paul, > >thank you for your reply. > >So if I understand you correctly, I should just calculate temporal >resolution from the output, and adjust the sleep value according to >the temporal resolution I'd like to have? > >All best, >A. > >On Mar 25, 11:54 pm, Paul Groot wrote: > > Hi Ashtyster, > > > > The sleep instruction simple puts the running script in 'idle'mode for > > the specified number of milliseconds. Windows can use this time to > > allow other processes to consume some CPU time. This construction is > > often used in loops to prevent the system to become stalled. A > > duration of about 20 milliseconds might be sensible on systems that > > are connected to a display at 50Hz. The value could even slightly less > > on systems with a typical refresh rate of 70-80Hz. However, windows > > will probably update the mouse cursor position completely independend > > of the refresh cycle, so the temporal resolution might be very > > different... > > > > Also, the DoEvent function is probably a leftover from the standard > > basic language. It is used to allow other applications to handle the > > message queue. I would normally not include this call in eprime > > experiments. > > > > best, > > Paul > > > > 2011/3/25 Ashtyster : > > > Hi! > > > > > I've gotten a bit confused trying to understand how to set the > > > frequency of cursor position recording in E-Prime. > > > > > I am presenting images and recording mouse cursor positions while > > > subjects view the images. I would like to set the "sampling rate" for > > > the cursor position recording to 50 Hz. The in-line script has the > > > following sampling rate preset: > > > > > 'Give some time back (required) - i.e. sampling rate. > > > Sleep 20 > > > DoEvents > > > > > What I am confused about is what does this '20' value mean? Does it > > > mean 20 cycles per second? > > > > > I would appreciate if somebody could answer this question. > > > > > All best, > > > Ashtyster -- 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. From ashtyster at gmail.com Tue Mar 29 09:02:40 2011 From: ashtyster at gmail.com (Ashtyster) Date: Tue, 29 Mar 2011 02:02:40 -0700 Subject: frequency of cursor position recording In-Reply-To: <4d90d2ff.44842a0a.5e63.4b21SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hi David, thank you very much for such a detailed explanation! I'll follow your advice. All best, A. On Mar 28, 8:26 pm, David McFarlane wrote: > Ashtyster, > > If I may jump in here... > > So, e.g., for a sampling rate of 50 Hz, you could use > > Sleep 20 > > (i.e., same as your example), or, for slightly better documentation, > > Sleep 1000/50 > > or, for even better documentation without "magic numbers", > > Const SampleRate_Hz as Long = 50 > Sleep 1000/SampleRate_Hz > > Now, I don't quite trust the Sleep command myself -- what happens if > some process interrupts during the Sleep?  Then the effective > duration of the Sleep will be a little longer, and with each delay > things get more desynchronized (note that this acts exactly the same > as E-Prime's Event timing mode, see Chapter 3 of the User's Guide > that came with E-Prime).  If you need to keep things better > synchronized (i.e., more like E-Prime's Cumulative timing mode), then > you will have to roll your own delay loop, something like > > Const SampleRate_Hz as Long = 50 > Const tSample_ms as Long = 1000/SampleRate_Hz > Dim  tDelay as Long > tNext = Clock.Read  ' initialize *once* at the start of the sampling loop > Do Until >       >      tNext = tNext + tSample_ms >      Do Until Clock.Read >= tNext >           >      Loop > Loop > > Now the mouse cursor will be sampled on more or less exact 20 ms > boundaries, with minimal drift.  Note that this method also does not > completely stall your program in between mouse cursor samples. > > BTW, you can find the Sleep command, and much more besides, > documented in the online E-Basic Help. > > -- David McFarlane, Professional Faultfinder > > At 3/28/2011 05:17 AM Monday, you wrote: > > > > > > > > >Hi Paul, > > >thank you for your reply. > > >So if I understand you correctly, I should just calculate temporal > >resolution from the output, and adjust the sleep value according to > >the temporal resolution I'd like to have? > > >All best, > >A. > > >On Mar 25, 11:54 pm, Paul Groot wrote: > > > Hi Ashtyster, > > > > The sleep instruction simple puts the running script in 'idle'mode for > > > the specified number of milliseconds. Windows can use this time to > > > allow other processes to consume some CPU time. This construction is > > > often used in loops to prevent the system to become stalled. A > > > duration of about 20 milliseconds might be sensible on systems that > > > are connected to a display at 50Hz. The value could even slightly less > > > on systems with a typical refresh rate of 70-80Hz. However, windows > > > will probably update the mouse cursor position completely independend > > > of the refresh cycle, so the temporal resolution might be very > > > different... > > > > Also, the DoEvent function is probably a leftover from the standard > > > basic language. It is used to allow other applications to handle the > > > message queue. I would normally not include this call in eprime > > > experiments. > > > > best, > > > Paul > > > > 2011/3/25 Ashtyster : > > > > Hi! > > > > > I've gotten a bit confused trying to understand how to set the > > > > frequency of cursor position recording in E-Prime. > > > > > I am presenting images and recording mouse cursor positions while > > > > subjects view the images. I would like to set the "sampling rate" for > > > > the cursor position recording to 50 Hz. The in-line script has the > > > > following sampling rate preset: > > > > > 'Give some time back (required) - i.e. sampling rate. > > > > Sleep 20 > > > > DoEvents > > > > > What I am confused about is what does this '20' value mean? Does it > > > > mean 20 cycles per second? > > > > > I would appreciate if somebody could answer this question. > > > > > All best, > > > > Ashtyster -- 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. From pfc.groot at gmail.com Tue Mar 29 16:19:52 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Tue, 29 Mar 2011 18:19:52 +0200 Subject: frequency of cursor position recording In-Reply-To: <3de46ffc-ad23-4c8b-babd-978037f721c7@g3g2000prg.googlegroups.com> Message-ID: Well, if you would like to keep in sync with the refresh cycle of the monitor, you should go for the Display.WaitForVerticalBlank function instead of using a fixed sleep duration. A combination of the sleep and display.CalculatedRefreshDuration functions will also work, but that construction will not stay in phase with the real refresh cycle. (Although this is not very critical for tracking mouse position.) P. 2011/3/28 Ashtyster : > Hi Paul, > > thank you for your reply. > > So if I understand you correctly, I should just calculate temporal > resolution from the output, and adjust the sleep value according to > the temporal resolution I'd like to have? > > All best, > A. > > On Mar 25, 11:54 pm, Paul Groot wrote: >> Hi Ashtyster, >> >> The sleep instruction simple puts the running script in 'idle'mode for >> the specified number of milliseconds. Windows can use this time to >> allow other processes to consume some CPU time. This construction is >> often used in loops to prevent the system to become stalled. A >> duration of about 20 milliseconds might be sensible on systems that >> are connected to a display at 50Hz. The value could even slightly less >> on systems with a typical refresh rate of 70-80Hz. However, windows >> will probably update the mouse cursor position completely independend >> of the refresh cycle, so the temporal resolution might be very >> different... >> >> Also, the DoEvent function is probably a leftover from the standard >> basic language. It is used to allow other applications to handle the >> message queue. I would normally not include this call in eprime >> experiments. >> >> best, >> Paul >> >> 2011/3/25 Ashtyster : >> >> >> >> >> >> >> >> > Hi! >> >> > I've gotten a bit confused trying to understand how to set the >> > frequency of cursor position recording in E-Prime. >> >> > I am presenting images and recording mouse cursor positions while >> > subjects view the images. I would like to set the "sampling rate" for >> > the cursor position recording to 50 Hz. The in-line script has the >> > following sampling rate preset: >> >> > 'Give some time back (required) - i.e. sampling rate. >> > Sleep 20 >> > DoEvents >> >> > What I am confused about is what does this '20' value mean? Does it >> > mean 20 cycles per second? >> >> > I would appreciate if somebody could answer this question. >> >> > All best, >> > Ashtyster >> >> > -- >> > 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 athttp://groups.google.com/group/e-prime?hl=en. > > -- > 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. > > -- 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. From Jedema at pitt.edu Tue Mar 29 16:37:00 2011 From: Jedema at pitt.edu (Hank Jedema) Date: Tue, 29 Mar 2011 09:37:00 -0700 Subject: synchronize event markers with refresh rate Message-ID: Hi All, I am trying to run a stop signal response task while recording electrophysiological activity on another setup. In order to get synchronization of behavior with the timing of my recordings, I have E- prime sent out event markers via the parallel port to an input of my recording device. It seems that this works well responses, but it seems that E-prime sends out the event markers for the display of stimuli before the stimulus actually appears on the screen: the eventmarker/timestamp is sent when the code issues the request for the stimulus to appear, rather than when the stimulus actually appears on the screen (i.e at the vertical blank/screen refresh after the stimulus.onset delay). Is there a way to get the event marker signal to synchronize with the actual appearance of the stimulus or is this something that can only be corrected offline by correcting the timestamps for stimulus appearance with their onset delay ? Thanks very much for your help. Hank -- 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. From mcfarla9 at msu.edu Tue Mar 29 19:21:37 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 29 Mar 2011 15:21:37 -0400 Subject: synchronize event markers with refresh rate In-Reply-To: <8aef5508-b66b-4b15-a5ab-ff85f60e6022@v11g2000prb.googlegro ups.com> Message-ID: Hank, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. (Flash -- As noted in the most recent PST e-mail Newsletter, we can all now access the E-Prime Knowledge Base without having to log in. Woo hoo!) That said, here is my take... Hmm. Could you post some details on how you measured this discrepancy? Are you using the "OnsetSignal..." properties of the stimulus to send your signals to your device? And are you sure that you have Onset Sync set to "vertical blank" for your stimulus? I have to admit that the documentation in the online E-Basic Help remains vague on when exactly OnsetSignal is supposed to send its signal -- At the StartTime of the stimulus? TargetOnsetTime? OnsetTime? ActionTime? (See the EP manuals for explanation of these items, or my own discussion at http://groups.google.com/group/e-prime/browse_thread/thread/39e899d3457d4917 ). But let's suppose that OnsetSignal acts at the OnsetTime. Then, as I understand it, as long as Onset Sync is set to "vertical blank", then, once EP reaches the TargetOnsetTime for the stimulus, it further withholds the stimulus until the next vertical blank, then presents the stimulus (which should now appear almost simultaneously on the screen), sends the OnsetSignal, and considers this the actual OnsetTime. Thus, there would be no way for the OnsetSignal to not be synchronized with the vertical blank, unless you do not have Onset Sync set to "vertical blank", or I am just wrong about how OnsetSignal works. So again, we need to know (1) whether the OnsetSignal really does always coincide with the stimulus OnsetTime, and (2) whether you have Onset Sync set to "vertical blank". Although I have measured many of these things in detail myself, I have not yet done so for this exact issue, so I will be interested to learn of your methodology and measurements. -- David McFarlane, Professional Faultfinder >I am trying to run a stop signal response task while recording >electrophysiological activity on another setup. In order to get >synchronization of behavior with the timing of my recordings, I have E- >prime sent out event markers via the parallel port to an input of my >recording device. It seems that this works well responses, but it >seems that E-prime sends out the event markers for the display of >stimuli before the stimulus actually appears on the screen: the >eventmarker/timestamp is sent when the code issues the request for the >stimulus to appear, rather than when the stimulus actually appears on >the screen (i.e at the vertical blank/screen refresh after the >stimulus.onset delay). Is there a way to get the event marker signal >to synchronize with the actual appearance of the stimulus or is this >something that can only be corrected offline by correcting the >timestamps for stimulus appearance with their onset delay ? > >Thanks very much for your help. > >Hank -- 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. From demiral.007 at googlemail.com Tue Mar 29 21:29:45 2011 From: demiral.007 at googlemail.com (Baris Demiral) Date: Tue, 29 Mar 2011 22:29:45 +0100 Subject: synchronize event markers with refresh rate In-Reply-To: <8aef5508-b66b-4b15-a5ab-ff85f60e6022@v11g2000prb.googlegroups.com> Message-ID: Hank, In practice, there is no trigger which can be sent on the exact complete onset of the stimulus. Only thing is that the trigger can best be written out when the stimulus is started to be written on the screen. In LCD monitors this is a bit different but lets come to the main issue. There are some strategies that you can follow in order to minimize the trigger jitters between the trials in e-prime. I will list these for you. But beforehand you need to know i) what the refresh rate of your monitor is ii) what your digital loading (on the digital card) is on your LCD monitor (if you are using one). Try to set the duration of the object (which I will can Y) preceding the main object (which I will call X, that you will send trigger to be marked for the onset) to be the multiples of the refresh rate. First option: Maybe the best option is to use something like: *X.OnsetSignalEnabled* *X.OnsetSignalPort X.OnsetSignalData* * * *where* "X" *is the *actual name of the object *on which the *property is being set. Write an inline at the beginning of the experiment/trial and set these. You can read more about this at http://www.pstnet.com/eprimelegFAQ.cfm. If you want to control the length of the trigger, you either write the following lines in the same on-line object: *X.OffsetSignalEnabled X.OffsetSignalPort X.OffsetSignalData* * * Or, use WRitePort and prepare another in-line object, put this inline after the X object and set X object's PreRelease to [X duration minus length of the trigger you desire]. In e-prime PreRelease "releases" (or executes) the inline objects coming after right away. It does not wait. Then, it prepares the next object to be shown as soon as the offset of X. But, make sure that Pre-release did not alter the length of the X object, because if you keep PreRelease very long it can act weird (at very long prereleases compared to the object's original duration). So this option is great if you have stimuli with very short durations. Almost exact onset time is caught. But you go with a long trigger as long as the X object if this does not bother you. Second option: (Offset correction/consideration needed, but no jitters). Set Y's PreRelease to a value which will be good enough to cover up for i) vertical blank time ii) trigger length. I assume you loaded your images/sounds at the beginning of the trial. If you did not, you need to include iii) loading time of the stimulus. For example: You have an image shown in X which takes 40-50ms to load (you can find this in e-prime output when you are designing your experiment and testing some dummy experiment. Look at the onset latency). You know your monitor's refresh rate is 100Hz, and you want your trigger to be 5ms (for some other reasons). Total time required for the image to be ready to be displayed is minimum 40+10+5=55ms maximum 65ms. Use Pre-release in Y and set it to 70ms (or if you want to be safer, set it to 100ms). Then write the in-line to send the trigger after Y. This will ensure that all your triggers will be sent exactly 70 or 100ms before time the stimulus is started to be written to the screen. If you load your images at the beginning of the trial or you are showing text, you can make the PrRelase shorter, 20ms. You also factor in if there are some LCD digital preparation duration latencies in the digital card of the LCD monitor. For instance for Samsung 100Hz LCD I found this to be 10ms. But it is, at least, presenting the image as a whole once (I think), not bit by bits consecutively as in CRT. Third Option: Use Canvas object like things and write your code. You can have full control. There were some nice scripts on this list written by some others. Or use something like WaitForVerticaBlank after you load your images and make them ready. WaitForVerticalBlank makes the object ready to be shown, then you can send the trigger, and the object is shown in the next refresh time. This option will make sure you fix the latency between the trigger and the stimulus just one refresh rate. Don't make the length of the trigger longer than the refresh rate. If you know how earlier the triggers were sent, then you can use this information to adjust for time windows or other statistics later. Best Baris On Tue, Mar 29, 2011 at 5:37 PM, Hank Jedema wrote: > Hi All, > > I am trying to run a stop signal response task while recording > electrophysiological activity on another setup. In order to get > synchronization of behavior with the timing of my recordings, I have E- > prime sent out event markers via the parallel port to an input of my > recording device. It seems that this works well responses, but it > seems that E-prime sends out the event markers for the display of > stimuli before the stimulus actually appears on the screen: the > eventmarker/timestamp is sent when the code issues the request for the > stimulus to appear, rather than when the stimulus actually appears on > the screen (i.e at the vertical blank/screen refresh after the > stimulus.onset delay). Is there a way to get the event marker signal > to synchronize with the actual appearance of the stimulus or is this > something that can only be corrected offline by correcting the > timestamps for stimulus appearance with their onset delay ? > > Thanks very much for your help. > > Hank > > -- > 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. > > -- SB Demiral, PhD. Department of Psychology 7 George Square The University of Edinburgh Edinburgh, EH8 9JZ UK Phone: +44 (0131) 6503063 -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Wed Mar 30 06:39:26 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Wed, 30 Mar 2011 08:39:26 +0200 Subject: synchronize event markers with refresh rate In-Reply-To: <8aef5508-b66b-4b15-a5ab-ff85f60e6022@v11g2000prb.googlegroups.com> Message-ID: Hi Hank, The event markers should be in sync when you prepare the markers using the following functions: Stim.OffsetSignalEnabled = True Stim.OnsetSignalEnabled = True Stim.OffsetSignalPort = &H378 Stim.OnsetSignalPort = &H378 Stim.OffsetSignalData = &H00 Stim.OnsetSignalData = &HFF ' < this is your onset code in hexadedimal notation Where Stim is your display object. Most flatscreens have an onset delay of a few milliseconds, so this would be a fixed delay caused by the properties of the display. Best, Paul 2011/3/29 Hank Jedema : > Hi All, > > I am trying to run a stop signal response task while recording > electrophysiological activity on another setup. In order to get > synchronization of behavior with the timing of my recordings, I have E- > prime sent out event markers via the parallel port to an input of my > recording device. It seems that this works well responses, but it > seems that E-prime sends out the event markers for the display of > stimuli before the stimulus actually appears on the screen: the > eventmarker/timestamp is sent when the code issues the request for the > stimulus to appear, rather than when the stimulus actually appears on > the screen (i.e at the vertical blank/screen refresh after the > stimulus.onset delay). Is there a way to get the event marker signal > to synchronize with the actual appearance of the stimulus or is this > something that can only be corrected offline by correcting the > timestamps for stimulus appearance with their onset delay ? > > Thanks very much for your help. > > Hank > > -- > 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. > > -- 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. From h.witherstone at googlemail.com Wed Mar 30 09:08:35 2011 From: h.witherstone at googlemail.com (Hannah Witherstone) Date: Wed, 30 Mar 2011 02:08:35 -0700 Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit Message-ID: Dear all I've been running an experiment using E-Prime 1.2 and Windows 7 32-bit professional. My response times look very odd and was wondering how much the data could have been affected by my software set-up? I'm aware there may be some problems with E-Prime's timings via Windows 7 but couldn't find any definitive answers regarding the extent to which response times are affected. If anyone could enlighten me that would be great. Thanks in advance, Hannah -- 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 30 10:38:44 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 30 Mar 2011 11:38:44 +0100 Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit In-Reply-To: Message-ID: Hi Hannah, As far as I know, this is pretty much the state of things, as it is: Windows7/Vista can be problematic with presenting sound, but there seems little definitive word from PST as to how operating systems that are less than a decade(!) old perform in terms of timing. There might be a problem - but that is exactly what they said when E-Prime 1.1.3 was run on PCs that were newer than Win98SE (namely, XP) - and merely gives the impression that they are insufficiently beta-testing and running hopelessly behind the times. That said, I'm not seeing any clear reason why a Stroop effect on a Win7 computer would suddenly be 81 ms instead of 80 - the greater bit of effect is in the type of font used! I've successfully programmed a Simon task on my mobile phone (an ancient-looking Windows Mobile 6.1 phone) in C#, and the response times seem pretty normal as far as I can see (bit slower because of the tiny buttons). So, what do you mean with "odd response times"? Do they look very unlike other numbers? :) Still, I agree it would be good to hear from PST something like "after extensive testing, we've found that, all in all, Win7 isn't much worse than WinXP" and some advice. One suggestion for you in the mean while: you might try the WinXP mode in Win7 to see if the response times look less odd... Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Hannah Witherstone Sent: 30 March 2011 10:09 To: E-Prime Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit Dear all I've been running an experiment using E-Prime 1.2 and Windows 7 32-bit professional. My response times look very odd and was wondering how much the data could have been affected by my software set-up? I'm aware there may be some problems with E-Prime's timings via Windows 7 but couldn't find any definitive answers regarding the extent to which response times are affected. If anyone could enlighten me that would be great. Thanks in advance, Hannah -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From Jedema at pitt.edu Wed Mar 30 16:03:26 2011 From: Jedema at pitt.edu (Hank Jedema) Date: Wed, 30 Mar 2011 09:03:26 -0700 Subject: synchronize event markers with refresh rate In-Reply-To: Message-ID: Thanks to Davis, Baris, and Paul for your quick responses. I used a writeport command in my code to send my event markers to my recording system. I will have to look up what the exact loading time of an image on my Elo Carroll touch screen is, because I did not adjust for that (fixed) delay yet. I based my question on the timing of the event markers on the following: I collect multiple event markers for both the stimulus appearance as well as the response timing using a electrophysiology rig with sub-millisecond (<0.15 msec) timing accuracy. When I compare the time difference between 2 event markers from touch screen responses it seems that Eprime and my Plexon rig correspond nicely (<1msec difference). When I compare the time difference between an event marker from a stimulus appearance and a touch screen response, there is a much greater difference (10-18msec). On a trial by trial basis the difference between the two event markers seems to match the stimulus.onset delay listed in the Eprime output. Based on this, I believe that the event marker sent out by my E-prime code precedes the appearance of the stimulus on the screen. I will try the suggestion to use an inline as soon as the stimulus is on the screen next week. I will also check on the thread that David provided and post my results. Best, Hank On Mar 30, 2:39 am, Paul Groot wrote: > Hi Hank, > > The event markers should be in sync when you prepare the markers using > the following functions: > > Stim.OffsetSignalEnabled = True > Stim.OnsetSignalEnabled = True > Stim.OffsetSignalPort = &H378 > Stim.OnsetSignalPort = &H378 > Stim.OffsetSignalData = &H00 > Stim.OnsetSignalData = &HFF  ' < this is your onset code in hexadedimal notation > > Where Stim is your display object. > > Most flatscreens have an onset delay of a few milliseconds, so this > would be a fixed delay caused by the properties of the display. > > Best, > Paul > > 2011/3/29 Hank Jedema : > > > > > > > > > Hi All, > > > I am trying to run a stop signal response task while recording > > electrophysiological activity on another setup. In order to get > > synchronization of behavior with the timing of my recordings, I have E- > > prime sent out event markers via the parallel port to an input of my > > recording device. It seems that this works well responses, but it > > seems that E-prime sends out the event markers for the display of > > stimuli before the stimulus actually appears on the screen: the > > eventmarker/timestamp is sent when the code issues the request for the > > stimulus to appear, rather than when the stimulus actually appears on > > the screen (i.e at the vertical blank/screen refresh after the > > stimulus.onset delay). Is there a way to get the event marker signal > > to synchronize with the actual appearance of the stimulus or is this > > something that can only be corrected offline by correcting the > > timestamps for stimulus appearance with their onset delay ? > > > Thanks very much for your help. > > > Hank > > > -- > > 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 athttp://groups.google.com/group/e-prime?hl=en. -- 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. From pfc.groot at gmail.com Wed Mar 30 16:40:46 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Wed, 30 Mar 2011 18:40:46 +0200 Subject: synchronize event markers with refresh rate In-Reply-To: <3a14e81f-4d18-47b6-a51a-28dd263855de@q40g2000prh.googlegroups.com> Message-ID: Hi Hank, When using event markers for visual stimuli, you never should use the writeport function. This is because (in most cases) you would like to present the visual stimulus during the short refresh fase of the display. This is the default case when onset sync is set to vertical blank. (As David already explained!) If the stimulus is not synced this way, you will end up with an incomplete first frame (flickering). So, in most cases this causes unpredictable onset delays. Therfore, any writeport call will be executed to early, because eprime will hold the image presentation until the next refresh occurs (=OnsetDelay). So, just use the Onset/Offset properties described in the previous emails. The OnsetSignal will automatically generate a trigger as soon as the image is presented. (I.e. EPrime will automatically sync the implicit writeport command properly) Also: Preparation of the image (loading, uncompressing, scaling, ...) could be performed during a so called pre-release period. This period can be defined in the object just before the stimulus. This is advised for accurate onset times because image preparation time is NOT fixed in general. However, be carefull if you put any inline script between this object and the stimulus. (It will be executed at the start of the pre-release period!) best paul 2011/3/30 Hank Jedema : > Thanks to Davis, Baris, and Paul for your quick responses. > I used a writeport command in my code to send my event markers to my > recording system. I will have to look up what the exact loading time > of an image on my Elo Carroll touch screen is, because I did not > adjust for that (fixed) delay yet. > I based my question on the timing of the event markers on the > following: I collect multiple event markers for both the stimulus > appearance as well as the response timing using a electrophysiology > rig with sub-millisecond (<0.15 msec) timing accuracy. When I compare > the time difference between 2 event markers from touch screen > responses it seems that Eprime and my Plexon rig correspond nicely > (<1msec difference). When I compare the time difference between an > event marker from a stimulus appearance and a touch screen response, > there is a much greater difference (10-18msec). On a trial by trial > basis the difference between the two event markers seems to match the > stimulus.onset delay listed in the Eprime output. Based on this, I > believe that the event marker sent out by my E-prime code precedes the > appearance of the stimulus on the screen. I will try the suggestion to > use an inline as soon as the stimulus is on the screen next week. I > will also check on the thread that David provided and post my results. > > Best, > Hank > > On Mar 30, 2:39 am, Paul Groot wrote: >> Hi Hank, >> >> The event markers should be in sync when you prepare the markers using >> the following functions: >> >> Stim.OffsetSignalEnabled = True >> Stim.OnsetSignalEnabled = True >> Stim.OffsetSignalPort = &H378 >> Stim.OnsetSignalPort = &H378 >> Stim.OffsetSignalData = &H00 >> Stim.OnsetSignalData = &HFF  ' < this is your onset code in hexadedimal notation >> >> Where Stim is your display object. >> >> Most flatscreens have an onset delay of a few milliseconds, so this >> would be a fixed delay caused by the properties of the display. >> >> Best, >> Paul >> >> 2011/3/29 Hank Jedema : >> >> >> >> >> >> >> >> > Hi All, >> >> > I am trying to run a stop signal response task while recording >> > electrophysiological activity on another setup. In order to get >> > synchronization of behavior with the timing of my recordings, I have E- >> > prime sent out event markers via the parallel port to an input of my >> > recording device. It seems that this works well responses, but it >> > seems that E-prime sends out the event markers for the display of >> > stimuli before the stimulus actually appears on the screen: the >> > eventmarker/timestamp is sent when the code issues the request for the >> > stimulus to appear, rather than when the stimulus actually appears on >> > the screen (i.e at the vertical blank/screen refresh after the >> > stimulus.onset delay). Is there a way to get the event marker signal >> > to synchronize with the actual appearance of the stimulus or is this >> > something that can only be corrected offline by correcting the >> > timestamps for stimulus appearance with their onset delay ? >> >> > Thanks very much for your help. >> >> > Hank >> >> > -- >> > 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 athttp://groups.google.com/group/e-prime?hl=en. > > -- > 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. > > -- 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. From nic.cherise at gmail.com Wed Mar 30 21:41:00 2011 From: nic.cherise at gmail.com (Cherise R. Chin Fatt) Date: Wed, 30 Mar 2011 16:41:00 -0500 Subject: Repeat Trial Message-ID: Hello: Can someone please help me out with a part of my task? I need to repeat a trial until a correct response is given. I haven't been able to figure this out. I think it should be an inline, but I am not sure how to program this. Can someone help with this if possible? Thank you, Cherise. -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From baltimore.ben at gmail.com Wed Mar 30 23:48:37 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Wed, 30 Mar 2011 19:48:37 -0400 Subject: Repeat Trial In-Reply-To: Message-ID: you could even do this without an inline. in the object collecting responses enable two separate Input Masks (they could both be the keyboard, or both the mouse, or whatever). one instance of your Input Mask should have as its allowable response *only* the correct response, and its End Action should be set to Terminate. the other Input Mask should have as its Allowable Response all other possible non-correct responses, and its End Action should be set to Jump. fill in the Jump Label section with your Label's name, then place the Label right before your object which collects responses. this should result in the program jumping back to the label immediately prior to your stimulus every time an incorrect response is received. ben On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt wrote: > Hello: > > Can someone please help me out with a part of my task? I need to repeat a > trial until a correct response is given. I haven't been able to figure this > out. I think it should be an inline, but I am not sure how to program this. > Can someone help with this if possible? > > Thank you, > Cherise. > > -- > 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. > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Thu Mar 31 06:17:07 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Thu, 31 Mar 2011 08:17:07 +0200 Subject: Repeat Trial In-Reply-To: Message-ID: Using more than one input mask is really an elegant solution that is easy to implement. If you also would like to register the incorrect responses in the output file, then this probably won't work without some additional scripting. As an alternative you can also to the following (copied from my post some days ago): Another way to implement trial loops is to add an additional ‘level’ to your experiment by using an extra list object for the repeating trials (i.e. place a new list object on the trial procedure). This list will loop ‘forever’ by setting the ‘exit list’ parameter to high value. Then move all trial objects to the procedure of this new list. Finally add a small inline script at the end of the subtrial that will terminate the sublist when a specific condition is met (i.e. if stim.ACC=1 then sublist.Terminate end if) This sounds complicated, but is in fact very straightforward to do, and also supports more complex constructs (like giving additional instructions after one or more errors.) Best Paul 2011/3/31 ben robinson : > you could even do this without an inline. > in the object collecting responses enable two separate Input Masks (they > could both be the keyboard, or both the mouse, or whatever).  one instance > of your Input Mask should have as its allowable response *only* the correct > response, and its End Action should be set to Terminate.  the other Input > Mask should have as its Allowable Response all other possible non-correct > responses, and its End Action should be set to Jump.  fill in the Jump Label > section with your Label's name, then place the Label right before your > object which collects responses.  this should result in the program jumping > back to the label immediately prior to your stimulus every time an incorrect > response is received. > ben > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > wrote: >> >> Hello: >> >> Can someone please help me out with a part of my task? I need to repeat a >> trial until a correct response is given. I haven't been able to figure this >> out. I think it should be an inline, but I am not sure how to program this. >> Can someone help with this if possible? >> >> Thank you, >> Cherise. >> >> -- >> 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. > > -- > 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. > -- 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. From liwenna at gmail.com Thu Mar 31 10:26:41 2011 From: liwenna at gmail.com (liwenna) Date: Thu, 31 Mar 2011 03:26:41 -0700 Subject: Repeat Trial In-Reply-To: Message-ID: Oi... I justed wanted to expres that I agree with Paul that the two input masks solution is really elegant! I'd have never thought of that, and always script in the jump to the label (then again I also think that whenever I use this I also use the string hittest and therefore could not use the inputmasks). On 31 mrt, 02:17, Paul Groot wrote: > Using more than one input mask is really an elegant solution that is > easy to implement. If you also would like to register the incorrect > responses in the output file, then this probably won't work without > some additional scripting. As an alternative you can also to the > following (copied from my post some days ago): > > Another way to implement trial loops is to add an additional > ‘level’ to your experiment by using an extra list object for the > repeating trials (i.e. place a new list object on the trial > procedure). This list will loop ‘forever’ by setting the ‘exit list’ > parameter to high value. Then move all trial objects to the procedure > of this new list. Finally add a small inline script at the end of the > subtrial that will terminate the sublist when a specific condition is > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > This sounds complicated, but is in fact very straightforward to do, > and also supports more complex constructs (like giving additional > instructions after one or more errors.) > > Best > Paul > > 2011/3/31 ben robinson : > > > you could even do this without an inline. > > in the object collecting responses enable two separate Input Masks (they > > could both be the keyboard, or both the mouse, or whatever).  one instance > > of your Input Mask should have as its allowable response *only* the correct > > response, and its End Action should be set to Terminate.  the other Input > > Mask should have as its Allowable Response all other possible non-correct > > responses, and its End Action should be set to Jump.  fill in the Jump Label > > section with your Label's name, then place the Label right before your > > object which collects responses.  this should result in the program jumping > > back to the label immediately prior to your stimulus every time an incorrect > > response is received. > > ben > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > wrote: > > >> Hello: > > >> Can someone please help me out with a part of my task? I need to repeat a > >> trial until a correct response is given. I haven't been able to figure this > >> out. I think it should be an inline, but I am not sure how to program this. > >> Can someone help with this if possible? > > >> Thank you, > >> Cherise. > > >> -- > >> 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. > > > -- > > 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. -- 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. From fblanco81 at gmail.com Thu Mar 31 10:19:49 2011 From: fblanco81 at gmail.com (Gilgamesh) Date: Thu, 31 Mar 2011 03:19:49 -0700 Subject: Logging multiple incorrect responses and their RT In-Reply-To: Message-ID: Thanks for your answers. I will start the program from scratch and try to be as tidy as possible. Any solution that works may be a nice deal anyway, event if it is not elegant. My first try will include the loop and the counter, as planned. Let's see how I do it... Cheers, Fernando On 24 mar, 15:17, ben robinson wrote: > if you expect only a small, finite number of incorrect responses, my > solution might be to add that many additional objects to the procedure > time-line, each one set up to collect responses, and each one set to Jump to > an End-Of-Trial Label once a correct response is made. > to use the Jump functionality of the response collecting objects isn't > always super intuitive.  you would add one keyboard Input Mask with > Allowable Responses set to your incorrect response possibilities and End > Action set to Terminate, and another keyboard Input Mask with only your > correct response included in the Allowable Responses with the End Action set > to Jump, then add the name of your End-Of-Trial Label to the Jump Label > field. > > ben > > > > > > > > On Wed, Mar 23, 2011 at 6:01 PM, Paul Groot wrote: > > Hi Fernando, > > > The quick-and-dirty solution with the goto-to-label construction will > > actually work if you also add a c.log call before every goto-call > > (eprime will automatically call c.log at the end of the trial once). > > But you’re right. This is probably not considered an elegant solution. > > > Another way to implement arbitrary loops is to add an additional > > ‘level’ to your experiment by using an extra list object for the > > repeating trials (i.e. place a new list object on the trial > > procedure). This list will loop ‘forever’ by setting the ‘exit list’ > > parameter to high value. Then move all trial objects to the procedure > > of this new list. Finally add a small inline script at the end of the > > subtrial that will terminate the sublist when a specific condition is > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > Hope this helps, > > Paul > > > 2011/3/23 Gilgamesh : > > > Hello everybody, > > > I am currently programming a sequence learning task. It should work as > > > follows: > > > 1) Slide presenting stimulus. Responses are made via the keyword. > > > 2) If the answer is correct, then it jumps to next trial. > > > 3) If the answer is incorrect, then a sound is played and the slide > > > stays on the screen. > > > > I have come up with several ways of doing this, but they are all > > > unsatisfactory. The main problem is that I would like to log the > > > number of incorrect responses as well as their reaction times. I > > > wonder whether there is an elegant way of programming this. > > > > So far, my best attempt involves crazily looping: If slide.ACC = 0, > > > then it jumps to a label placed right before the slide. The only RT > > > that I am able to collect this way is that of the last, correct, > > > response. The number of cycles in the loop (updated by a script) > > > serves as a means to know the number of errors, but the RT data are > > > overwritten on each cycle. In sum, awful solution. > > > > I'm sure it must be an elegant way to (a) make advancement of the > > > slide contingent on the correct response and (b) collect both the > > > number of incorrect attempts and their RTs. > > > Any suggestion? > > > > Thanks in advance, > > > Fernando > > > > -- > > > 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. > > > -- > > 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. -- 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. From nic.cherise at gmail.com Thu Mar 31 17:41:33 2011 From: nic.cherise at gmail.com (Cherise Chin Fatt) Date: Thu, 31 Mar 2011 10:41:33 -0700 Subject: Repeat Trial In-Reply-To: Message-ID: Thank you for all your help. I have one problem left- when an incorrect response occurs, the trial isnt repeat... it goes to the top of additional list (as you explained below). I cannot figure out how to fix this problem. Maybe I didn't understand you fully- I added a sublist which has all the trials. This list has a SubProc which has a display and an inline. I am sorry for the confusion. I am new to eprime, so I am now getting accustom to the structure. On Mar 31, 12:17 am, Paul Groot wrote: > Using more than one input mask is really an elegant solution that is > easy to implement. If you also would like to register the incorrect > responses in the output file, then this probably won't work without > some additional scripting. As an alternative you can also to the > following (copied from my post some days ago): > > Another way to implement trial loops is to add an additional > ‘level’ to your experiment by using an extra list object for the > repeating trials (i.e. place a new list object on the trial > procedure). This list will loop ‘forever’ by setting the ‘exit list’ > parameter to high value. Then move all trial objects to the procedure > of this new list. Finally add a small inline script at the end of the > subtrial that will terminate the sublist when a specific condition is > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > This sounds complicated, but is in fact very straightforward to do, > and also supports more complex constructs (like giving additional > instructions after one or more errors.) > > Best > Paul > > 2011/3/31 ben robinson : > > > > > you could even do this without an inline. > > in the object collecting responses enable two separate Input Masks (they > > could both be the keyboard, or both the mouse, or whatever).  one instance > > of your Input Mask should have as its allowable response *only* the correct > > response, and its End Action should be set to Terminate.  the other Input > > Mask should have as its Allowable Response all other possible non-correct > > responses, and its End Action should be set to Jump.  fill in the Jump Label > > section with your Label's name, then place the Label right before your > > object which collects responses.  this should result in the program jumping > > back to the label immediately prior to your stimulus every time an incorrect > > response is received. > > ben > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > wrote: > > >> Hello: > > >> Can someone please help me out with a part of my task? I need to repeat a > >> trial until a correct response is given. I haven't been able to figure this > >> out. I think it should be an inline, but I am not sure how to program this. > >> Can someone help with this if possible? > > >> Thank you, > >> Cherise. > > >> -- > >> 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. > > > -- > > 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.- Hide quoted text - > > - Show quoted text - -- 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. From baltimore.ben at gmail.com Thu Mar 31 18:35:11 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Thu, 31 Mar 2011 14:35:11 -0400 Subject: Repeat Trial In-Reply-To: Message-ID: try implementing my suggestion, cherise :) have two Input Masks on the same object collecting responses: InputMask1 Allowable Responses set to *only* the correct response End Action set to Terminate. InputMask2 Allowable Responses set to all other possible responses End Action set to Jump Jump Label = Label1 then put Label1 immediately prior to the object collecting responses. just try it. ben On Thu, Mar 31, 2011 at 1:41 PM, Cherise Chin Fatt wrote: > Thank you for all your help. I have one problem left- when an > incorrect response occurs, the trial isnt repeat... it goes to the top > of additional list (as you explained below). I cannot figure out how > to fix this problem. Maybe I didn't understand you fully- I added a > sublist which has all the trials. This list has a SubProc which has a > display and an inline. > > I am sorry for the confusion. I am new to eprime, so I am now getting > accustom to the structure. > > On Mar 31, 12:17 am, Paul Groot wrote: > > Using more than one input mask is really an elegant solution that is > > easy to implement. If you also would like to register the incorrect > > responses in the output file, then this probably won't work without > > some additional scripting. As an alternative you can also to the > > following (copied from my post some days ago): > > > > Another way to implement trial loops is to add an additional > > ‘level’ to your experiment by using an extra list object for the > > repeating trials (i.e. place a new list object on the trial > > procedure). This list will loop ‘forever’ by setting the ‘exit list’ > > parameter to high value. Then move all trial objects to the procedure > > of this new list. Finally add a small inline script at the end of the > > subtrial that will terminate the sublist when a specific condition is > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > > This sounds complicated, but is in fact very straightforward to do, > > and also supports more complex constructs (like giving additional > > instructions after one or more errors.) > > > > Best > > Paul > > > > 2011/3/31 ben robinson : > > > > > > > > > you could even do this without an inline. > > > in the object collecting responses enable two separate Input Masks > (they > > > could both be the keyboard, or both the mouse, or whatever). one > instance > > > of your Input Mask should have as its allowable response *only* the > correct > > > response, and its End Action should be set to Terminate. the other > Input > > > Mask should have as its Allowable Response all other possible > non-correct > > > responses, and its End Action should be set to Jump. fill in the Jump > Label > > > section with your Label's name, then place the Label right before your > > > object which collects responses. this should result in the program > jumping > > > back to the label immediately prior to your stimulus every time an > incorrect > > > response is received. > > > ben > > > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > > wrote: > > > > >> Hello: > > > > >> Can someone please help me out with a part of my task? I need to > repeat a > > >> trial until a correct response is given. I haven't been able to figure > this > > >> out. I think it should be an inline, but I am not sure how to program > this. > > >> Can someone help with this if possible? > > > > >> Thank you, > > >> Cherise. > > > > >> -- > > >> 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. > > > > > -- > > > 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.- Hide quoted text - > > > > - Show quoted text - > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Thu Mar 31 18:40:29 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 31 Mar 2011 14:40:29 -0400 Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit In-Reply-To: Message-ID: Hannah, Hmm, you must have missed the post from this Monday that addressed this very issue, with an official response from PST. Please see the thread at http://groups.google.com/group/e-prime/browse_thread/thread/1a0ebb44226aa905 , and follow the links to the appropriate Knowledge Base articles (now available without any login, hooray!). If you think you still have an issue, then please submit this to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp (and then please post back here with the result, as Lidia did). This all presumes, of course, that you have already thoroughly studied Chapter 3 of the User Guide that came with E-Prime. FWIW, I have not found any timing problems with EP1.2 under Vista -- even sound works OK (unlike sound with EP2 under Vista). But then I do not run subjects from any Vista (or Win7) station, I use Vista only for development, subjects are all run on XP machines. -- David McFarlane, Professional Faultfinder At 3/30/2011 05:08 AM Wednesday, Hannah Witherstone wrote: >I've been running an experiment using E-Prime 1.2 and Windows 7 32-bit >professional. My response times look very odd and was wondering how >much the data could have been affected by my software set-up? > >I'm aware there may be some problems with E-Prime's timings via >Windows 7 but couldn't find any definitive answers regarding the >extent to which response times are affected. > >If anyone could enlighten me that would be great. > >Thanks in advance, >Hannah -- 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. From nic.cherise at gmail.com Thu Mar 31 18:38:10 2011 From: nic.cherise at gmail.com (Cherise Chin Fatt) Date: Thu, 31 Mar 2011 11:38:10 -0700 Subject: Repeat Trial In-Reply-To: Message-ID: Hi Paul: thank you for your help as well. Would I be able to keep a track of the incorrect responses using your method? Thank you. On Mar 31, 12:35 pm, ben robinson wrote: > try implementing my suggestion, cherise :) > > have two Input Masks on the same object collecting responses: > InputMask1 >     Allowable Responses set to *only* the correct response >     End Action set to Terminate. > InputMask2 >     Allowable Responses set to all other possible responses >     End Action set to Jump >     Jump Label = Label1 > > then put Label1 immediately prior to the object collecting responses.  just > try it. > > ben > > On Thu, Mar 31, 2011 at 1:41 PM, Cherise Chin Fatt wrote: > > > > > Thank you for all your help. I have one problem left- when an > > incorrect response occurs, the trial isnt repeat... it goes to the top > > of  additional list (as you explained below). I cannot figure out how > > to fix this problem.  Maybe I didn't understand you fully- I added a > > sublist which has all the trials. This list has a SubProc which has a > > display and an inline. > > > I am sorry for the confusion. I am new to eprime, so I am now getting > > accustom to the structure. > > > On Mar 31, 12:17 am, Paul Groot wrote: > > > Using more than one input mask is really an elegant solution that is > > > easy to implement. If you also would like to register the incorrect > > > responses in the output file, then this probably won't work without > > > some additional scripting. As an alternative you can also to the > > > following (copied from my post some days ago): > > > > Another way to implement trial loops is to add an additional > > > ‘level’ to your experiment by using an extra list object for the > > > repeating trials (i.e. place a new list object on the trial > > > procedure). This list will loop ‘forever’ by setting the ‘exit list’ > > > parameter to high value. Then move all trial objects to the procedure > > > of this new list. Finally add a small inline script at the end of the > > > subtrial that will terminate the sublist when a specific condition is > > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > > This sounds complicated, but is in fact very straightforward to do, > > > and also supports more complex constructs (like giving additional > > > instructions after one or more errors.) > > > > Best > > > Paul > > > > 2011/3/31 ben robinson : > > > > > you could even do this without an inline. > > > > in the object collecting responses enable two separate Input Masks > > (they > > > > could both be the keyboard, or both the mouse, or whatever).  one > > instance > > > > of your Input Mask should have as its allowable response *only* the > > correct > > > > response, and its End Action should be set to Terminate.  the other > > Input > > > > Mask should have as its Allowable Response all other possible > > non-correct > > > > responses, and its End Action should be set to Jump.  fill in the Jump > > Label > > > > section with your Label's name, then place the Label right before your > > > > object which collects responses.  this should result in the program > > jumping > > > > back to the label immediately prior to your stimulus every time an > > incorrect > > > > response is received. > > > > ben > > > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > > > wrote: > > > > >> Hello: > > > > >> Can someone please help me out with a part of my task? I need to > > repeat a > > > >> trial until a correct response is given. I haven't been able to figure > > this > > > >> out. I think it should be an inline, but I am not sure how to program > > this. > > > >> Can someone help with this if possible? > > > > >> Thank you, > > > >> Cherise. > > > > >> -- > > > >> 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. > > > > > -- > > > > 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.-Hide quoted text - > > > > - Show quoted text - > > > -- > > 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.- Hide quoted text - > > - Show quoted text - -- 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. From mcfarla9 at msu.edu Thu Mar 31 18:55:25 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 31 Mar 2011 14:55:25 -0400 Subject: Repeat Trial In-Reply-To: <3313a35a-4db3-475d-8ad4-d6508251c72e@f31g2000pri.googlegro ups.com> Message-ID: Nice discussion. And I agree that for this simple case these methods are more elegant than the usual inline-code method (as shown in the "Criterion Based Exit" example downloadable from the Samples area of the PST web site). As I understand it, Paul's method (using an inner trial List) should automatically log each response, whether incorrect or correct, as another row in your .edat file. Ben's method (just using a Jump label), as it stands, should log only the final response, but with judicious placement of inline code containing a c.Log command (see the Context topic in the online E-Basic Help) you might get it to record all responses. Each execution of c.Log generates a new line in the .edat file, with the current values of all attributes. -- David McFarlane, Professional Faultfinder At 3/31/2011 02:38 PM Thursday, Cherise Chin Fatt wrote: >Hi Paul: thank you for your help as well. Would I be able to keep a >track of the incorrect responses using your method? > >Thank you. > >On Mar 31, 12:35 pm, ben robinson wrote: > > try implementing my suggestion, cherise :) > > > > have two Input Masks on the same object collecting responses: > > InputMask1 > > Allowable Responses set to *only* the correct response > > End Action set to Terminate. > > InputMask2 > > Allowable Responses set to all other possible responses > > End Action set to Jump > > Jump Label = Label1 > > > > then put Label1 immediately prior to the object collecting responses. just > > try it. > > > > ben > > > > On Thu, Mar 31, 2011 at 1:41 PM, Cherise Chin Fatt > wrote: > > > > > > > > > Thank you for all your help. I have one problem left- when an > > > incorrect response occurs, the trial isnt repeat... it goes to the top > > > of additional list (as you explained below). I cannot figure out how > > > to fix this problem. Maybe I didn't understand you fully- I added a > > > sublist which has all the trials. This list has a SubProc which has a > > > display and an inline. > > > > > I am sorry for the confusion. I am new to eprime, so I am now getting > > > accustom to the structure. > > > > > On Mar 31, 12:17 am, Paul Groot wrote: > > > > Using more than one input mask is really an elegant solution that is > > > > easy to implement. If you also would like to register the incorrect > > > > responses in the output file, then this probably won't work without > > > > some additional scripting. As an alternative you can also to the > > > > following (copied from my post some days ago): > > > > > > Another way to implement trial loops is to add an additional > > > > 'level' to your experiment by using an extra list object for the > > > > repeating trials (i.e. place a new list object on the trial > > > > procedure). This list will loop 'forever' by setting the 'exit list' > > > > parameter to high value. Then move all trial objects to the procedure > > > > of this new list. Finally add a small inline script at the end of the > > > > subtrial that will terminate the sublist when a specific condition is > > > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > > > > This sounds complicated, but is in fact very straightforward to do, > > > > and also supports more complex constructs (like giving additional > > > > instructions after one or more errors.) > > > > > > Best > > > > Paul > > > > > > 2011/3/31 ben robinson : > > > > > > > you could even do this without an inline. > > > > > in the object collecting responses enable two separate Input Masks > > > (they > > > > > could both be the keyboard, or both the mouse, or whatever). one > > > instance > > > > > of your Input Mask should have as its allowable response *only* the > > > correct > > > > > response, and its End Action should be set to Terminate. the other > > > Input > > > > > Mask should have as its Allowable Response all other possible > > > non-correct > > > > > responses, and its End Action should be set to Jump. fill > in the Jump > > > Label > > > > > section with your Label's name, then place the Label right > before your > > > > > object which collects responses. this should result in the program > > > jumping > > > > > back to the label immediately prior to your stimulus every time an > > > incorrect > > > > > response is received. > > > > > ben > > > > > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > > > > wrote: > > > > > > >> Hello: > > > > > > >> Can someone please help me out with a part of my task? I need to > > > repeat a > > > > >> trial until a correct response is given. I haven't been > able to figure > > > this > > > > >> out. I think it should be an inline, but I am not sure how > to program > > > this. > > > > >> Can someone help with this if possible? > > > > > > >> Thank you, > > > > >> Cherise. -- 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. From ucfmicah at gmail.com Wed Mar 9 13:34:05 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 05:34:05 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch Message-ID: Hello, This is probably a very easy to solve problem, but it's just about beaten me down. I am trying to make a training script for my error- awareness paradigm that can log inhibition and error-awareness performance and then report these to the subject at the end of the trial. The task is very simple and works fine, as does the performance logging. I can't seem to get my summation object to work though- everytime it gives me a 'type mismatch'. I've tried creating a variable from the logging vars in a double format but that does not fix it. Can someone take a look at my code and see what's up? I start with the following setup inline and usertab code: 'setup inline set stopaccuracy = New Summation set erroraware = New Summation 'usertab dim killme as integer dim stopaccuracy as Summation dim erroraware as Summation dim ogperf as double dim ogaware as double My inline that logs awareness and performance, and (is supposed to) fill the summation object with these information for reporting to the subject, looks like this: If c.GetAttrib("trialtype") = "lure" then if TextDisplay1.RT = 0 then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if end if if c.GetAttrib("awaretrial") = "1" and killme = 1 then if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if c.GetAttrib("ogperf") = "0" then killme = 1 else killme = 0 end if stopaccuracy.AddObservation c.GetAttrib("ogperf") errorawareness.AddObservation c.GetAttrib("ogaware") Debug.Print stopaccuracy.Mean Debug.Print erroraware.Mean c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") It's these lines that give me the type mismatch: stopaccuracy.AddObservation c.GetAttrib("ogperf") errorawareness.AddObservation c.GetAttrib("ogaware") Link to script: http://bit.ly/hKCcmo Best, Micah -- 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. From baltimore.ben at gmail.com Wed Mar 9 14:17:21 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Wed, 9 Mar 2011 09:17:21 -0500 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: try changing them to: stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) or CDbl(...) if CInt(...) isn't what you need. i think the problem might be that when you c.GetAttrib the value it pulls from the list is understood as a string, rather than some sort of number... On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > Hello, > > This is probably a very easy to solve problem, but it's just about > beaten me down. I am trying to make a training script for my error- > awareness paradigm that can log inhibition and error-awareness > performance and then report these to the subject at the end of the > trial. The task is very simple and works fine, as does the performance > logging. I can't seem to get my summation object to work though- > everytime it gives me a 'type mismatch'. I've tried creating a > variable from the logging vars in a double format but that does not > fix it. Can someone take a look at my code and see what's up? > > I start with the following setup inline and usertab code: > 'setup inline > set stopaccuracy = New Summation > set erroraware = New Summation > > 'usertab > dim killme as integer > dim stopaccuracy as Summation > dim erroraware as Summation > dim ogperf as double > dim ogaware as double > > > My inline that logs awareness and performance, and (is supposed to) > fill the summation object with these information for reporting to the > subject, looks like this: > > > If c.GetAttrib("trialtype") = "lure" then > if TextDisplay1.RT = 0 then > c.SetAttrib "ogperf", 1 > else > c.SetAttrib "ogperf", 0 > end if > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > if TextDisplay1.RESP = "2" then > c.SetAttrib "ogaware", 0 > else > c.SetAttrib "ogaware", 1 > end if > end if > > if c.GetAttrib("ogperf") = "0" then > killme = 1 > else > killme = 0 > end if > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Debug.Print stopaccuracy.Mean > Debug.Print erroraware.Mean > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > It's these lines that give me the type mismatch: > stopaccuracy.AddObservation c.GetAttrib("ogperf") > errorawareness.AddObservation c.GetAttrib("ogaware") > > Link to script: http://bit.ly/hKCcmo > > Best, > Micah > > > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ucfmicah at gmail.com Wed Mar 9 15:19:10 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 07:19:10 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hi Ben, Sincere thanks for your suggestion. Helped me to feel like I'm getting somewhere in my understanding of E-basic, as I had the same idea. Sadly neither CInt or CDbl used in that way change the error. I also tried declaring erroraware and stopaccuracy as doubles, and tried converting them into new variables that would be numbers. I'm not sure I did that correctly however. Thanks for your help- i'll be really excited if we can solve this. On Mar 9, 3:17?pm, ben robinson wrote: > try changing them to: > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > or CDbl(...) if CInt(...) isn't what you need. > i think the problem might be that when you c.GetAttrib the value it pulls > from the list is understood as a string, rather than some sort of number... > > > > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > Hello, > > > This is probably a very easy to solve problem, but it's just about > > beaten me down. I am trying to make a training script for my error- > > awareness paradigm that can log inhibition and error-awareness > > performance and then report these to the subject at the end of the > > trial. The task is very simple and works fine, as does the performance > > logging. I can't seem to get my summation object to work though- > > everytime it gives me a 'type mismatch'. I've tried creating a > > variable from the logging vars in a double format but that does not > > fix it. Can someone take a look at my code and see what's up? > > > I start with the following setup inline and usertab code: > > 'setup inline > > set stopaccuracy = New Summation > > set erroraware = New Summation > > > 'usertab > > dim killme as integer > > dim stopaccuracy as Summation > > dim erroraware as Summation > > dim ogperf as double > > dim ogaware as double > > > My inline that logs awareness and performance, and (is supposed to) > > fill the summation object with these information for reporting to the > > subject, looks like this: > > > If c.GetAttrib("trialtype") = "lure" then > > ? ? ? ?if TextDisplay1.RT = 0 then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > ? ? ? ?end if > > end if > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > ? ? ? ?if TextDisplay1.RESP = "2" then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > ? ? ? ?end if > > end if > > > if c.GetAttrib("ogperf") = "0" then > > ? ? ? ?killme = 1 > > else > > ? ? ? ?killme = 0 > > end if > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Debug.Print stopaccuracy.Mean > > Debug.Print erroraware.Mean > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > It's these lines that give me the type mismatch: > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Link to script:http://bit.ly/hKCcmo > > > Best, > > Micah > > > -- > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group.> To post to this group, send email toe-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. -- 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 9 15:55:32 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 9 Mar 2011 15:55:32 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <87470c1f-444c-4454-8207-265b6c953d68@t8g2000vbd.googlegroups.com> Message-ID: Hiya, Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > dim stopaccuracy as Summation > > dim erroraware as Summation > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. If you want to find out what's going on with the mismatch (one of the more simpler things to solve): >stopaccuracy.AddObservation c.GetAttrib("ogperf") Then try change this into: stopaccuracy.AddObservation 0 if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. Cheers, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 09 March 2011 15:19 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hi Ben, Sincere thanks for your suggestion. Helped me to feel like I'm getting somewhere in my understanding of E-basic, as I had the same idea. Sadly neither CInt or CDbl used in that way change the error. I also tried declaring erroraware and stopaccuracy as doubles, and tried converting them into new variables that would be numbers. I'm not sure I did that correctly however. Thanks for your help- i'll be really excited if we can solve this. On Mar 9, 3:17?pm, ben robinson wrote: > try changing them to: > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > or CDbl(...) if CInt(...) isn't what you need. > i think the problem might be that when you c.GetAttrib the value it pulls > from the list is understood as a string, rather than some sort of number... > > > > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > Hello, > > > This is probably a very easy to solve problem, but it's just about > > beaten me down. I am trying to make a training script for my error- > > awareness paradigm that can log inhibition and error-awareness > > performance and then report these to the subject at the end of the > > trial. The task is very simple and works fine, as does the performance > > logging. I can't seem to get my summation object to work though- > > everytime it gives me a 'type mismatch'. I've tried creating a > > variable from the logging vars in a double format but that does not > > fix it. Can someone take a look at my code and see what's up? > > > I start with the following setup inline and usertab code: > > 'setup inline > > set stopaccuracy = New Summation > > set erroraware = New Summation > > > 'usertab > > dim killme as integer > > dim stopaccuracy as Summation > > dim erroraware as Summation > > dim ogperf as double > > dim ogaware as double > > > My inline that logs awareness and performance, and (is supposed to) > > fill the summation object with these information for reporting to the > > subject, looks like this: > > > If c.GetAttrib("trialtype") = "lure" then > > ? ? ? ?if TextDisplay1.RT = 0 then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > ? ? ? ?end if > > end if > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > ? ? ? ?if TextDisplay1.RESP = "2" then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > ? ? ? ?end if > > end if > > > if c.GetAttrib("ogperf") = "0" then > > ? ? ? ?killme = 1 > > else > > ? ? ? ?killme = 0 > > end if > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Debug.Print stopaccuracy.Mean > > Debug.Print erroraware.Mean > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > It's these lines that give me the type mismatch: > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > Link to script:http://bit.ly/hKCcmo > > > Best, > > Micah > > > -- > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group.> To post to this group, send email toe-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. -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From ucfmicah at gmail.com Wed Mar 9 16:05:31 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 08:05:31 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA362@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hi Michiel, Thanks for the useful reply! Ogperf and ogaware are actually list objects, and the related code is designed to log stops and successful error reports. So the first bit of code should be resolving to either a '1' or a '0' for either accurate/inaccurate stop or correct error report/missed error report. That being said I see your point with the need to simplify and had wondered if I could get by without the summation object. My worry is that, sense the accuracy data is not generated directly by the list or procedure, I need this summation object to collect data from the ogperf ogaware inline. The last bit ( c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent")) is supposed to then format the summation object for placement in the end of block report ("Congratulations, you successfully inhibited on [stopaccuracy] of trials and reported your errors [erroraware] of the time"). Will try to wrap my head around how to do this without the summation- appreciate your help! On Mar 9, 4:55?pm, Michiel Spape wrote: > Hiya, > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > Then try change this into: > stopaccuracy.AddObservation 0 > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > Cheers, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 15:19 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Ben, > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > somewhere in my understanding of E-basic, as I had the same idea. > Sadly neither CInt or CDbl used in that way change the error. I also > tried declaring erroraware and stopaccuracy as doubles, and tried > converting them into new variables that would be numbers. I'm not sure > I did that correctly however. > > Thanks for your help- i'll be really excited if we can solve this. > > On Mar 9, 3:17?pm, ben robinson wrote: > > try changing them to: > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > or CDbl(...) if CInt(...) isn't what you need. > > i think the problem might be that when you c.GetAttrib the value it pulls > > from the list is understood as a string, rather than some sort of number... > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > Hello, > > > > This is probably a very easy to solve problem, but it's just about > > > beaten me down. I am trying to make a training script for my error- > > > awareness paradigm that can log inhibition and error-awareness > > > performance and then report these to the subject at the end of the > > > trial. The task is very simple and works fine, as does the performance > > > logging. I can't seem to get my summation object to work though- > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > variable from the logging vars in a double format but that does not > > > fix it. Can someone take a look at my code and see what's up? > > > > I start with the following setup inline and usertab code: > > > 'setup inline > > > set stopaccuracy = New Summation > > > set erroraware = New Summation > > > > 'usertab > > > dim killme as integer > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > dim ogperf as double > > > dim ogaware as double > > > > My inline that logs awareness and performance, and (is supposed to) > > > fill the summation object with these information for reporting to the > > > subject, looks like this: > > > > If c.GetAttrib("trialtype") = "lure" then > > > ? ? ? ?if TextDisplay1.RT = 0 then > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > > ? ? ? ?else > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > > ? ? ? ?end if > > > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > ? ? ? ?if TextDisplay1.RESP = "2" then > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > > ? ? ? ?else > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > > ? ? ? ?end if > > > end if > > > > if c.GetAttrib("ogperf") = "0" then > > > ? ? ? ?killme = 1 > > > else > > > ? ? ? ?killme = 0 > > > end if > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Debug.Print stopaccuracy.Mean > > > Debug.Print erroraware.Mean > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > It's these lines that give me the type mismatch: > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Link to script:http://bit.ly/hKCcmo > > > > Best, > > > Micah > > > > -- > > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. From ucfmicah at gmail.com Wed Mar 9 16:06:27 2011 From: ucfmicah at gmail.com (Micah) Date: Wed, 9 Mar 2011 08:06:27 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Er, not list objects but rather, variables in the list. They are of course empty ("?"'s) until the trial level inline resolves. On Mar 9, 5:05?pm, Micah wrote: > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > On Mar 9, 4:55?pm, Michiel Spape > wrote: > > > > > > > > > Hiya, > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > Then try change this into: > > stopaccuracy.AddObservation 0 > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > Cheers, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 15:19 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Ben, > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > somewhere in my understanding of E-basic, as I had the same idea. > > Sadly neither CInt or CDbl used in that way change the error. I also > > tried declaring erroraware and stopaccuracy as doubles, and tried > > converting them into new variables that would be numbers. I'm not sure > > I did that correctly however. > > > Thanks for your help- i'll be really excited if we can solve this. > > > On Mar 9, 3:17?pm, ben robinson wrote: > > > try changing them to: > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > or CDbl(...) if CInt(...) isn't what you need. > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > from the list is understood as a string, rather than some sort of number... > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > Hello, > > > > > This is probably a very easy to solve problem, but it's just about > > > > beaten me down. I am trying to make a training script for my error- > > > > awareness paradigm that can log inhibition and error-awareness > > > > performance and then report these to the subject at the end of the > > > > trial. The task is very simple and works fine, as does the performance > > > > logging. I can't seem to get my summation object to work though- > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > variable from the logging vars in a double format but that does not > > > > fix it. Can someone take a look at my code and see what's up? > > > > > I start with the following setup inline and usertab code: > > > > 'setup inline > > > > set stopaccuracy = New Summation > > > > set erroraware = New Summation > > > > > 'usertab > > > > dim killme as integer > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > dim ogperf as double > > > > dim ogaware as double > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > fill the summation object with these information for reporting to the > > > > subject, looks like this: > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > ? ? ? ?if TextDisplay1.RT = 0 then > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > > > ? ? ? ?else > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > > > ? ? ? ?end if > > > > end if > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > ? ? ? ?if TextDisplay1.RESP = "2" then > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > > > ? ? ? ?else > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > > > ? ? ? ?end if > > > > end if > > > > > if c.GetAttrib("ogperf") = "0" then > > > > ? ? ? ?killme = 1 > > > > else > > > > ? ? ? ?killme = 0 > > > > end if > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Debug.Print stopaccuracy.Mean > > > > Debug.Print erroraware.Mean > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > It's these lines that give me the type mismatch: > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Link to script:http://bit.ly/hKCcmo > > > > > Best, > > > > Micah > > > > > --> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, sendemailtoe-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. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-pr... at googlegroups.com.To unsubscribe from this group, send emailtoe-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > > 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 9 16:39:01 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 9 Mar 2011 16:39:01 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hiya, Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. So, every trial, I tend to have an inline with the following: TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: TrialNum = 30 'just as an example, 30 trials done so far TrialsCorrect = 10 'just as an example, 10 trials correct Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" This returns "33% correct" (in the output). So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). Cheers, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 09 March 2011 16:06 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hi Michiel, Thanks for the useful reply! Ogperf and ogaware are actually list objects, and the related code is designed to log stops and successful error reports. So the first bit of code should be resolving to either a '1' or a '0' for either accurate/inaccurate stop or correct error report/missed error report. That being said I see your point with the need to simplify and had wondered if I could get by without the summation object. My worry is that, sense the accuracy data is not generated directly by the list or procedure, I need this summation object to collect data from the ogperf ogaware inline. The last bit ( c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent")) is supposed to then format the summation object for placement in the end of block report ("Congratulations, you successfully inhibited on [stopaccuracy] of trials and reported your errors [erroraware] of the time"). Will try to wrap my head around how to do this without the summation- appreciate your help! On Mar 9, 4:55?pm, Michiel Spape wrote: > Hiya, > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > Then try change this into: > stopaccuracy.AddObservation 0 > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > Cheers, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 15:19 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Ben, > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > somewhere in my understanding of E-basic, as I had the same idea. > Sadly neither CInt or CDbl used in that way change the error. I also > tried declaring erroraware and stopaccuracy as doubles, and tried > converting them into new variables that would be numbers. I'm not sure > I did that correctly however. > > Thanks for your help- i'll be really excited if we can solve this. > > On Mar 9, 3:17?pm, ben robinson wrote: > > try changing them to: > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > or CDbl(...) if CInt(...) isn't what you need. > > i think the problem might be that when you c.GetAttrib the value it pulls > > from the list is understood as a string, rather than some sort of number... > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > Hello, > > > > This is probably a very easy to solve problem, but it's just about > > > beaten me down. I am trying to make a training script for my error- > > > awareness paradigm that can log inhibition and error-awareness > > > performance and then report these to the subject at the end of the > > > trial. The task is very simple and works fine, as does the performance > > > logging. I can't seem to get my summation object to work though- > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > variable from the logging vars in a double format but that does not > > > fix it. Can someone take a look at my code and see what's up? > > > > I start with the following setup inline and usertab code: > > > 'setup inline > > > set stopaccuracy = New Summation > > > set erroraware = New Summation > > > > 'usertab > > > dim killme as integer > > > dim stopaccuracy as Summation > > > dim erroraware as Summation > > > dim ogperf as double > > > dim ogaware as double > > > > My inline that logs awareness and performance, and (is supposed to) > > > fill the summation object with these information for reporting to the > > > subject, looks like this: > > > > If c.GetAttrib("trialtype") = "lure" then > > > ? ? ? ?if TextDisplay1.RT = 0 then > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > > ? ? ? ?else > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > > ? ? ? ?end if > > > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > ? ? ? ?if TextDisplay1.RESP = "2" then > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > > ? ? ? ?else > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > > ? ? ? ?end if > > > end if > > > > if c.GetAttrib("ogperf") = "0" then > > > ? ? ? ?killme = 1 > > > else > > > ? ? ? ?killme = 0 > > > end if > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Debug.Print stopaccuracy.Mean > > > Debug.Print erroraware.Mean > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > It's these lines that give me the type mismatch: > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > Link to script:http://bit.ly/hKCcmo > > > > Best, > > > Micah > > > > -- > > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From alex.genevsky at gmail.com Wed Mar 9 17:24:37 2011 From: alex.genevsky at gmail.com (Alex G) Date: Wed, 9 Mar 2011 09:24:37 -0800 Subject: E-prime help In-Reply-To: <4B0AA69A.3050804@ucl.ac.uk> Message-ID: Hello everyone, Although I see that this thread has been dormant for a while, I just worked through a similar problem and wanted to leave some documentation of what I identified as the problem and what worked as a solution. Problem: BMP images cause an error during runtime in EP1. These images were indeed processed in osx on a Mac and transferred into Windows on a amachine running Parallels. Solution: I tried many permutations of save specifications in photoshop (on Mac) and found this to work. Save As BMP, 32 bit, UNCHECK Flip Row Order. All the images I have reprocessed this way are working without error. Hope that helps someone. - Alex -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jens.bernhardsson at gmail.com Wed Mar 9 18:32:49 2011 From: jens.bernhardsson at gmail.com (jens) Date: Wed, 9 Mar 2011 10:32:49 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: Thank you for taking your time and answering this. Unfortunately I?m not able to get this to work properly. By adding the code after every slide instead of just using the menus to log and jump, I?m now getting all ACC = 0. ?I got to suspect that the problem lies with your hittest code? The thing is when I'm not using any code at all and just Space to respond, I?m still getting the same results. It?s weird that the default mode of accuracy, or response, logging is that it?s remembered from trial to trial when using the end action jump element. What I want it to do is just to log the response given to a specific slide, end that trial and then start a new trial without remembering previous responses. It is such a stupid thing that makes me suspect that I have missed something really basic, or is it supposed to behave in this matter? Do you think that there might be an easier way than what you are describing liwenna? Something like acc or resp reset? -- 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. From liwenna at gmail.com Wed Mar 9 21:45:48 2011 From: liwenna at gmail.com (liwenna) Date: Wed, 9 Mar 2011 13:45:48 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: "when using the end action jump element." So glad you added that sentence! Indeed, you shouldn't use the end action jump element :) What it does is make the program jump the moment the response is made, thus bypassing the inline with the hittest. Therefore the accuracy remains '0'. Set the end actions back to terminate and add a 'goto labelname' line to your hittest codes as described in my second post. I think that might well solve your probs. On Mar 9, 7:32?pm, jens wrote: > Thank you for taking your time and answering this. Unfortunately I?m > not able to get this to work properly. By adding the code after every > slide instead of just using the menus to log and jump, I?m now getting > all ACC = 0. > > ?I got to suspect that the problem lies with your hittest code? > The thing is when I'm not using any code at all and just Space to > respond, I?m still getting the same results. It?s weird that the > default mode of accuracy, or response, logging is that it?s remembered > from trial to trial when using the end action jump element. > > What I want it to do is just to log the response given to a specific > slide, end that trial and then start a new trial without remembering > previous responses. It is such a stupid thing that makes me suspect > that I have missed something really basic, or is it supposed to behave > in this matter? > > Do you think that there might be an easier way than what you are > describing liwenna? Something like acc or resp reset? -- 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. From liwenna at gmail.com Thu Mar 10 11:04:43 2011 From: liwenna at gmail.com (liwenna) Date: Thu, 10 Mar 2011 03:04:43 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: hmmz... with the code you describe pretty much any response will be logged as 1, unless the response is identical to the one specified under 'correctresp' so I'd tend to think that there then is something wrong with he correct responses you specified there. What is the true response slide?? I do think it's puzzling that the whole thing doesn't respond in the way you would expect but if you got your program working than that's great news :) On Mar 10, 11:15?am, jens wrote: > The thing is that it doesn?t seem to matter if I use E-primes own jump > element or if that is set to terminate and I do the jump with an > inline. I get the same results; that response is logged on the slides > following the ?true? response ?slide. > Also, and this is weird, in your code I need to shift the > identification of the Stimulis.ACC like this > > ?If strHit = c.GetAttrib("Correctresp") Then > ? ? ? ? ? ? ? ? ? ? ? ? Stimulus.ACC = 0 > ? ? ? ? ? ? ? ? ? ? ? ? Else > ? ? ? ? ? ? ? ? ? ? ? ? ?Stimulus.ACC = 1 > ? ? ? ? ? ? ? ? ? ? ? ? End If > > to logg the response as 1. Which makes me think that if a response is > made, then it?s wrong and logged as 1? Also, the problem still > remains. > > Thank you so much for trying to solve this but please do not put any > more effort into it as I?m using the RT from the first slide and that > works as it should, and also ?true? accuracy from the hit test > performed after a response. This is only something that puzzled me, > and it?s not crucial for this experiment. > > On 9 mar, 22:45, liwenna wrote: > > > "when using the end action jump element." > > > So glad you added that sentence! > > > Indeed, you shouldn't use the end action jump element :) What it does > > is make the program jump the moment the response is made, thus > > bypassing the inline with the hittest. Therefore the accuracy remains > > '0'. > > Set the end actions back to terminate and add a 'goto labelname' line > > to your ?hittest codes as described in my second post. I think that > > might well solve your probs. > > > On Mar 9, 7:32?pm, jens wrote: > > > > Thank you for taking your time and answering this. Unfortunately I?m > > > not able to get this to work properly. By adding the code after every > > > slide instead of just using the menus to log and jump, I?m now getting > > > all ACC = 0. > > > > ?I got to suspect that the problem lies with your hittest code? > > > The thing is when I'm not using any code at all and just Space to > > > respond, I?m still getting the same results. It?s weird that the > > > default mode of accuracy, or response, logging is that it?s remembered > > > from trial to trial when using the end action jump element. > > > > What I want it to do is just to log the response given to a specific > > > slide, end that trial and then start a new trial without remembering > > > previous responses. It is such a stupid thing that makes me suspect > > > that I have missed something really basic, or is it supposed to behave > > > in this matter? > > > > Do you think that there might be an easier way than what you are > > > describing liwenna? Something like acc or resp reset? -- 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. From jens.bernhardsson at gmail.com Thu Mar 10 10:15:44 2011 From: jens.bernhardsson at gmail.com (jens) Date: Thu, 10 Mar 2011 02:15:44 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: <9e575d8a-e21c-43e0-a8ff-2147dd4b373f@dn9g2000vbb.googlegroups.com> Message-ID: The thing is that it doesn?t seem to matter if I use E-primes own jump element or if that is set to terminate and I do the jump with an inline. I get the same results; that response is logged on the slides following the ?true? response ?slide. Also, and this is weird, in your code I need to shift the identification of the Stimulis.ACC like this If strHit = c.GetAttrib("Correctresp") Then Stimulus.ACC = 0 Else Stimulus.ACC = 1 End If to logg the response as 1. Which makes me think that if a response is made, then it?s wrong and logged as 1? Also, the problem still remains. Thank you so much for trying to solve this but please do not put any more effort into it as I?m using the RT from the first slide and that works as it should, and also ?true? accuracy from the hit test performed after a response. This is only something that puzzled me, and it?s not crucial for this experiment. On 9 mar, 22:45, liwenna wrote: > "when using the end action jump element." > > So glad you added that sentence! > > Indeed, you shouldn't use the end action jump element :) What it does > is make the program jump the moment the response is made, thus > bypassing the inline with the hittest. Therefore the accuracy remains > '0'. > Set the end actions back to terminate and add a 'goto labelname' line > to your ?hittest codes as described in my second post. I think that > might well solve your probs. > > On Mar 9, 7:32?pm, jens wrote: > > > Thank you for taking your time and answering this. Unfortunately I?m > > not able to get this to work properly. By adding the code after every > > slide instead of just using the menus to log and jump, I?m now getting > > all ACC = 0. > > > ?I got to suspect that the problem lies with your hittest code? > > The thing is when I'm not using any code at all and just Space to > > respond, I?m still getting the same results. It?s weird that the > > default mode of accuracy, or response, logging is that it?s remembered > > from trial to trial when using the end action jump element. > > > What I want it to do is just to log the response given to a specific > > slide, end that trial and then start a new trial without remembering > > previous responses. It is such a stupid thing that makes me suspect > > that I have missed something really basic, or is it supposed to behave > > in this matter? > > > Do you think that there might be an easier way than what you are > > describing liwenna? Something like acc or resp reset? -- 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. From ucfmicah at gmail.com Thu Mar 10 11:43:14 2011 From: ucfmicah at gmail.com (Micah) Date: Thu, 10 Mar 2011 03:43:14 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA365@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hey Michiel, Awesome reply. My only question is how this can incorporate the specifics of my experiment where I have two 'accuracy' measures that are not actually incorporated in the Stimulus.ACC object. Both inhibition performance and error-awareness in this case are calculated by the post-trial in-line, and so I'm not sure I understand how TextDisplay1.ACC would gather any information on them. I could set it collect inhibition accuracy easily enough, but error-awareness needs the scripting to determine when there was a failed stop (there can only be awareness for errors, so there's nothing to report on successful stops). Anyway, I will poke around with your idea and see what happens. Best, Micah On Mar 9, 5:39?pm, Michiel Spape wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > On Mar 9, 4:55?pm, Michiel Spape > wrote: > > Hiya, > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > Then try change this into: > > stopaccuracy.AddObservation 0 > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > Cheers, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 15:19 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Ben, > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > somewhere in my understanding of E-basic, as I had the same idea. > > Sadly neither CInt or CDbl used in that way change the error. I also > > tried declaring erroraware and stopaccuracy as doubles, and tried > > converting them into new variables that would be numbers. I'm not sure > > I did that correctly however. > > > Thanks for your help- i'll be really excited if we can solve this. > > > On Mar 9, 3:17?pm, ben robinson wrote: > > > try changing them to: > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > or CDbl(...) if CInt(...) isn't what you need. > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > from the list is understood as a string, rather than some sort of number... > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > Hello, > > > > > This is probably a very easy to solve problem, but it's just about > > > > beaten me down. I am trying to make a training script for my error- > > > > awareness paradigm that can log inhibition and error-awareness > > > > performance and then report these to the subject at the end of the > > > > trial. The task is very simple and works fine, as does the performance > > > > logging. I can't seem to get my summation object to work though- > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > variable from the logging vars in a double format but that does not > > > > fix it. Can someone take a look at my code and see what's up? > > > > > I start with the following setup inline and usertab code: > > > > 'setup inline > > > > set stopaccuracy = New Summation > > > > set erroraware = New Summation > > > > > 'usertab > > > > dim killme as integer > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > dim ogperf as double > > > > dim ogaware as double > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > fill the summation object with these information for reporting to the > > > > subject, looks like this: > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > ? ? ? ?if TextDisplay1.RT = 0 then > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > > > ? ? ? ?else > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > > > ? ? ? ?end if > > > > end if > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > ? ? ? ?if TextDisplay1.RESP = "2" then > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > > > ? ? ? ?else > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > > > ? ? ? ?end if > > > > end if > > > > > if c.GetAttrib("ogperf") = "0" then > > > > ? ? ? ?killme = 1 > > > > else > > > > ? ? ? ?killme = 0 > > > > end if > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Debug.Print stopaccuracy.Mean > > > > Debug.Print erroraware.Mean > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > It's these lines that give me the type mismatch: > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Link to script:http://bit.ly/hKCcmo > > > > > Best, > > > > Micah > > > > > --> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, sendemailtoe-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. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-pr... at googlegroups.com.To unsubscribe from this group, send emailtoe-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > > 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 > > ... > > read more ? -- 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. From Michiel.Spape at nottingham.ac.uk Thu Mar 10 12:08:41 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 12:08:41 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hiya, Sorry, that is indeed just bad reading on my part :) It remains a sometimes worthy suggestion for other people here though, as I've often seen "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC looks very nice and clean. For a truly suitable answer, I should really have a look at your script and see what exactly you mean, but alas, no time! Cheers, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 10 March 2011 11:43 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hey Michiel, Awesome reply. My only question is how this can incorporate the specifics of my experiment where I have two 'accuracy' measures that are not actually incorporated in the Stimulus.ACC object. Both inhibition performance and error-awareness in this case are calculated by the post-trial in-line, and so I'm not sure I understand how TextDisplay1.ACC would gather any information on them. I could set it collect inhibition accuracy easily enough, but error-awareness needs the scripting to determine when there was a failed stop (there can only be awareness for errors, so there's nothing to report on successful stops). Anyway, I will poke around with your idea and see what happens. Best, Micah On Mar 9, 5:39?pm, Michiel Spape wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > On Mar 9, 4:55?pm, Michiel Spape > wrote: > > Hiya, > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > Then try change this into: > > stopaccuracy.AddObservation 0 > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > Cheers, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 15:19 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Ben, > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > somewhere in my understanding of E-basic, as I had the same idea. > > Sadly neither CInt or CDbl used in that way change the error. I also > > tried declaring erroraware and stopaccuracy as doubles, and tried > > converting them into new variables that would be numbers. I'm not sure > > I did that correctly however. > > > Thanks for your help- i'll be really excited if we can solve this. > > > On Mar 9, 3:17?pm, ben robinson wrote: > > > try changing them to: > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > or CDbl(...) if CInt(...) isn't what you need. > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > from the list is understood as a string, rather than some sort of number... > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > Hello, > > > > > This is probably a very easy to solve problem, but it's just about > > > > beaten me down. I am trying to make a training script for my error- > > > > awareness paradigm that can log inhibition and error-awareness > > > > performance and then report these to the subject at the end of the > > > > trial. The task is very simple and works fine, as does the performance > > > > logging. I can't seem to get my summation object to work though- > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > variable from the logging vars in a double format but that does not > > > > fix it. Can someone take a look at my code and see what's up? > > > > > I start with the following setup inline and usertab code: > > > > 'setup inline > > > > set stopaccuracy = New Summation > > > > set erroraware = New Summation > > > > > 'usertab > > > > dim killme as integer > > > > dim stopaccuracy as Summation > > > > dim erroraware as Summation > > > > dim ogperf as double > > > > dim ogaware as double > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > fill the summation object with these information for reporting to the > > > > subject, looks like this: > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > ? ? ? ?if TextDisplay1.RT = 0 then > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > > > ? ? ? ?else > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > > > ? ? ? ?end if > > > > end if > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > ? ? ? ?if TextDisplay1.RESP = "2" then > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > > > ? ? ? ?else > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > > > ? ? ? ?end if > > > > end if > > > > > if c.GetAttrib("ogperf") = "0" then > > > > ? ? ? ?killme = 1 > > > > else > > > > ? ? ? ?killme = 0 > > > > end if > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Debug.Print stopaccuracy.Mean > > > > Debug.Print erroraware.Mean > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > It's these lines that give me the type mismatch: > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > Link to script:http://bit.ly/hKCcmo > > > > > Best, > > > > Micah > > > > > --> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, sendemailtoe-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. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-pr... at googlegroups.com.To unsubscribe from this group, send emailtoe-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > > 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 > > ... > > read more ? -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From jens.bernhardsson at gmail.com Thu Mar 10 12:24:38 2011 From: jens.bernhardsson at gmail.com (jens) Date: Thu, 10 Mar 2011 04:24:38 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: Message-ID: "What is the true response slide??" A bad name for trying to name the slide where the actual response is made. "...so I'd tend to think that there then is something wrong with he correct responses you specified there." Probably. I respond by left mouse button, and the 'correctresp' in a list is set to 1. Also, the Allowable response is set to 1. So i don't know what's wrong there Best Jens On 10 mar, 12:04, liwenna wrote: > hmmz... with the code you describe pretty much any response will be > logged as 1, unless the response is identical to the one specified > under 'correctresp' so I'd tend to think that there then is something > wrong with he correct responses you specified there. > > What is the true response slide?? > > I do think it's puzzling that the whole thing doesn't respond in the > way you would expect but if you got your program working than that's > great news :) > > On Mar 10, 11:15?am, jens wrote: > > > The thing is that it doesn?t seem to matter if I use E-primes own jump > > element or if that is set to terminate and I do the jump with an > > inline. I get the same results; that response is logged on the slides > > following the ?true? response ?slide. > > Also, and this is weird, in your code I need to shift the > > identification of the Stimulis.ACC like this > > > ?If strHit = c.GetAttrib("Correctresp") Then > > ? ? ? ? ? ? ? ? ? ? ? ? Stimulus.ACC = 0 > > ? ? ? ? ? ? ? ? ? ? ? ? Else > > ? ? ? ? ? ? ? ? ? ? ? ? ?Stimulus.ACC = 1 > > ? ? ? ? ? ? ? ? ? ? ? ? End If > > > to logg the response as 1. Which makes me think that if a response is > > made, then it?s wrong and logged as 1? Also, the problem still > > remains. > > > Thank you so much for trying to solve this but please do not put any > > more effort into it as I?m using the RT from the first slide and that > > works as it should, and also ?true? accuracy from the hit test > > performed after a response. This is only something that puzzled me, > > and it?s not crucial for this experiment. > > > On 9 mar, 22:45, liwenna wrote: > > > > "when using the end action jump element." > > > > So glad you added that sentence! > > > > Indeed, you shouldn't use the end action jump element :) What it does > > > is make the program jump the moment the response is made, thus > > > bypassing the inline with the hittest. Therefore the accuracy remains > > > '0'. > > > Set the end actions back to terminate and add a 'goto labelname' line > > > to your ?hittest codes as described in my second post. I think that > > > might well solve your probs. > > > > On Mar 9, 7:32?pm, jens wrote: > > > > > Thank you for taking your time and answering this. Unfortunately I?m > > > > not able to get this to work properly. By adding the code after every > > > > slide instead of just using the menus to log and jump, I?m now getting > > > > all ACC = 0. > > > > > ?I got to suspect that the problem lies with your hittest code? > > > > The thing is when I'm not using any code at all and just Space to > > > > respond, I?m still getting the same results. It?s weird that the > > > > default mode of accuracy, or response, logging is that it?s remembered > > > > from trial to trial when using the end action jump element. > > > > > What I want it to do is just to log the response given to a specific > > > > slide, end that trial and then start a new trial without remembering > > > > previous responses. It is such a stupid thing that makes me suspect > > > > that I have missed something really basic, or is it supposed to behave > > > > in this matter? > > > > > Do you think that there might be an easier way than what you are > > > > describing liwenna? Something like acc or resp reset? -- 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. From Michiel.Spape at nottingham.ac.uk Thu Mar 10 13:38:25 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 13:38:25 +0000 Subject: Inaccurate logging of accuracy In-Reply-To: <29b27e1a-af60-4d44-ae04-c32341acd19c@k10g2000prh.googlegroups.com> Message-ID: Sorry for barging in... Just one thing I recently found out: the allowable and correct response can be set for each response device different. If you are like me and have both keyboard AND mouse as response-devices, make sure you have the correct response set for each one separately. Don't know if something like this is happening - probably not, so ignore me - but it drove me insane the other day (it's very easy to overlook) and I hope to spare the rest such. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of jens Sent: 10 March 2011 12:25 To: E-Prime Subject: Re: Inaccurate logging of accuracy "What is the true response slide??" A bad name for trying to name the slide where the actual response is made. "...so I'd tend to think that there then is something wrong with he correct responses you specified there." Probably. I respond by left mouse button, and the 'correctresp' in a list is set to 1. Also, the Allowable response is set to 1. So i don't know what's wrong there Best Jens On 10 mar, 12:04, liwenna wrote: > hmmz... with the code you describe pretty much any response will be > logged as 1, unless the response is identical to the one specified > under 'correctresp' so I'd tend to think that there then is something > wrong with he correct responses you specified there. > > What is the true response slide?? > > I do think it's puzzling that the whole thing doesn't respond in the > way you would expect but if you got your program working than that's > great news :) > > On Mar 10, 11:15?am, jens wrote: > > > The thing is that it doesn't seem to matter if I use E-primes own jump > > element or if that is set to terminate and I do the jump with an > > inline. I get the same results; that response is logged on the slides > > following the "true" response -slide. > > Also, and this is weird, in your code I need to shift the > > identification of the Stimulis.ACC like this > > > ?If strHit = c.GetAttrib("Correctresp") Then > > ? ? ? ? ? ? ? ? ? ? ? ? Stimulus.ACC = 0 > > ? ? ? ? ? ? ? ? ? ? ? ? Else > > ? ? ? ? ? ? ? ? ? ? ? ? ?Stimulus.ACC = 1 > > ? ? ? ? ? ? ? ? ? ? ? ? End If > > > to logg the response as 1. Which makes me think that if a response is > > made, then it's wrong and logged as 1? Also, the problem still > > remains. > > > Thank you so much for trying to solve this but please do not put any > > more effort into it as I'm using the RT from the first slide and that > > works as it should, and also 'true' accuracy from the hit test > > performed after a response. This is only something that puzzled me, > > and it's not crucial for this experiment. > > > On 9 mar, 22:45, liwenna wrote: > > > > "when using the end action jump element." > > > > So glad you added that sentence! > > > > Indeed, you shouldn't use the end action jump element :) What it does > > > is make the program jump the moment the response is made, thus > > > bypassing the inline with the hittest. Therefore the accuracy remains > > > '0'. > > > Set the end actions back to terminate and add a 'goto labelname' line > > > to your ?hittest codes as described in my second post. I think that > > > might well solve your probs. > > > > On Mar 9, 7:32?pm, jens wrote: > > > > > Thank you for taking your time and answering this. Unfortunately I'm > > > > not able to get this to work properly. By adding the code after every > > > > slide instead of just using the menus to log and jump, I'm now getting > > > > all ACC = 0. > > > > > "I got to suspect that the problem lies with your hittest code" > > > > The thing is when I'm not using any code at all and just Space to > > > > respond, I'm still getting the same results. It's weird that the > > > > default mode of accuracy, or response, logging is that it's remembered > > > > from trial to trial when using the end action jump element. > > > > > What I want it to do is just to log the response given to a specific > > > > slide, end that trial and then start a new trial without remembering > > > > previous responses. It is such a stupid thing that makes me suspect > > > > that I have missed something really basic, or is it supposed to behave > > > > in this matter? > > > > > Do you think that there might be an easier way than what you are > > > > describing liwenna? Something like acc or resp reset? -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From ucfmicah at gmail.com Thu Mar 10 14:38:42 2011 From: ucfmicah at gmail.com (Micah) Date: Thu, 10 Mar 2011 06:38:42 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA3D2@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hi, I know everyone is very busy. Maybe I can get some help just by narrowing the issue a bit. I'm trying to implement the counter technique and have got the TrialNum working correctly. Now, I had the thought that I could create another variable that adds one each time there is an 'aware trial' (i.e., where the attributed awaretrial=1 and the variable killme=1 (indicating an aware trial where the participant failed to stop. Globally, I declared both Trialnum and Awaretrials. I then used the following inline to try and sum up the total aware trials. My thinking is that if this works, I can then do the same thing for a variable called 'correctaware' and easily calculate the mean % in a debug as you suggested. Here is the inline (new parts in bold) If c.GetAttrib("trialtype") = "lure" then 'this part determines the inhibition accuracy, 1=successful 'stop' if TextDisplay1.RT = 0 then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if end if if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part determines the awaresness, 1=aware of an error, killme=1 means participant failed to stop on an awaretrial (and hence should report) if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if c.GetAttrib("ogperf") = "0" then 'this part is needed to determine when a participant has failed to stop killme = 1 else killme = 0 end if if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new parts. I expect it to add one to 'awaretrials' each trial if criterion are satisfied awaretrials=awaretrials+1 end if trialnum=trialnum+1 'this part adds total trials Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit out a counter. the trialnum works correctly, but awaretrial just spits out a '0' over and over Debug.print trialnum If someone can help me get the awareness counter working, I think I'll be home free. On Mar 10, 1:08?pm, Michiel Spape wrote: > Hiya, > Sorry, that is indeed just bad reading on my part :) It remains a sometimes worthy suggestion for other people here though, as I've often seen "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC looks very nice and clean. For a truly suitable answer, I should really have a look at your script and see what exactly you mean, but alas, no time! > > Cheers, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 10 March 2011 11:43 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hey Michiel, > > Awesome reply. My only question is how this can incorporate the > specifics of my experiment where I have two 'accuracy' measures that > are not actually incorporated in the Stimulus.ACC object. Both > inhibition performance and error-awareness in this case are calculated > by the post-trial in-line, and so I'm not sure I understand how > TextDisplay1.ACC would gather any information on them. I could set it > collect inhibition accuracy easily enough, but error-awareness needs > the scripting to determine when there was a failed stop (there can > only be awareness for errors, so there's nothing to report on > successful stops). Anyway, I will poke around with your idea and see > what happens. > > Best, > Micah > > On Mar 9, 5:39?pm, Michiel Spape > wrote: > > Hiya, > > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > So, every trial, I tend to have an inline with the following: > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > > TrialNum = 30 'just as an example, 30 trials done so far > > TrialsCorrect = 10 'just as an example, 10 trials correct > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > This returns "33% correct" (in the output). > > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > > Cheers, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 16:06 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Michiel, > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > objects, and the related code is designed to log stops and successful > > error reports. So the first bit of code should be resolving to either > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > report/missed error report. That being said I see your point with the > > need to simplify and had wondered if I could get by without the > > summation object. My worry is that, sense the accuracy data is not > > generated directly by the list or procedure, I need this summation > > object to collect data from the ogperf ogaware inline. The last bit > > ( c.SetAttrib "errorawareness", > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > the summation object for placement in the end of block report > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > trials and reported your errors [erroraware] of the time"). > > > Will try to wrap my head around how to do this without the summation- > > appreciate your help! > > > On Mar 9, 4:55?pm, Michiel Spape > > wrote: > > > Hiya, > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > Then try change this into: > > > stopaccuracy.AddObservation 0 > > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > > Cheers, > > > Mich > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > > Sent: 09 March 2011 15:19 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > > Hi Ben, > > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > > somewhere in my understanding of E-basic, as I had the same idea. > > > Sadly neither CInt or CDbl used in that way change the error. I also > > > tried declaring erroraware and stopaccuracy as doubles, and tried > > > converting them into new variables that would be numbers. I'm not sure > > > I did that correctly however. > > > > Thanks for your help- i'll be really excited if we can solve this. > > > > On Mar 9, 3:17?pm, ben robinson wrote: > > > > try changing them to: > > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > > or CDbl(...) if CInt(...) isn't what you need. > > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > > from the list is understood as a string, rather than some sort of number... > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > > Hello, > > > > > > This is probably a very easy to solve problem, but it's just about > > > > > beaten me down. I am trying to make a training script for my error- > > > > > awareness paradigm that can log inhibition and error-awareness > > > > > performance and then report these to the subject at the end of the > > > > > trial. The task is very simple and works fine, as does the performance > > > > > logging. I can't seem to get my summation object to work though- > > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > > variable from the logging vars in a double format but that does not > > > > > fix it. Can someone take a look at my code and see what's up? > > > > > > I start with the following setup inline and usertab code: > > > > > 'setup inline > > > > > set stopaccuracy = New Summation > > > > > set erroraware = New Summation > > > > > > 'usertab > > > > > dim killme as integer > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > dim ogperf as double > > > > > dim ogaware as double > > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > > fill the summation object with these information for reporting to the > > > > > subject, looks like this: > > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > > ? ? ? ?if TextDisplay1.RT = 0 then > > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > > > > ? ? ? ?else > > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > > > > ? ? ? ?end if > > > > > end if > > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > > ? ? ? ?if TextDisplay1.RESP = "2" then > > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > > > > ? ? ? ?else > > > > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > > > > ? ? ? ?end if > > > > > end if > > > > > > if c.GetAttrib("ogperf") = "0" then > > > > > ? ? ? ?killme = 1 > > > > > else > > > > > ? ? ? ?killme = 0 > > > > > end if > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > Debug.Print stopaccuracy.Mean > > > > > Debug.Print erroraware.Mean > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", > > ... > > read more ? -- 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. From Michiel.Spape at nottingham.ac.uk Thu Mar 10 14:56:45 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 14:56:45 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <472d0c7c-6b18-472b-84f7-cef061919336@u6g2000vbh.googlegroups.com> Message-ID: Hiya, It's a no-HTML mailinglist, sadly - some code formatting would be nice. I copy-pasted it into eprime and fiddled around with it: ------------ trialnum=trialnum+1 'this part adds total trials (moved this to beginning) If c.GetAttrib("trialtype") = "lure" AND TextDisplay1.RESP = "" then'I prefer 'no response' to '0 RT', as the other suggests there's a very fast RT! c.SetAttrib "ogperf", 1 killme = 0 else c.SetAttrib "ogperf", 0 killme = 1 end if 'here's a debugging thingy for you: Debug.Print "I'm currently getting Awaretrial= " & c.GetAttrib("awaretrial") & "killme = " & cstr(killme) 'However, I notice killme is undeclared up to this point (followed later, now earlier) if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part determines the awaresness, 1=aware of an error, killme=1 means participant failed to stop on an awaretrial (and hence should report) awaretrials=awaretrials+1 'as far as i saw, this came a bit later, saves a few lines if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if 'i did the killme above (since it is based on ogperf, it might as well be done in the same loop, no? Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit out a counter. the trialnum works correctly, but awaretrial just spits out a '0' over and over Debug.print trialnum ---------------- Maybe it works now? If it doesn't, the debug.print which immediately precedes the IF statement which leads to awaretrials counter being updated should spit out exactly why not. But I think it's the killme, which was defined AFTER polling whether it's 1 or 0 (hence, presumably always 0). I've also cleaned a bit. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Sent: 10 March 2011 14:39 To: E-Prime Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch Hi, I know everyone is very busy. Maybe I can get some help just by narrowing the issue a bit. I'm trying to implement the counter technique and have got the TrialNum working correctly. Now, I had the thought that I could create another variable that adds one each time there is an 'aware trial' (i.e., where the attributed awaretrial=1 and the variable killme=1 (indicating an aware trial where the participant failed to stop. Globally, I declared both Trialnum and Awaretrials. I then used the following inline to try and sum up the total aware trials. My thinking is that if this works, I can then do the same thing for a variable called 'correctaware' and easily calculate the mean % in a debug as you suggested. Here is the inline (new parts in bold) If c.GetAttrib("trialtype") = "lure" then 'this part determines the inhibition accuracy, 1=successful 'stop' if TextDisplay1.RT = 0 then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if end if if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part determines the awaresness, 1=aware of an error, killme=1 means participant failed to stop on an awaretrial (and hence should report) if TextDisplay1.RESP = "2" then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if c.GetAttrib("ogperf") = "0" then 'this part is needed to determine when a participant has failed to stop killme = 1 else killme = 0 end if if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new parts. I expect it to add one to 'awaretrials' each trial if criterion are satisfied awaretrials=awaretrials+1 end if trialnum=trialnum+1 'this part adds total trials Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit out a counter. the trialnum works correctly, but awaretrial just spits out a '0' over and over Debug.print trialnum If someone can help me get the awareness counter working, I think I'll be home free. On Mar 10, 1:08 pm, Michiel Spape wrote: > Hiya, > Sorry, that is indeed just bad reading on my part :) It remains a sometimes worthy suggestion for other people here though, as I've often seen "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC looks very nice and clean. For a truly suitable answer, I should really have a look at your script and see what exactly you mean, but alas, no time! > > Cheers, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > Sent: 10 March 2011 11:43 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hey Michiel, > > Awesome reply. My only question is how this can incorporate the > specifics of my experiment where I have two 'accuracy' measures that > are not actually incorporated in the Stimulus.ACC object. Both > inhibition performance and error-awareness in this case are calculated > by the post-trial in-line, and so I'm not sure I understand how > TextDisplay1.ACC would gather any information on them. I could set it > collect inhibition accuracy easily enough, but error-awareness needs > the scripting to determine when there was a failed stop (there can > only be awareness for errors, so there's nothing to report on > successful stops). Anyway, I will poke around with your idea and see > what happens. > > Best, > Micah > > On Mar 9, 5:39 pm, Michiel Spape > wrote: > > Hiya, > > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > So, every trial, I tend to have an inline with the following: > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > > TrialNum = 30 'just as an example, 30 trials done so far > > TrialsCorrect = 10 'just as an example, 10 trials correct > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > This returns "33% correct" (in the output). > > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > > Cheers, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 09 March 2011 16:06 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > Hi Michiel, > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > objects, and the related code is designed to log stops and successful > > error reports. So the first bit of code should be resolving to either > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > report/missed error report. That being said I see your point with the > > need to simplify and had wondered if I could get by without the > > summation object. My worry is that, sense the accuracy data is not > > generated directly by the list or procedure, I need this summation > > object to collect data from the ogperf ogaware inline. The last bit > > ( c.SetAttrib "errorawareness", > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > the summation object for placement in the end of block report > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > trials and reported your errors [erroraware] of the time"). > > > Will try to wrap my head around how to do this without the summation- > > appreciate your help! > > > On Mar 9, 4:55 pm, Michiel Spape > > wrote: > > > Hiya, > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: > > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > > If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > Then try change this into: > > > stopaccuracy.AddObservation 0 > > > if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. > > > > So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. > > > Cheers, > > > Mich > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah > > > Sent: 09 March 2011 15:19 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > > > Hi Ben, > > > > Sincere thanks for your suggestion. Helped me to feel like I'm getting > > > somewhere in my understanding of E-basic, as I had the same idea. > > > Sadly neither CInt or CDbl used in that way change the error. I also > > > tried declaring erroraware and stopaccuracy as doubles, and tried > > > converting them into new variables that would be numbers. I'm not sure > > > I did that correctly however. > > > > Thanks for your help- i'll be really excited if we can solve this. > > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > > try changing them to: > > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > > or CDbl(...) if CInt(...) isn't what you need. > > > > i think the problem might be that when you c.GetAttrib the value it pulls > > > > from the list is understood as a string, rather than some sort of number... > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > > Hello, > > > > > > This is probably a very easy to solve problem, but it's just about > > > > > beaten me down. I am trying to make a training script for my error- > > > > > awareness paradigm that can log inhibition and error-awareness > > > > > performance and then report these to the subject at the end of the > > > > > trial. The task is very simple and works fine, as does the performance > > > > > logging. I can't seem to get my summation object to work though- > > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > > variable from the logging vars in a double format but that does not > > > > > fix it. Can someone take a look at my code and see what's up? > > > > > > I start with the following setup inline and usertab code: > > > > > 'setup inline > > > > > set stopaccuracy = New Summation > > > > > set erroraware = New Summation > > > > > > 'usertab > > > > > dim killme as integer > > > > > dim stopaccuracy as Summation > > > > > dim erroraware as Summation > > > > > dim ogperf as double > > > > > dim ogaware as double > > > > > > My inline that logs awareness and performance, and (is supposed to) > > > > > fill the summation object with these information for reporting to the > > > > > subject, looks like this: > > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > > if TextDisplay1.RT = 0 then > > > > > c.SetAttrib "ogperf", 1 > > > > > else > > > > > c.SetAttrib "ogperf", 0 > > > > > end if > > > > > end if > > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > > if TextDisplay1.RESP = "2" then > > > > > c.SetAttrib "ogaware", 0 > > > > > else > > > > > c.SetAttrib "ogaware", 1 > > > > > end if > > > > > end if > > > > > > if c.GetAttrib("ogperf") = "0" then > > > > > killme = 1 > > > > > else > > > > > killme = 0 > > > > > end if > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > Debug.Print stopaccuracy.Mean > > > > > Debug.Print erroraware.Mean > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > c.SetAttrib "errorawareness", > > ... > > read more ? -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From micah at cfin.dk Thu Mar 10 16:09:29 2011 From: micah at cfin.dk (Micah Allen) Date: Thu, 10 Mar 2011 17:09:29 +0100 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA3FF@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Hi Michiel, I'm afraid that did not fix it. I can see from the debug that if on 'no awareness' trials Awaretrial resolves to " ". I think the problem might just be my syntax, as it seems to add nothing every time. Is there a particular way to use if-then statements to add incrementally to a variable? Best, Micah On Thu, Mar 10, 2011 at 3:56 PM, Michiel Spape < Michiel.Spape at nottingham.ac.uk> wrote: > Hiya, > It's a no-HTML mailinglist, sadly - some code formatting would be nice. I > copy-pasted it into eprime and fiddled around with it: > > ------------ > > trialnum=trialnum+1 'this part adds total trials (moved this to > beginning) > > If c.GetAttrib("trialtype") = "lure" AND TextDisplay1.RESP = "" then'I > prefer 'no response' to '0 RT', as the other suggests there's a very fast > RT! > c.SetAttrib "ogperf", 1 > killme = 0 > else > c.SetAttrib "ogperf", 0 > killme = 1 > end if > > 'here's a debugging thingy for you: > Debug.Print "I'm currently getting Awaretrial= " & > c.GetAttrib("awaretrial") & "killme = " & cstr(killme) > 'However, I notice killme is undeclared up to this point (followed later, > now earlier) > if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this part > determines the awaresness, 1=aware of an error, killme=1 means participant > failed to stop on an awaretrial (and hence should report) > awaretrials=awaretrials+1 'as far as i saw, this came a bit later, > saves a few lines > if TextDisplay1.RESP = "2" then > c.SetAttrib "ogaware", 0 > else > c.SetAttrib "ogaware", 1 > end if > end if > > 'i did the killme above (since it is based on ogperf, it might as well be > done in the same loop, no? > > Debug.print awaretrials & " = awaretrialtotal" ' these parts should spit > out a counter. the trialnum works correctly, but awaretrial just spits out a > '0' over and over > Debug.print trialnum > ---------------- > > Maybe it works now? If it doesn't, the debug.print which immediately > precedes the IF statement which leads to awaretrials counter being updated > should spit out exactly why not. But I think it's the killme, which was > defined AFTER polling whether it's 1 or 0 (hence, presumably always 0). I've > also cleaned a bit. > Best, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf > Of Micah > Sent: 10 March 2011 14:39 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > Hi, > > I know everyone is very busy. Maybe I can get some help just by > narrowing the issue a bit. I'm trying to implement the counter > technique and have got the TrialNum working correctly. Now, I had the > thought that I could create another variable that adds one each time > there is an 'aware trial' (i.e., where the attributed awaretrial=1 and > the variable killme=1 (indicating an aware trial where the participant > failed to stop. > > Globally, I declared both Trialnum and Awaretrials. I then used the > following inline to try and sum up the total aware trials. My thinking > is that if this works, I can then do the same thing for a variable > called 'correctaware' and easily calculate the mean % in a debug as > you suggested. Here is the inline (new parts in bold) > > If c.GetAttrib("trialtype") = "lure" then 'this part > determines the inhibition accuracy, 1=successful 'stop' > if TextDisplay1.RT = 0 then > c.SetAttrib "ogperf", 1 > else > c.SetAttrib "ogperf", 0 > end if > end if > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then 'this > part determines the awaresness, 1=aware of an error, killme=1 means > participant failed to stop on an awaretrial (and hence should report) > if TextDisplay1.RESP = "2" then > c.SetAttrib "ogaware", 0 > else > c.SetAttrib "ogaware", 1 > end if > end if > > if c.GetAttrib("ogperf") = "0" then 'this part is > needed to determine when a participant has failed to stop > killme = 1 > else > killme = 0 > end if > > if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new > parts. I expect it to add one to 'awaretrials' each trial if criterion > are satisfied > awaretrials=awaretrials+1 > end if > > trialnum=trialnum+1 'this part adds total trials > > Debug.print awaretrials & " = awaretrialtotal" ' these parts should > spit out a counter. the trialnum works correctly, but awaretrial just > spits out a '0' over and over > > Debug.print trialnum > > > If someone can help me get the awareness counter working, I think I'll > be home free. > > On Mar 10, 1:08 pm, Michiel Spape > wrote: > > Hiya, > > Sorry, that is indeed just bad reading on my part :) It remains a > sometimes worthy suggestion for other people here though, as I've often seen > "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC > looks very nice and clean. For a truly suitable answer, I should really have > a look at your script and see what exactly you mean, but alas, no time! > > > > Cheers, > > Mich > > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > > > > > > > > > > > > > > -----Original Message-----From:e-prime at googlegroups.com[mailto: > e-prime at googlegroups.com]On Behalf Of Micah > > Sent: 10 March 2011 11:43 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > > > Hey Michiel, > > > > Awesome reply. My only question is how this can incorporate the > > specifics of my experiment where I have two 'accuracy' measures that > > are not actually incorporated in the Stimulus.ACC object. Both > > inhibition performance and error-awareness in this case are calculated > > by the post-trial in-line, and so I'm not sure I understand how > > TextDisplay1.ACC would gather any information on them. I could set it > > collect inhibition accuracy easily enough, but error-awareness needs > > the scripting to determine when there was a failed stop (there can > > only be awareness for errors, so there's nothing to report on > > successful stops). Anyway, I will poke around with your idea and see > > what happens. > > > > Best, > > Micah > > > > On Mar 9, 5:39 pm, Michiel Spape > > wrote: > > > Hiya, > > > Well, let's see how far you'll get :) I thought I might add that I > generally have two global variables (i.e. declared in the User tab), one > being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > > So, every trial, I tend to have an inline with the following: > > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also > useful if you want to present a break > > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN > object. > > > > > Visual basic tends to be a bit tricky in terms of variables being > converted on the spot, whether you like it or not, but if you just want to > know the percentage, the following tends to work pretty well: > > > TrialNum = 30 'just as an example, 30 trials done so far > > > TrialsCorrect = 10 'just as an example, 10 trials correct > > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > > This returns "33% correct" (in the output). > > > > > So, if you would just dump that into a new attribute (don't add it to > the list, it confuses things sometimes): > > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > > > and have a slide, saying "You had [thismuch]% correct", you're > basically there (just tested it). Not to say you can't do the same with > summation objects, but the above, taking out my debug, takes only 3 lines of > code (excluding 2 lines of user script variable declarations). > > > Cheers, > > > Mich > > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto: > e-prime at googlegroups.com]On Behalf Of Micah > > > Sent: 09 March 2011 16:06 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > > > > Hi Michiel, > > > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > > objects, and the related code is designed to log stops and successful > > > error reports. So the first bit of code should be resolving to either > > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > > report/missed error report. That being said I see your point with the > > > need to simplify and had wondered if I could get by without the > > > summation object. My worry is that, sense the accuracy data is not > > > generated directly by the list or procedure, I need this summation > > > object to collect data from the ogperf ogaware inline. The last bit > > > ( c.SetAttrib "errorawareness", > > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > > the summation object for placement in the end of block report > > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > > trials and reported your errors [erroraware] of the time"). > > > > > Will try to wrap my head around how to do this without the summation- > > > appreciate your help! > > > > > On Mar 9, 4:55 pm, Michiel Spape > > > wrote: > > > > Hiya, > > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be > lazy and simply won't read long threads. I've never had any use for this > "summation object" deal, but your code is really quite confusing: > > > > > > > > dim stopaccuracy as Summation > > > > > > dim erroraware as Summation > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > > c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent") > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > What exactly are you doing here? Stopaccuracy is both a "summation" > and an "attribute in a list". Errorwareness is only semi-overlapping with > this attribute, although I see no reason why you would want this. Ogperf is > not even an attribute but a local variable. If you have declared it > somewhere, it probably looks into a list anyway, finds a question mark, > tries to put this into stopaccuracy. Thus, what you get is > StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > > > > > > If you want to find out what's going on with the mismatch (one of the > more simpler things to solve):>stopaccuracy.AddObservation > c.GetAttrib("ogperf") > > > > > > Then try change this into: > > > > stopaccuracy.AddObservation 0 > > > > if the latter works but the former doesn't, then > c.GetAttrib("ogperf") probably receives a string instead, or, in other > words, Ben would be right. See what ogperf is by doing "debug.print > c.GetAttrib("ogperf"). So, try beginning simple with working code, then add > - rather than the opposite. > > > > > > So, start with as clean and working code as possible. My suggestion > would be to start with getting rid of the summation stuff (after all, what > more is stopaccuracy.mean then merely numberofstopaccuratetrials / > numberoftrials?) and the c.getattrib/set stuff until you can get everything > working on one level. > > > > Cheers, > > > > Mich > > > > > > Michiel Spap? > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychologywww.cognitology.eu > > > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto: > e-prime at googlegroups.com]On Behalf Of Micah > > > > Sent: 09 March 2011 15:19 > > > > To: E-Prime > > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > Mismatch > > > > > > Hi Ben, > > > > > > Sincere thanks for your suggestion. Helped me to feel like I'm > getting > > > > somewhere in my understanding of E-basic, as I had the same idea. > > > > Sadly neither CInt or CDbl used in that way change the error. I also > > > > tried declaring erroraware and stopaccuracy as doubles, and tried > > > > converting them into new variables that would be numbers. I'm not > sure > > > > I did that correctly however. > > > > > > Thanks for your help- i'll be really excited if we can solve this. > > > > > > On Mar 9, 3:17 pm, ben robinson wrote: > > > > > try changing them to: > > > > > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > > > > > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > > > > > > > or CDbl(...) if CInt(...) isn't what you need. > > > > > i think the problem might be that when you c.GetAttrib the value it > pulls > > > > > from the list is understood as a string, rather than some sort of > number... > > > > > > > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: > > > > > > Hello, > > > > > > > > This is probably a very easy to solve problem, but it's just > about > > > > > > beaten me down. I am trying to make a training script for my > error- > > > > > > awareness paradigm that can log inhibition and error-awareness > > > > > > performance and then report these to the subject at the end of > the > > > > > > trial. The task is very simple and works fine, as does the > performance > > > > > > logging. I can't seem to get my summation object to work though- > > > > > > everytime it gives me a 'type mismatch'. I've tried creating a > > > > > > variable from the logging vars in a double format but that does > not > > > > > > fix it. Can someone take a look at my code and see what's up? > > > > > > > > I start with the following setup inline and usertab code: > > > > > > 'setup inline > > > > > > set stopaccuracy = New Summation > > > > > > set erroraware = New Summation > > > > > > > > 'usertab > > > > > > dim killme as integer > > > > > > dim stopaccuracy as Summation > > > > > > dim erroraware as Summation > > > > > > dim ogperf as double > > > > > > dim ogaware as double > > > > > > > > My inline that logs awareness and performance, and (is supposed > to) > > > > > > fill the summation object with these information for reporting to > the > > > > > > subject, looks like this: > > > > > > > > If c.GetAttrib("trialtype") = "lure" then > > > > > > if TextDisplay1.RT = 0 then > > > > > > c.SetAttrib "ogperf", 1 > > > > > > else > > > > > > c.SetAttrib "ogperf", 0 > > > > > > end if > > > > > > end if > > > > > > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > > > > > > if TextDisplay1.RESP = "2" then > > > > > > c.SetAttrib "ogaware", 0 > > > > > > else > > > > > > c.SetAttrib "ogaware", 1 > > > > > > end if > > > > > > end if > > > > > > > > if c.GetAttrib("ogperf") = "0" then > > > > > > killme = 1 > > > > > > else > > > > > > killme = 0 > > > > > > end if > > > > > > > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > > > > > > errorawareness.AddObservation c.GetAttrib("ogaware") > > > > > > > > Debug.Print stopaccuracy.Mean > > > > > > Debug.Print erroraware.Mean > > > > > > > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > > > > > > c.SetAttrib "errorawareness", > > > > ... > > > > read more ? > > -- > 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 and any attachment are intended solely for the addressee and > may contain confidential information. If you have received this message in > error, please send it back to me, and immediately delete it. Please do not > use, copy or disclose the information contained in this message or in any > attachment. Any views or opinions expressed by the author of this email do > not necessarily reflect the views of the University of Nottingham. > > 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. > > -- Micah Allen PhD Student in Cognitive Neuroscience Interacting Minds Group Center for Functionally Integrative Neuroscience Aarhus University, Denmark Tel.: +45 89 49 99 33 http://www.interacting-minds.net http://au.academia.edu/MicahAllen -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From liwenna at gmail.com Thu Mar 10 16:13:35 2011 From: liwenna at gmail.com (liwenna) Date: Thu, 10 Mar 2011 08:13:35 -0800 Subject: Inaccurate logging of accuracy In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA3F2@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: you wrote " Probably. I respond by left mouse button, and the 'correctresp' in a list is set to 1. Also, the Allowable response is set to 1. So i don't know what's wrong there " Well.. the allowable response is simply all the keys that are actually allowed to 'count as responses' in this case (a mouse I got to assume, and do check Michiel's suggestion as it is a good one) the allowable response is set to 1 (left mouse button) and therefore a right mouse button click (2) will not be regarded to be a response. The weird thing is: why do you have your correct response set to 1? I'd just empty it for a starters and then have a good look at your hittest code... what does it DO exactly, could you paste a version of it here? The thing is: the whole point of the hit test (at least the one that I think you are using) is to define whether a response is correct or not based on the name of slideobject (i.e. image or textbox) that the subject has clicked on. Therefore... not the button used (1/2 for left/right button) defines the correct response (and you probably be better of nowhere defining cresp as such) but the location of the cursor when the button press was made. -> so also do not forget to actually give your text and/or imageobjects (the ones that people can click on) the correct names and then define the name of the correct response slideobject (the one that has to be clicked on) in an attribute called "correctresp" (or whatever attribute name your specific hit test code is using for the comparison). If you want this solved after all I propose that you past your code so that I (we) can have a look at it. Do must say that I'll be out of the country tomorrow to wednesday. best, liw On Mar 10, 2:38?pm, Michiel Spape wrote: > Sorry for barging in... > Just one thing I recently found out: the allowable and correct response can be set for each response device different. If you are like me and have both keyboard AND mouse as response-devices, make sure you have the correct response set for each one separately. > > Don't know if something like this is happening - probably not, so ignore me - but it drove me insane the other day (it's very easy to overlook) and I hope to spare the rest such. > Best, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of jens > Sent: 10 March 2011 12:25 > To: E-Prime > Subject: Re: Inaccurate logging of accuracy > > "What is the true response slide??" > > A bad name for trying to name the slide where the actual response is > made. > > "...so I'd tend to think that there then is something > ? ? ? wrong with he correct responses you specified there." > > Probably. I respond by left mouse button, and the 'correctresp' in a > list is set to 1. Also, the Allowable response is set to 1. So i don't > know what's wrong there > > Best > Jens > > On 10 mar, 12:04, liwenna wrote: > > hmmz... with the code you describe pretty much any response will be > > logged as 1, unless the response is identical to the one specified > > under 'correctresp' so I'd tend to think that there then is something > > wrong with he correct responses you specified there. > > > What is the true response slide?? > > > I do think it's puzzling that the whole thing doesn't respond in the > > way you would expect but if you got your program working than that's > > great news :) > > > On Mar 10, 11:15?am, jens wrote: > > > > The thing is that it doesn't seem to matter if I use E-primes own jump > > > element or if that is set to terminate and I do the jump with an > > > inline. I get the same results; that response is logged on the slides > > > following the "true" response -slide. > > > Also, and this is weird, in your code I need to shift the > > > identification of the Stimulis.ACC like this > > > > ?If strHit = c.GetAttrib("Correctresp") Then > > > ? ? ? ? ? ? ? ? ? ? ? ? Stimulus.ACC = 0 > > > ? ? ? ? ? ? ? ? ? ? ? ? Else > > > ? ? ? ? ? ? ? ? ? ? ? ? ?Stimulus.ACC = 1 > > > ? ? ? ? ? ? ? ? ? ? ? ? End If > > > > to logg the response as 1. Which makes me think that if a response is > > > made, then it's wrong and logged as 1? Also, the problem still > > > remains. > > > > Thank you so much for trying to solve this but please do not put any > > > more effort into it as I'm using the RT from the first slide and that > > > works as it should, and also 'true' accuracy from the hit test > > > performed after a response. This is only something that puzzled me, > > > and it's not crucial for this experiment. > > > > On 9 mar, 22:45, liwenna wrote: > > > > > "when using the end action jump element." > > > > > So glad you added that sentence! > > > > > Indeed, you shouldn't use the end action jump element :) What it does > > > > is make the program jump the moment the response is made, thus > > > > bypassing the inline with the hittest. Therefore the accuracy remains > > > > '0'. > > > > Set the end actions back to terminate and add a 'goto labelname' line > > > > to your ?hittest codes as described in my second post. I think that > > > > might well solve your probs. > > > > > On Mar 9, 7:32?pm, jens wrote: > > > > > > Thank you for taking your time and answering this. Unfortunately I'm > > > > > not able to get this to work properly. By adding the code after every > > > > > slide instead of just using the menus to log and jump, I'm now getting > > > > > all ACC = 0. > > > > > > "I got to suspect that the problem lies with your hittest code" > > > > > The thing is when I'm not using any code at all and just Space to > > > > > respond, I'm still getting the same results. It's weird that the > > > > > default mode of accuracy, or response, logging is that it's remembered > > > > > from trial to trial when using the end action jump element. > > > > > > What I want it to do is just to log the response given to a specific > > > > > slide, end that trial and then start a new trial without remembering > > > > > previous responses. It is such a stupid thing that makes me suspect > > > > > that I have missed something really basic, or is it supposed to behave > > > > > in this matter? > > > > > > Do you think that there might be an easier way than what you are > > > > > describing liwenna? Something like acc or resp reset? > > -- > 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 athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. From ucfmicah at gmail.com Thu Mar 10 16:25:22 2011 From: ucfmicah at gmail.com (Micah) Date: Thu, 10 Mar 2011 08:25:22 -0800 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Scratch that, I had an error in my debugging that led me to conclude it wasn't working. The new version you provided IS working to count aware trials! Thanks so much- I am pretty sure from here I can scale this up to logging everything I need and providing feedback. Karma + a billion! On Mar 10, 5:09?pm, Micah Allen wrote: > Hi Michiel, > > I'm afraid that did not fix it. I can see from the debug that if on 'no > awareness' trials Awaretrial resolves to " ". I think the problem might just > be my syntax, as it seems to add nothing every time. Is there a particular > way to use if-then statements to add incrementally to a variable? > > Best, > Micah > > On Thu, Mar 10, 2011 at 3:56 PM, Michiel Spape < > > > > > > > > Michiel.Sp... at nottingham.ac.uk> wrote: > > Hiya, > > It's a no-HTML mailinglist, sadly - some code formatting would be nice. I > > copy-pasted it into eprime and fiddled around with it: > > > ------------ > > > trialnum=trialnum+1 ? ? ?'this part adds total trials (moved this to > > beginning) > > > If c.GetAttrib("trialtype") = "lure" AND TextDisplay1.RESP = "" then'I > > prefer 'no response' to '0 RT', as the other suggests there's a very fast > > RT! > > ? ? ? ?c.SetAttrib "ogperf", 1 > > ? ? ? ?killme = 0 > > ? ? ? ? else > > ? ? ? ?c.SetAttrib "ogperf", 0 > > ? ? ? ? killme = 1 > > end if > > > 'here's a debugging thingy for you: > > Debug.Print "I'm currently getting Awaretrial= " & > > c.GetAttrib("awaretrial") & "killme = " & cstr(killme) > > 'However, I notice killme is undeclared up to this point (followed later, > > now earlier) > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then ? ? ? ?'this part > > determines the awaresness, 1=aware of an error, killme=1 ?means participant > > failed to stop on an awaretrial (and hence should report) > > ? ? ? ? awaretrials=awaretrials+1 'as far as i saw, this came a bit later, > > saves a few lines > > ? ? ? ? if TextDisplay1.RESP = "2" then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > ? ? ? ?end if > > end if > > > 'i did the killme above (since it is based on ogperf, it might as well be > > done in the same loop, no? > > > Debug.print awaretrials ?& " = awaretrialtotal" ' these parts should spit > > out a counter. the trialnum works correctly, but awaretrial just spits out a > > '0' over and over > > Debug.print trialnum > > ---------------- > > > Maybe it works now? If it doesn't, the debug.print which immediately > > precedes the IF statement which leads to awaretrials counter being updated > > should spit out exactly why not. But I think it's the killme, which was > > defined AFTER polling whether it's 1 or 0 (hence, presumably always 0). I've > > also cleaned a bit. > > Best, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > >www.cognitology.eu > > > -----Original Message-----> From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf > > Of Micah > > Sent: 10 March 2011 14:39 > > To: E-Prime > > Subject: Re: Can't get AddObservation to work, or plague of the Type > > Mismatch > > > Hi, > > > I know everyone is very busy. Maybe I can get some help just by > > narrowing the issue a bit. I'm trying to implement the counter > > technique and have got the TrialNum working correctly. Now, I had the > > thought that I could create another variable that adds one each time > > there is an 'aware trial' (i.e., where the attributed awaretrial=1 and > > the variable killme=1 (indicating an aware trial where the participant > > failed to stop. > > > Globally, I declared both Trialnum and Awaretrials. I then used the > > following inline to try and sum up the total aware trials. My thinking > > is that if this works, I can then do the same thing for a variable > > called 'correctaware' and easily calculate the mean % in a debug as > > you suggested. Here is the inline (new parts in bold) > > > If c.GetAttrib("trialtype") = "lure" then ? ? ? ? 'this part > > determines the inhibition accuracy, 1=successful 'stop' > > ? ? ? ?if TextDisplay1.RT = 0 then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 1 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogperf", 0 > > ? ? ? ?end if > > end if > > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then ? ? ? ?'this > > part determines the awaresness, 1=aware of an error, killme=1 ?means > > participant failed to stop on an awaretrial (and hence should report) > > ? ? ? ?if TextDisplay1.RESP = "2" then > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 0 > > ? ? ? ?else > > ? ? ? ? ? ? ? ?c.SetAttrib "ogaware", 1 > > ? ? ? ?end if > > end if > > > if c.GetAttrib("ogperf") = "0" then ? ? ? ? ? ? ? ? ? ? ?'this part is > > needed to determine when a participant has failed to stop > > ? ? ? ?killme = 1 > > else > > ? ? ? ?killme = 0 > > end if > > > if c.GetAttrib("awaretrial")="1" and killme =1 then 'these are the new > > parts. I expect it to add one to 'awaretrials' each trial if criterion > > are satisfied > > awaretrials=awaretrials+1 > > ? ? ? ?end if > > > trialnum=trialnum+1 ? ? ?'this part adds total trials > > > Debug.print awaretrials ?& " = awaretrialtotal" ' these parts should > > spit out a counter. the trialnum works correctly, but awaretrial just > > spits out a '0' over and over > > > Debug.print trialnum > > > If someone can help me get the awareness counter working, I think I'll > > be home free. > > > On Mar 10, 1:08 pm, Michiel Spape > > wrote: > > > Hiya, > > > Sorry, that is indeed just bad reading on my part :) It remains a > > sometimes worthy suggestion for other people here though, as I've often seen > > "IF .....ACC = 1 then countup ELSE dontcountup" whereas count = count + ACC > > looks very nice and clean. For a truly suitable answer, I should really have > > a look at your script and see what exactly you mean, but alas, no time! > > > > Cheers, > > > Mich > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychologywww.cognitology.eu > > > > -----OriginalMessage-----From:e-prime at googlegroups.com[mailto:>e-prime at googlegroups.com]OnBehalf Of Micah > > > Sent: 10 March 2011 11:43 > > > To: E-Prime > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > > Mismatch > > > > Hey Michiel, > > > > Awesome reply. My only question is how this can incorporate the > > > specifics of my experiment where I have two 'accuracy' measures that > > > are not actually incorporated in the Stimulus.ACC object. Both > > > inhibition performance and error-awareness in this case are calculated > > > by the post-trial in-line, and so I'm not sure I understand how > > > TextDisplay1.ACC would gather any information on them. I could set it > > > collect inhibition accuracy easily enough, but error-awareness needs > > > the scripting to determine when there was a failed stop (there can > > > only be awareness for errors, so there's nothing to report on > > > successful stops). Anyway, I will poke around with your idea and see > > > what happens. > > > > Best, > > > Micah > > > > On Mar 9, 5:39 pm, Michiel Spape > > > wrote: > > > > Hiya, > > > > Well, let's see how far you'll get :) I thought I might add that I > > generally have two global variables (i.e. declared in the User tab), one > > being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > > > > So, every trial, I tend to have an inline with the following: > > > > TrialNum = TrialNum + 1 'just so that number of trials is counted, also > > useful if you want to present a break > > > > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN > > object. > > > > > Visual basic tends to be a bit tricky in terms of variables being > > converted on the spot, whether you like it or not, but if you just want to > > know the percentage, the following tends to work pretty well: > > > > TrialNum = 30 'just as an example, 30 trials done so far > > > > TrialsCorrect = 10 'just as an example, 10 trials correct > > > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > > > This returns "33% correct" (in the output). > > > > > So, if you would just dump that into a new attribute (don't add it to > > the list, it confuses things sometimes): > > > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > > > and have a slide, saying "You had [thismuch]% correct", you're > > basically there (just tested it). Not to say you can't do the same with > > summation objects, but the above, taking out my debug, takes only 3 lines of > > code (excluding 2 lines of user script variable declarations). > > > > Cheers, > > > > Mich > > > > > Michiel Spap? > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychologywww.cognitology.eu > > > > >-----OriginalMessage-----From:e-prime at googlegroups.com[mailto:>e-prime at googlegroups.com]OnBehalf Of Micah > > > > Sent: 09 March 2011 16:06 > > > > To: E-Prime > > > > Subject: Re: Can't get AddObservation to work, or plague of the Type > > Mismatch > > > > > Hi Michiel, > > > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > > > objects, and the related code is designed to log stops and successful > > > > error reports. So the first bit of code should be resolving to either > > > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > > > report/missed error report. That being said I see your point with the > > > > need to simplify and had wondered if I could get by without the > > > > summation object. My worry is that, sense the accuracy data is not > > > > generated directly by the list or procedure, I need this summation > > > > object to collect data from the ogperf ogaware inline. The last bit > > > > ( c.SetAttrib "errorawareness", > > > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > > > the summation object for placement in the end of block report > > > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > > > trials and reported your errors [erroraware] of the time"). > > > > > Will try to wrap my head around how to do this without the summation- > > > > appreciate your help! > > > > > On Mar 9, 4:55 pm, Michiel Spape > > > > wrote: > > > > > Hiya, > > > > > Ugh, lots of code. Forgive me, like many coding people, I tend to be > > lazy and simply won't read long threads. I've never had any use for this > > "summation object" deal, but your code is > > ... > > read more ? -- 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. From ucfmicah at gmail.com Thu Mar 10 17:08:16 2011 From: ucfmicah at gmail.com (Micah Allen) Date: Thu, 10 Mar 2011 18:08:16 +0100 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA365@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: woops, so close- The last bit where I dump the variables into an attribute is giving an overflow error. Any ideas? On Mar 9, 2011 5:39 PM, "Michiel Spape" wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > > > On Mar 9, 4:55 pm, Michiel Spape > wrote: >> Hiya, >> Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: >> >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. >> >> If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") >> >> Then try change this into: >> stopaccuracy.AddObservation 0 >> if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. >> >> So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. >> Cheers, >> Mich >> >> Michiel Spap? >> Research Fellow >> Perception & Action group >> University of Nottingham >> School of Psychologywww.cognitology.eu >> >> >> >> >> >> >> >> -----Original Message-----From:e-prime at googlegroups.com[mailto: e-prime at googlegroups.com]On Behalf Of Micah >> Sent: 09 March 2011 15:19 >> To: E-Prime >> Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch >> >> Hi Ben, >> >> Sincere thanks for your suggestion. Helped me to feel like I'm getting >> somewhere in my understanding of E-basic, as I had the same idea. >> Sadly neither CInt or CDbl used in that way change the error. I also >> tried declaring erroraware and stopaccuracy as doubles, and tried >> converting them into new variables that would be numbers. I'm not sure >> I did that correctly however. >> >> Thanks for your help- i'll be really excited if we can solve this. >> >> On Mar 9, 3:17 pm, ben robinson wrote: >> > try changing them to: >> > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) >> > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) >> >> > or CDbl(...) if CInt(...) isn't what you need. >> > i think the problem might be that when you c.GetAttrib the value it pulls >> > from the list is understood as a string, rather than some sort of number... >> >> > On Wed, Mar 9, 2011 at 8:34 AM, Micah wrote: >> > > Hello, >> >> > > This is probably a very easy to solve problem, but it's just about >> > > beaten me down. I am trying to make a training script for my error- >> > > awareness paradigm that can log inhibition and error-awareness >> > > performance and then report these to the subject at the end of the >> > > trial. The task is very simple and works fine, as does the performance >> > > logging. I can't seem to get my summation object to work though- >> > > everytime it gives me a 'type mismatch'. I've tried creating a >> > > variable from the logging vars in a double format but that does not >> > > fix it. Can someone take a look at my code and see what's up? >> >> > > I start with the following setup inline and usertab code: >> > > 'setup inline >> > > set stopaccuracy = New Summation >> > > set erroraware = New Summation >> >> > > 'usertab >> > > dim killme as integer >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > dim ogperf as double >> > > dim ogaware as double >> >> > > My inline that logs awareness and performance, and (is supposed to) >> > > fill the summation object with these information for reporting to the >> > > subject, looks like this: >> >> > > If c.GetAttrib("trialtype") = "lure" then >> > > if TextDisplay1.RT = 0 then >> > > c.SetAttrib "ogperf", 1 >> > > else >> > > c.SetAttrib "ogperf", 0 >> > > end if >> > > end if >> >> > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then >> > > if TextDisplay1.RESP = "2" then >> > > c.SetAttrib "ogaware", 0 >> > > else >> > > c.SetAttrib "ogaware", 1 >> > > end if >> > > end if >> >> > > if c.GetAttrib("ogperf") = "0" then >> > > killme = 1 >> > > else >> > > killme = 0 >> > > end if >> >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Debug.Print stopaccuracy.Mean >> > > Debug.Print erroraware.Mean >> >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> >> > > It's these lines that give me the type mismatch: >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Link to script:http://bit.ly/hKCcmo >> >> > > Best, >> > > Micah >> >> > > -- >> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. >> >> -- >> You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. >> For more options, visit this group athttp:// groups.google.com/group/e-prime?hl=en. >> >> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. >> >> 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. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michiel.Spape at nottingham.ac.uk Thu Mar 10 17:51:37 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 10 Mar 2011 17:51:37 +0000 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: Message-ID: Hi, No problem! This one should be easy (I get it all the time with languages less forgiving than basic): I bet numtrials equals to 0, therefore cint(cstr(trialscorrect / numtrials / 0.01)) ... which wasn't correct anyway (should have tested), it is cstr(cint(trialscorrect / numtrials / 0.01)) ... but that's not the problem (presumably) - also the cstr is unnecessary, so let's make it cint(trialscorrect / numtrials / 0.01) but finally, this, I'm pretty sure, results somewhere along the line in trialscorrect / 0. Divided by zero, or infinity, which doesn't fit in a mere integer, it will tell you overflow. Notice however that somewhere along the line, numtrials and trialnum are used interchangeably, a very common mistake if you're me: c.SetAttrib "thismuch", cint(trialscorrect / TrialNum / 0.01) sorted! Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah Allen Sent: 10 March 2011 17:08 To: e-prime at googlegroups.com Subject: RE: Can't get AddObservation to work, or plague of the Type Mismatch woops, so close- The last bit where I dump the variables into an attribute is giving an overflow error. Any ideas? On Mar 9, 2011 5:39 PM, "Michiel Spape" > wrote: > Hiya, > Well, let's see how far you'll get :) I thought I might add that I generally have two global variables (i.e. declared in the User tab), one being TrialNum, which just adds one up to the trial, and one TrialsCorrect. > So, every trial, I tend to have an inline with the following: > TrialNum = TrialNum + 1 'just so that number of trials is counted, also useful if you want to present a break > TrialsCorrect = TrialsCorrect + myStimulus.ACC 'which saves one IF/THEN object. > > Visual basic tends to be a bit tricky in terms of variables being converted on the spot, whether you like it or not, but if you just want to know the percentage, the following tends to work pretty well: > TrialNum = 30 'just as an example, 30 trials done so far > TrialsCorrect = 10 'just as an example, 10 trials correct > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > This returns "33% correct" (in the output). > > So, if you would just dump that into a new attribute (don't add it to the list, it confuses things sometimes): > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > and have a slide, saying "You had [thismuch]% correct", you're basically there (just tested it). Not to say you can't do the same with summation objects, but the above, taking out my debug, takes only 3 lines of code (excluding 2 lines of user script variable declarations). > Cheers, > Mich > > > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah > Sent: 09 March 2011 16:06 > To: E-Prime > Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch > > Hi Michiel, > > Thanks for the useful reply! Ogperf and ogaware are actually list > objects, and the related code is designed to log stops and successful > error reports. So the first bit of code should be resolving to either > a '1' or a '0' for either accurate/inaccurate stop or correct error > report/missed error report. That being said I see your point with the > need to simplify and had wondered if I could get by without the > summation object. My worry is that, sense the accuracy data is not > generated directly by the list or procedure, I need this summation > object to collect data from the ogperf ogaware inline. The last bit > ( c.SetAttrib "errorawareness", > Format((errorawareness.Mean),"Percent")) is supposed to then format > the summation object for placement in the end of block report > ("Congratulations, you successfully inhibited on [stopaccuracy] of > trials and reported your errors [erroraware] of the time"). > > Will try to wrap my head around how to do this without the summation- > appreciate your help! > > > > On Mar 9, 4:55 pm, Michiel Spape > > wrote: >> Hiya, >> Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing: >> >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. >> >> If you want to find out what's going on with the mismatch (one of the more simpler things to solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") >> >> Then try change this into: >> stopaccuracy.AddObservation 0 >> if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite. >> >> So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level. >> Cheers, >> Mich >> >> Michiel Spap? >> Research Fellow >> Perception & Action group >> University of Nottingham >> School of Psychologywww.cognitology.eu >> >> >> >> >> >> >> >> -----Original Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On Behalf Of Micah >> Sent: 09 March 2011 15:19 >> To: E-Prime >> Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch >> >> Hi Ben, >> >> Sincere thanks for your suggestion. Helped me to feel like I'm getting >> somewhere in my understanding of E-basic, as I had the same idea. >> Sadly neither CInt or CDbl used in that way change the error. I also >> tried declaring erroraware and stopaccuracy as doubles, and tried >> converting them into new variables that would be numbers. I'm not sure >> I did that correctly however. >> >> Thanks for your help- i'll be really excited if we can solve this. >> >> On Mar 9, 3:17 pm, ben robinson > wrote: >> > try changing them to: >> > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) >> > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) >> >> > or CDbl(...) if CInt(...) isn't what you need. >> > i think the problem might be that when you c.GetAttrib the value it pulls >> > from the list is understood as a string, rather than some sort of number... >> >> > On Wed, Mar 9, 2011 at 8:34 AM, Micah > wrote: >> > > Hello, >> >> > > This is probably a very easy to solve problem, but it's just about >> > > beaten me down. I am trying to make a training script for my error- >> > > awareness paradigm that can log inhibition and error-awareness >> > > performance and then report these to the subject at the end of the >> > > trial. The task is very simple and works fine, as does the performance >> > > logging. I can't seem to get my summation object to work though- >> > > everytime it gives me a 'type mismatch'. I've tried creating a >> > > variable from the logging vars in a double format but that does not >> > > fix it. Can someone take a look at my code and see what's up? >> >> > > I start with the following setup inline and usertab code: >> > > 'setup inline >> > > set stopaccuracy = New Summation >> > > set erroraware = New Summation >> >> > > 'usertab >> > > dim killme as integer >> > > dim stopaccuracy as Summation >> > > dim erroraware as Summation >> > > dim ogperf as double >> > > dim ogaware as double >> >> > > My inline that logs awareness and performance, and (is supposed to) >> > > fill the summation object with these information for reporting to the >> > > subject, looks like this: >> >> > > If c.GetAttrib("trialtype") = "lure" then >> > > if TextDisplay1.RT = 0 then >> > > c.SetAttrib "ogperf", 1 >> > > else >> > > c.SetAttrib "ogperf", 0 >> > > end if >> > > end if >> >> > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then >> > > if TextDisplay1.RESP = "2" then >> > > c.SetAttrib "ogaware", 0 >> > > else >> > > c.SetAttrib "ogaware", 1 >> > > end if >> > > end if >> >> > > if c.GetAttrib("ogperf") = "0" then >> > > killme = 1 >> > > else >> > > killme = 0 >> > > end if >> >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Debug.Print stopaccuracy.Mean >> > > Debug.Print erroraware.Mean >> >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") >> >> > > It's these lines that give me the type mismatch: >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") >> > > errorawareness.AddObservation c.GetAttrib("ogaware") >> >> > > Link to script:http://bit.ly/hKCcmo >> >> > > Best, >> > > Micah >> >> > > -- >> > > You received this message because you are subscribed to the Google Groups> > "E-Prime" group.> To post to this group, send emailtoe-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. >> >> -- >> You received this message because you are subscribed to the Google Groups "E-Prime" group.To post to this group, send email toe-prime at googlegroups.com.To unsubscribe from this group, send email toe-prime+unsubscribe at googlegroups.com. >> For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. >> >> This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. >> >> 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. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. > -- 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. -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Fri Mar 11 17:44:51 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 11 Mar 2011 12:44:51 -0500 Subject: Can't get AddObservation to work, or plague of the Type Mismatch In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD78EA431@EXCHANGE3.ad.no ttingham.ac.uk> Message-ID: Micah, I didn't see this thread until today, I know I'm late and you have already gone off in a different direction. And I very rarely look at other people's code, but I rather like the Summation object and I wanted to see how you managed to get a "Type mismatch" error, and I wanted to address this for others who may chance across this thread. (You also did a nice job of posting your program for download, and you kept the problem program to a small scale). So here goes. So, the error takes place at the line stopaccuracy.AddObservation c.GetAttrib("ogperf") As others may have noted, when the program reaches this line, the "ogperf" attribute is empty. And you cannot add an empty observation to a Summation object, you must have a numeric value (BTW, no real need to cast it to a numeric type, E-Basic will take care of that for you automatically, but go ahead and use CInt() if it makes you feel better :) ). Reading the code further, you give a value to "ogperf" only when "trialtype" = "lure". As it turns out, your first trial in List3 has a trialtype of "gotrial", thus "ogperf" does not get a value and you get the the Type mismatch error. Just to test this out, I used a "lure" trial for the first trial, and sure enough that worked without any error. (So you see, the problem would not be apparent from reading the code alone, it has to be seen in the context of the List that runs it.) So as I understand it, you only really want to gather observations for "lure" type trials. In that case, you should put your .AddObservation into the If(trialtype) clause, so that your code looks more like If (c.GetAttrib("trialtype") = "lure") then if (TextDisplay1.RT = 0) then c.SetAttrib "ogperf", 1 else c.SetAttrib "ogperf", 0 end if stopaccuracy.AddObservation c.GetAttrib("ogperf") end if if ( (c.GetAttrib("awaretrial") = "1") and (killme = 1) ) then if (TextDisplay1.RESP = "2") then c.SetAttrib "ogaware", 0 else c.SetAttrib "ogaware", 1 end if end if if (c.GetAttrib("ogperf") = "0") then killme = 1 else killme = 0 end if etc. I tried this out and it worked without error, though I did not go as far as seeing whether it produces the computations that you desire. You might also do more to generally clean up the logic. I leave all that as an exercise for you. -- David McFarlane, Professional Faultfinder At 3/10/2011 12:51 PM Thursday, Michiel Spape wrote: >Hi, >No problem! This one should be easy (I get it >all the time with languages less forgiving than >basic): I bet numtrials equals to 0, therefore >cint(cstr(trialscorrect / numtrials / 0.01)) >? which wasn?t correct anyway (should have tested), it is >cstr(cint(trialscorrect / numtrials / 0.01)) >? but that?s not the problem (presumably) ? also >the cstr is unnecessary, so let?s make it >cint(trialscorrect / numtrials / 0.01) > >but finally, this, I?m pretty sure, results >somewhere along the line in trialscorrect / 0. >Divided by zero, or infinity, which doesn?t fit >in a mere integer, it will tell you overflow. >Notice however that somewhere along the line, >numtrials and trialnum are used interchangeably, >a very common mistake if you?re me: > >c.SetAttrib "thismuch", cint(trialscorrect / TrialNum / 0.01) > >sorted! >Best, >Mich > > >Michiel Spap? >Research Fellow >Perception & Action group >University of Nottingham >School of Psychology >www.cognitology.eu > >From: e-prime at googlegroups.com >[mailto:e-prime at googlegroups.com] On Behalf Of Micah Allen >Sent: 10 March 2011 17:08 >To: e-prime at googlegroups.com >Subject: RE: Can't get AddObservation to work, or plague of the Type Mismatch > > >woops, so close- > >The last bit where I dump the variables into an >attribute is giving an overflow error. Any ideas? >On Mar 9, 2011 5:39 PM, "Michiel Spape" ><Michiel.Spape at nottingham.ac.uk> wrote: > > Hiya, > > Well, let's see how far you'll get :) I > thought I might add that I generally have two > global variables (i.e. declared in the User > tab), one being TrialNum, which just adds one > up to the trial, and one TrialsCorrect. > > So, every trial, I tend to have an inline with the following: > > TrialNum = TrialNum + 1 'just so that number > of trials is counted, also useful if you want to present a break > > TrialsCorrect = TrialsCorrect + > myStimulus.ACC 'which saves one IF/THEN object. > > > > Visual basic tends to be a bit tricky in > terms of variables being converted on the spot, > whether you like it or not, but if you just > want to know the percentage, the following tends to work pretty well: > > TrialNum = 30 'just as an example, 30 trials done so far > > TrialsCorrect = 10 'just as an example, 10 trials correct > > Debug.print cint(cstr(trialscorrect / numtrials / 0.01)) "% correct" > > This returns "33% correct" (in the output). > > > > So, if you would just dump that into a new > attribute (don't add it to the list, it confuses things sometimes): > > c.SetAttrib "thismuch", cint(cstr(trialscorrect / numtrials / 0.01)) > > > > and have a slide, saying "You had [thismuch]% > correct", you're basically there (just tested > it). Not to say you can't do the same with > summation objects, but the above, taking out my > debug, takes only 3 lines of code (excluding 2 > lines of user script variable declarations). > > Cheers, > > Mich > > > > > > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > www.cognitology.eu > > > > > > -----Original Message----- > > From: > e-prime at googlegroups.com > [mailto:e-prime at googlegroups.com] On Behalf Of Micah > > Sent: 09 March 2011 16:06 > > To: E-Prime > > Subject: Re: Can't get AddObservation to > work, or plague of the Type Mismatch > > > > Hi Michiel, > > > > Thanks for the useful reply! Ogperf and ogaware are actually list > > objects, and the related code is designed to log stops and successful > > error reports. So the first bit of code should be resolving to either > > a '1' or a '0' for either accurate/inaccurate stop or correct error > > report/missed error report. That being said I see your point with the > > need to simplify and had wondered if I could get by without the > > summation object. My worry is that, sense the accuracy data is not > > generated directly by the list or procedure, I need this summation > > object to collect data from the ogperf ogaware inline. The last bit > > ( c.SetAttrib "errorawareness", > > Format((errorawareness.Mean),"Percent")) is supposed to then format > > the summation object for placement in the end of block report > > ("Congratulations, you successfully inhibited on [stopaccuracy] of > > trials and reported your errors [erroraware] of the time"). > > > > Will try to wrap my head around how to do this without the summation- > > appreciate your help! > > > > > > > > On Mar 9, 4:55 pm, Michiel Spape > <Michiel.Sp... at nottingham.ac.uk> > > wrote: > >> Hiya, > >> Ugh, lots of code. Forgive me, like many > coding people, I tend to be lazy and simply > won't read long threads. I've never had any use > for this "summation object" deal, but your code is really quite confusing: > >> > >> > > dim stopaccuracy as Summation > >> > > dim erroraware as Summation > >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > > errorawareness.AddObservation c.GetAttrib("ogaware") > >> > >> What exactly are you doing here? > Stopaccuracy is both a "summation" and an > "attribute in a list". Errorwareness is only > semi-overlapping with this attribute, although > I see no reason why you would want this. Ogperf > is not even an attribute but a local variable. > If you have declared it somewhere, it probably > looks into a list anyway, finds a question > mark, tries to put this into stopaccuracy. > Thus, what you get is > StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either. > >> > >> If you want to find out what's going on with > the mismatch (one of the more simpler things to > solve):>stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > >> Then try change this into: > >> stopaccuracy.AddObservation 0 > >> if the latter works but the former doesn't, > then c.GetAttrib("ogperf") probably receives a > string instead, or, in other words, Ben would > be right. See what ogperf is by doing > "debug.print c.GetAttrib("ogperf"). So, try > beginning simple with working code, then add - rather than the opposite. > >> > >> So, start with as clean and working code as > possible. My suggestion would be to start with > getting rid of the summation stuff (after all, > what more is stopaccuracy.mean then merely > numberofstopaccuratetrials / numberoftrials?) > and the c.getattrib/set stuff until you can get > everything working on one level. > >> Cheers, > >> Mich > >> > >> Michiel Spap? > >> Research Fellow > >> Perception & Action group > >> University of Nottingham > >> School of > Psychologywww.cognitology.eu > >> > >> > >> > >> > >> > >> > >> > >> -----Original > Message-----From:e-prime at googlegroups.com[mailto:e-prime at googlegroups.com]On > Behalf Of Micah > >> Sent: 09 March 2011 15:19 > >> To: E-Prime > >> Subject: Re: Can't get AddObservation to > work, or plague of the Type Mismatch > >> > >> Hi Ben, > >> > >> Sincere thanks for your suggestion. Helped me to feel like I'm getting > >> somewhere in my understanding of E-basic, as I had the same idea. > >> Sadly neither CInt or CDbl used in that way change the error. I also > >> tried declaring erroraware and stopaccuracy as doubles, and tried > >> converting them into new variables that would be numbers. I'm not sure > >> I did that correctly however. > >> > >> Thanks for your help- i'll be really excited if we can solve this. > >> > >> On Mar 9, 3:17 pm, ben robinson > <baltimore.... at gmail.com> wrote: > >> > try changing them to: > >> > stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf")) > >> > errorawareness.AddObservation CInt(c.GetAttrib("ogaware")) > >> > >> > or CDbl(...) if CInt(...) isn't what you need. > >> > i think the problem might be that when you > c.GetAttrib the value it pulls > >> > from the list is understood as a string, > rather than some sort of number... > >> > >> > On Wed, Mar 9, 2011 at 8:34 AM, Micah > <ucfmi... at gmail.com> wrote: > >> > > Hello, > >> > >> > > This is probably a very easy to solve problem, but it's just about > >> > > beaten me down. I am trying to make a training script for my error- > >> > > awareness paradigm that can log inhibition and error-awareness > >> > > performance and then report these to the subject at the end of the > >> > > trial. The task is very simple and works fine, as does the performance > >> > > logging. I can't seem to get my summation object to work though- > >> > > everytime it gives me a 'type mismatch'. I've tried creating a > >> > > variable from the logging vars in a double format but that does not > >> > > fix it. Can someone take a look at my code and see what's up? > >> > >> > > I start with the following setup inline and usertab code: > >> > > 'setup inline > >> > > set stopaccuracy = New Summation > >> > > set erroraware = New Summation > >> > >> > > 'usertab > >> > > dim killme as integer > >> > > dim stopaccuracy as Summation > >> > > dim erroraware as Summation > >> > > dim ogperf as double > >> > > dim ogaware as double > >> > >> > > My inline that logs awareness and performance, and (is supposed to) > >> > > fill the summation object with these information for reporting to the > >> > > subject, looks like this: > >> > >> > > If c.GetAttrib("trialtype") = "lure" then > >> > > if TextDisplay1.RT = 0 then > >> > > c.SetAttrib "ogperf", 1 > >> > > else > >> > > c.SetAttrib "ogperf", 0 > >> > > end if > >> > > end if > >> > >> > > if c.GetAttrib("awaretrial") = "1" and killme = 1 then > >> > > if TextDisplay1.RESP = "2" then > >> > > c.SetAttrib "ogaware", 0 > >> > > else > >> > > c.SetAttrib "ogaware", 1 > >> > > end if > >> > > end if > >> > >> > > if c.GetAttrib("ogperf") = "0" then > >> > > killme = 1 > >> > > else > >> > > killme = 0 > >> > > end if > >> > >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > > errorawareness.AddObservation c.GetAttrib("ogaware") > >> > >> > > Debug.Print stopaccuracy.Mean > >> > > Debug.Print erroraware.Mean > >> > >> > > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent") > >> > > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent") > >> > >> > > It's these lines that give me the type mismatch: > >> > > stopaccuracy.AddObservation c.GetAttrib("ogperf") > >> > > errorawareness.AddObservation c.GetAttrib("ogaware") > >> > >> > > Link to script:http://bit.ly/hKCcmo > >> > >> > > Best, > >> > > Micah -- 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. From francesco.biondi1 at gmail.com Mon Mar 21 16:11:46 2011 From: francesco.biondi1 at gmail.com (francesco biondi) Date: Mon, 21 Mar 2011 09:11:46 -0700 Subject: Time drift between 2 different data streams Message-ID: Hello!! I m using eprime in a experiment where a subject, driving a simulator, has to use a microphone connected with a SRBox. After merged the data from the 2 different data streams, i ve noticed a time drift occurred between the 2 streams : e-prime times - synchronized with the simulator times during the first part of the exp - were drifted by the simulator times of 2.5 seconds at the end of the experiment. Do you know how i can solve this problem? rescaling the eprime clock could help me? -- 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. From Michiel.Spape at nottingham.ac.uk Tue Mar 22 09:33:41 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 22 Mar 2011 09:33:41 +0000 Subject: Time drift between 2 different data streams In-Reply-To: Message-ID: Hi, This is a weird problem, but I would assume (hope?) that the time you get from the simulator is the problem, not the one from E-Prime. If you think it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you running E-Prime on some kind of laptop or computer with dynamic processor? Anyway, this is why, generally, if you use two different data streams, you synchronise more often - try to implement that. Scaling the clock is unlikely to work, since it's very probable that the time drift isn't linear, so if, for instance, the time drift occurred halfway during the experiment, a linear correction would make ALL your data invalid, rather than half of it. Also, you could try send live pulses from E-Prime to the simulator and just use all the data in there (or vice versa). A bit of work, but it saves despairing afterwards. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi Sent: 21 March 2011 16:12 To: E-Prime Subject: Time drift between 2 different data streams Hello!! I m using eprime in a experiment where a subject, driving a simulator, has to use a microphone connected with a SRBox. After merged the data from the 2 different data streams, i ve noticed a time drift occurred between the 2 streams : e-prime times - synchronized with the simulator times during the first part of the exp - were drifted by the simulator times of 2.5 seconds at the end of the experiment. Do you know how i can solve this problem? rescaling the eprime clock could help me? -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From nusphd at gmail.com Tue Mar 22 12:05:55 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Tue, 22 Mar 2011 20:05:55 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Dear all, I have dowloaded (from PST support) the latest version of Eprime2Prof in a Vista PC and the experiments are working fine. Before, there were stimuli presentation delays (when using audio files) or the experiment crashed. However, I cannot run the RefreshClockTest in Vista or Windows 7. When I am trying to run the RefreshClockTest, a message keeps popping up indicating that the Standby or Hibernated functions are enabled. I have disabled/turned off all that can affect the RefreshClockTest (e.g., anti-virus, screensaver...) but still the message pops up. This only occurs when using Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest works fine)...Has this happened to you before? I have also asked PST but I know they will take some time to respond...wondering if you have gone through this before...Please advise. Thanks. Regards, Lidia -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francesco.biondi at ymail.com Tue Mar 22 12:14:27 2011 From: francesco.biondi at ymail.com (francesco.biondi at ymail.com) Date: Tue, 22 Mar 2011 13:14:27 +0100 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Hi!! I am using Windows XP and i didnt find this kind of problem with E-Primi 1.1. Before running the test, i turned off the screen saver and the powersave modality by the control panel. Maybe the problem is due to the powersave I hope I helped you 2011/3/22 Lidia Suarez > Dear all, > > I have dowloaded (from PST support) the latest version of Eprime2Prof in a > Vista PC and the experiments are working fine. Before, there were stimuli > presentation delays (when using audio files) or the experiment crashed. > However, I cannot run the RefreshClockTest in Vista or Windows 7. When I am > trying to run the RefreshClockTest, a message keeps popping up indicating > that the Standby or Hibernated functions are enabled. I have disabled/turned > off all that can affect the RefreshClockTest (e.g., anti-virus, > screensaver...) but still the message pops up. This only occurs when using > Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest works > fine)...Has this happened to you before? I have also asked PST but I know > they will take some time to respond...wondering if you have gone through > this before...Please advise. Thanks. > > > > Regards, > Lidia > > -- > 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. > -- *Francesco Biondi* -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Mar 22 14:19:06 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 22 Mar 2011 10:19:06 -0400 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Lidia, Yes, I have seen the same message running RefreshClockTest with EP2 under Vista. Have not tried yet under Win7. I just ignore it and proceed. The message means to tell you that the measured results might not reflect what is possible under ideal conditions with that machine, so if you still get good results under the test conditions then all should work well under your desired operating conditions. I suspect however that Microsoft changed how programs can detect Standby/Hibernate functions and RefreshClockTest has not kept up with the change, in which case the measured results probably do reflect your desired operating conditions. I will also be interested to know what PST says about this when they reply to you. -- David McFarlane, Professsional Faultfinder At 3/22/2011 08:05 AM Tuesday, you wrote: >I have dowloaded (from PST support) the latest version of >Eprime2Prof in a Vista PC and the experiments are working fine. >Before, there were stimuli presentation delays (when using audio >files) or the experiment crashed. However, I cannot run the >RefreshClockTest in Vista or Windows 7. When I am trying to run the >RefreshClockTest, a message keeps popping up indicating that the >Standby or Hibernated functions are enabled. I have disabled/turned >off all that can affect the RefreshClockTest (e.g., anti-virus, >screensaver...) but still the message pops up. This only occurs when >using Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest >works fine)...Has this happened to you before? I have also asked PST >but I know they will take some time to respond...wondering if you >have gone through this before...Please advise. Thanks. > >Regards, >Lidia -- 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. From Michiel.Spape at nottingham.ac.uk Tue Mar 22 14:38:46 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 22 Mar 2011 14:38:46 +0000 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Hiya, No idea, having no Windows Vista/7 - Eprime combination (which I think PST doesn't support anyway - I expect the common advice people will give you is "get XP, despite it not being supported by Microsoft), nor E-Prime2. Despite that, you mention "Standby or Hibernation" should be off but *only* mention you turned off other things. Now, since I do have Win7 at home, I know it sits in a fairly awkward position of the configuration panel - indeed, I had to especially look it up on the Help thingy, and how often do computer-geeks read manuals, despite their liking for shouting RTFM? Anyway, so just to ask: - Have you indeed turned off "Sleep Mode" (otherwise known as hibernation)? Furthermore, when you say "this only happens in Eprime2 in Vista and Windows 7, do you mean, "IF (EPRIME 2 && VISTA && WIN7) THEN CRASH"? That is to say, it doesn't happen in EPrime 1? OR, it does not happen in Windows XP? On the same computer? So, no, it may have happened to me before that RefreshClockTest didn't run for me on a Win98SE computer running E-Prime 1.2, but that's not what you're after, I take it. If it is, though, it turned out I actually hadn't changed all the power options/schemes to "always on", screensaver OFF (not blank) and hibernation OFF. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Lidia Suarez Sent: 22 March 2011 12:06 To: e-prime at googlegroups.com Subject: Re: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? Dear all, I have dowloaded (from PST support) the latest version of Eprime2Prof in a Vista PC and the experiments are working fine. Before, there were stimuli presentation delays (when using audio files) or the experiment crashed. However, I cannot run the RefreshClockTest in Vista or Windows 7. When I am trying to run the RefreshClockTest, a message keeps popping up indicating that the Standby or Hibernated functions are enabled. I have disabled/turned off all that can affect the RefreshClockTest (e.g., anti-virus, screensaver...) but still the message pops up. This only occurs when using Eprime2 in Vista and Windows 7 (with XP the RefreshClockTest works fine)...Has this happened to you before? I have also asked PST but I know they will take some time to respond...wondering if you have gone through this before...Please advise. Thanks. Regards, Lidia -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Mar 22 14:52:57 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 22 Mar 2011 10:52:57 -0400 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD8208F4F@EXCHANGE3.ad.no ttingham.ac.uk> Message-ID: Mich, > how often do computer-geeks read manuals, despite their liking for > shouting RTFM? Hmm, then I must be the exception, because I always start by thoroughly reading whatever documentation I can find, and complain at any lack of documentation (e.g., E-Prime). I often say of myself & my job, "I'm the guy who reads the manuals." Best, -- David McFarlane, Professional Faultfinder (E.g, just read the manual for my new iPod, two manuals for Camtasia Studio, and still working through manuals for iPad and Evernote, etc.) -- 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. From nusphd at gmail.com Wed Mar 23 02:49:38 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Wed, 23 Mar 2011 10:49:38 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <4d88b7ce.08412b0a.6a12.ffff9378SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hi all, Thanks for your replies. I will keep you informed about PST's reply as soon as I get it. I agree with David's reply: "I suspect however that Microsoft changed how programs can detect Standby/Hibernate functions and RefreshClockTest has not kept up with the change" Just to summarise: I am testing Eprime2 Prof (no Eprime 1.2). The RefreshClockTest needs to be run with the anti-virus, screensaver, standby, and hibernated functions off. Otherwise, a message prompts you to turn them off before continuing. If I turn off these on XP, RefreshClockTest works. If I turn these on Vista, RefreshClockTest ask me again to turn them off (when they are already turned off) and it cannot proceed with the test (this is different to David's case, who can proceed with the test). The same happened when I tried Windows 7. Eprime2 comes with the same manual than Eprime1.2...(no more information about new OS such as Vista). Thanks. Let's see what PST says... -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francesco.biondi1 at gmail.com Wed Mar 23 09:37:43 2011 From: francesco.biondi1 at gmail.com (francesco biondi) Date: Wed, 23 Mar 2011 02:37:43 -0700 Subject: Time drift between 2 different data streams In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DD8208EEB@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: Thanks for the answer. I m trying to send signals from the simulator to e-prime. i want e-prime to read this signal several times during the exp; how can i do it? best, which command i have to use to let e-prime do it? do you think it's possible let e-prime to read the signal every, for example, 20 minutes , or it's better send this signal from the simulator every cycle (100 cycles - 100 identical item - in 35 minutes) and let e-prime read it everytime? On Mar 22, 10:33?am, Michiel Spape wrote: > Hi, > This is a weird problem, but I would assume (hope?) that the time you get from the simulator is the problem, not the one from E-Prime. If you think it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you running E-Prime on some kind of laptop or computer with dynamic processor? > Anyway, this is why, generally, if you use two different data streams, you synchronise more often - try to implement that. Scaling the clock is unlikely to work, since it's very probable that the time drift isn't linear, so if, for instance, the time drift occurred halfway during the experiment, a linear correction would make ALL your data invalid, rather than half of it. > Also, you could try send live pulses from E-Prime to the simulator and just use all the data in there (or vice versa). A bit of work, but it saves despairing afterwards. > > Best, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi > Sent: 21 March 2011 16:12 > To: E-Prime > Subject: Time drift between 2 different data streams > > Hello!! > I m using eprime in a experiment where a subject, driving a simulator, > has to use a microphone connected with a SRBox. > After merged the data from the 2 different data streams, i ve noticed > a time drift occurred between the 2 streams : e-prime times - > synchronized with the simulator times during the first part of the exp > - were drifted by the simulator times of 2.5 seconds at the end of the > experiment. > Do you know how i can solve this problem? > rescaling the eprime clock could help me? > > -- > 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 athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 23 10:01:56 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 23 Mar 2011 10:01:56 +0000 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Hi, I agree with David - it's pretty likely that the screensavers states are polled changed between XP and Vista, so it presumably just detects it incorrectly. Since the refreshclocktest is just an .es, I suppose you can easily hack it... Yes, checked now. The inline "powercheck" executes several functions, which you find, in turn, in the User script are, and which return true or false depending on the check, e.g.: Function IsScreenSaverEnabled() As Boolean 'Default IsScreenSaverEnabled = False Dim strActive As String strActive = Rct_Registry_QueryValueString(RCT_REGISTRY_HKEY_CURRENT_USER, "Control Panel\\Desktop", "ScreenSaveActive") 'Should represent a string integer If IsNumeric(strActive) Then 'If not zero, then screen saver is on If CLng(strActive) <> 0 Then IsScreenSaverEnabled = True End If End Function ... so you can see, it's not exactly the best way to have this script working in later OS'es, since it just polls the registry. Suppose there's not even this key in the registry (pretty likely), then chances are, you won't get far. But all that, if you don't like programming, or, like me, only have so many minutes, you could of course, safely ignore. See the experiment, and where it fails: "It has been determined..." But, don't skip the small print! "Press the letter P key to enable simulating mouse responses. This is only recommended if your network policies do not permit adjusting your power or screen saver settings." And press P instead. Voila, it continues. Also possible, in the inline: "If Not bFail Then Goto PowerCheckPassLabel" Change this to: "If bFail Then Goto PowerCheckPassLabel" Also works. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Lidia Suarez Sent: 23 March 2011 02:50 To: e-prime at googlegroups.com Subject: Re: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? Hi all, Thanks for your replies. I will keep you informed about PST's reply as soon as I get it. I agree with David's reply: "I suspect however that Microsoft changed how programs can detect Standby/Hibernate functions and RefreshClockTest has not kept up with the change" Just to summarise: I am testing Eprime2 Prof (no Eprime 1.2). The RefreshClockTest needs to be run with the anti-virus, screensaver, standby, and hibernated functions off. Otherwise, a message prompts you to turn them off before continuing. If I turn off these on XP, RefreshClockTest works. If I turn these on Vista, RefreshClockTest ask me again to turn them off (when they are already turned off) and it cannot proceed with the test (this is different to David's case, who can proceed with the test). The same happened when I tried Windows 7. Eprime2 comes with the same manual than Eprime1.2...(no more information about new OS such as Vista). Thanks. Let's see what PST says... -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michiel.Spape at nottingham.ac.uk Wed Mar 23 10:10:16 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 23 Mar 2011 10:10:16 +0000 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <4d88b7ce.08412b0a.6a12.ffff9378SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hiya, I read the E-Basic Help and such (mainly MSDN SDKs) and the manual of my motherboard, but generally not VCR manuals! I find it rather depends on the inverse relationship between quality and complexity of the software, to be honest - Cubase (complex, good quality): guide/helpfiles are extremely necessary; FreeUndelete (simple, bad quality): guide/helpdfiles necessary. Even easier to work this out is by blindly walking forward with some new techy bit, stumbling over everything, then try to work it out from manuals, forums, helpfiles, friends. ... That said, I had to consult the manual of my hoover the other day :) Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 22 March 2011 14:53 To: e-prime at googlegroups.com Subject: RE: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? Mich, > how often do computer-geeks read manuals, despite their liking for > shouting RTFM? Hmm, then I must be the exception, because I always start by thoroughly reading whatever documentation I can find, and complain at any lack of documentation (e.g., E-Prime). I often say of myself & my job, "I'm the guy who reads the manuals." Best, -- David McFarlane, Professional Faultfinder (E.g, just read the manual for my new iPod, two manuals for Camtasia Studio, and still working through manuals for iPad and Evernote, etc.) -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From fblanco81 at gmail.com Wed Mar 23 20:58:56 2011 From: fblanco81 at gmail.com (Gilgamesh) Date: Wed, 23 Mar 2011 13:58:56 -0700 Subject: Logging multiple incorrect responses and their RT Message-ID: Hello everybody, I am currently programming a sequence learning task. It should work as follows: 1) Slide presenting stimulus. Responses are made via the keyword. 2) If the answer is correct, then it jumps to next trial. 3) If the answer is incorrect, then a sound is played and the slide stays on the screen. I have come up with several ways of doing this, but they are all unsatisfactory. The main problem is that I would like to log the number of incorrect responses as well as their reaction times. I wonder whether there is an elegant way of programming this. So far, my best attempt involves crazily looping: If slide.ACC = 0, then it jumps to a label placed right before the slide. The only RT that I am able to collect this way is that of the last, correct, response. The number of cycles in the loop (updated by a script) serves as a means to know the number of errors, but the RT data are overwritten on each cycle. In sum, awful solution. I'm sure it must be an elegant way to (a) make advancement of the slide contingent on the correct response and (b) collect both the number of incorrect attempts and their RTs. Any suggestion? Thanks in advance, Fernando -- 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. From pfc.groot at gmail.com Wed Mar 23 22:01:11 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Wed, 23 Mar 2011 23:01:11 +0100 Subject: Logging multiple incorrect responses and their RT In-Reply-To: <96427048-d0d1-41cc-bdec-c8f613337dd3@n10g2000yqf.googlegroups.com> Message-ID: Hi Fernando, The quick-and-dirty solution with the goto-to-label construction will actually work if you also add a c.log call before every goto-call (eprime will automatically call c.log at the end of the trial once). But you?re right. This is probably not considered an elegant solution. Another way to implement arbitrary loops is to add an additional ?level? to your experiment by using an extra list object for the repeating trials (i.e. place a new list object on the trial procedure). This list will loop ?forever? by setting the ?exit list? parameter to high value. Then move all trial objects to the procedure of this new list. Finally add a small inline script at the end of the subtrial that will terminate the sublist when a specific condition is met (i.e. if stim.ACC=1 then sublist.Terminate end if) Hope this helps, Paul 2011/3/23 Gilgamesh : > Hello everybody, > I am currently programming a sequence learning task. It should work as > follows: > 1) Slide presenting stimulus. Responses are made via the keyword. > 2) If the answer is correct, then it jumps to next trial. > 3) If the answer is incorrect, then a sound is played and the slide > stays on the screen. > > I have come up with several ways of doing this, but they are all > unsatisfactory. The main problem is that I would like to log the > number of incorrect responses as well as their reaction times. I > wonder whether there is an elegant way of programming this. > > So far, my best attempt involves crazily looping: If slide.ACC = 0, > then it jumps to a label placed right before the slide. The only RT > that I am able to collect this way is that of the last, correct, > response. The number of cycles in the loop (updated by a script) > serves as a means to know the number of errors, but the RT data are > overwritten on each cycle. In sum, awful solution. > > I'm sure it must be an elegant way to (a) make advancement of the > slide contingent on the correct response and (b) collect both the > number of incorrect attempts and their RTs. > Any suggestion? > > Thanks in advance, > Fernando > > -- > 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. > > -- 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. From francesco.biondi1 at gmail.com Thu Mar 24 11:23:09 2011 From: francesco.biondi1 at gmail.com (francesco biondi) Date: Thu, 24 Mar 2011 04:23:09 -0700 Subject: Time Sync Message-ID: hi everyone im new to e-prime and to this group too. I m trying to send signals from a simulator to e-prime in order to sync 2 data streams i want e-prime to read this signal several times during the exp (a 35 min experiment in which the subject has to response with a mic when an item - 100 in total - appears) my design consists in a "display object->vocal response->feedback" and so on for 100 items my question is, how can i implement inside the e-prime design a command that let e-prime reads this signal every loop (100 item = 100 loop)?' can you help me?? -- 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. From baltimore.ben at gmail.com Thu Mar 24 13:17:36 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Thu, 24 Mar 2011 09:17:36 -0400 Subject: Logging multiple incorrect responses and their RT In-Reply-To: Message-ID: if you expect only a small, finite number of incorrect responses, my solution might be to add that many additional objects to the procedure time-line, each one set up to collect responses, and each one set to Jump to an End-Of-Trial Label once a correct response is made. to use the Jump functionality of the response collecting objects isn't always super intuitive. you would add one keyboard Input Mask with Allowable Responses set to your incorrect response possibilities and End Action set to Terminate, and another keyboard Input Mask with only your correct response included in the Allowable Responses with the End Action set to Jump, then add the name of your End-Of-Trial Label to the Jump Label field. ben On Wed, Mar 23, 2011 at 6:01 PM, Paul Groot wrote: > Hi Fernando, > > The quick-and-dirty solution with the goto-to-label construction will > actually work if you also add a c.log call before every goto-call > (eprime will automatically call c.log at the end of the trial once). > But you?re right. This is probably not considered an elegant solution. > > Another way to implement arbitrary loops is to add an additional > ?level? to your experiment by using an extra list object for the > repeating trials (i.e. place a new list object on the trial > procedure). This list will loop ?forever? by setting the ?exit list? > parameter to high value. Then move all trial objects to the procedure > of this new list. Finally add a small inline script at the end of the > subtrial that will terminate the sublist when a specific condition is > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > Hope this helps, > Paul > > 2011/3/23 Gilgamesh : > > Hello everybody, > > I am currently programming a sequence learning task. It should work as > > follows: > > 1) Slide presenting stimulus. Responses are made via the keyword. > > 2) If the answer is correct, then it jumps to next trial. > > 3) If the answer is incorrect, then a sound is played and the slide > > stays on the screen. > > > > I have come up with several ways of doing this, but they are all > > unsatisfactory. The main problem is that I would like to log the > > number of incorrect responses as well as their reaction times. I > > wonder whether there is an elegant way of programming this. > > > > So far, my best attempt involves crazily looping: If slide.ACC = 0, > > then it jumps to a label placed right before the slide. The only RT > > that I am able to collect this way is that of the last, correct, > > response. The number of cycles in the loop (updated by a script) > > serves as a means to know the number of errors, but the RT data are > > overwritten on each cycle. In sum, awful solution. > > > > I'm sure it must be an elegant way to (a) make advancement of the > > slide contingent on the correct response and (b) collect both the > > number of incorrect attempts and their RTs. > > Any suggestion? > > > > Thanks in advance, > > Fernando > > > > -- > > 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. > > > > > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Michiel.Spape at nottingham.ac.uk Thu Mar 24 14:18:44 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 24 Mar 2011 14:18:44 +0000 Subject: Time drift between 2 different data streams In-Reply-To: <223099d9-6f3d-4b61-a52a-2b39276c86a8@d16g2000yqd.googlegroups.com> Message-ID: Hi, Did you just repeat the question? Anyway, the answer isn't much use, I would think; gigo, one might say. "i want e-prime to read this signal several times during the exp; how can i do it? best, which command i have to use to let e-prime do it? do you think it's possible let e-prime to read the signal every, for example, 20 minutes , or it's better send this signal from the simulator every cycle (100 cycles - 100 identical item - in 35 minutes) and let e-prime read it everytime?" This betrays a lack of knowledge of E-Prime, or poor wording, but in any case: E-Prime isn't very good at doing things in parallel or in terms of "read signal every 20 minutes", because it is heavily structured around principles that make sense for psychologists: trials, blocks, sessions. So, yes, if you want to read something every trial, or block, it shouldn't be too hard. But this depends on whatever you're doing with the experiment and your structuring so I, nor other people who lack telepathic abilities, cannot tell you. You might wish to start by explaining how the two systems are connected: serial cable? LAN? What are they doing? Is E-Prime merely logging your voice-key data, not presenting anything? In order to cope with drift, the two systems have to sync sometimes, therefore, connecting them will probably prove inevitable. This, in turn, may be less straightforward than you might think, so careful explanation is required for me to help you. Also, if E-Prime doesn't do much (other than logging voice-key), you might wish to just get rid of E-Prime and do everything in the simulator - have that log the voicekey thing. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi Sent: 23 March 2011 09:38 To: E-Prime Subject: Re: Time drift between 2 different data streams Thanks for the answer. I m trying to send signals from the simulator to e-prime. i want e-prime to read this signal several times during the exp; how can i do it? best, which command i have to use to let e-prime do it? do you think it's possible let e-prime to read the signal every, for example, 20 minutes , or it's better send this signal from the simulator every cycle (100 cycles - 100 identical item - in 35 minutes) and let e-prime read it everytime? On Mar 22, 10:33?am, Michiel Spape wrote: > Hi, > This is a weird problem, but I would assume (hope?) that the time you get from the simulator is the problem, not the one from E-Prime. If you think it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you running E-Prime on some kind of laptop or computer with dynamic processor? > Anyway, this is why, generally, if you use two different data streams, you synchronise more often - try to implement that. Scaling the clock is unlikely to work, since it's very probable that the time drift isn't linear, so if, for instance, the time drift occurred halfway during the experiment, a linear correction would make ALL your data invalid, rather than half of it. > Also, you could try send live pulses from E-Prime to the simulator and just use all the data in there (or vice versa). A bit of work, but it saves despairing afterwards. > > Best, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychologywww.cognitology.eu > > > > > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of francesco biondi > Sent: 21 March 2011 16:12 > To: E-Prime > Subject: Time drift between 2 different data streams > > Hello!! > I m using eprime in a experiment where a subject, driving a simulator, > has to use a microphone connected with a SRBox. > After merged the data from the 2 different data streams, i ve noticed > a time drift occurred between the 2 streams : e-prime times - > synchronized with the simulator times during the first part of the exp > - were drifted by the simulator times of 2.5 seconds at the end of the > experiment. > Do you know how i can solve this problem? > rescaling the eprime clock could help me? > > -- > 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 athttp://groups.google.com/group/e-prime?hl=en. > > This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. ? Please do not use, copy or disclose the information contained in this message or in any attachment. ?Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. > > 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. This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From fluencystudy at gmail.com Thu Mar 24 17:26:43 2011 From: fluencystudy at gmail.com (signy) Date: Thu, 24 Mar 2011 10:26:43 -0700 Subject: programming a test for assessing order memory Message-ID: Hi all, I am having some trouble programming a new experiment. in this experiment, participants are shown 8 words, one at a time. in a test phase, they are then given 2,4 or 6 words and asked to state the order that these words were presented. I can program the study phase fine, but I am unsure how to present multiple stim on one screen for the order test phase. The way I have it set up now is there are blocked test phases: arrange 2 words test phase arrange 4 words test phase arrange 6 words test phase What I am unsure about is presenting 2,4or 6 words, randomly selected from the study list of 8 words on the screen at once (the response will be verbal, so input is not necessary). Thanks for any help! best, Signy -- 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. From mcfarla9 at msu.edu Thu Mar 24 19:03:06 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 24 Mar 2011 15:03:06 -0400 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: At 3/22/2011 10:49 PM Tuesday, Lidia Suarez wrote: >Thanks for your replies. I will keep you informed about PST's reply >as soon as I get it. I agree with David's reply: >"I suspect however that Microsoft changed how programs can detect >Standby/Hibernate functions and RefreshClockTest has not kept up >with the change" > > Just to summarise: >I am testing Eprime2 Prof (no Eprime 1.2). The RefreshClockTest >needs to be run with the anti-virus, screensaver, standby, and >hibernated functions off. Otherwise, a message prompts you to turn >them off before continuing. If I turn off these on XP, >RefreshClockTest works. If I turn these on Vista, RefreshClockTest >ask me again to turn them off (when they are already turned off) and >it cannot proceed with the test (this is different to David's case, >who can proceed with the test). Just to clarify, by "I just ignore it and proceed" I meant that I press P, as Mich explained (thanks). > The same happened when I tried Windows 7. Eprime2 comes with the > same manual than Eprime1.2...(no more information about new OS such as Vista). Indeed. The Getting Started Guide for EP2 is new, and so is the New Features Guide (which looks like manual pages that will later get incorporated into the User's Guide, so do not ignore this). But, as explicitly spelled out on p. 3 or 4 of the .pdf files for the EP2 User's Guide and Reference Guide, "This documentation is a work in progress. What follows is the original Version 1 documentation." >Thanks. Let's see what PST says... -- 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. From nusphd at gmail.com Fri Mar 25 02:56:19 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Fri, 25 Mar 2011 10:56:19 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: <4d8b956c.4e40e70a.6876.027eSMTPIN_ADDED@gmr-mx.google.com> Message-ID: Dear Mich and David, Thanks again. Now everything is alright. I learnt my lesson: 1. Read the small letter (press P) when using RefreshClockTest in Vista or Windows 7. 2. Read the manuals (in detail and the latest ones). Re-read the manual and look for answers in all the guides (no just one). 3. Download from PST the updated versions and test them before complaining... I really appreciate your help. PST has not replied to these questions yet. I do not know what I would do without all the help received from this forum. Thanks. Regards, Lidia -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonello.puglia at gmail.com Fri Mar 25 09:50:11 2011 From: antonello.puglia at gmail.com (Antonello Puglia) Date: Fri, 25 Mar 2011 10:50:11 +0100 Subject: programming a test for assessing order memory In-Reply-To: <1b8e2b4b-65b3-40d0-a6c0-75008d1414c6@i39g2000prd.googlegroups.com> Message-ID: Hi Signy, I had the same problem, but with 9 pictures. I tried this and it works! Check it out This can be done using a nested List object. For example, you would have your TrialList set up with 9 attributes (e.g., Image1, Image2, etc or words). In the Nested column of the TrialList, you would enter StimList. This will create a new nested List object. Inside the StimList, add 8 rows to make 9 total, and add a single attribute named "Stim". Under the Stim attribute, list all of the possible image files that will be presented on the Slide. Click the Property Pages icon and set the sampling to random. In the TrialList, you will use colon syntax to sample 9 items randomly from the StimList. Under the Image1 attribute, enter [Stim:0] under Image2, enter [Stim:1] and so on up to [Stim:8]. At run-time, E-Prime will select the sequence of images randomly. On your Slide object, each SlideImage sub-object should have its filename property set to [Image1] [Image2] and so on. E-Prime will randomly select the image presented in each SlideImage, creating a different sequence for each subject. Please be sure to take a look at the E-Prime User's Guide for more information on nested List objects and colon syntax. I hope that this has been helpful. Best regards Antonello 2011/3/24 signy > Hi all, > I am having some trouble programming a new experiment. > in this experiment, participants are shown 8 words, one at a time. > in a test phase, they are then given 2,4 or 6 words and asked to state > the order that these words were presented. > > I can program the study phase fine, but I am unsure how to present > multiple stim on one screen for the order test phase. > The way I have it set up now is there are blocked test phases: > arrange 2 words test phase > arrange 4 words test phase > arrange 6 words test phase > > What I am unsure about is presenting 2,4or 6 words, randomly selected > from the study list of 8 words on the screen at once (the response > will be verbal, so input is not necessary). > > Thanks for any help! > > best, > Signy > > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ashtyster at gmail.com Fri Mar 25 16:50:13 2011 From: ashtyster at gmail.com (Ashtyster) Date: Fri, 25 Mar 2011 09:50:13 -0700 Subject: frequency of cursor position recording Message-ID: Hi! I've gotten a bit confused trying to understand how to set the frequency of cursor position recording in E-Prime. I am presenting images and recording mouse cursor positions while subjects view the images. I would like to set the "sampling rate" for the cursor position recording to 50 Hz. The in-line script has the following sampling rate preset: 'Give some time back (required) - i.e. sampling rate. Sleep 20 DoEvents What I am confused about is what does this '20' value mean? Does it mean 20 cycles per second? I would appreciate if somebody could answer this question. All best, Ashtyster -- 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. From francesco.biondi at ymail.com Fri Mar 25 18:43:52 2011 From: francesco.biondi at ymail.com (francesco.biondi at ymail.com) Date: Fri, 25 Mar 2011 19:43:52 +0100 Subject: Time drift between 2 different data streams In-Reply-To: <09DAEA8BC192C94EB62C8E71FC35A5D92DDC30BCBC@EXCHANGE3.ad.nottingham.ac.uk> Message-ID: thank you for the reply!! about the first question, the systems are connnectend by parallel cable. About the experiment, it s structured as follow stimulus (sent by the simulator) -> vocal response given by the subject using a mic connected with a SRBox ->Feedback (and so on with the other 99 loops) About what e-prime is doing Yes, E-prime merely logging voice-key data. Every stimuli are sent from a driving simulator. The simulator send a signal (via parallel port) at the start, and another at the end, of the experiment. With two "while loops" we control the start and the and of the experiment. E-prime exits from "while loop" when it reads the signal sent from the simulator. we know the time when the simulator send the signal and the time when E-prime reads this signal. So I can calculate the time difference between the simultator and the PC.The difference at the start is less than the difference at the end. But I don't know if this difference linearly increases. I m trying to read signal from the simulator during the experiment, but we can't create a loop while the experiment runs, maybe because the stimulus is presented when E-prime "is waiting the signal" and we don't want so. So far, I didnt find any script line that makes this sync (i.e. read the signal sent from the simulator) during the experiment, but only at the start and at the end as described above. About the possibility to use the simulator both for driving and for logging mic responses, I cant do it; we need to use another pc. I wish you can help me! Thank you in advance Francesco Biondi 2011/3/24 Michiel Spape > Hi, > Did you just repeat the question? Anyway, the answer isn't much use, I > would think; gigo, one might say. > "i want e-prime to read this signal several times during the exp; how can i > do it? best, which command i have to use to let e-prime do it? do you think > it's possible let e-prime to read the signal every, for example, 20 minutes > , or it's better send this signal from the simulator every cycle (100 cycles > - 100 identical item - in 35 minutes) and let e-prime read it everytime?" > > This betrays a lack of knowledge of E-Prime, or poor wording, but in any > case: E-Prime isn't very good at doing things in parallel or in terms of > "read signal every 20 minutes", because it is heavily structured around > principles that make sense for psychologists: trials, blocks, sessions. So, > yes, if you want to read something every trial, or block, it shouldn't be > too hard. But this depends on whatever you're doing with the experiment and > your structuring so I, nor other people who lack telepathic abilities, > cannot tell you. You might wish to start by explaining how the two systems > are connected: serial cable? LAN? What are they doing? Is E-Prime merely > logging your voice-key data, not presenting anything? In order to cope with > drift, the two systems have to sync sometimes, therefore, connecting them > will probably prove inevitable. This, in turn, may be less straightforward > than you might think, so careful explanation is required for me to help you. > Also, if E-Prime doesn't do much (other than logging voice-key), you might > wish to just get rid of E-Prime and do everything in the simulator - have > that log the voicekey thing. > > > Best, > Mich > > > > > > > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > www.cognitology.eu > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf > Of francesco biondi > Sent: 23 March 2011 09:38 > To: E-Prime > Subject: Re: Time drift between 2 different data streams > > Thanks for the answer. > I m trying to send signals from the simulator to e-prime. > i want e-prime to read this signal several times during the exp; how > can i do it? > best, which command i have to use to let e-prime do it? > do you think it's possible let e-prime to read the signal every, for > example, 20 minutes , or it's better > send this signal from the simulator every cycle (100 cycles - 100 > identical item - in 35 minutes) and let e-prime read it everytime? > > On Mar 22, 10:33 am, Michiel Spape > wrote: > > Hi, > > This is a weird problem, but I would assume (hope?) that the time you get > from the simulator is the problem, not the one from E-Prime. If you think > it's e-prime: do you have the latest version of 1 (1.2) or 2? Are you > running E-Prime on some kind of laptop or computer with dynamic processor? > > Anyway, this is why, generally, if you use two different data streams, > you synchronise more often - try to implement that. Scaling the clock is > unlikely to work, since it's very probable that the time drift isn't linear, > so if, for instance, the time drift occurred halfway during the experiment, > a linear correction would make ALL your data invalid, rather than half of > it. > > Also, you could try send live pulses from E-Prime to the simulator and > just use all the data in there (or vice versa). A bit of work, but it saves > despairing afterwards. > > > > Best, > > Mich > > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychologywww.cognitology.eu > > > > > > > > > > > > > > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On > Behalf Of francesco biondi > > Sent: 21 March 2011 16:12 > > To: E-Prime > > Subject: Time drift between 2 different data streams > > > > Hello!! > > I m using eprime in a experiment where a subject, driving a simulator, > > has to use a microphone connected with a SRBox. > > After merged the data from the 2 different data streams, i ve noticed > > a time drift occurred between the 2 streams : e-prime times - > > synchronized with the simulator times during the first part of the exp > > - were drifted by the simulator times of 2.5 seconds at the end of the > > experiment. > > Do you know how i can solve this problem? > > rescaling the eprime clock could help me? > > > > -- > > 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 athttp:// > groups.google.com/group/e-prime?hl=en. > > > > This message and any attachment are intended solely for the addressee and > may contain confidential information. If you have received this message in > error, please send it back to me, and immediately delete it. Please do not > use, copy or disclose the information contained in this message or in any > attachment. Any views or opinions expressed by the author of this email do > not necessarily reflect the views of the University of Nottingham. > > > > 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. > > This message and any attachment are intended solely for the addressee and > may contain confidential information. If you have received this message in > error, please send it back to me, and immediately delete it. Please do not > use, copy or disclose the information contained in this message or in any > attachment. Any views or opinions expressed by the author of this email do > not necessarily reflect the views of the University of Nottingham. > > 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. > > -- *Francesco Biondi* -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Fri Mar 25 21:54:51 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Fri, 25 Mar 2011 22:54:51 +0100 Subject: frequency of cursor position recording In-Reply-To: <137451c7-2e50-4483-8fa1-dd26c597779e@k15g2000prk.googlegroups.com> Message-ID: Hi Ashtyster, The sleep instruction simple puts the running script in 'idle'mode for the specified number of milliseconds. Windows can use this time to allow other processes to consume some CPU time. This construction is often used in loops to prevent the system to become stalled. A duration of about 20 milliseconds might be sensible on systems that are connected to a display at 50Hz. The value could even slightly less on systems with a typical refresh rate of 70-80Hz. However, windows will probably update the mouse cursor position completely independend of the refresh cycle, so the temporal resolution might be very different... Also, the DoEvent function is probably a leftover from the standard basic language. It is used to allow other applications to handle the message queue. I would normally not include this call in eprime experiments. best, Paul 2011/3/25 Ashtyster : > Hi! > > I've gotten a bit confused trying to understand how to set the > frequency of cursor position recording in E-Prime. > > I am presenting images and recording mouse cursor positions while > subjects view the images. I would like to set the "sampling rate" for > the cursor position recording to 50 Hz. The in-line script has the > following sampling rate preset: > > 'Give some time back (required) - i.e. sampling rate. > Sleep 20 > DoEvents > > What I am confused about is what does this '20' value mean? Does it > mean 20 cycles per second? > > I would appreciate if somebody could answer this question. > > All best, > Ashtyster > > -- > 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. > > -- 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. From nusphd at gmail.com Mon Mar 28 06:17:16 2011 From: nusphd at gmail.com (Lidia Suarez) Date: Mon, 28 Mar 2011 14:17:16 +0800 Subject: Sound files, Crashing, and Windows 7 (not as catchy as sun, sea and sangria) Update?? In-Reply-To: Message-ID: Dear all, If any of you is having problems with sound and Vista or Windows 7, this may be useful. *This is the reply I have received from PST regarding this problem:* Here is what you should know about running E-Prime 2.0 and 1.x on Vista and 7 machines. This article provides more details on running 1.x on Vista/7 machines: INFO: E-Prime 1.x Support for Windows Vista. Until formal timing tests can be performed on a number of Windows Vista machines running E-Prime, PST encourages the use of E-Prime and Windows Vista only for design and testing purposes. Subject stations that are collecting data should be directed to Windows XP and Windows 2000 machines. I suggest that you keep using E-Prime 2.0 because the only version of E-Prime that has been tested and verified on Vista/7 machines is version 2.0.8.90. While PST has not officially published timing results for Windows 7, E-Prime 2.0.8.90 and later versions have been approved for Windows 7 x86/x64, Windows Vista SP2 x86/x64, and Windows XP SP3 x86 with the exception of Windows 7 or Vista paradigms that require sound startup latency values of less than 30ms. We have delayed publishing the timing results while we continue to work on consistent audio timing. PST is currently verifying a variety of sound drivers and recommends the use of Windows XP for experiments with sound related timing until further notice. PST intends to provide a more formal statement about Windows 7 shortly. Please check this article for updates: INFO: Windows 7 support in E-Prime. All of this said, I was able to run your experiment without any crashing on a Windows 7 machine. This leads me to believe that you can make some changes to your computer that should stop the crashes. Here are some steps to try: 1) Ensure that you have the latest version of E-Prime, which is 2.0.8.90. You can verify this by opening E-Studio and going to Help - About E-Studio. If you want to download the latest version, you can access the download via the Download/E-Prime/E-Prime 2.0 Release Candidate links to the left. Make sure that you download and install the version that matches the license you purchased (i.e., E-Prime 2.0 Standard or E-Prime 2.0 Professional). 2) Please use CodecConfig to check the codecs on your computer. This article contains instructions on this as well as links to codecs you may want to download and install: FEATURE: CodecConfig provides ability to choose codecs used for Movie and Sound rendering . 3) Disable or shutdown any background applications that may be causing a conflict. Here is an article with more information on that: INFO: How to use MSCONFIG to troubleshoot machine configuration and reduce background applications . -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ashtyster at gmail.com Mon Mar 28 09:17:08 2011 From: ashtyster at gmail.com (Ashtyster) Date: Mon, 28 Mar 2011 02:17:08 -0700 Subject: frequency of cursor position recording In-Reply-To: Message-ID: Hi Paul, thank you for your reply. So if I understand you correctly, I should just calculate temporal resolution from the output, and adjust the sleep value according to the temporal resolution I'd like to have? All best, A. On Mar 25, 11:54?pm, Paul Groot wrote: > Hi Ashtyster, > > The sleep instruction simple puts the running script in 'idle'mode for > the specified number of milliseconds. Windows can use this time to > allow other processes to consume some CPU time. This construction is > often used in loops to prevent the system to become stalled. A > duration of about 20 milliseconds might be sensible on systems that > are connected to a display at 50Hz. The value could even slightly less > on systems with a typical refresh rate of 70-80Hz. However, windows > will probably update the mouse cursor position completely independend > of the refresh cycle, so the temporal resolution might be very > different... > > Also, the DoEvent function is probably a leftover from the standard > basic language. It is used to allow other applications to handle the > message queue. I would normally not include this call in eprime > experiments. > > best, > Paul > > 2011/3/25 Ashtyster : > > > > > > > > > Hi! > > > I've gotten a bit confused trying to understand how to set the > > frequency of cursor position recording in E-Prime. > > > I am presenting images and recording mouse cursor positions while > > subjects view the images. I would like to set the "sampling rate" for > > the cursor position recording to 50 Hz. The in-line script has the > > following sampling rate preset: > > > 'Give some time back (required) - i.e. sampling rate. > > Sleep 20 > > DoEvents > > > What I am confused about is what does this '20' value mean? Does it > > mean 20 cycles per second? > > > I would appreciate if somebody could answer this question. > > > All best, > > Ashtyster > > > -- > > 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 athttp://groups.google.com/group/e-prime?hl=en. -- 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. From mcfarla9 at msu.edu Mon Mar 28 18:26:03 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 28 Mar 2011 14:26:03 -0400 Subject: frequency of cursor position recording In-Reply-To: <3de46ffc-ad23-4c8b-babd-978037f721c7@g3g2000prg.googlegrou ps.com> Message-ID: Ashtyster, If I may jump in here... So, e.g., for a sampling rate of 50 Hz, you could use Sleep 20 (i.e., same as your example), or, for slightly better documentation, Sleep 1000/50 or, for even better documentation without "magic numbers", Const SampleRate_Hz as Long = 50 Sleep 1000/SampleRate_Hz Now, I don't quite trust the Sleep command myself -- what happens if some process interrupts during the Sleep? Then the effective duration of the Sleep will be a little longer, and with each delay things get more desynchronized (note that this acts exactly the same as E-Prime's Event timing mode, see Chapter 3 of the User's Guide that came with E-Prime). If you need to keep things better synchronized (i.e., more like E-Prime's Cumulative timing mode), then you will have to roll your own delay loop, something like Const SampleRate_Hz as Long = 50 Const tSample_ms as Long = 1000/SampleRate_Hz Dim tDelay as Long tNext = Clock.Read ' initialize *once* at the start of the sampling loop Do Until tNext = tNext + tSample_ms Do Until Clock.Read >= tNext Loop Loop Now the mouse cursor will be sampled on more or less exact 20 ms boundaries, with minimal drift. Note that this method also does not completely stall your program in between mouse cursor samples. BTW, you can find the Sleep command, and much more besides, documented in the online E-Basic Help. -- David McFarlane, Professional Faultfinder At 3/28/2011 05:17 AM Monday, you wrote: >Hi Paul, > >thank you for your reply. > >So if I understand you correctly, I should just calculate temporal >resolution from the output, and adjust the sleep value according to >the temporal resolution I'd like to have? > >All best, >A. > >On Mar 25, 11:54 pm, Paul Groot wrote: > > Hi Ashtyster, > > > > The sleep instruction simple puts the running script in 'idle'mode for > > the specified number of milliseconds. Windows can use this time to > > allow other processes to consume some CPU time. This construction is > > often used in loops to prevent the system to become stalled. A > > duration of about 20 milliseconds might be sensible on systems that > > are connected to a display at 50Hz. The value could even slightly less > > on systems with a typical refresh rate of 70-80Hz. However, windows > > will probably update the mouse cursor position completely independend > > of the refresh cycle, so the temporal resolution might be very > > different... > > > > Also, the DoEvent function is probably a leftover from the standard > > basic language. It is used to allow other applications to handle the > > message queue. I would normally not include this call in eprime > > experiments. > > > > best, > > Paul > > > > 2011/3/25 Ashtyster : > > > Hi! > > > > > I've gotten a bit confused trying to understand how to set the > > > frequency of cursor position recording in E-Prime. > > > > > I am presenting images and recording mouse cursor positions while > > > subjects view the images. I would like to set the "sampling rate" for > > > the cursor position recording to 50 Hz. The in-line script has the > > > following sampling rate preset: > > > > > 'Give some time back (required) - i.e. sampling rate. > > > Sleep 20 > > > DoEvents > > > > > What I am confused about is what does this '20' value mean? Does it > > > mean 20 cycles per second? > > > > > I would appreciate if somebody could answer this question. > > > > > All best, > > > Ashtyster -- 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. From ashtyster at gmail.com Tue Mar 29 09:02:40 2011 From: ashtyster at gmail.com (Ashtyster) Date: Tue, 29 Mar 2011 02:02:40 -0700 Subject: frequency of cursor position recording In-Reply-To: <4d90d2ff.44842a0a.5e63.4b21SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hi David, thank you very much for such a detailed explanation! I'll follow your advice. All best, A. On Mar 28, 8:26?pm, David McFarlane wrote: > Ashtyster, > > If I may jump in here... > > So, e.g., for a sampling rate of 50 Hz, you could use > > Sleep 20 > > (i.e., same as your example), or, for slightly better documentation, > > Sleep 1000/50 > > or, for even better documentation without "magic numbers", > > Const SampleRate_Hz as Long = 50 > Sleep 1000/SampleRate_Hz > > Now, I don't quite trust the Sleep command myself -- what happens if > some process interrupts during the Sleep? ?Then the effective > duration of the Sleep will be a little longer, and with each delay > things get more desynchronized (note that this acts exactly the same > as E-Prime's Event timing mode, see Chapter 3 of the User's Guide > that came with E-Prime). ?If you need to keep things better > synchronized (i.e., more like E-Prime's Cumulative timing mode), then > you will have to roll your own delay loop, something like > > Const SampleRate_Hz as Long = 50 > Const tSample_ms as Long = 1000/SampleRate_Hz > Dim ?tDelay as Long > tNext = Clock.Read ?' initialize *once* at the start of the sampling loop > Do Until > ? ? ? > ? ? ?tNext = tNext + tSample_ms > ? ? ?Do Until Clock.Read >= tNext > ? ? ? ? ? > ? ? ?Loop > Loop > > Now the mouse cursor will be sampled on more or less exact 20 ms > boundaries, with minimal drift. ?Note that this method also does not > completely stall your program in between mouse cursor samples. > > BTW, you can find the Sleep command, and much more besides, > documented in the online E-Basic Help. > > -- David McFarlane, Professional Faultfinder > > At 3/28/2011 05:17 AM Monday, you wrote: > > > > > > > > >Hi Paul, > > >thank you for your reply. > > >So if I understand you correctly, I should just calculate temporal > >resolution from the output, and adjust the sleep value according to > >the temporal resolution I'd like to have? > > >All best, > >A. > > >On Mar 25, 11:54 pm, Paul Groot wrote: > > > Hi Ashtyster, > > > > The sleep instruction simple puts the running script in 'idle'mode for > > > the specified number of milliseconds. Windows can use this time to > > > allow other processes to consume some CPU time. This construction is > > > often used in loops to prevent the system to become stalled. A > > > duration of about 20 milliseconds might be sensible on systems that > > > are connected to a display at 50Hz. The value could even slightly less > > > on systems with a typical refresh rate of 70-80Hz. However, windows > > > will probably update the mouse cursor position completely independend > > > of the refresh cycle, so the temporal resolution might be very > > > different... > > > > Also, the DoEvent function is probably a leftover from the standard > > > basic language. It is used to allow other applications to handle the > > > message queue. I would normally not include this call in eprime > > > experiments. > > > > best, > > > Paul > > > > 2011/3/25 Ashtyster : > > > > Hi! > > > > > I've gotten a bit confused trying to understand how to set the > > > > frequency of cursor position recording in E-Prime. > > > > > I am presenting images and recording mouse cursor positions while > > > > subjects view the images. I would like to set the "sampling rate" for > > > > the cursor position recording to 50 Hz. The in-line script has the > > > > following sampling rate preset: > > > > > 'Give some time back (required) - i.e. sampling rate. > > > > Sleep 20 > > > > DoEvents > > > > > What I am confused about is what does this '20' value mean? Does it > > > > mean 20 cycles per second? > > > > > I would appreciate if somebody could answer this question. > > > > > All best, > > > > Ashtyster -- 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. From pfc.groot at gmail.com Tue Mar 29 16:19:52 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Tue, 29 Mar 2011 18:19:52 +0200 Subject: frequency of cursor position recording In-Reply-To: <3de46ffc-ad23-4c8b-babd-978037f721c7@g3g2000prg.googlegroups.com> Message-ID: Well, if you would like to keep in sync with the refresh cycle of the monitor, you should go for the Display.WaitForVerticalBlank function instead of using a fixed sleep duration. A combination of the sleep and display.CalculatedRefreshDuration functions will also work, but that construction will not stay in phase with the real refresh cycle. (Although this is not very critical for tracking mouse position.) P. 2011/3/28 Ashtyster : > Hi Paul, > > thank you for your reply. > > So if I understand you correctly, I should just calculate temporal > resolution from the output, and adjust the sleep value according to > the temporal resolution I'd like to have? > > All best, > A. > > On Mar 25, 11:54?pm, Paul Groot wrote: >> Hi Ashtyster, >> >> The sleep instruction simple puts the running script in 'idle'mode for >> the specified number of milliseconds. Windows can use this time to >> allow other processes to consume some CPU time. This construction is >> often used in loops to prevent the system to become stalled. A >> duration of about 20 milliseconds might be sensible on systems that >> are connected to a display at 50Hz. The value could even slightly less >> on systems with a typical refresh rate of 70-80Hz. However, windows >> will probably update the mouse cursor position completely independend >> of the refresh cycle, so the temporal resolution might be very >> different... >> >> Also, the DoEvent function is probably a leftover from the standard >> basic language. It is used to allow other applications to handle the >> message queue. I would normally not include this call in eprime >> experiments. >> >> best, >> Paul >> >> 2011/3/25 Ashtyster : >> >> >> >> >> >> >> >> > Hi! >> >> > I've gotten a bit confused trying to understand how to set the >> > frequency of cursor position recording in E-Prime. >> >> > I am presenting images and recording mouse cursor positions while >> > subjects view the images. I would like to set the "sampling rate" for >> > the cursor position recording to 50 Hz. The in-line script has the >> > following sampling rate preset: >> >> > 'Give some time back (required) - i.e. sampling rate. >> > Sleep 20 >> > DoEvents >> >> > What I am confused about is what does this '20' value mean? Does it >> > mean 20 cycles per second? >> >> > I would appreciate if somebody could answer this question. >> >> > All best, >> > Ashtyster >> >> > -- >> > 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 athttp://groups.google.com/group/e-prime?hl=en. > > -- > 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. > > -- 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. From Jedema at pitt.edu Tue Mar 29 16:37:00 2011 From: Jedema at pitt.edu (Hank Jedema) Date: Tue, 29 Mar 2011 09:37:00 -0700 Subject: synchronize event markers with refresh rate Message-ID: Hi All, I am trying to run a stop signal response task while recording electrophysiological activity on another setup. In order to get synchronization of behavior with the timing of my recordings, I have E- prime sent out event markers via the parallel port to an input of my recording device. It seems that this works well responses, but it seems that E-prime sends out the event markers for the display of stimuli before the stimulus actually appears on the screen: the eventmarker/timestamp is sent when the code issues the request for the stimulus to appear, rather than when the stimulus actually appears on the screen (i.e at the vertical blank/screen refresh after the stimulus.onset delay). Is there a way to get the event marker signal to synchronize with the actual appearance of the stimulus or is this something that can only be corrected offline by correcting the timestamps for stimulus appearance with their onset delay ? Thanks very much for your help. Hank -- 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. From mcfarla9 at msu.edu Tue Mar 29 19:21:37 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 29 Mar 2011 15:21:37 -0400 Subject: synchronize event markers with refresh rate In-Reply-To: <8aef5508-b66b-4b15-a5ab-ff85f60e6022@v11g2000prb.googlegro ups.com> Message-ID: Hank, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. (Flash -- As noted in the most recent PST e-mail Newsletter, we can all now access the E-Prime Knowledge Base without having to log in. Woo hoo!) That said, here is my take... Hmm. Could you post some details on how you measured this discrepancy? Are you using the "OnsetSignal..." properties of the stimulus to send your signals to your device? And are you sure that you have Onset Sync set to "vertical blank" for your stimulus? I have to admit that the documentation in the online E-Basic Help remains vague on when exactly OnsetSignal is supposed to send its signal -- At the StartTime of the stimulus? TargetOnsetTime? OnsetTime? ActionTime? (See the EP manuals for explanation of these items, or my own discussion at http://groups.google.com/group/e-prime/browse_thread/thread/39e899d3457d4917 ). But let's suppose that OnsetSignal acts at the OnsetTime. Then, as I understand it, as long as Onset Sync is set to "vertical blank", then, once EP reaches the TargetOnsetTime for the stimulus, it further withholds the stimulus until the next vertical blank, then presents the stimulus (which should now appear almost simultaneously on the screen), sends the OnsetSignal, and considers this the actual OnsetTime. Thus, there would be no way for the OnsetSignal to not be synchronized with the vertical blank, unless you do not have Onset Sync set to "vertical blank", or I am just wrong about how OnsetSignal works. So again, we need to know (1) whether the OnsetSignal really does always coincide with the stimulus OnsetTime, and (2) whether you have Onset Sync set to "vertical blank". Although I have measured many of these things in detail myself, I have not yet done so for this exact issue, so I will be interested to learn of your methodology and measurements. -- David McFarlane, Professional Faultfinder >I am trying to run a stop signal response task while recording >electrophysiological activity on another setup. In order to get >synchronization of behavior with the timing of my recordings, I have E- >prime sent out event markers via the parallel port to an input of my >recording device. It seems that this works well responses, but it >seems that E-prime sends out the event markers for the display of >stimuli before the stimulus actually appears on the screen: the >eventmarker/timestamp is sent when the code issues the request for the >stimulus to appear, rather than when the stimulus actually appears on >the screen (i.e at the vertical blank/screen refresh after the >stimulus.onset delay). Is there a way to get the event marker signal >to synchronize with the actual appearance of the stimulus or is this >something that can only be corrected offline by correcting the >timestamps for stimulus appearance with their onset delay ? > >Thanks very much for your help. > >Hank -- 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. From demiral.007 at googlemail.com Tue Mar 29 21:29:45 2011 From: demiral.007 at googlemail.com (Baris Demiral) Date: Tue, 29 Mar 2011 22:29:45 +0100 Subject: synchronize event markers with refresh rate In-Reply-To: <8aef5508-b66b-4b15-a5ab-ff85f60e6022@v11g2000prb.googlegroups.com> Message-ID: Hank, In practice, there is no trigger which can be sent on the exact complete onset of the stimulus. Only thing is that the trigger can best be written out when the stimulus is started to be written on the screen. In LCD monitors this is a bit different but lets come to the main issue. There are some strategies that you can follow in order to minimize the trigger jitters between the trials in e-prime. I will list these for you. But beforehand you need to know i) what the refresh rate of your monitor is ii) what your digital loading (on the digital card) is on your LCD monitor (if you are using one). Try to set the duration of the object (which I will can Y) preceding the main object (which I will call X, that you will send trigger to be marked for the onset) to be the multiples of the refresh rate. First option: Maybe the best option is to use something like: *X.OnsetSignalEnabled* *X.OnsetSignalPort X.OnsetSignalData* * * *where* "X" *is the *actual name of the object *on which the *property is being set. Write an inline at the beginning of the experiment/trial and set these. You can read more about this at http://www.pstnet.com/eprimelegFAQ.cfm. If you want to control the length of the trigger, you either write the following lines in the same on-line object: *X.OffsetSignalEnabled X.OffsetSignalPort X.OffsetSignalData* * * Or, use WRitePort and prepare another in-line object, put this inline after the X object and set X object's PreRelease to [X duration minus length of the trigger you desire]. In e-prime PreRelease "releases" (or executes) the inline objects coming after right away. It does not wait. Then, it prepares the next object to be shown as soon as the offset of X. But, make sure that Pre-release did not alter the length of the X object, because if you keep PreRelease very long it can act weird (at very long prereleases compared to the object's original duration). So this option is great if you have stimuli with very short durations. Almost exact onset time is caught. But you go with a long trigger as long as the X object if this does not bother you. Second option: (Offset correction/consideration needed, but no jitters). Set Y's PreRelease to a value which will be good enough to cover up for i) vertical blank time ii) trigger length. I assume you loaded your images/sounds at the beginning of the trial. If you did not, you need to include iii) loading time of the stimulus. For example: You have an image shown in X which takes 40-50ms to load (you can find this in e-prime output when you are designing your experiment and testing some dummy experiment. Look at the onset latency). You know your monitor's refresh rate is 100Hz, and you want your trigger to be 5ms (for some other reasons). Total time required for the image to be ready to be displayed is minimum 40+10+5=55ms maximum 65ms. Use Pre-release in Y and set it to 70ms (or if you want to be safer, set it to 100ms). Then write the in-line to send the trigger after Y. This will ensure that all your triggers will be sent exactly 70 or 100ms before time the stimulus is started to be written to the screen. If you load your images at the beginning of the trial or you are showing text, you can make the PrRelase shorter, 20ms. You also factor in if there are some LCD digital preparation duration latencies in the digital card of the LCD monitor. For instance for Samsung 100Hz LCD I found this to be 10ms. But it is, at least, presenting the image as a whole once (I think), not bit by bits consecutively as in CRT. Third Option: Use Canvas object like things and write your code. You can have full control. There were some nice scripts on this list written by some others. Or use something like WaitForVerticaBlank after you load your images and make them ready. WaitForVerticalBlank makes the object ready to be shown, then you can send the trigger, and the object is shown in the next refresh time. This option will make sure you fix the latency between the trigger and the stimulus just one refresh rate. Don't make the length of the trigger longer than the refresh rate. If you know how earlier the triggers were sent, then you can use this information to adjust for time windows or other statistics later. Best Baris On Tue, Mar 29, 2011 at 5:37 PM, Hank Jedema wrote: > Hi All, > > I am trying to run a stop signal response task while recording > electrophysiological activity on another setup. In order to get > synchronization of behavior with the timing of my recordings, I have E- > prime sent out event markers via the parallel port to an input of my > recording device. It seems that this works well responses, but it > seems that E-prime sends out the event markers for the display of > stimuli before the stimulus actually appears on the screen: the > eventmarker/timestamp is sent when the code issues the request for the > stimulus to appear, rather than when the stimulus actually appears on > the screen (i.e at the vertical blank/screen refresh after the > stimulus.onset delay). Is there a way to get the event marker signal > to synchronize with the actual appearance of the stimulus or is this > something that can only be corrected offline by correcting the > timestamps for stimulus appearance with their onset delay ? > > Thanks very much for your help. > > Hank > > -- > 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. > > -- SB Demiral, PhD. Department of Psychology 7 George Square The University of Edinburgh Edinburgh, EH8 9JZ UK Phone: +44 (0131) 6503063 -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Wed Mar 30 06:39:26 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Wed, 30 Mar 2011 08:39:26 +0200 Subject: synchronize event markers with refresh rate In-Reply-To: <8aef5508-b66b-4b15-a5ab-ff85f60e6022@v11g2000prb.googlegroups.com> Message-ID: Hi Hank, The event markers should be in sync when you prepare the markers using the following functions: Stim.OffsetSignalEnabled = True Stim.OnsetSignalEnabled = True Stim.OffsetSignalPort = &H378 Stim.OnsetSignalPort = &H378 Stim.OffsetSignalData = &H00 Stim.OnsetSignalData = &HFF ' < this is your onset code in hexadedimal notation Where Stim is your display object. Most flatscreens have an onset delay of a few milliseconds, so this would be a fixed delay caused by the properties of the display. Best, Paul 2011/3/29 Hank Jedema : > Hi All, > > I am trying to run a stop signal response task while recording > electrophysiological activity on another setup. In order to get > synchronization of behavior with the timing of my recordings, I have E- > prime sent out event markers via the parallel port to an input of my > recording device. It seems that this works well responses, but it > seems that E-prime sends out the event markers for the display of > stimuli before the stimulus actually appears on the screen: the > eventmarker/timestamp is sent when the code issues the request for the > stimulus to appear, rather than when the stimulus actually appears on > the screen (i.e at the vertical blank/screen refresh after the > stimulus.onset delay). Is there a way to get the event marker signal > to synchronize with the actual appearance of the stimulus or is this > something that can only be corrected offline by correcting the > timestamps for stimulus appearance with their onset delay ? > > Thanks very much for your help. > > Hank > > -- > 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. > > -- 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. From h.witherstone at googlemail.com Wed Mar 30 09:08:35 2011 From: h.witherstone at googlemail.com (Hannah Witherstone) Date: Wed, 30 Mar 2011 02:08:35 -0700 Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit Message-ID: Dear all I've been running an experiment using E-Prime 1.2 and Windows 7 32-bit professional. My response times look very odd and was wondering how much the data could have been affected by my software set-up? I'm aware there may be some problems with E-Prime's timings via Windows 7 but couldn't find any definitive answers regarding the extent to which response times are affected. If anyone could enlighten me that would be great. Thanks in advance, Hannah -- 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. From Michiel.Spape at nottingham.ac.uk Wed Mar 30 10:38:44 2011 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 30 Mar 2011 11:38:44 +0100 Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit In-Reply-To: Message-ID: Hi Hannah, As far as I know, this is pretty much the state of things, as it is: Windows7/Vista can be problematic with presenting sound, but there seems little definitive word from PST as to how operating systems that are less than a decade(!) old perform in terms of timing. There might be a problem - but that is exactly what they said when E-Prime 1.1.3 was run on PCs that were newer than Win98SE (namely, XP) - and merely gives the impression that they are insufficiently beta-testing and running hopelessly behind the times. That said, I'm not seeing any clear reason why a Stroop effect on a Win7 computer would suddenly be 81 ms instead of 80 - the greater bit of effect is in the type of font used! I've successfully programmed a Simon task on my mobile phone (an ancient-looking Windows Mobile 6.1 phone) in C#, and the response times seem pretty normal as far as I can see (bit slower because of the tiny buttons). So, what do you mean with "odd response times"? Do they look very unlike other numbers? :) Still, I agree it would be good to hear from PST something like "after extensive testing, we've found that, all in all, Win7 isn't much worse than WinXP" and some advice. One suggestion for you in the mean while: you might try the WinXP mode in Win7 to see if the response times look less odd... Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology www.cognitology.eu -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Hannah Witherstone Sent: 30 March 2011 10:09 To: E-Prime Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit Dear all I've been running an experiment using E-Prime 1.2 and Windows 7 32-bit professional. My response times look very odd and was wondering how much the data could have been affected by my software set-up? I'm aware there may be some problems with E-Prime's timings via Windows 7 but couldn't find any definitive answers regarding the extent to which response times are affected. If anyone could enlighten me that would be great. Thanks in advance, Hannah -- 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 and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. 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. From Jedema at pitt.edu Wed Mar 30 16:03:26 2011 From: Jedema at pitt.edu (Hank Jedema) Date: Wed, 30 Mar 2011 09:03:26 -0700 Subject: synchronize event markers with refresh rate In-Reply-To: Message-ID: Thanks to Davis, Baris, and Paul for your quick responses. I used a writeport command in my code to send my event markers to my recording system. I will have to look up what the exact loading time of an image on my Elo Carroll touch screen is, because I did not adjust for that (fixed) delay yet. I based my question on the timing of the event markers on the following: I collect multiple event markers for both the stimulus appearance as well as the response timing using a electrophysiology rig with sub-millisecond (<0.15 msec) timing accuracy. When I compare the time difference between 2 event markers from touch screen responses it seems that Eprime and my Plexon rig correspond nicely (<1msec difference). When I compare the time difference between an event marker from a stimulus appearance and a touch screen response, there is a much greater difference (10-18msec). On a trial by trial basis the difference between the two event markers seems to match the stimulus.onset delay listed in the Eprime output. Based on this, I believe that the event marker sent out by my E-prime code precedes the appearance of the stimulus on the screen. I will try the suggestion to use an inline as soon as the stimulus is on the screen next week. I will also check on the thread that David provided and post my results. Best, Hank On Mar 30, 2:39?am, Paul Groot wrote: > Hi Hank, > > The event markers should be in sync when you prepare the markers using > the following functions: > > Stim.OffsetSignalEnabled = True > Stim.OnsetSignalEnabled = True > Stim.OffsetSignalPort = &H378 > Stim.OnsetSignalPort = &H378 > Stim.OffsetSignalData = &H00 > Stim.OnsetSignalData = &HFF ?' < this is your onset code in hexadedimal notation > > Where Stim is your display object. > > Most flatscreens have an onset delay of a few milliseconds, so this > would be a fixed delay caused by the properties of the display. > > Best, > Paul > > 2011/3/29 Hank Jedema : > > > > > > > > > Hi All, > > > I am trying to run a stop signal response task while recording > > electrophysiological activity on another setup. In order to get > > synchronization of behavior with the timing of my recordings, I have E- > > prime sent out event markers via the parallel port to an input of my > > recording device. It seems that this works well responses, but it > > seems that E-prime sends out the event markers for the display of > > stimuli before the stimulus actually appears on the screen: the > > eventmarker/timestamp is sent when the code issues the request for the > > stimulus to appear, rather than when the stimulus actually appears on > > the screen (i.e at the vertical blank/screen refresh after the > > stimulus.onset delay). Is there a way to get the event marker signal > > to synchronize with the actual appearance of the stimulus or is this > > something that can only be corrected offline by correcting the > > timestamps for stimulus appearance with their onset delay ? > > > Thanks very much for your help. > > > Hank > > > -- > > 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 athttp://groups.google.com/group/e-prime?hl=en. -- 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. From pfc.groot at gmail.com Wed Mar 30 16:40:46 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Wed, 30 Mar 2011 18:40:46 +0200 Subject: synchronize event markers with refresh rate In-Reply-To: <3a14e81f-4d18-47b6-a51a-28dd263855de@q40g2000prh.googlegroups.com> Message-ID: Hi Hank, When using event markers for visual stimuli, you never should use the writeport function. This is because (in most cases) you would like to present the visual stimulus during the short refresh fase of the display. This is the default case when onset sync is set to vertical blank. (As David already explained!) If the stimulus is not synced this way, you will end up with an incomplete first frame (flickering). So, in most cases this causes unpredictable onset delays. Therfore, any writeport call will be executed to early, because eprime will hold the image presentation until the next refresh occurs (=OnsetDelay). So, just use the Onset/Offset properties described in the previous emails. The OnsetSignal will automatically generate a trigger as soon as the image is presented. (I.e. EPrime will automatically sync the implicit writeport command properly) Also: Preparation of the image (loading, uncompressing, scaling, ...) could be performed during a so called pre-release period. This period can be defined in the object just before the stimulus. This is advised for accurate onset times because image preparation time is NOT fixed in general. However, be carefull if you put any inline script between this object and the stimulus. (It will be executed at the start of the pre-release period!) best paul 2011/3/30 Hank Jedema : > Thanks to Davis, Baris, and Paul for your quick responses. > I used a writeport command in my code to send my event markers to my > recording system. I will have to look up what the exact loading time > of an image on my Elo Carroll touch screen is, because I did not > adjust for that (fixed) delay yet. > I based my question on the timing of the event markers on the > following: I collect multiple event markers for both the stimulus > appearance as well as the response timing using a electrophysiology > rig with sub-millisecond (<0.15 msec) timing accuracy. When I compare > the time difference between 2 event markers from touch screen > responses it seems that Eprime and my Plexon rig correspond nicely > (<1msec difference). When I compare the time difference between an > event marker from a stimulus appearance and a touch screen response, > there is a much greater difference (10-18msec). On a trial by trial > basis the difference between the two event markers seems to match the > stimulus.onset delay listed in the Eprime output. Based on this, I > believe that the event marker sent out by my E-prime code precedes the > appearance of the stimulus on the screen. I will try the suggestion to > use an inline as soon as the stimulus is on the screen next week. I > will also check on the thread that David provided and post my results. > > Best, > Hank > > On Mar 30, 2:39?am, Paul Groot wrote: >> Hi Hank, >> >> The event markers should be in sync when you prepare the markers using >> the following functions: >> >> Stim.OffsetSignalEnabled = True >> Stim.OnsetSignalEnabled = True >> Stim.OffsetSignalPort = &H378 >> Stim.OnsetSignalPort = &H378 >> Stim.OffsetSignalData = &H00 >> Stim.OnsetSignalData = &HFF ?' < this is your onset code in hexadedimal notation >> >> Where Stim is your display object. >> >> Most flatscreens have an onset delay of a few milliseconds, so this >> would be a fixed delay caused by the properties of the display. >> >> Best, >> Paul >> >> 2011/3/29 Hank Jedema : >> >> >> >> >> >> >> >> > Hi All, >> >> > I am trying to run a stop signal response task while recording >> > electrophysiological activity on another setup. In order to get >> > synchronization of behavior with the timing of my recordings, I have E- >> > prime sent out event markers via the parallel port to an input of my >> > recording device. It seems that this works well responses, but it >> > seems that E-prime sends out the event markers for the display of >> > stimuli before the stimulus actually appears on the screen: the >> > eventmarker/timestamp is sent when the code issues the request for the >> > stimulus to appear, rather than when the stimulus actually appears on >> > the screen (i.e at the vertical blank/screen refresh after the >> > stimulus.onset delay). Is there a way to get the event marker signal >> > to synchronize with the actual appearance of the stimulus or is this >> > something that can only be corrected offline by correcting the >> > timestamps for stimulus appearance with their onset delay ? >> >> > Thanks very much for your help. >> >> > Hank >> >> > -- >> > 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 athttp://groups.google.com/group/e-prime?hl=en. > > -- > 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. > > -- 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. From nic.cherise at gmail.com Wed Mar 30 21:41:00 2011 From: nic.cherise at gmail.com (Cherise R. Chin Fatt) Date: Wed, 30 Mar 2011 16:41:00 -0500 Subject: Repeat Trial Message-ID: Hello: Can someone please help me out with a part of my task? I need to repeat a trial until a correct response is given. I haven't been able to figure this out. I think it should be an inline, but I am not sure how to program this. Can someone help with this if possible? Thank you, Cherise. -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From baltimore.ben at gmail.com Wed Mar 30 23:48:37 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Wed, 30 Mar 2011 19:48:37 -0400 Subject: Repeat Trial In-Reply-To: Message-ID: you could even do this without an inline. in the object collecting responses enable two separate Input Masks (they could both be the keyboard, or both the mouse, or whatever). one instance of your Input Mask should have as its allowable response *only* the correct response, and its End Action should be set to Terminate. the other Input Mask should have as its Allowable Response all other possible non-correct responses, and its End Action should be set to Jump. fill in the Jump Label section with your Label's name, then place the Label right before your object which collects responses. this should result in the program jumping back to the label immediately prior to your stimulus every time an incorrect response is received. ben On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt wrote: > Hello: > > Can someone please help me out with a part of my task? I need to repeat a > trial until a correct response is given. I haven't been able to figure this > out. I think it should be an inline, but I am not sure how to program this. > Can someone help with this if possible? > > Thank you, > Cherise. > > -- > 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. > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Thu Mar 31 06:17:07 2011 From: pfc.groot at gmail.com (Paul Groot) Date: Thu, 31 Mar 2011 08:17:07 +0200 Subject: Repeat Trial In-Reply-To: Message-ID: Using more than one input mask is really an elegant solution that is easy to implement. If you also would like to register the incorrect responses in the output file, then this probably won't work without some additional scripting. As an alternative you can also to the following (copied from my post some days ago): Another way to implement trial loops is to add an additional ?level? to your experiment by using an extra list object for the repeating trials (i.e. place a new list object on the trial procedure). This list will loop ?forever? by setting the ?exit list? parameter to high value. Then move all trial objects to the procedure of this new list. Finally add a small inline script at the end of the subtrial that will terminate the sublist when a specific condition is met (i.e. if stim.ACC=1 then sublist.Terminate end if) This sounds complicated, but is in fact very straightforward to do, and also supports more complex constructs (like giving additional instructions after one or more errors.) Best Paul 2011/3/31 ben robinson : > you could even do this without an inline. > in the object collecting responses enable two separate Input Masks (they > could both be the keyboard, or both the mouse, or whatever). ?one instance > of your Input Mask should have as its allowable response *only* the correct > response, and its End Action should be set to Terminate. ?the other Input > Mask should have as its Allowable Response all other possible non-correct > responses, and its End Action should be set to Jump. ?fill in the Jump Label > section with your Label's name, then place the Label right before your > object which collects responses. ?this should result in the program jumping > back to the label immediately prior to your stimulus every time an incorrect > response is received. > ben > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > wrote: >> >> Hello: >> >> Can someone please help me out with a part of my task? I need to repeat a >> trial until a correct response is given. I haven't been able to figure this >> out. I think it should be an inline, but I am not sure how to program this. >> Can someone help with this if possible? >> >> Thank you, >> Cherise. >> >> -- >> 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. > > -- > 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. > -- 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. From liwenna at gmail.com Thu Mar 31 10:26:41 2011 From: liwenna at gmail.com (liwenna) Date: Thu, 31 Mar 2011 03:26:41 -0700 Subject: Repeat Trial In-Reply-To: Message-ID: Oi... I justed wanted to expres that I agree with Paul that the two input masks solution is really elegant! I'd have never thought of that, and always script in the jump to the label (then again I also think that whenever I use this I also use the string hittest and therefore could not use the inputmasks). On 31 mrt, 02:17, Paul Groot wrote: > Using more than one input mask is really an elegant solution that is > easy to implement. If you also would like to register the incorrect > responses in the output file, then this probably won't work without > some additional scripting. As an alternative you can also to the > following (copied from my post some days ago): > > Another way to implement trial loops is to add an additional > ?level? to your experiment by using an extra list object for the > repeating trials (i.e. place a new list object on the trial > procedure). This list will loop ?forever? by setting the ?exit list? > parameter to high value. Then move all trial objects to the procedure > of this new list. Finally add a small inline script at the end of the > subtrial that will terminate the sublist when a specific condition is > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > This sounds complicated, but is in fact very straightforward to do, > and also supports more complex constructs (like giving additional > instructions after one or more errors.) > > Best > Paul > > 2011/3/31 ben robinson : > > > you could even do this without an inline. > > in the object collecting responses enable two separate Input Masks (they > > could both be the keyboard, or both the mouse, or whatever). ?one instance > > of your Input Mask should have as its allowable response *only* the correct > > response, and its End Action should be set to Terminate. ?the other Input > > Mask should have as its Allowable Response all other possible non-correct > > responses, and its End Action should be set to Jump. ?fill in the Jump Label > > section with your Label's name, then place the Label right before your > > object which collects responses. ?this should result in the program jumping > > back to the label immediately prior to your stimulus every time an incorrect > > response is received. > > ben > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > wrote: > > >> Hello: > > >> Can someone please help me out with a part of my task? I need to repeat a > >> trial until a correct response is given. I haven't been able to figure this > >> out. I think it should be an inline, but I am not sure how to program this. > >> Can someone help with this if possible? > > >> Thank you, > >> Cherise. > > >> -- > >> 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. > > > -- > > 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. -- 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. From fblanco81 at gmail.com Thu Mar 31 10:19:49 2011 From: fblanco81 at gmail.com (Gilgamesh) Date: Thu, 31 Mar 2011 03:19:49 -0700 Subject: Logging multiple incorrect responses and their RT In-Reply-To: Message-ID: Thanks for your answers. I will start the program from scratch and try to be as tidy as possible. Any solution that works may be a nice deal anyway, event if it is not elegant. My first try will include the loop and the counter, as planned. Let's see how I do it... Cheers, Fernando On 24 mar, 15:17, ben robinson wrote: > if you expect only a small, finite number of incorrect responses, my > solution might be to add that many additional objects to the procedure > time-line, each one set up to collect responses, and each one set to Jump to > an End-Of-Trial Label once a correct response is made. > to use the Jump functionality of the response collecting objects isn't > always super intuitive. ?you would add one keyboard Input Mask with > Allowable Responses set to your incorrect response possibilities and End > Action set to Terminate, and another keyboard Input Mask with only your > correct response included in the Allowable Responses with the End Action set > to Jump, then add the name of your End-Of-Trial Label to the Jump Label > field. > > ben > > > > > > > > On Wed, Mar 23, 2011 at 6:01 PM, Paul Groot wrote: > > Hi Fernando, > > > The quick-and-dirty solution with the goto-to-label construction will > > actually work if you also add a c.log call before every goto-call > > (eprime will automatically call c.log at the end of the trial once). > > But you?re right. This is probably not considered an elegant solution. > > > Another way to implement arbitrary loops is to add an additional > > ?level? to your experiment by using an extra list object for the > > repeating trials (i.e. place a new list object on the trial > > procedure). This list will loop ?forever? by setting the ?exit list? > > parameter to high value. Then move all trial objects to the procedure > > of this new list. Finally add a small inline script at the end of the > > subtrial that will terminate the sublist when a specific condition is > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > Hope this helps, > > Paul > > > 2011/3/23 Gilgamesh : > > > Hello everybody, > > > I am currently programming a sequence learning task. It should work as > > > follows: > > > 1) Slide presenting stimulus. Responses are made via the keyword. > > > 2) If the answer is correct, then it jumps to next trial. > > > 3) If the answer is incorrect, then a sound is played and the slide > > > stays on the screen. > > > > I have come up with several ways of doing this, but they are all > > > unsatisfactory. The main problem is that I would like to log the > > > number of incorrect responses as well as their reaction times. I > > > wonder whether there is an elegant way of programming this. > > > > So far, my best attempt involves crazily looping: If slide.ACC = 0, > > > then it jumps to a label placed right before the slide. The only RT > > > that I am able to collect this way is that of the last, correct, > > > response. The number of cycles in the loop (updated by a script) > > > serves as a means to know the number of errors, but the RT data are > > > overwritten on each cycle. In sum, awful solution. > > > > I'm sure it must be an elegant way to (a) make advancement of the > > > slide contingent on the correct response and (b) collect both the > > > number of incorrect attempts and their RTs. > > > Any suggestion? > > > > Thanks in advance, > > > Fernando > > > > -- > > > 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. > > > -- > > 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. -- 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. From nic.cherise at gmail.com Thu Mar 31 17:41:33 2011 From: nic.cherise at gmail.com (Cherise Chin Fatt) Date: Thu, 31 Mar 2011 10:41:33 -0700 Subject: Repeat Trial In-Reply-To: Message-ID: Thank you for all your help. I have one problem left- when an incorrect response occurs, the trial isnt repeat... it goes to the top of additional list (as you explained below). I cannot figure out how to fix this problem. Maybe I didn't understand you fully- I added a sublist which has all the trials. This list has a SubProc which has a display and an inline. I am sorry for the confusion. I am new to eprime, so I am now getting accustom to the structure. On Mar 31, 12:17?am, Paul Groot wrote: > Using more than one input mask is really an elegant solution that is > easy to implement. If you also would like to register the incorrect > responses in the output file, then this probably won't work without > some additional scripting. As an alternative you can also to the > following (copied from my post some days ago): > > Another way to implement trial loops is to add an additional > ?level? to your experiment by using an extra list object for the > repeating trials (i.e. place a new list object on the trial > procedure). This list will loop ?forever? by setting the ?exit list? > parameter to high value. Then move all trial objects to the procedure > of this new list. Finally add a small inline script at the end of the > subtrial that will terminate the sublist when a specific condition is > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > This sounds complicated, but is in fact very straightforward to do, > and also supports more complex constructs (like giving additional > instructions after one or more errors.) > > Best > Paul > > 2011/3/31 ben robinson : > > > > > you could even do this without an inline. > > in the object collecting responses enable two separate Input Masks (they > > could both be the keyboard, or both the mouse, or whatever). ?one instance > > of your Input Mask should have as its allowable response *only* the correct > > response, and its End Action should be set to Terminate. ?the other Input > > Mask should have as its Allowable Response all other possible non-correct > > responses, and its End Action should be set to Jump. ?fill in the Jump Label > > section with your Label's name, then place the Label right before your > > object which collects responses. ?this should result in the program jumping > > back to the label immediately prior to your stimulus every time an incorrect > > response is received. > > ben > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > wrote: > > >> Hello: > > >> Can someone please help me out with a part of my task? I need to repeat a > >> trial until a correct response is given. I haven't been able to figure this > >> out. I think it should be an inline, but I am not sure how to program this. > >> Can someone help with this if possible? > > >> Thank you, > >> Cherise. > > >> -- > >> 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. > > > -- > > 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.- Hide quoted text - > > - Show quoted text - -- 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. From baltimore.ben at gmail.com Thu Mar 31 18:35:11 2011 From: baltimore.ben at gmail.com (ben robinson) Date: Thu, 31 Mar 2011 14:35:11 -0400 Subject: Repeat Trial In-Reply-To: Message-ID: try implementing my suggestion, cherise :) have two Input Masks on the same object collecting responses: InputMask1 Allowable Responses set to *only* the correct response End Action set to Terminate. InputMask2 Allowable Responses set to all other possible responses End Action set to Jump Jump Label = Label1 then put Label1 immediately prior to the object collecting responses. just try it. ben On Thu, Mar 31, 2011 at 1:41 PM, Cherise Chin Fatt wrote: > Thank you for all your help. I have one problem left- when an > incorrect response occurs, the trial isnt repeat... it goes to the top > of additional list (as you explained below). I cannot figure out how > to fix this problem. Maybe I didn't understand you fully- I added a > sublist which has all the trials. This list has a SubProc which has a > display and an inline. > > I am sorry for the confusion. I am new to eprime, so I am now getting > accustom to the structure. > > On Mar 31, 12:17 am, Paul Groot wrote: > > Using more than one input mask is really an elegant solution that is > > easy to implement. If you also would like to register the incorrect > > responses in the output file, then this probably won't work without > > some additional scripting. As an alternative you can also to the > > following (copied from my post some days ago): > > > > Another way to implement trial loops is to add an additional > > ?level? to your experiment by using an extra list object for the > > repeating trials (i.e. place a new list object on the trial > > procedure). This list will loop ?forever? by setting the ?exit list? > > parameter to high value. Then move all trial objects to the procedure > > of this new list. Finally add a small inline script at the end of the > > subtrial that will terminate the sublist when a specific condition is > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > > This sounds complicated, but is in fact very straightforward to do, > > and also supports more complex constructs (like giving additional > > instructions after one or more errors.) > > > > Best > > Paul > > > > 2011/3/31 ben robinson : > > > > > > > > > you could even do this without an inline. > > > in the object collecting responses enable two separate Input Masks > (they > > > could both be the keyboard, or both the mouse, or whatever). one > instance > > > of your Input Mask should have as its allowable response *only* the > correct > > > response, and its End Action should be set to Terminate. the other > Input > > > Mask should have as its Allowable Response all other possible > non-correct > > > responses, and its End Action should be set to Jump. fill in the Jump > Label > > > section with your Label's name, then place the Label right before your > > > object which collects responses. this should result in the program > jumping > > > back to the label immediately prior to your stimulus every time an > incorrect > > > response is received. > > > ben > > > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > > wrote: > > > > >> Hello: > > > > >> Can someone please help me out with a part of my task? I need to > repeat a > > >> trial until a correct response is given. I haven't been able to figure > this > > >> out. I think it should be an inline, but I am not sure how to program > this. > > >> Can someone help with this if possible? > > > > >> Thank you, > > >> Cherise. > > > > >> -- > > >> 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. > > > > > -- > > > 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.- Hide quoted text - > > > > - Show quoted text - > > -- > 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. > > -- 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Thu Mar 31 18:40:29 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 31 Mar 2011 14:40:29 -0400 Subject: Accuracy of response times: E-Prime 1.2 and Windows 7 32-bit In-Reply-To: Message-ID: Hannah, Hmm, you must have missed the post from this Monday that addressed this very issue, with an official response from PST. Please see the thread at http://groups.google.com/group/e-prime/browse_thread/thread/1a0ebb44226aa905 , and follow the links to the appropriate Knowledge Base articles (now available without any login, hooray!). If you think you still have an issue, then please submit this to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp (and then please post back here with the result, as Lidia did). This all presumes, of course, that you have already thoroughly studied Chapter 3 of the User Guide that came with E-Prime. FWIW, I have not found any timing problems with EP1.2 under Vista -- even sound works OK (unlike sound with EP2 under Vista). But then I do not run subjects from any Vista (or Win7) station, I use Vista only for development, subjects are all run on XP machines. -- David McFarlane, Professional Faultfinder At 3/30/2011 05:08 AM Wednesday, Hannah Witherstone wrote: >I've been running an experiment using E-Prime 1.2 and Windows 7 32-bit >professional. My response times look very odd and was wondering how >much the data could have been affected by my software set-up? > >I'm aware there may be some problems with E-Prime's timings via >Windows 7 but couldn't find any definitive answers regarding the >extent to which response times are affected. > >If anyone could enlighten me that would be great. > >Thanks in advance, >Hannah -- 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. From nic.cherise at gmail.com Thu Mar 31 18:38:10 2011 From: nic.cherise at gmail.com (Cherise Chin Fatt) Date: Thu, 31 Mar 2011 11:38:10 -0700 Subject: Repeat Trial In-Reply-To: Message-ID: Hi Paul: thank you for your help as well. Would I be able to keep a track of the incorrect responses using your method? Thank you. On Mar 31, 12:35?pm, ben robinson wrote: > try implementing my suggestion, cherise :) > > have two Input Masks on the same object collecting responses: > InputMask1 > ? ? Allowable Responses set to *only* the correct response > ? ? End Action set to Terminate. > InputMask2 > ? ? Allowable Responses set to all other possible responses > ? ? End Action set to Jump > ? ? Jump Label = Label1 > > then put Label1 immediately prior to the object collecting responses. ?just > try it. > > ben > > On Thu, Mar 31, 2011 at 1:41 PM, Cherise Chin Fatt wrote: > > > > > Thank you for all your help. I have one problem left- when an > > incorrect response occurs, the trial isnt repeat... it goes to the top > > of ?additional list (as you explained below). I cannot figure out how > > to fix this problem. ?Maybe I didn't understand you fully- I added a > > sublist which has all the trials. This list has a SubProc which has a > > display and an inline. > > > I am sorry for the confusion. I am new to eprime, so I am now getting > > accustom to the structure. > > > On Mar 31, 12:17 am, Paul Groot wrote: > > > Using more than one input mask is really an elegant solution that is > > > easy to implement. If you also would like to register the incorrect > > > responses in the output file, then this probably won't work without > > > some additional scripting. As an alternative you can also to the > > > following (copied from my post some days ago): > > > > Another way to implement trial loops is to add an additional > > > ?level? to your experiment by using an extra list object for the > > > repeating trials (i.e. place a new list object on the trial > > > procedure). This list will loop ?forever? by setting the ?exit list? > > > parameter to high value. Then move all trial objects to the procedure > > > of this new list. Finally add a small inline script at the end of the > > > subtrial that will terminate the sublist when a specific condition is > > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > > This sounds complicated, but is in fact very straightforward to do, > > > and also supports more complex constructs (like giving additional > > > instructions after one or more errors.) > > > > Best > > > Paul > > > > 2011/3/31 ben robinson : > > > > > you could even do this without an inline. > > > > in the object collecting responses enable two separate Input Masks > > (they > > > > could both be the keyboard, or both the mouse, or whatever). ?one > > instance > > > > of your Input Mask should have as its allowable response *only* the > > correct > > > > response, and its End Action should be set to Terminate. ?the other > > Input > > > > Mask should have as its Allowable Response all other possible > > non-correct > > > > responses, and its End Action should be set to Jump. ?fill in the Jump > > Label > > > > section with your Label's name, then place the Label right before your > > > > object which collects responses. ?this should result in the program > > jumping > > > > back to the label immediately prior to your stimulus every time an > > incorrect > > > > response is received. > > > > ben > > > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > > > wrote: > > > > >> Hello: > > > > >> Can someone please help me out with a part of my task? I need to > > repeat a > > > >> trial until a correct response is given. I haven't been able to figure > > this > > > >> out. I think it should be an inline, but I am not sure how to program > > this. > > > >> Can someone help with this if possible? > > > > >> Thank you, > > > >> Cherise. > > > > >> -- > > > >> 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. > > > > > -- > > > > 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.-Hide quoted text - > > > > - Show quoted text - > > > -- > > 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.- Hide quoted text - > > - Show quoted text - -- 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. From mcfarla9 at msu.edu Thu Mar 31 18:55:25 2011 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 31 Mar 2011 14:55:25 -0400 Subject: Repeat Trial In-Reply-To: <3313a35a-4db3-475d-8ad4-d6508251c72e@f31g2000pri.googlegro ups.com> Message-ID: Nice discussion. And I agree that for this simple case these methods are more elegant than the usual inline-code method (as shown in the "Criterion Based Exit" example downloadable from the Samples area of the PST web site). As I understand it, Paul's method (using an inner trial List) should automatically log each response, whether incorrect or correct, as another row in your .edat file. Ben's method (just using a Jump label), as it stands, should log only the final response, but with judicious placement of inline code containing a c.Log command (see the Context topic in the online E-Basic Help) you might get it to record all responses. Each execution of c.Log generates a new line in the .edat file, with the current values of all attributes. -- David McFarlane, Professional Faultfinder At 3/31/2011 02:38 PM Thursday, Cherise Chin Fatt wrote: >Hi Paul: thank you for your help as well. Would I be able to keep a >track of the incorrect responses using your method? > >Thank you. > >On Mar 31, 12:35 pm, ben robinson wrote: > > try implementing my suggestion, cherise :) > > > > have two Input Masks on the same object collecting responses: > > InputMask1 > > Allowable Responses set to *only* the correct response > > End Action set to Terminate. > > InputMask2 > > Allowable Responses set to all other possible responses > > End Action set to Jump > > Jump Label = Label1 > > > > then put Label1 immediately prior to the object collecting responses. just > > try it. > > > > ben > > > > On Thu, Mar 31, 2011 at 1:41 PM, Cherise Chin Fatt > wrote: > > > > > > > > > Thank you for all your help. I have one problem left- when an > > > incorrect response occurs, the trial isnt repeat... it goes to the top > > > of additional list (as you explained below). I cannot figure out how > > > to fix this problem. Maybe I didn't understand you fully- I added a > > > sublist which has all the trials. This list has a SubProc which has a > > > display and an inline. > > > > > I am sorry for the confusion. I am new to eprime, so I am now getting > > > accustom to the structure. > > > > > On Mar 31, 12:17 am, Paul Groot wrote: > > > > Using more than one input mask is really an elegant solution that is > > > > easy to implement. If you also would like to register the incorrect > > > > responses in the output file, then this probably won't work without > > > > some additional scripting. As an alternative you can also to the > > > > following (copied from my post some days ago): > > > > > > Another way to implement trial loops is to add an additional > > > > 'level' to your experiment by using an extra list object for the > > > > repeating trials (i.e. place a new list object on the trial > > > > procedure). This list will loop 'forever' by setting the 'exit list' > > > > parameter to high value. Then move all trial objects to the procedure > > > > of this new list. Finally add a small inline script at the end of the > > > > subtrial that will terminate the sublist when a specific condition is > > > > met (i.e. if stim.ACC=1 then sublist.Terminate end if) > > > > > > This sounds complicated, but is in fact very straightforward to do, > > > > and also supports more complex constructs (like giving additional > > > > instructions after one or more errors.) > > > > > > Best > > > > Paul > > > > > > 2011/3/31 ben robinson : > > > > > > > you could even do this without an inline. > > > > > in the object collecting responses enable two separate Input Masks > > > (they > > > > > could both be the keyboard, or both the mouse, or whatever). one > > > instance > > > > > of your Input Mask should have as its allowable response *only* the > > > correct > > > > > response, and its End Action should be set to Terminate. the other > > > Input > > > > > Mask should have as its Allowable Response all other possible > > > non-correct > > > > > responses, and its End Action should be set to Jump. fill > in the Jump > > > Label > > > > > section with your Label's name, then place the Label right > before your > > > > > object which collects responses. this should result in the program > > > jumping > > > > > back to the label immediately prior to your stimulus every time an > > > incorrect > > > > > response is received. > > > > > ben > > > > > > > On Wed, Mar 30, 2011 at 5:41 PM, Cherise R. Chin Fatt > > > > > wrote: > > > > > > >> Hello: > > > > > > >> Can someone please help me out with a part of my task? I need to > > > repeat a > > > > >> trial until a correct response is given. I haven't been > able to figure > > > this > > > > >> out. I think it should be an inline, but I am not sure how > to program > > > this. > > > > >> Can someone help with this if possible? > > > > > > >> Thank you, > > > > >> Cherise. -- 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.