From gusunny1 at gmail.com Mon Apr 1 04:38:01 2013 From: gusunny1 at gmail.com (=?GB2312?B?vKrP6cjn0uI=?=) Date: Mon, 1 Apr 2013 12:38:01 +0800 Subject: E-prime crashes after reading text file In-Reply-To: Message-ID: I am not sure but I have learnt that when you call from a text file, you need first get the line number in the text, then loop again to get each line in the textfile. I don't know if this is the reason your eprime program get crashed. 2013/3/30 Marisa Crisostomo > I deleted all unreferenced objects and it is still too large. What is > interesting is that my program was being compiled until I started changing > fonts and layouts of the slides. > > Marisa > > > On Thu, Mar 28, 2013 at 3:48 PM, ben robinson wrote: > >> Do you have a lot of unused "Unreferenced E-Objects" in your file? Try >> deleting them, if so, and see if your script is no longer "too large to be >> compiled". >> >> Ben >> >> >> On Thu, Mar 28, 2013 at 3:01 PM, MarisaC wrote: >> >>> Hello, >>> >>> I am hoping someone could help me out. >>> My script is "too large to be compiled" so I am trying to have e-prime >>> call from a text file instead. >>> >>> Here is the code that I have been using: >>> >>> open "FinalTstQuestionTXT2.txt" for Input as #1 >>> For IndxArt=0 to Article_Count - 1 >>> For TxtCounter = 1 to FinalTstQ_Count >>> Line Input #1, textstring$ >>> 'Articles(IndxArt).FinalTst(TxtCounter).FinalQuestion = textstring$ >>> Next TxtCounter >>> Next IndxArt >>> close #1 >>> >>> The program compiles and the script is generated successfully, but when >>> I try to run it, e-prime crashes, and I get the windows message. >>> >>> I know that e-prime is reading from the file because when I set the >>> FinalTstQ_count number to more than the number of lines in the text file, I >>> get the "Input past end of file" error message (as expected). It seems that >>> the problem occurs when e-prime gets to the end of the text file. >>> >>> Any help would be greatly appreciated! >>> Thank you, >>> Marisa >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+unsubscribe at googlegroups.com. >>> To post to this group, send email to e-prime at googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msg/e-prime/-/kCPKL2LGInMJ. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+unsubscribe at googlegroups.com. >> To post to this group, send email to e-prime at googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From carne006 at gmail.com Mon Apr 1 15:29:47 2013 From: carne006 at gmail.com (Edward Carney) Date: Mon, 1 Apr 2013 08:29:47 -0700 Subject: Premature exit from list object Message-ID: I’ve run into a curious problem. Here’s the basic pseudo-code: SessionProc List runs ProcX ProcX Show slide object Play sound Inline – collect mouse click and determine location Test on location and run either of: ErrorSlideObject.Run to manipulate an image object to place it on the correct location providing feedback CorrectSlideObject.Run to display text. GoodbyeTextDisplay The final TextDisplay object is intended to say “thanks, goodbye.” Problem: This seems to lie in the list object—it finishes and immediately exits the script. No final "goodbye" text object shows up. I’ve done all kinds of things: a) create a new procedure to show the TextObject and made it last in the List object; b) add labels to jump to; c) terminate the Error/Correct Slide objects with “none” or “Jump” to label. What might be going on in the handoff relationship between the InLine objects and the List object to cause this? BTW, the Error/Correct slide objects are “hidden” in Unreferenced E-Objects. Thanks, Edward Carney Research Assoc. University of Minnesota -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/i5jQdxbw-KsJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From axg34psu at gmail.com Tue Apr 2 15:42:45 2013 From: axg34psu at gmail.com (amanda gearhart) Date: Tue, 2 Apr 2013 08:42:45 -0700 Subject: Borders and setting changes Message-ID: We are currently running Eprime 2.0.8.74 on a Microsoft Windows 7 Ultimate SP1, Intel Core i3-2120 @ 3.3 GHz, 8 GB RAM, 64-bit. I have a script that has a white background with black letters. About halfway through the 10 runs we have the script starts to have a black frame. When exiting out with ctr/alt/shift the script it seems to fix itself with no adjustments made to the script and the issue resolves itself with no changes to the script what so ever. Has anyone encountered this? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/ZqDsRTSuTXYJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From me.crisostomo6 at gmail.com Tue Apr 2 17:34:42 2013 From: me.crisostomo6 at gmail.com (Marisa Crisostomo) Date: Tue, 2 Apr 2013 12:34:42 -0500 Subject: E-prime crashes after reading text file In-Reply-To: Message-ID: How would I do that? On Sun, Mar 31, 2013 at 11:38 PM, 吉祥如意 wrote: > I am not sure but I have learnt that when you call from a text file, you > need first get the line number in the text, then loop again to get each > line in the textfile. I don't know if this is the reason your eprime > program get crashed. > > > 2013/3/30 Marisa Crisostomo > >> I deleted all unreferenced objects and it is still too large. What is >> interesting is that my program was being compiled until I started changing >> fonts and layouts of the slides. >> >> Marisa >> >> >> On Thu, Mar 28, 2013 at 3:48 PM, ben robinson wrote: >> >>> Do you have a lot of unused "Unreferenced E-Objects" in your file? Try >>> deleting them, if so, and see if your script is no longer "too large to be >>> compiled". >>> >>> Ben >>> >>> >>> On Thu, Mar 28, 2013 at 3:01 PM, MarisaC wrote: >>> >>>> Hello, >>>> >>>> I am hoping someone could help me out. >>>> My script is "too large to be compiled" so I am trying to have e-prime >>>> call from a text file instead. >>>> >>>> Here is the code that I have been using: >>>> >>>> open "FinalTstQuestionTXT2.txt" for Input as #1 >>>> For IndxArt=0 to Article_Count - 1 >>>> For TxtCounter = 1 to FinalTstQ_Count >>>> Line Input #1, textstring$ >>>> 'Articles(IndxArt).FinalTst(TxtCounter).FinalQuestion = textstring$ >>>> Next TxtCounter >>>> Next IndxArt >>>> close #1 >>>> >>>> The program compiles and the script is generated successfully, but when >>>> I try to run it, e-prime crashes, and I get the windows message. >>>> >>>> I know that e-prime is reading from the file because when I set the >>>> FinalTstQ_count number to more than the number of lines in the text file, I >>>> get the "Input past end of file" error message (as expected). It seems that >>>> the problem occurs when e-prime gets to the end of the text file. >>>> >>>> Any help would be greatly appreciated! >>>> Thank you, >>>> Marisa >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "E-Prime" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to e-prime+unsubscribe at googlegroups.com. >>>> To post to this group, send email to e-prime at googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msg/e-prime/-/kCPKL2LGInMJ. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+unsubscribe at googlegroups.com. >>> To post to this group, send email to e-prime at googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+unsubscribe at googlegroups.com. >> To post to this group, send email to e-prime at googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From carne006 at gmail.com Fri Apr 5 22:15:04 2013 From: carne006 at gmail.com (Edward Carney) Date: Fri, 5 Apr 2013 15:15:04 -0700 Subject: Premature exit from list object In-Reply-To: <3120e473-ad85-4589-9886-59b77941a741@googlegroups.com> Message-ID: Weird. I added a second list item called ExitStuff to run some TextDisplay to end up with, and that worked. But it only worked after I added a Wait object immediately after the TextDisplay. Otherwise, the text popped up and disappeared, no matter the duration. I give up. I'm chalking this up as a workaround for weirdness. Edward C. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/jzufBEakOakJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgbellows at gmail.com Fri Apr 12 18:11:33 2013 From: bgbellows at gmail.com (HFAC) Date: Fri, 12 Apr 2013 11:11:33 -0700 Subject: Response accuracy unreliable because {SHIFT} logged as response Message-ID: Hello all, Thank you for your advice in advance. To introduce myself, I use EPrime to develop my experiments because I have no experience coding (a shame I know), so please keep that in mind when responding. So far, I have only used the built in functions of EPrime. *My Experiment*: I have developed an experiment where participants see a stimuli and participants are expected to answer using a series of (capital) X, I, V, or -, +, and =. (For example: X=V+I) The participants have 2 minutes to come up with correct answer and they may try as many answers as they would like until they find the correct one. I have set the experiment up where if the participant enters an answer and it is incorrect they cannot continue but if they enter the correct response they will receive feedback that they are correct and can continue to the next puzzle. *My Problem*: I cannot get Eprime to recognize the correct response (for example: X=V+I) because when participants capitalize their responses EPrime records {SHIFT}. I have tried making the correct response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable because participants hit shift a variable number of times (when making mistakes, etc.) so there is no way for me to predict the number of shifts in their answer. Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/ncnES7GdmkMJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgbellows at gmail.com Fri Apr 12 18:17:54 2013 From: bgbellows at gmail.com (HFAC) Date: Fri, 12 Apr 2013 11:17:54 -0700 Subject: Script for cleaning up participants' typed responses In-Reply-To: <512f7dc5-53ba-42a3-b9c7-03e1bf3798d5@k37g2000hsf.googlegroups.com> Message-ID: Matt, I am also having a problem with E-Prime recording {SHIFT}. See my post for a more detailed explanation of my problem: https://groups.google.com/forum/?fromgroups=#!topic/e-prime/wysgwiaYR_0 I would like to try the script that you mentioned but cannot seem to locate it. If possible, will you post a response to me and attach it? I would greatly appreciate it. On Wednesday, April 16, 2008 1:10:01 PM UTC-4, Matt wrote: > > Hi Joseph, > > I have added a sample experiment to the Files section of this group > (TextString.es). This sample echoes subject responses and then "cleans > up" the special characters that are used by parsing the string. You > can look through the comments in the script to see how this parsing is > done. The sample only handles a few cases (e.g., Shift, period, etc). > However, you can modify the script to handle many different cases. > > Please let me know if you have any questions after looking at the > sample. > > Sincerely, > Matt Lenhart > PST Technical Consultant > http://pstnet.com -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/uvA3tqVcEa8J. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Sun Apr 14 20:23:10 2013 From: pfc.groot at gmail.com (Paul Groot) Date: Sun, 14 Apr 2013 22:23:10 +0200 Subject: Script for cleaning up participants' typed responses In-Reply-To: <98074db6-55cf-4e7b-876a-ca1147238c1e@googlegroups.com> Message-ID: hi, You can get rid of explicit {SHIFT} responses in the response values by setting an allowable mask that only includes the characters you actually allow. For example, you might set it to the following to allow alphabetic characters, the equal sign and the plus sign: {ALPHA}{=}{+}{ENTER} If you use the enter-key as input-terminator, you also have to include that one explicitly. So, that is the easy part. If you also would like to replace the special {key} responses with the original literal (i.e. replace {+} with just +), you also have to add some script after the input screen (TextDisplay1 in this example): Dim t As String Dim pos As Integer Dim ii As Integer ' Define a table with two columns: {key} and replacement ' The rows must include all literal {key}'s used in the input allowable mask Const NSPECIAL%=3 Dim special (1 To NSPECIAL, 1 To 2) As String special(1,1) = "{+}" special(1,2) = "+" special(2,1) = "{=}" special(2,2) = "=" special(3,1) = "{ENTER}" special(3,2) = "" t = UCase(TextDisplay1.RESP) 'convert input to upper case For ii=1 To NSPECIAL Dim key As String key = special(ii,1) 'find special {key} strings pos = InStr(t,key) If pos<>0 Then ' replace special {key}'s with their original character t = Left(t,pos-1) & special(ii,2) & Mid(t,pos+Len(key)) ii = ii-1 ' tricky cheat: retry this same special sequence again End If Next ' show result in next text display object TextDIsplay2.Text = TextDisplay1.RESP & ebCrLf & "is replaced by:" & ebCrLf & t 'overwrite the RESP attribute (note: disable default loging first) c.SetAttrib TextDisplay1.Name & ebDot & ebLogNameRESP, t Also find this example code in the attached script (requires EP 2.0.10.242). Best Paul On 12 April 2013 20:17, HFAC wrote: > Matt, > I am also having a problem with E-Prime recording {SHIFT}. See my post for > a more detailed explanation of my problem: > https://groups.google.com/forum/?fromgroups=#!topic/e-prime/wysgwiaYR_0 > > I would like to try the script that you mentioned but cannot seem to > locate it. If possible, will you post a response to me and attach it? I > would greatly appreciate it. > > On Wednesday, April 16, 2008 1:10:01 PM UTC-4, Matt wrote: >> >> Hi Joseph, >> >> I have added a sample experiment to the Files section of this group >> (TextString.es). This sample echoes subject responses and then "cleans >> up" the special characters that are used by parsing the string. You >> can look through the comments in the script to see how this parsing is >> done. The sample only handles a few cases (e.g., Shift, period, etc). >> However, you can modify the script to handle many different cases. >> >> Please let me know if you have any questions after looking at the >> sample. >> >> Sincerely, >> Matt Lenhart >> PST Technical Consultant >> http://pstnet.com > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/uvA3tqVcEa8J. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: resp_shift_check.es2 Type: application/octet-stream Size: 48310 bytes Desc: not available URL: From mcfarla9 at msu.edu Mon Apr 15 18:12:59 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 15 Apr 2013 14:12:59 -0400 Subject: Script for cleaning up participants' typed responses In-Reply-To: Message-ID: Google Groups removed support for uploaded files, so you cannot find Matt's program here anymore. He did, however, also post it to a thread at http://www.pstnet.com/forum/Topic2194-5-1.aspx . His example has not seemed to make it to the PST Samples section on the website yet. You may find yet another example program at STEP, http://step.psy.cmu.edu/scripts-plus/ , see the KeyCodeMap example there. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) /---- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST offers several instructional videos on their YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \---- At 4/14/2013 04:23 PM Sunday, Paul Groot wrote: >hi, > >You can get rid of explicit {SHIFT} responses in the response values >by setting an allowable mask that only includes the characters you >actually allow. For example, you might set it to the following to >allow alphabetic characters, the equal sign and the plus sign: >{ALPHA}{=}{+}{ENTER} > >If you use the enter-key as input-terminator, you also have to >include that one explicitly. > >So, that is the easy part. If you also would like to replace the >special {key} responses with the original literal (i.e. replace {+} >with just +), you also have to add some script after the input >screen (TextDisplay1 in this example): > >Dim t As String >Dim pos As Integer >Dim ii As Integer > >' Define a table with two columns: {key} and replacement >' The rows must include all literal {key}'s used in the input allowable mask >Const NSPECIAL%=3 >Dim special (1 To NSPECIAL, 1 To 2) As String >special(1,1) = "{+}" >special(1,2) = "+" >special(2,1) = "{=}" >special(2,2) = "=" >special(3,1) = "{ENTER}" >special(3,2) = "" > >t = UCase(TextDisplay1.RESP) 'convert input to upper case >For ii=1 To NSPECIAL > Dim key As String > key = special(ii,1) > > 'find special {key} strings > pos = InStr(t,key) > If pos<>0 Then > ' replace special {key}'s with their original character > t = Left(t,pos-1) & special(ii,2) & Mid(t,pos+Len(key)) > ii = ii-1 ' tricky cheat: retry this same special sequence again > End If >Next > >' show result in next text display object >TextDIsplay2.Text = TextDisplay1.RESP & ebCrLf & "is replaced by:" & >ebCrLf & t > >'overwrite the RESP attribute (note: disable default loging first) >c.SetAttrib TextDisplay1.Name & ebDot & ebLogNameRESP, t > > >Also find this example code in the attached script (requires EP 2.0.10.242). > >Best >Paul > > > > >On 12 April 2013 20:17, HFAC ><bgbellows at gmail.com> wrote: >Matt, >I am also having a problem with E-Prime recording {SHIFT}. See my >post for a more detailed explanation of my problem: >https://groups.google.com/forum/?fromgroups=#!topic/e-prime/wysgwiaYR_0 > >I would like to try the script that you mentioned but cannot seem to >locate it. If possible, will you post a response to me and attach >it? I would greatly appreciate it. > >On Wednesday, April 16, 2008 1:10:01 PM UTC-4, Matt wrote: >Hi Joseph, > >I have added a sample experiment to the Files section of this group >(TextString.es). This sample echoes subject responses and then "cleans >up" the special characters that are used by parsing the string. You >can look through the comments in the script to see how this parsing is >done. The sample only handles a few cases (e.g., Shift, period, etc). >However, you can modify the script to handle many different cases. > >Please let me know if you have any questions after looking at the >sample. > >Sincerely, >Matt Lenhart >PST Technical Consultant >http://pstnet.com -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From mcfarla9 at msu.edu Mon Apr 15 18:14:53 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 15 Apr 2013 14:14:53 -0400 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: Message-ID: If all your letter responses are upper-case, why not just use Caps Lock so that subjects do not have to press Shift? ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) /---- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST offers several instructional videos on their YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \---- At 4/12/2013 02:11 PM Friday, HFAC wrote: >Hello all, > >Thank you for your advice in advance. To introduce myself, I use >EPrime to develop my experiments because I have no experience coding >(a shame I know), so please keep that in mind when responding. So >far, I have only used the built in functions of EPrime. > >My Experiment: I have developed an experiment where participants see >a stimuli and participants are expected to answer using a series of >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The >participants have 2 minutes to come up with correct answer and they >may try as many answers as they would like until they find the >correct one. I have set the experiment up where if the participant >enters an answer and it is incorrect they cannot continue but if >they enter the correct response they will receive feedback that they >are correct and can continue to the next puzzle. > >My Problem: I cannot get Eprime to recognize the correct response >(for example: X=V+I) because when participants capitalize their >responses EPrime records {SHIFT}. I have tried making the correct >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable >because participants hit shift a variable number of times (when >making mistakes, etc.) so there is no way for me to predict the >number of shifts in their answer. > >Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From bwmooneyham at gmail.com Mon Apr 15 20:43:53 2013 From: bwmooneyham at gmail.com (Ben Mooneyham) Date: Mon, 15 Apr 2013 13:43:53 -0700 Subject: countdown clock and echo problem In-Reply-To: <2b4cbceb-b780-4828-9a3f-c7ead1f2c308@12g2000vba.googlegroups.com> Message-ID: As for your second issue (getting the echo to disappear afterwards), you can solve this by going to the Properties page for your Slide, going to the sync tab, and selecting "vertical blank" under "offset sync." That should fix it. - Ben Mooneyham On Wednesday, April 18, 2012 5:36:22 AM UTC-7, jotapan wrote: > > Hello, > > I have been trying to add a countdown clock to a slide that collects > and displays participants' responses. The idea is just to give the > participant a notion on how much time he has remaining to respond. At > the same time, I want the instructions to remain visible to the > participant as allow the participant to see his/her responses. > > I have tried to work around the example provided in the countdown > sample experiment available online, but I'm not being able to get it > to work. When I make appear right from the beginning by setting > lnCountAfterTime = lnStartTime + 0 it no longer displays the text I > want to be visible. I think this happens because it sets the slide > back to its "default" which is a blank slide. > > The other problem relates to the slide's echo: I'm not being able to > get it to disappear after the program moves on to the next slide. > > These are probably really simple issues to solve, but I'm really not > being able to do it. Any help is appreciated. > > Jotapan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/tX9G0U3xhksJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kmaayane at gmail.com Wed Apr 17 14:10:50 2013 From: kmaayane at gmail.com (maayan kedar) Date: Wed, 17 Apr 2013 07:10:50 -0700 Subject: Flickering '+' fixation Message-ID: Hello, I am having hard time to understand how I can create a slide which contains flickering '+' fixation. I looked up here and sow explanations about crating few items flickering on different time but am not got to create only one! I used the online help and tried this: Slide. Draw Sleep 200 Slide. Clear and so on, but no matter how much I repeated these draw and clear it always stop after 3 times! I also tried to create loop but it didn't go well /: Another problem is that I need only the fixation to flash and not other items, and to stop when the participant presses the keyboard for correct answer. I whold appreciate very much your help to explain how to put the fixation to flash with or without loop? Thank you very much in advance Maayan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/8QzHioM6ghAJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsmith.lap at gmail.com Wed Apr 17 20:53:20 2013 From: bsmith.lap at gmail.com (Benjamin) Date: Wed, 17 Apr 2013 13:53:20 -0700 Subject: Control Alt Shift In-Reply-To: <00cc01ce2c92$74bf6230$5e3e2690$@eu> Message-ID: I'm going to have to disagree with you there. Control alt backspace caused my program to get stuck in a loop. On Friday, March 29, 2013 11:31:16 AM UTC-4, Michiel Sovijärvi-Spapé wrote: > Hi, > > This is slightly unrelated, but as I myself keep forgetting it all the > time, I thought I’ll repeat it here: control-alt-backspace results in a > more “graceful” exit in E-Prime 2 pro ( > http://www.pstnet.com/support/kb.asp?TopicID=2634). > > Best, > > Michiel > > > > *From:* e-p... at googlegroups.com [mailto: > e-p... at googlegroups.com ] *On Behalf Of *Benjamin > *Sent:* 29. March 2013 15:21 > *To:* e-p... at googlegroups.com > *Subject:* Re: Control Alt Shift > > > > I believe I have solved the problem. Control Alt Shift will not work if > the keyboard is unchecked in the Devices tab of the experiment properties. > This was not the case in version 2.0.8.x, so converting some old code in > which I had disabled the keyboard caused the problem. Control escape works > regardless, but you still need to force quit E-Prime from the task manager. > > > On Thursday, March 28, 2013 12:25:48 PM UTC-4, Benjamin wrote: > > Is anyone else having trouble with Control Alt Shift in E-Prime 2.0.10.x > ? I find that it often does not work at all, so I use control escape, and > eventually I have to use Control Alt Delete and quit E-Prime entirely from > the Task Manager because it is unresponsive. > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+u... at googlegroups.com . > To post to this group, send email to e-p... at googlegroups.com > . > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/Xs9EaQEXOPUJ. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/libM5V9TcW4J. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Wed Apr 17 22:16:12 2013 From: pfc.groot at gmail.com (Paul Groot) Date: Thu, 18 Apr 2013 00:16:12 +0200 Subject: Flickering '+' fixation In-Reply-To: <197243e5-6a8b-42aa-bd14-7ce681a8f9a3@googlegroups.com> Message-ID: Hi, Normally I would advise to simply use another list-object for creating a repeating (flickering) slide object. But if timing is critical, and you would only like to redraw/clear a single subobject on the slide, you could go ahead with the for loop. However, keep in mind you have to sync with the refresh rate of the display if you update the screen contents (by using Display.WaitForVerticalBlank). When the loop should be terminated by a keyboard response, you should use the InputMaskManager.IsPending function and a while loop. The fixation object can be referenced as a subobject of the Slide state (Slide.States('...').Objects('...')) The EBasic manual contains examples for this... cheers Paul On 17 April 2013 16:10, maayan kedar wrote: > Hello,**** > > ** ** > > ** ** > > I am having hard time to understand how I can create a slide which > contains flickering '+' fixation.**** > > I looked up here and sow explanations about crating few items flickering > on different time but am not got to create only one!**** > > ** ** > > I used the online help and tried this:**** > > ** ** > > Slide. Draw**** > > ** ** > > Sleep 200**** > > ** ** > > Slide. Clear**** > > ** ** > > and so on, but no matter how much I repeated these draw and clear it > always stop after 3 times!**** > > ** ** > > I also tried to create loop but it didn't go well /:**** > > ** ** > > ** ** > > Another problem is that I need only the fixation to flash and not other > items, and to stop when the participant presses the keyboard for correct > answer.**** > > ** ** > > I whold appreciate very much your help to explain how to put the fixation > to flash with or without loop?**** > > ** ** > > Thank you very much in advance**** > > ** ** > > Maayan**** > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/8QzHioM6ghAJ. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sibelozer.ege at gmail.com Thu Apr 18 05:17:24 2013 From: sibelozer.ege at gmail.com (Sibel Ozer) Date: Thu, 18 Apr 2013 08:17:24 +0300 Subject: auditory stimulus presentation Message-ID: Hi all, I would like to ask a question not directly related to E-prime. In a study, we plan to present stimulus auditorily and we try to decide the gender of the narrator. For stimulus presentation, does it yield significant differences to use man or female voice or which one is better? thank you, best Sibel -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Mon Apr 22 13:46:09 2013 From: mspape at cognitology.eu (Cognitology) Date: Mon, 22 Apr 2013 16:46:09 +0300 Subject: Control Alt Shift In-Reply-To: <5e4a45a6-b553-4f75-8170-9aa663920db9@googlegroups.com> Message-ID: Hi, Graceful, by the PST choice of words, not mine J. They mean that it *should* save your data as an .edat (for which we have e-recovery anyway, but nevermind) and stop some ongoing processes. It worked here, last time I tried (but indeed, I keep forgetting), so I’d suggest filing it as a bug-report if it doesn’t work for you. Best, Michiel From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Benjamin Sent: 17. April 2013 23:53 To: e-prime at googlegroups.com Subject: Re: Control Alt Shift I'm going to have to disagree with you there. Control alt backspace caused my program to get stuck in a loop. On Friday, March 29, 2013 11:31:16 AM UTC-4, Michiel Sovijärvi-Spapé wrote: Hi, This is slightly unrelated, but as I myself keep forgetting it all the time, I thought I’ll repeat it here: control-alt-backspace results in a more “graceful” exit in E-Prime 2 pro (http://www.pstnet.com/support/kb.asp?TopicID=2634). Best, Michiel From: e-p... at googlegroups.com [mailto:e-p... at googlegroups.com ] On Behalf Of Benjamin Sent: 29. March 2013 15:21 To: e-p... at googlegroups.com Subject: Re: Control Alt Shift I believe I have solved the problem. Control Alt Shift will not work if the keyboard is unchecked in the Devices tab of the experiment properties. This was not the case in version 2.0.8.x, so converting some old code in which I had disabled the keyboard caused the problem. Control escape works regardless, but you still need to force quit E-Prime from the task manager. On Thursday, March 28, 2013 12:25:48 PM UTC-4, Benjamin wrote: Is anyone else having trouble with Control Alt Shift in E-Prime 2.0.10.x ? I find that it often does not work at all, so I use control escape, and eventually I have to use Control Alt Delete and quit E-Prime entirely from the Task Manager because it is unresponsive. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+u... at googlegroups.com . To post to this group, send email to e-p... at googlegroups.com . To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Xs9EaQEXOPUJ. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/libM5V9TcW4J. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kmaayane at gmail.com Mon Apr 22 16:30:54 2013 From: kmaayane at gmail.com (maayan kedar) Date: Mon, 22 Apr 2013 09:30:54 -0700 Subject: Flickering '+' fixation In-Reply-To: Message-ID: Thanks! Some how, I got into a problem with the subobject, got an error massage says thet I cant for example fix the duration of a subobject. Anyway I'll try this direction again Thanks again Maayan בתאריך יום חמישי, 18 באפריל 2013 01:16:12 UTC+3, מאת Paul Groot: > > Hi, > > Normally I would advise to simply use another list-object for creating a > repeating (flickering) slide object. But if timing is critical, and you > would only like to redraw/clear a single subobject on the slide, you could > go ahead with the for loop. However, keep in mind you have to sync with the > refresh rate of the display if you update the screen contents (by using > Display.WaitForVerticalBlank). When the loop should be terminated by a > keyboard response, you should use the InputMaskManager.IsPending > function and a while loop. The fixation object can be referenced as a > subobject of the Slide state (Slide.States('...').Objects('...')) The > EBasic manual contains examples for this... > > cheers > Paul > > > On 17 April 2013 16:10, maayan kedar >wrote: > >> Hello,**** >> >> ** ** >> >> ** ** >> >> I am having hard time to understand how I can create a slide which >> contains flickering '+' fixation.**** >> >> I looked up here and sow explanations about crating few items flickering >> on different time but am not got to create only one!**** >> >> ** ** >> >> I used the online help and tried this:**** >> >> ** ** >> >> Slide. Draw**** >> >> ** ** >> >> Sleep 200**** >> >> ** ** >> >> Slide. Clear**** >> >> ** ** >> >> and so on, but no matter how much I repeated these draw and clear it >> always stop after 3 times!**** >> >> ** ** >> >> I also tried to create loop but it didn't go well /:**** >> >> ** ** >> >> ** ** >> >> Another problem is that I need only the fixation to flash and not other >> items, and to stop when the participant presses the keyboard for correct >> answer.**** >> >> ** ** >> >> I whold appreciate very much your help to explain how to put the fixation >> to flash with or without loop?**** >> >> ** ** >> >> Thank you very much in advance**** >> >> ** ** >> >> Maayan**** >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+u... at googlegroups.com . >> To post to this group, send email to e-p... at googlegroups.com >> . >> To view this discussion on the web visit >> https://groups.google.com/d/msg/e-prime/-/8QzHioM6ghAJ. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/JTZiYyhJsXEJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Mon Apr 22 19:51:50 2013 From: pfc.groot at gmail.com (Paul Groot) Date: Mon, 22 Apr 2013 21:51:50 +0200 Subject: Flickering '+' fixation In-Reply-To: <209ac29d-39f1-4a20-961d-09350206bc9c@googlegroups.com> Message-ID: Duration is a property of the (parent) Slide object, not one of its subobjects... paul On 22 April 2013 18:30, maayan kedar wrote: > Thanks! > Some how, I got into a problem with the subobject, got an error massage > says thet I cant for example fix the duration of a subobject. > > Anyway I'll try this direction again > > Thanks again > Maayan > > בתאריך יום חמישי, 18 באפריל 2013 01:16:12 UTC+3, מאת Paul Groot: >> >> Hi, >> >> Normally I would advise to simply use another list-object for creating a >> repeating (flickering) slide object. But if timing is critical, and you >> would only like to redraw/clear a single subobject on the slide, you could >> go ahead with the for loop. However, keep in mind you have to sync with the >> refresh rate of the display if you update the screen contents (by using >> Display.WaitForVerticalBlank). When the loop should be terminated by a >> keyboard response, you should use the InputMaskManager.IsPending >> function and a while loop. The fixation object can be referenced as a >> subobject of the Slide state (Slide.States('...').Objects('**...')) The >> EBasic manual contains examples for this... >> >> cheers >> Paul >> >> >> On 17 April 2013 16:10, maayan kedar wrote: >> >>> Hello,**** >>> >>> ** ** >>> >>> ** ** >>> >>> I am having hard time to understand how I can create a slide which >>> contains flickering '+' fixation.**** >>> >>> I looked up here and sow explanations about crating few items flickering >>> on different time but am not got to create only one!**** >>> >>> ** ** >>> >>> I used the online help and tried this:**** >>> >>> ** ** >>> >>> Slide. Draw**** >>> >>> ** ** >>> >>> Sleep 200**** >>> >>> ** ** >>> >>> Slide. Clear**** >>> >>> ** ** >>> >>> and so on, but no matter how much I repeated these draw and clear it >>> always stop after 3 times!**** >>> >>> ** ** >>> >>> I also tried to create loop but it didn't go well /:**** >>> >>> ** ** >>> >>> ** ** >>> >>> Another problem is that I need only the fixation to flash and not other >>> items, and to stop when the participant presses the keyboard for correct >>> answer.**** >>> >>> ** ** >>> >>> I whold appreciate very much your help to explain how to put the >>> fixation to flash with or without loop?**** >>> >>> ** ** >>> >>> Thank you very much in advance**** >>> >>> ** ** >>> >>> Maayan**** >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+u...@**googlegroups.com. >>> To post to this group, send email to e-p... at googlegroups.com. >>> >>> To view this discussion on the web visit https://groups.google.com/d/** >>> msg/e-prime/-/8QzHioM6ghAJ >>> . >>> For more options, visit https://groups.google.com/**groups/opt_out >>> . >>> >>> >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/JTZiYyhJsXEJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From valerio.biscione at gmail.com Tue Apr 23 10:50:32 2013 From: valerio.biscione at gmail.com (Valerio Biscione) Date: Tue, 23 Apr 2013 03:50:32 -0700 Subject: Repeat incorrect trial at the end of the list, until correct Message-ID: Hi. How can I do an experiment in which the incorrect trial are repeated at the end of the trial list, until a correct response is given? I have looked for some similar topic but I have not found anything really similar. I suppose that I could either repeat the main list until all the trials are "correct" (but how would I know? When the software goes on the top of the list, all the Correct attribute are set to 0!) or I can dynamically create a new list until all of the last trials are correct. Do you have any suggestion? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Z8a678gGgzEJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From d.vinson at ucl.ac.uk Tue Apr 23 11:19:28 2013 From: d.vinson at ucl.ac.uk (David Vinson) Date: Tue, 23 Apr 2013 12:19:28 +0100 Subject: Repeat incorrect trial at the end of the list, until correct In-Reply-To: <0e3d102f-447f-4561-8758-ebab1ee2e55b@googlegroups.com> Message-ID: There is a sample experiment "Rerun Error Trials Until All Correct" that does what you are looking for: http://www.pstnet.com/support/samples.asp?Mode=View&SampleID=37 On 23/04/2013 11:50, Valerio Biscione wrote: > Hi. How can I do an experiment in which the incorrect trial are > repeated at the end of the trial list, until a correct response is given? > I have looked for some similar topic but I have not found anything > really similar. I suppose that I could either repeat the main list > until all the trials are "correct" (but how would I know? When the > software goes on the top of the list, all the Correct attribute are > set to 0!) or I can dynamically create a new list until all of the > last trials are correct. > > Do you have any suggestion? > -- > You received this message because you are subscribed to the Google > Groups "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/Z8a678gGgzEJ. > For more options, visit https://groups.google.com/groups/opt_out. > > -- David Vinson, Ph.D. ESRC Research Fellow Cognitive, Perceptual and Brain Sciences Research Department University College London 26 Bedford Way, London WC1H 0AP Tel +44 (0)20 7679 5311 (UCL internal ext. 25311) -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From valerio.biscione at gmail.com Tue Apr 23 14:09:16 2013 From: valerio.biscione at gmail.com (Valerio Biscione) Date: Tue, 23 Apr 2013 07:09:16 -0700 Subject: Repeat incorrect trial at the end of the list, until correct In-Reply-To: <51766E40.10408@ucl.ac.uk> Message-ID: THank you, the sample experiment does exactly what I need! On Tuesday, 23 April 2013 12:19:28 UTC+1, Vinson, David: UCL wrote: > > There is a sample experiment "Rerun Error Trials Until All Correct" that > does what you are looking for: > http://www.pstnet.com/support/samples.asp?Mode=View&SampleID=37 > > On 23/04/2013 11:50, Valerio Biscione wrote: > > Hi. How can I do an experiment in which the incorrect trial are > > repeated at the end of the trial list, until a correct response is > given? > > I have looked for some similar topic but I have not found anything > > really similar. I suppose that I could either repeat the main list > > until all the trials are "correct" (but how would I know? When the > > software goes on the top of the list, all the Correct attribute are > > set to 0!) or I can dynamically create a new list until all of the > > last trials are correct. > > > > Do you have any suggestion? > > -- > > You received this message because you are subscribed to the Google > > Groups "E-Prime" group. > > To unsubscribe from this group and stop receiving emails from it, send > > an email to e-prime+u... at googlegroups.com . > > To post to this group, send email to e-p... at googlegroups.com. > > > To view this discussion on the web visit > > https://groups.google.com/d/msg/e-prime/-/Z8a678gGgzEJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > -- > David Vinson, Ph.D. > ESRC Research Fellow > Cognitive, Perceptual and Brain Sciences Research Department > University College London > 26 Bedford Way, London WC1H 0AP > Tel +44 (0)20 7679 5311 (UCL internal ext. 25311) > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/2naSo4OYV0MJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgbellows at gmail.com Tue Apr 23 14:38:31 2013 From: bgbellows at gmail.com (HFAC) Date: Tue, 23 Apr 2013 07:38:31 -0700 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <516c43af.c8c5320a.7528.3d4fSMTPIN_ADDED_MISSING@gmr-mx.google.com> Message-ID: David, thanks for the response. I thought of this solution as well, but I cannot use caps lock because the + and = would not work properly as they are on the same key. On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: > > If all your letter responses are upper-case, why not just use Caps > Lock so that subjects do not have to press Shift? > > ----- > David McFarlane > E-Prime training > online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx > Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) > > /---- > Stock reminder: 1) I do not work for PST. 2) PST's trained staff > take 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, so make full use of > it. 3) In addition, PST offers several instructional videos on their > YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do > get an answer from PST staff, please extend the courtesy of posting > their reply back here for the sake of others. > \---- > > > At 4/12/2013 02:11 PM Friday, HFAC wrote: > >Hello all, > > > >Thank you for your advice in advance. To introduce myself, I use > >EPrime to develop my experiments because I have no experience coding > >(a shame I know), so please keep that in mind when responding. So > >far, I have only used the built in functions of EPrime. > > > >My Experiment: I have developed an experiment where participants see > >a stimuli and participants are expected to answer using a series of > >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The > >participants have 2 minutes to come up with correct answer and they > >may try as many answers as they would like until they find the > >correct one. I have set the experiment up where if the participant > >enters an answer and it is incorrect they cannot continue but if > >they enter the correct response they will receive feedback that they > >are correct and can continue to the next puzzle. > > > >My Problem: I cannot get Eprime to recognize the correct response > >(for example: X=V+I) because when participants capitalize their > >responses EPrime records {SHIFT}. I have tried making the correct > >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable > >because participants hit shift a variable number of times (when > >making mistakes, etc.) so there is no way for me to predict the > >number of shifts in their answer. > > > >Please let me know if you need additional information in order to help > me. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/75gKBeiiwCsJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hester.duffy at gmail.com Tue Apr 23 14:42:23 2013 From: hester.duffy at gmail.com (Hester Duffy) Date: Tue, 23 Apr 2013 10:42:23 -0400 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <02be4e40-a34c-41a4-8731-92ce72509836@googlegroups.com> Message-ID: Do the responses have to be capitals? Could you not ask them to use lower-case instead? Youll still have to figure out how to let them use both + and = without the shift key causing problems, but that might at least help? H On Tue, Apr 23, 2013 at 10:38 AM, HFAC wrote: > David, thanks for the response. I thought of this solution as well, but I > cannot use caps lock because the + and = would not work properly as they > are on the same key. > > > On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: >> >> If all your letter responses are upper-case, why not just use Caps >> Lock so that subjects do not have to press Shift? >> >> ----- >> David McFarlane >> E-Prime training >> online: http://psychology.msu.edu/**Workshops_Courses/eprime.aspx >> Twitter: @EPrimeMaster (https://twitter.com/**EPrimeMaster) >> >> >> /---- >> Stock reminder: 1) I do not work for PST. 2) PST's trained staff >> take 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, so make full use of >> it. 3) In addition, PST offers several instructional videos on their >> YouTube channel (http://www.youtube.com/user/**PSTNET). 4) If you do >> get an answer from PST staff, please extend the courtesy of posting >> their reply back here for the sake of others. >> \---- >> >> >> At 4/12/2013 02:11 PM Friday, HFAC wrote: >> >Hello all, >> > >> >Thank you for your advice in advance. To introduce myself, I use >> >EPrime to develop my experiments because I have no experience coding >> >(a shame I know), so please keep that in mind when responding. So >> >far, I have only used the built in functions of EPrime. >> > >> >My Experiment: I have developed an experiment where participants see >> >a stimuli and participants are expected to answer using a series of >> >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The >> >participants have 2 minutes to come up with correct answer and they >> >may try as many answers as they would like until they find the >> >correct one. I have set the experiment up where if the participant >> >enters an answer and it is incorrect they cannot continue but if >> >they enter the correct response they will receive feedback that they >> >are correct and can continue to the next puzzle. >> > >> >My Problem: I cannot get Eprime to recognize the correct response >> >(for example: X=V+I) because when participants capitalize their >> >responses EPrime records {SHIFT}. I have tried making the correct >> >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}**I. This method is not reliable >> >because participants hit shift a variable number of times (when >> >making mistakes, etc.) so there is no way for me to predict the >> >number of shifts in their answer. >> > >> >Please let me know if you need additional information in order to help >> me. >> >> -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/75gKBeiiwCsJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Postdoctoral Fellow Brain and Mind Institute The University of Western Ontario London, ON, N6A 5B7 Canada -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Apr 23 15:15:18 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 23 Apr 2013 11:15:18 -0400 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <02be4e40-a34c-41a4-8731-92ce72509836@googlegroups.com> Message-ID: I started to post the following... Ah, yes, that does pose a problem. In that case, you might rather use some inline code to strip out the extraneous {SHIFT} characters (and along the way convert everything to the same case, e.g., UCase$()), and then use If-Then to score the accuracy in code. For handling key-nomenclature characters, see the "KeyCodeMap" demo at http://step.psy.cmu.edu/scripts-plus/ . But then I thought this through further, especially considering your comment, "I use EPrime to develop my experiments because I have no experience coding ..., so please keep that in mind when responding." So I came up with a much better, coding-free solution. For Allowable, explicitly list all allowable characters, *without* {SHIFT}, e.g., "IVX{-}{+}{=}". Then for Correct use the encoded response, again without {SHIFT}, e.g., "X{=}V{+}I". If you use {ENTER} or whatever as a termination character, then you will also have to include that character for both Allowable and Correct. Once you do this, {SHIFT} will continue to work for shifting keyboard characters, but will *not* show up in RESP, and everything will work as you asked, at least it worked for me when I tried it just now. Good luck, let us know how it works out. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/23/2013 10:38 AM Tuesday, HFAC wrote: >David, thanks for the response. I thought of this solution as well, >but I cannot use caps lock because the + and = would not work >properly as they are on the same key. > >On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: >If all your letter responses are upper-case, why not just use Caps >Lock so that subjects do not have to press Shift? > >----- >David McFarlane >E-Prime training >online: >http://psychology.msu.edu/Workshops_Courses/eprime.aspx > >Twitter: @EPrimeMaster >(https://twitter.com/EPrimeMaster) > >/---- >Stock reminder: 1) I do not work for PST. 2) PST's trained staff >take 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, so make full use of >it. 3) In addition, PST offers several instructional videos on their >YouTube channel >(http://www.youtube.com/user/PSTNET >). 4) If you do >get an answer from PST staff, please extend the courtesy of posting >their reply back here for the sake of others. >\---- > > >At 4/12/2013 02:11 PM Friday, HFAC wrote: > >Hello all, > > > >Thank you for your advice in advance. To introduce myself, I use > >EPrime to develop my experiments because I have no experience coding > >(a shame I know), so please keep that in mind when responding. So > >far, I have only used the built in functions of EPrime. > > > >My Experiment: I have developed an experiment where participants see > >a stimuli and participants are expected to answer using a series of > >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The > >participants have 2 minutes to come up with correct answer and they > >may try as many answers as they would like until they find the > >correct one. I have set the experiment up where if the participant > >enters an answer and it is incorrect they cannot continue but if > >they enter the correct response they will receive feedback that they > >are correct and can continue to the next puzzle. > > > >My Problem: I cannot get Eprime to recognize the correct response > >(for example: X=V+I) because when participants capitalize their > >responses EPrime records {SHIFT}. I have tried making the correct > >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable > >because participants hit shift a variable number of times (when > >making mistakes, etc.) so there is no way for me to predict the > >number of shifts in their answer. > > > >Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From tamar.kolodny at gmail.com Wed Apr 24 05:33:21 2013 From: tamar.kolodny at gmail.com (Tamar) Date: Tue, 23 Apr 2013 22:33:21 -0700 Subject: Canvas.Copy is taking too long to complete Message-ID: I'm programming a visual experiment, and suffering from some timing issues. It seems that the line presenting the stimuli (canvas.copy) is considerably time consuming: 10-12 ms. I can't figure out the cause for this delay, and I would appreciate any help... Here is the relevant piece of code: ====== in an initializing inline script, at the begining of SessionProc: ====== Set MainCanvas = Display.Canvas MainCanvas.fillColor = CColor(background_color) MainCanvas.clear For i = 1 To NumStim Set StimCanvases(i) = Display.CreateCanvas 'define destination rect as center of screen destRects(i).Left = Display.XRes/2-stim_w/2 destRects(i).Top = Display.YRes/2-stim_h/2 destRects(i).Right = Display.XRes/2+stim_w/2 destRects(i).Bottom = Display.YRes/2+stim_h/2 'define source rect as upper left corner srcRects(i).Left = 0 srcRects(i).Top = 0 srcRects(i).Right = stim_w srcRects(i).Bottom = stim_h 'Load the image file StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" Next i ====== in the inline of TrialProc: ======= Debug.Print "1:" & clock.read StartTrialTime = clock.read n = c.GetAttrib("CanvasNum") c.SetAttrib "TrialStart", StartTrialTime display.WaitForVerticalBlank Debug.Print "4:" & clock.read StartStimTime = clock.read c.SetAttrib "StimStart", StartStimTime Debug.Print "5:" & clock.read mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) Debug.Print "6:" & clock.read I've tried a few things: - to create variables taking the values of StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, so the mainCanvas.copy line would not need to approach the arrays. - to present other simple canvases instead of my real stimuli (just a fixation, for example. or an empty canvas) - to draw something on the mainCanvas rather than copy a new canvas to it (e.g. mainCanvas.Circle). All of these takes 10-12 ms! (as calculated by subtracting time5 from time6). The only way I managed to get rid of the delay was to erase the entire row... Am I missing something here?... Thanks, Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/y5hiddEu-6oJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Wed Apr 24 07:51:25 2013 From: mspape at cognitology.eu (Cognitology) Date: Wed, 24 Apr 2013 10:51:25 +0300 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <5e3542a2-238c-49ad-8b6c-b11f1c7cc0da@googlegroups.com> Message-ID: Hi, A quick look, but I think that you pretty much nailed it: it can take quite long to do any canvas operation. Given that your screen refresh rate presumably isn’t more than 100 Hz (and in any ways, your foveal vision isn’t), I don’t see the problem? Indeed, if you were to draw many things to the main canvas, one after the other, then indeed, it gets to be a problem, but as long as the only operation is copying a “preloaded” canvas to the shown one, it doesn’t matter all that much. Notice, given that you’re not using E-Prime’s stimdisplays, it’s not clear at what time the stimulus is actually displayed – only when it’s done sending the command. I think it’s generally better for critical timing aspects of your experiment to avoid canvas as much as possible. Personally, I think “critical timing” is when it concerns a subliminal vs barely supraliminal prime or some such, for other types of stimuli the 10 ms of (constant, therefore presumably stimulus independent) delay is of trivial concern. Just testing some of it myself, and I get values ranging between 15 and 17 – which is funny, given that my refresh rate is indeed 60, so it seems a bit like there’s some sort of display.waitforverticalblank built into canvas.copy. Curiously, this: For j = 1 To 100 DrawFixation ‘this is just a custom function drawing a line to cnvsnext cnvs.copy cnvsnext display.waitforverticalblank debug.print clock.read - clocktime clocktime = clock.read Next j Gives me latencies equal to refresh rates (+- 1 ms). Whereas: For j = 1 To 100 DrawFixation ‘this is just a custom function drawing a line to cnvsnext display.waitforverticalblank cnvs.copy cnvsnext debug.print clock.read - clocktime clocktime = clock.read Next j Gives me latencies equal to 2xrefresh rates. Somebody with young eyes should tell us if the first one doesn’t have cutting-off errors, otherwise I’d suggest there might be some sort of waitforverticalblank built into canvas.copy. Best, Michiel Sovijärvi-Spapé Helsinki Institute for Information Technology Aalto & University of Helsinki Finland BTW: notice that using debug.print also incurs a delay (last measured at 0.7 ms). From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Tamar Sent: 24. April 2013 08:33 To: e-prime at googlegroups.com Subject: Canvas.Copy is taking too long to complete I'm programming a visual experiment, and suffering from some timing issues. It seems that the line presenting the stimuli (canvas.copy) is considerably time consuming: 10-12 ms. I can't figure out the cause for this delay, and I would appreciate any help... Here is the relevant piece of code: ====== in an initializing inline script, at the begining of SessionProc: ====== Set MainCanvas = Display.Canvas MainCanvas.fillColor = CColor(background_color) MainCanvas.clear For i = 1 To NumStim Set StimCanvases(i) = Display.CreateCanvas 'define destination rect as center of screen destRects(i).Left = Display.XRes/2-stim_w/2 destRects(i).Top = Display.YRes/2-stim_h/2 destRects(i).Right = Display.XRes/2+stim_w/2 destRects(i).Bottom = Display.YRes/2+stim_h/2 'define source rect as upper left corner srcRects(i).Left = 0 srcRects(i).Top = 0 srcRects(i).Right = stim_w srcRects(i).Bottom = stim_h 'Load the image file StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" Next i ====== in the inline of TrialProc: ======= Debug.Print "1:" & clock.read StartTrialTime = clock.read n = c.GetAttrib("CanvasNum") c.SetAttrib "TrialStart", StartTrialTime display.WaitForVerticalBlank Debug.Print "4:" & clock.read StartStimTime = clock.read c.SetAttrib "StimStart", StartStimTime Debug.Print "5:" & clock.read mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) Debug.Print "6:" & clock.read I've tried a few things: - to create variables taking the values of StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, so the mainCanvas.copy line would not need to approach the arrays. - to present other simple canvases instead of my real stimuli (just a fixation, for example. or an empty canvas) - to draw something on the mainCanvas rather than copy a new canvas to it (e.g. mainCanvas.Circle). All of these takes 10-12 ms! (as calculated by subtracting time5 from time6). The only way I managed to get rid of the delay was to erase the entire row... Am I missing something here?... Thanks, Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/y5hiddEu-6oJ. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Wed Apr 24 08:17:46 2013 From: mspape at cognitology.eu (Cognitology) Date: Wed, 24 Apr 2013 11:17:46 +0300 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <5176a5ac.5006320a.6eb7.4e9eSMTPIN_ADDED_MISSING@gmr-mx.google.com> Message-ID: Hi, Reading the experiment info, I was wondering: if you're actually looking for the experiment of the Knoblich / Öllinger et al., group on insight problem solving with matchsticks, I still have a flash version of that experiment, and willing to share the code, should that be useful. It's quite pretty, if I may say so myself, but in Dutch (that'd be about 10 minutes work to translate): http://www.hiit.fi/u/sovspape/pubs/insight.php . People on this list and elsewhere are welcome to test it for themselves, it takes about 10 minutes and the idea is that you "mentally" move a matchstick to correct an equation, and then fill this one in instead. I.e. I + II = I is wrong, so you move the second I to the end, and get I + I = II. ...Once upon a time, I actually ran this experiment analog style: it takes a few dozens of subjects, a box of matchsticks and a stopwatch. Ah, those were the days! Best, Michiel -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 23. April 2013 18:15 To: e-prime at googlegroups.com Subject: Re: Response accuracy unreliable because {SHIFT} logged as response I started to post the following... Ah, yes, that does pose a problem. In that case, you might rather use some inline code to strip out the extraneous {SHIFT} characters (and along the way convert everything to the same case, e.g., UCase$()), and then use If-Then to score the accuracy in code. For handling key-nomenclature characters, see the "KeyCodeMap" demo at http://step.psy.cmu.edu/scripts-plus/ . But then I thought this through further, especially considering your comment, "I use EPrime to develop my experiments because I have no experience coding ..., so please keep that in mind when responding." So I came up with a much better, coding-free solution. For Allowable, explicitly list all allowable characters, *without* {SHIFT}, e.g., "IVX{-}{+}{=}". Then for Correct use the encoded response, again without {SHIFT}, e.g., "X{=}V{+}I". If you use {ENTER} or whatever as a termination character, then you will also have to include that character for both Allowable and Correct. Once you do this, {SHIFT} will continue to work for shifting keyboard characters, but will *not* show up in RESP, and everything will work as you asked, at least it worked for me when I tried it just now. Good luck, let us know how it works out. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/23/2013 10:38 AM Tuesday, HFAC wrote: >David, thanks for the response. I thought of this solution as well, >but I cannot use caps lock because the + and = would not work >properly as they are on the same key. > >On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: >If all your letter responses are upper-case, why not just use Caps >Lock so that subjects do not have to press Shift? > >----- >David McFarlane >E-Prime training >online: >http://psychology. msu.edu/Workshops_Courses/eprime.aspx > >Twitter: @EPrimeMaster >(https://twitter.com/EPrimeMaster) > >/---- >Stock reminder: 1) I do not work for PST. 2) PST's trained staff >take any and all questions at >http://support.pstne t.com/e%2Dprime/support/login.asp >, and they >strive to respond to all requests in 24-48 hours, so make full use of >it. 3) In addition, PST offers several instructional videos on their >YouTube channel >(http://www.youtube.com/user/PSTNET >). 4) If you do >get an answer from PST staff, please extend the courtesy of posting >their reply back here for the sake of others. >\---- > > >At 4/12/2013 02:11 PM Friday, HFAC wrote: > >Hello all, > > > >Thank you for your advice in advance. To introduce myself, I use > >EPrime to develop my experiments because I have no experience coding > >(a shame I know), so please keep that in mind when responding. So > >far, I have only used the built in functions of EPrime. > > > >My Experiment: I have developed an experiment where participants see > >a stimuli and participants are expected to answer using a series of > >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The > >participants have 2 minutes to come up with correct answer and they > >may try as many answers as they would like until they find the > >correct one. I have set the experiment up where if the participant > >enters an answer and it is incorrect they cannot continue but if > >they enter the correct response they will receive feedback that they > >are correct and can continue to the next puzzle. > > > >My Problem: I cannot get Eprime to recognize the correct response > >(for example: X=V+I) because when participants capitalize their > >responses EPrime records {SHIFT}. I have tried making the correct > >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable > >because participants hit shift a variable number of times (when > >making mistakes, etc.) so there is no way for me to predict the > >number of shifts in their answer. > > > >Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From mcfarla9 at msu.edu Wed Apr 24 13:44:46 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 24 Apr 2013 09:44:46 -0400 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <016701ce40c0$85acdcc0$91069640$@eu> Message-ID: Hmm. I explored this issue myself three years ago, using EP1 (still my favorite version for this type of exploration). I just dug up my test program and ran it again on my trusty old XP laptop at home after breakfast, and got times of 0.22 ms even for full screen copies, much as I remember from before (where full screen means 1024 x 768; and yes, that is less than a millisecond). To be sure, here is the core of my test code: t0 = clock.readmicrosec dcnvs.copy cnvs dt = clock.readmicrosec - t0 msgbox format$( dt/1000, "Standard" ) & " ms" where all variables are defined and initialized earlier as expected (dcnvs is set to Display.Canvas just for notational convenience). Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no evidence that .Copy includes an implicit Display.WaitForVerticalBlank, to the contrary, the code example there includes an explicit Display.WaitForVerticalBlank just before the cnvs.Copy. I would be *extremely* surprised if Canvas.Copy included a Display.WaitForVerticalBlank, as that would greatly compromise its utility (e.g., when wanting to Copy several segments to an offscreen Canvas before copying the complete result to Display.Canvas). So I do not know how to account for your results. Mind you, I did all my tests using good-old EP1 with 1024x768 display resolution. For all I know things changed with the latest EP version, or things get slower with larger display resolutions. What EP version do you use? What display resolution? Michiel, I am especially puzzled by your results. Both of your tests measure the total time to perform a Canvas.Copy and Display.WaitForVerticalBlank, only in different orders. So you should get the same time for both tests, regardless of whether Canvas.Copy includes its own Display.WaitForVerticalBlank. What am I missing? Nevertheless, Michiel's advice still stands -- as long as your program does everything it needs to do within one screen refresh (and assuming that you *do* synchronize visual displays to the screen refresh, as you should), then that is good enough. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (twitter.com/EPrimeMaster) /----------- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST takes questions at their Facebook page (http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 ), and offers several instructional videos there and on their YouTube channel (http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, though). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \----------- Cognitology wrote: > Hi, > > A quick look, but I think that you pretty much nailed it: it can take > quite long to do any canvas operation. Given that your screen refresh > rate presumably isn’t more than 100 Hz (and in any ways, your foveal > vision isn’t), I don’t see the problem? Indeed, if you were to draw many > things to the main canvas, one after the other, then indeed, it gets to > be a problem, but as long as the only operation is copying a “preloaded” > canvas to the shown one, it doesn’t matter all that much. Notice, given > that you’re not using E-Prime’s stimdisplays, it’s not clear at what > time the stimulus is actually displayed – only when it’s done sending > the command. I think it’s generally better for critical timing aspects > of your experiment to avoid canvas as much as possible. Personally, I > think “critical timing” is when it concerns a subliminal vs barely > supraliminal prime or some such, for other types of stimuli the 10 ms of > (constant, therefore presumably stimulus independent) delay is of > trivial concern. > > > > Just testing some of it myself, and I get values ranging between 15 and > 17 – which is funny, given that my refresh rate is indeed 60, so it > seems a bit like there’s some sort of display.waitforverticalblank built > into canvas.copy. Curiously, this: > > For j = 1 To 100 > > DrawFixation ‘this is just a custom function drawing a line to > cnvsnext > > cnvs.copy cnvsnext > > display.waitforverticalblank > > debug.print clock.read - clocktime > > clocktime = clock.read > > Next j > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > Whereas: > > > > For j = 1 To 100 > > DrawFixation ‘this is just a custom function drawing a line to > cnvsnext > > display.waitforverticalblank > > cnvs.copy cnvsnext > > debug.print clock.read - clocktime > > clocktime = clock.read > > Next j > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > should tell us if the first one doesn’t have cutting-off errors, > otherwise I’d suggest there might be some sort of waitforverticalblank > built into canvas.copy. > > Best, > > > > Michiel Sovijärvi-Spapé > > > > Helsinki Institute for Information Technology > > Aalto & University of Helsinki > > Finland > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > 0.7 ms). > > > > > > *From:* e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] *On > Behalf Of *Tamar > *Sent:* 24. April 2013 08:33 > *To:* e-prime at googlegroups.com > *Subject:* Canvas.Copy is taking too long to complete > > > > I'm programming a visual experiment, and suffering from some timing > issues. It seems that the line presenting the stimuli (canvas.copy) is > considerably time consuming: 10-12 ms. I can't figure out the cause for > this delay, and I would appreciate any help... > > Here is the relevant piece of code: > > ====== in an initializing inline script, at the begining of SessionProc: > ====== > Set MainCanvas = Display.Canvas > MainCanvas.fillColor = CColor(background_color) > MainCanvas.clear > > For i = 1 To NumStim > Set StimCanvases(i) = Display.CreateCanvas > > 'define destination rect as center of screen > destRects(i).Left = Display.XRes/2-stim_w/2 > destRects(i).Top = Display.YRes/2-stim_h/2 > destRects(i).Right = Display.XRes/2+stim_w/2 > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > 'define source rect as upper left corner > srcRects(i).Left = 0 > srcRects(i).Top = 0 > srcRects(i).Right = stim_w > srcRects(i).Bottom = stim_h > > 'Load the image file > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > Next i > > ====== in the inline of TrialProc: ======= > Debug.Print "1:" & clock.read > StartTrialTime = clock.read > n = c.GetAttrib("CanvasNum") > c.SetAttrib "TrialStart", StartTrialTime > display.WaitForVerticalBlank > Debug.Print "4:" & clock.read > StartStimTime = clock.read > c.SetAttrib "StimStart", StartStimTime > Debug.Print "5:" & clock.read > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > Debug.Print "6:" & clock.read > > > I've tried a few things: > - to create variables taking the values of > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > so the mainCanvas.copy line would not need to approach the arrays. > - to present other simple canvases instead of my real stimuli (just a > fixation, for example. or an empty canvas) > - to draw something on the mainCanvas rather than copy a new canvas to > it (e.g. mainCanvas.Circle). > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > time6). The only way I managed to get rid of the delay was to erase the > entire row... > > Am I missing something here?... > > Thanks, > Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From tamar.kolodny at gmail.com Thu Apr 25 05:19:52 2013 From: tamar.kolodny at gmail.com (Tamar) Date: Wed, 24 Apr 2013 22:19:52 -0700 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <5177E1CE.1030205@msu.edu> Message-ID: Thank you both your replies! I am using E-prime 2.0.10, and a CRT iiyama Vision Master screen, with display resolution of 1024 x 768 and a refresh rate of 100 Hz. My operating system is windows XP. I'm troubled with this timing issue because my experiment includes EEG recording, thus the synchronization is terribly important. I need to send triggers via the parallel port exactly at the onset of each stimulus, or else my EEG signal might be smeared. Considering that the canvas.copy takes a refresh cycle to complete - I'm not sure what time ought to be considered the stimulus onset... Anyhow, David, I've tried running your code - and I get dt's of 13-14ms. Do you think that all the difference between your 0.22ms to my 13-14ms is due to E-prime1 vs. E-prime2 differences? That's shocking... I get the same results as Michiel for the loop codes, as puzzling as they are... Thanks again for your help, Tamar On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: > > Hmm. I explored this issue myself three years ago, using EP1 (still my > favorite version for this type of exploration). I just dug up my test > program and ran it again on my trusty old XP laptop at home after > breakfast, and got times of 0.22 ms even for full screen copies, much as > I remember from before (where full screen means 1024 x 768; and yes, > that is less than a millisecond). To be sure, here is the core of my > test code: > > t0 = clock.readmicrosec > dcnvs.copy cnvs > dt = clock.readmicrosec - t0 > msgbox format$( dt/1000, "Standard" ) & " ms" > > where all variables are defined and initialized earlier as expected > (dcnvs is set to Display.Canvas just for notational convenience). > > Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no > evidence that .Copy includes an implicit Display.WaitForVerticalBlank, > to the contrary, the code example there includes an explicit > Display.WaitForVerticalBlank just before the cnvs.Copy. I would be > *extremely* surprised if Canvas.Copy included a > Display.WaitForVerticalBlank, as that would greatly compromise its > utility (e.g., when wanting to Copy several segments to an offscreen > Canvas before copying the complete result to Display.Canvas). > > So I do not know how to account for your results. Mind you, I did all > my tests using good-old EP1 with 1024x768 display resolution. For all I > know things changed with the latest EP version, or things get slower > with larger display resolutions. What EP version do you use? What > display resolution? > > Michiel, I am especially puzzled by your results. Both of your tests > measure the total time to perform a Canvas.Copy and > Display.WaitForVerticalBlank, only in different orders. So you should > get the same time for both tests, regardless of whether Canvas.Copy > includes its own Display.WaitForVerticalBlank. What am I missing? > > Nevertheless, Michiel's advice still stands -- as long as your program > does everything it needs to do within one screen refresh (and assuming > that you *do* synchronize visual displays to the screen refresh, as you > should), then that is good enough. > > ----- > David McFarlane > E-Prime training online: > http://psychology.msu.edu/Workshops_Courses/eprime.aspx > Twitter: @EPrimeMaster (twitter.com/EPrimeMaster) > > /----------- > Stock reminder: 1) I do not work for PST. 2) PST's trained staff take > 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, so make full use of it. 3) > In addition, PST takes questions at their Facebook page > (http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 > ), and offers several instructional videos there and on their YouTube > channel (http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, > though). 4) If you do get an answer from PST staff, please extend the > courtesy of posting their reply back here for the sake of others. > \----------- > > > Cognitology wrote: > > Hi, > > > > A quick look, but I think that you pretty much nailed it: it can take > > quite long to do any canvas operation. Given that your screen refresh > > rate presumably isn�t more than 100 Hz (and in any ways, your foveal > > vision isn�t), I don�t see the problem? Indeed, if you were to draw > many > > things to the main canvas, one after the other, then indeed, it gets to > > be a problem, but as long as the only operation is copying a > �preloaded� > > canvas to the shown one, it doesn�t matter all that much. Notice, > given > > that you�re not using E-Prime�s stimdisplays, it�s not clear at > what > > time the stimulus is actually displayed � only when it�s done > sending > > the command. I think it�s generally better for critical timing aspects > > of your experiment to avoid canvas as much as possible. Personally, I > > think �critical timing� is when it concerns a subliminal vs barely > > supraliminal prime or some such, for other types of stimuli the 10 ms of > > (constant, therefore presumably stimulus independent) delay is of > > trivial concern. > > > > > > > > Just testing some of it myself, and I get values ranging between 15 and > > 17 � which is funny, given that my refresh rate is indeed 60, so it > > seems a bit like there�s some sort of display.waitforverticalblank > built > > into canvas.copy. Curiously, this: > > > > For j = 1 To 100 > > > > DrawFixation �this is just a custom function drawing a line to > > cnvsnext > > > > cnvs.copy cnvsnext > > > > display.waitforverticalblank > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > > > Whereas: > > > > > > > > For j = 1 To 100 > > > > DrawFixation �this is just a custom function drawing a line to > > cnvsnext > > > > display.waitforverticalblank > > > > cnvs.copy cnvsnext > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > > should tell us if the first one doesn�t have cutting-off errors, > > otherwise I�d suggest there might be some sort of waitforverticalblank > > built into canvas.copy. > > > > Best, > > > > > > > > Michiel Sovij�rvi-Spap� > > > > > > > > Helsinki Institute for Information Technology > > > > Aalto & University of Helsinki > > > > Finland > > > > > > > > > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > > 0.7 ms). > > > > > > > > > > > > *From:* e-p... at googlegroups.com [mailto: > e-p... at googlegroups.com ] *On > > Behalf Of *Tamar > > *Sent:* 24. April 2013 08:33 > > *To:* e-p... at googlegroups.com > > *Subject:* Canvas.Copy is taking too long to complete > > > > > > > > I'm programming a visual experiment, and suffering from some timing > > issues. It seems that the line presenting the stimuli (canvas.copy) is > > considerably time consuming: 10-12 ms. I can't figure out the cause for > > this delay, and I would appreciate any help... > > > > Here is the relevant piece of code: > > > > ====== in an initializing inline script, at the begining of SessionProc: > > ====== > > Set MainCanvas = Display.Canvas > > MainCanvas.fillColor = CColor(background_color) > > MainCanvas.clear > > > > For i = 1 To NumStim > > Set StimCanvases(i) = Display.CreateCanvas > > > > 'define destination rect as center of screen > > destRects(i).Left = Display.XRes/2-stim_w/2 > > destRects(i).Top = Display.YRes/2-stim_h/2 > > destRects(i).Right = Display.XRes/2+stim_w/2 > > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > > > 'define source rect as upper left corner > > srcRects(i).Left = 0 > > srcRects(i).Top = 0 > > srcRects(i).Right = stim_w > > srcRects(i).Bottom = stim_h > > > > 'Load the image file > > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > > > Next i > > > > ====== in the inline of TrialProc: ======= > > Debug.Print "1:" & clock.read > > StartTrialTime = clock.read > > n = c.GetAttrib("CanvasNum") > > c.SetAttrib "TrialStart", StartTrialTime > > display.WaitForVerticalBlank > > Debug.Print "4:" & clock.read > > StartStimTime = clock.read > > c.SetAttrib "StimStart", StartStimTime > > Debug.Print "5:" & clock.read > > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > > Debug.Print "6:" & clock.read > > > > > > I've tried a few things: > > - to create variables taking the values of > > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > > so the mainCanvas.copy line would not need to approach the arrays. > > - to present other simple canvases instead of my real stimuli (just a > > fixation, for example. or an empty canvas) > > - to draw something on the mainCanvas rather than copy a new canvas to > > it (e.g. mainCanvas.Circle). > > > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > > time6). The only way I managed to get rid of the delay was to erase the > > entire row... > > > > Am I missing something here?... > > > > Thanks, > > Tamar > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pquain at une.edu.au Thu Apr 25 05:29:06 2013 From: pquain at une.edu.au (Peter Quain) Date: Thu, 25 Apr 2013 15:29:06 +1000 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <7dad8c29-b108-43a1-aead-1f981d60ac83@googlegroups.com> Message-ID: I haven't tested any code examples, but have a lot of data showing canvas.copy in v.1.?.? takes under a ms, supporting David's observations. Perhaps something here is less instant in v2.?, and a bug has been identified? At 03:19 PM 25/04/2013, you wrote: >Thank you both your replies! > >I am using E-prime 2.0.10, and a CRT iiyama >Vision Master screen, with display resolution >of 1024 x 768 and a refresh rate of 100 Hz. My operating system is windows XP. > >I'm troubled with this timing issue because my >experiment includes EEG recording, thus the >synchronization is terribly important. I need to >send triggers via the parallel port exactly at the >onset of each stimulus, or else my EEG signal >might be smeared. Considering that the canvas.copy >takes a refresh cycle to complete - I'm not sure >what time ought to be considered the stimulus onset... > >Anyhow, David, I've tried running your code - >and I get dt's of 13-14ms. Do you think that all the difference >between your 0.22ms to my 13-14ms is due to >E-prime1 vs. E-prime2 differences? That's shocking... >I get the same results as Michiel for the loop >codes, as puzzling as they are... > >Thanks again for your help, >Tamar > > > > >On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >Hmm. I explored this issue myself three years ago, using EP1 (still my >favorite version for this type of exploration). I just dug up my test >program and ran it again on my trusty old XP laptop at home after >breakfast, and got times of 0.22 ms even for full screen copies, much as >I remember from before (where full screen means 1024 x 768; and yes, >that is less than a millisecond). To be sure, here is the core of my >test code: > > t0 = clock.readmicrosec > dcnvs.copy cnvs > dt = clock.readmicrosec - t0 > msgbox format$( dt/1000, "Standard" ) & " ms" > >where all variables are defined and initialized earlier as expected >(dcnvs is set to Display.Canvas just for notational convenience). > >Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >to the contrary, the code example there includes an explicit >Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >*extremely* surprised if Canvas.Copy included a >Display.WaitForVerticalBlank, as that would greatly compromise its >utility (e.g., when wanting to Copy several segments to an offscreen >Canvas before copying the complete result to Display.Canvas). > >So I do not know how to account for your results. Mind you, I did all >my tests using good-old EP1 with 1024x768 display resolution. For all I >know things changed with the latest EP version, or things get slower >with larger display resolutions. What EP version do you use? What >display resolution? > >Michiel, I am especially puzzled by your results. Both of your tests >measure the total time to perform a Canvas.Copy and >Display.WaitForVerticalBlank, only in different orders. So you should >get the same time for both tests, regardless of whether Canvas.Copy >includes its own Display.WaitForVerticalBlank. What am I missing? > >Nevertheless, Michiel's advice still stands -- as long as your program >does everything it needs to do within one screen refresh (and assuming >that you *do* synchronize visual displays to the screen refresh, as you >should), then that is good enough. > >----- >David McFarlane >E-Prime training online: >http://psychology.msu.edu/Workshops_Courses/eprime.aspx > >Twitter: @EPrimeMaster >(twitter.com/EPrimeMaster) > >/----------- >Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >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, so make full use of it. 3) >In addition, PST takes questions at their Facebook page >(http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 > >), and offers several instructional videos there and on their YouTube >channel >(http://www.youtube.com/user/PSTNET >) (no Twitter feed yet, >though). 4) If you do get an answer from PST staff, please extend the >courtesy of posting their reply back here for the sake of others. >\----------- > > >Cognitology wrote: > > Hi, > > > > A quick look, but I think that you pretty much nailed it: it can take > > quite long to do any canvas operation. Given that your screen refresh > > rate presumably isn�t more than 100 Hz (and in any ways, your foveal > > vision isn�t), I don�t see the problem? > Indeed, if you were to draw many > > things to the main canvas, one after the other, then indeed, it gets to > > be a problem, but as long as the only > operation is copying a �preloaded� > > canvas to the shown one, it doesn�t matter all that much. Notice, given > > that you�re not using E-Prime�s stimdisplays, it�s not clear at what > > time the stimulus is actually displayed � only when it�s done sending > > the command. I think it�s generally better for critical timing aspects > > of your experiment to avoid canvas as much as possible. Personally, I > > think �critical timing� is when it concerns a subliminal vs barely > > supraliminal prime or some such, for other types of stimuli the 10 ms of > > (constant, therefore presumably stimulus independent) delay is of > > trivial concern. > > > > > > > > Just testing some of it myself, and I get values ranging between 15 and > > 17 � which is funny, given that my refresh rate is indeed 60, so it > > seems a bit like there�s some sort of display.waitforverticalblank built > > into canvas.copy. Curiously, this: > > > > For j = 1 To 100 > > > > DrawFixation �this is just a custom function drawing a line to > > cnvsnext > > > > cnvs.copy cnvsnext > > > > display.waitforverticalblank > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > > > Whereas: > > > > > > > > For j = 1 To 100 > > > > DrawFixation �this is just a custom function drawing a line to > > cnvsnext > > > > display.waitforverticalblank > > > > cnvs.copy cnvsnext > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > > should tell us if the first one doesn�t have cutting-off errors, > > otherwise I�d suggest there might be some sort of waitforverticalblank > > built into canvas.copy. > > > > Best, > > > > > > > > Michiel Sovij�rvi-Spap� > > > > > > > > Helsinki Institute for Information Technology > > > > Aalto & University of Helsinki > > > > Finland > > > > > > > > > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > > 0.7 ms). > > > > > > > > > > > > *From:* e-p... at googlegroups.com [mailto:e-p... at googlegroups.com] *On > > Behalf Of *Tamar > > *Sent:* 24. April 2013 08:33 > > *To:* e-p... at googlegroups.com > > *Subject:* Canvas.Copy is taking too long to complete > > > > > > > > I'm programming a visual experiment, and suffering from some timing > > issues. It seems that the line presenting the stimuli (canvas.copy) is > > considerably time consuming: 10-12 ms. I can't figure out the cause for > > this delay, and I would appreciate any help... > > > > Here is the relevant piece of code: > > > > ====== in an initializing inline script, at the begining of SessionProc: > > ====== > > Set MainCanvas = Display.Canvas > > MainCanvas.fillColor = CColor(background_color) > > MainCanvas.clear > > > > For i = 1 To NumStim > > Set StimCanvases(i) = Display.CreateCanvas > > > > 'define destination rect as center of screen > > destRects(i).Left = Display.XRes/2-stim_w/2 > > destRects(i).Top = Display.YRes/2-stim_h/2 > > destRects(i).Right = Display.XRes/2+stim_w/2 > > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > > > 'define source rect as upper left corner > > srcRects(i).Left = 0 > > srcRects(i).Top = 0 > > srcRects(i).Right = stim_w > > srcRects(i).Bottom = stim_h > > > > 'Load the image file > > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > > > Next i > > > > ====== in the inline of TrialProc: ======= > > Debug.Print "1:" & clock.read > > StartTrialTime = clock.read > > n = c.GetAttrib("CanvasNum") > > c.SetAttrib "TrialStart", StartTrialTime > > display.WaitForVerticalBlank > > Debug.Print "4:" & clock.read > > StartStimTime = clock.read > > c.SetAttrib "StimStart", StartStimTime > > Debug.Print "5:" & clock.read > > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > > Debug.Print "6:" & clock.read > > > > > > I've tried a few things: > > - to create variables taking the values of > > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > > so the mainCanvas.copy line would not need to approach the arrays. > > - to present other simple canvases instead of my real stimuli (just a > > fixation, for example. or an empty canvas) > > - to draw something on the mainCanvas rather than copy a new canvas to > > it (e.g. mainCanvas.Circle). > > > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > > time6). The only way I managed to get rid of the delay was to erase the > > entire row... > > > > Am I missing something here?... > > > > Thanks, > > Tamar > >-- >You received this message because you are >subscribed to the Google Groups "E-Prime" group. >To unsubscribe from this group and stop >receiving emails from it, send an email to >e-prime+unsubscribe at googlegroups.com. >To post to this group, send email to e-prime at googlegroups.com. >To view this discussion on the web visit >https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. >For more options, visit >https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tamar.kolodny at gmail.com Thu Apr 25 07:08:52 2013 From: tamar.kolodny at gmail.com (Tamar) Date: Thu, 25 Apr 2013 00:08:52 -0700 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <201304250529.r3P5T8Kx023758@mail9.tpg.com.au> Message-ID: o.k., here is what I found, following your input: In any experiment I create in EP1 (in a neighboring lab...), canvas.copy takes under 1 ms. In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. If I take an experiment created in EP1 and convert it to EP2 - then canvas.copy time is under 1 ms... although nothing in the inline changed... How can that be? On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: > > > I haven't tested any code examples, but have a lot of data showing > canvas.copy in v.1.?.? takes under a ms, supporting David's observations. > Perhaps something here is less instant in v2.?, and a bug has been > identified? > > At 03:19 PM 25/04/2013, you wrote: > > Thank you both your replies! > > I am using E-prime 2.0.10, and a CRT iiyama Vision Master screen, with > display resolution > of 1024 x 768 and a refresh rate of 100 Hz. My operating system is windows > XP. > > I'm troubled with this timing issue because my experiment includes EEG > recording, thus the > synchronization is terribly important. I need to send triggers via the > parallel port exactly at the > onset of each stimulus, or else my EEG signal might be smeared. > Considering that the canvas.copy > takes a refresh cycle to complete - I'm not sure what time ought to be > considered the stimulus onset... > > Anyhow, David, I've tried running your code - and I get dt's of 13-14ms. > Do you think that all the difference > between your 0.22ms to my 13-14ms is due to E-prime1 vs. E-prime2 > differences? That's shocking... > I get the same results as Michiel for the loop codes, as puzzling as they > are... > > Thanks again for your help, > Tamar > > > > > On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: > Hmm. I explored this issue myself three years ago, using EP1 (still my > favorite version for this type of exploration). I just dug up my test > program and ran it again on my trusty old XP laptop at home after > breakfast, and got times of 0.22 ms even for full screen copies, much as > I remember from before (where full screen means 1024 x 768; and yes, > that is less than a millisecond). To be sure, here is the core of my > test code: > > t0 = clock.readmicrosec > dcnvs.copy cnvs > dt = clock.readmicrosec - t0 > msgbox format$( dt/1000, "Standard" ) & " ms" > > where all variables are defined and initialized earlier as expected > (dcnvs is set to Display.Canvas just for notational convenience). > > Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no > evidence that .Copy includes an implicit Display.WaitForVerticalBlank, > to the contrary, the code example there includes an explicit > Display.WaitForVerticalBlank just before the cnvs.Copy. I would be > *extremely* surprised if Canvas.Copy included a > Display.WaitForVerticalBlank, as that would greatly compromise its > utility (e.g., when wanting to Copy several segments to an offscreen > Canvas before copying the complete result to Display.Canvas). > > So I do not know how to account for your results. Mind you, I did all > my tests using good-old EP1 with 1024x768 display resolution. For all I > know things changed with the latest EP version, or things get slower > with larger display resolutions. What EP version do you use? What > display resolution? > > Michiel, I am especially puzzled by your results. Both of your tests > measure the total time to perform a Canvas.Copy and > Display.WaitForVerticalBlank, only in different orders. So you should > get the same time for both tests, regardless of whether Canvas.Copy > includes its own Display.WaitForVerticalBlank. What am I missing? > > Nevertheless, Michiel's advice still stands -- as long as your program > does everything it needs to do within one screen refresh (and assuming > that you *do* synchronize visual displays to the screen refresh, as you > should), then that is good enough. > > ----- > David McFarlane > E-Prime training online: > http://psychology.msu.edu/Workshops_Courses/eprime.aspx > Twitter: @EPrimeMaster (twitter.com/EPrimeMaster) > > /----------- > Stock reminder: 1) I do not work for PST. 2) PST's trained staff take > 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, so make full use of it. 3) > In addition, PST takes questions at their Facebook page > (http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 > ), and offers several instructional videos there and on their YouTube > channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, > though). 4) If you do get an answer from PST staff, please extend the > courtesy of posting their reply back here for the sake of others. > \----------- > > > Cognitology wrote: > > Hi, > > > > A quick look, but I think that you pretty much nailed it: it can take > > quite long to do any canvas operation. Given that your screen refresh > > rate presumably isn�t more than 100 Hz (and in any ways, your foveal > > vision isn�t), I don�t see the problem? Indeed, if you were to draw > many > > things to the main canvas, one after the other, then indeed, it gets to > > be a problem, but as long as the only operation is copying a > �preloaded� > > canvas to the shown one, it doesn�t matter all that much. Notice, > given > > that you�re not using E-Prime�s stimdisplays, it�s not clear at > what > > time the stimulus is actually displayed � only when it�s done > sending > > the command. I think it�s generally better for critical timing aspects > > of your experiment to avoid canvas as much as possible. Personally, I > > think �critical timing� is when it concerns a subliminal vs barely > > supraliminal prime or some such, for other types of stimuli the 10 ms of > > (constant, therefore presumably stimulus independent) delay is of > > trivial concern. > > > > > > > > Just testing some of it myself, and I get values ranging between 15 and > > 17 � which is funny, given that my refresh rate is indeed 60, so it > > seems a bit like there�s some sort of display.waitforverticalblank > built > > into canvas.copy. Curiously, this: > > > > For j = 1 To 100 > > > > DrawFixation �this is just a custom function drawing a line to > > cnvsnext > > > > cnvs.copy cnvsnext > > > > display.waitforverticalblank > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > > > Whereas: > > > > > > > > For j = 1 To 100 > > > > DrawFixation �this is just a custom function drawing a line to > > cnvsnext > > > > display.waitforverticalblank > > > > cnvs.copy cnvsnext > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > > should tell us if the first one doesn�t have cutting-off errors, > > otherwise I�d suggest there might be some sort of waitforverticalblank > > built into canvas.copy. > > > > Best, > > > > > > > > Michiel Sovij�rvi-Spap� > > > > > > > > Helsinki Institute for Information Technology > > > > Aalto & University of Helsinki > > > > Finland > > > > > > > > > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > > 0.7 ms). > > > > > > > > > > > > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On > > Behalf Of *Tamar > > *Sent:* 24. April 2013 08:33 > > *To:* e-p... at googlegroups.com > > *Subject:* Canvas.Copy is taking too long to complete > > > > > > > > I'm programming a visual experiment, and suffering from some timing > > issues. It seems that the line presenting the stimuli (canvas.copy) is > > considerably time consuming: 10-12 ms. I can't figure out the cause for > > this delay, and I would appreciate any help... > > > > Here is the relevant piece of code: > > > > ====== in an initializing inline script, at the begining of SessionProc: > > ====== > > Set MainCanvas = Display.Canvas > > MainCanvas.fillColor = CColor(background_color) > > MainCanvas.clear > > > > For i = 1 To NumStim > > Set StimCanvases(i) = Display.CreateCanvas > > > > 'define destination rect as center of screen > > destRects(i).Left = Display.XRes/2-stim_w/2 > > destRects(i).Top = Display.YRes/2-stim_h/2 > > destRects(i).Right = Display.XRes/2+stim_w/2 > > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > > > 'define source rect as upper left corner > > srcRects(i).Left = 0 > > srcRects(i).Top = 0 > > srcRects(i).Right = stim_w > > srcRects(i).Bottom = stim_h > > > > 'Load the image file > > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > > > Next i > > > > ====== in the inline of TrialProc: ======= > > Debug.Print "1:" & clock.read > > StartTrialTime = clock.read > > n = c.GetAttrib("CanvasNum") > > c.SetAttrib "TrialStart", StartTrialTime > > display.WaitForVerticalBlank > > Debug.Print "4:" & clock.read > > StartStimTime = clock.read > > c.SetAttrib "StimStart", StartStimTime > > Debug.Print "5:" & clock.read > > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > > Debug.Print "6:" & clock.read > > > > > > I've tried a few things: > > - to create variables taking the values of > > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > > so the mainCanvas.copy line would not need to approach the arrays. > > - to present other simple canvases instead of my real stimuli (just a > > fixation, for example. or an empty canvas) > > - to draw something on the mainCanvas rather than copy a new canvas to > > it (e.g. mainCanvas.Circle). > > > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > > time6). The only way I managed to get rid of the delay was to erase the > > entire row... > > > > Am I missing something here?... > > > > Thanks, > > Tamar > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+u... at googlegroups.com . > To post to this group, send email to e-p... at googlegroups.com > . > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. > For more options, visit https://groups.google.com/groups/opt_out. > > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Vt8fFfvwiJwJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pquain at une.edu.au Thu Apr 25 07:24:20 2013 From: pquain at une.edu.au (Peter Quain) Date: Thu, 25 Apr 2013 17:24:20 +1000 Subject: Canvas.Copy is taking too long to complete In-Reply-To: Message-ID: there must be some interfacing routines we can't see in the *.ebs files that differ between v1.? and v.2.?, and that e-prime calls when the scripts are run??? They both(?) must be allowable, and they must call upon different routines in e-prime that communicate with the hardware? At 05:08 PM 25/04/2013, you wrote: >o.k., here is what I found, following your input: > >In any experiment I create in EP1 (in a >neighboring lab...), canvas.copy takes under 1 ms. >In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. >If I take an experiment created in EP1 and >convert it to EP2 - then canvas.copy time is >under 1 ms... although nothing in the inline changed... >How can that be? > > > >On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: > >I haven't tested any code examples, but have a >lot of data showing canvas.copy in v.1.?.? takes >under a ms, supporting David's observations. >Perhaps something here is less instant in v2.?, and a bug has been identified? > >At 03:19 PM 25/04/2013, you wrote: >>Thank you both your replies! >> >>I am using E-prime 2.0.10, and a CRT iiyama >>Vision Master screen, with display resolution >>of 1024 x 768 and a refresh rate of 100 Hz. My >>operating system is windows XP. >> >>I'm troubled with this timing issue because my >>experiment includes EEG recording, thus the >>synchronization is terribly important. I need >>to send triggers via the parallel port exactly at the >>onset of each stimulus, or else my EEG signal >>might be smeared. Considering that the canvas.copy >>takes a refresh cycle to complete - I'm not >>sure what time ought to be considered the stimulus onset... >> >>Anyhow, David, I've tried running your code - >>and I get dt's of 13-14ms. Do you think that all the difference >>between your 0.22ms to my 13-14ms is due to >>E-prime1 vs. E-prime2 differences? That's shocking... >>I get the same results as Michiel for the loop >>codes, as puzzling as they are... >> >>Thanks again for your help, >>Tamar >> >> >> >> >>On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >>Hmm. I explored this issue myself three years ago, using EP1 (still my >>favorite version for this type of exploration). I just dug up my test >>program and ran it again on my trusty old XP laptop at home after >>breakfast, and got times of 0.22 ms even for full screen copies, much as >>I remember from before (where full screen means 1024 x 768; and yes, >>that is less than a millisecond). To be sure, here is the core of my >>test code: >> t0 = clock.readmicrosec >> dcnvs.copy cnvs >> dt = clock.readmicrosec - t0 >> msgbox format$( dt/1000, "Standard" ) & " ms" >>where all variables are defined and initialized earlier as expected >>(dcnvs is set to Display.Canvas just for notational convenience). >>Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >>evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >>to the contrary, the code example there includes an explicit >>Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >>*extremely* surprised if Canvas.Copy included a >>Display.WaitForVerticalBlank, as that would greatly compromise its >>utility (e.g., when wanting to Copy several segments to an offscreen >>Canvas before copying the complete result to Display.Canvas). >>So I do not know how to account for your results. Mind you, I did all >>my tests using good-old EP1 with 1024x768 display resolution. For all I >>know things changed with the latest EP version, or things get slower >>with larger display resolutions. What EP version do you use? What >>display resolution? >>Michiel, I am especially puzzled by your results. Both of your tests >>measure the total time to perform a Canvas.Copy and >>Display.WaitForVerticalBlank, only in different orders. So you should >>get the same time for both tests, regardless of whether Canvas.Copy >>includes its own Display.WaitForVerticalBlank. What am I missing? >>Nevertheless, Michiel's advice still stands -- as long as your program >>does everything it needs to do within one screen refresh (and assuming >>that you *do* synchronize visual displays to the screen refresh, as you >>should), then that is good enough. >>----- >>David McFarlane >>E-Prime training online: >>http://psychology.msu.edu/Workshops_Courses/eprime.aspx >> >>Twitter: @EPrimeMaster >>(twitter.com/EPrimeMaster) >>/----------- >>Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >>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, so make full use of it. 3) >>In addition, PST takes questions at their Facebook page >>( http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 >>), and offers several instructional videos there and on their YouTube >>channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, >>though). 4) If you do get an answer from PST staff, please extend the >>courtesy of posting their reply back here for the sake of others. >>\----------- >> >>Cognitology wrote: >> > Hi, >> > >> > A quick look, but I think that you pretty much nailed it: it can take >> > quite long to do any canvas operation. Given that your screen refresh >> > rate presumably isn�t more than 100 Hz (and in any ways, your foveal >> > vision isn�t), I don�t see the problem? >> Indeed, if you were to draw many >> > things to the main canvas, one after the other, then indeed, it gets to >> > be a problem, but as long as the only >> operation is copying a �preloaded� >> > canvas to the shown one, it doesn�t matter all that much. Notice, given >> > that you�re not using E-Prime�s >> stimdisplays, it�s not clear at what >> > time the stimulus is actually displayed � only when it�s done sending >> > the command. I think it�s generally better for critical timing aspects >> > of your experiment to avoid canvas as much as possible. Personally, I >> > think �critical timing� is when it concerns a subliminal vs barely >> > supraliminal prime or some such, for other types of stimuli the 10 ms of >> > (constant, therefore presumably stimulus independent) delay is of >> > trivial concern. >> > >> > >> > >> > Just testing some of it myself, and I get values ranging between 15 and >> > 17 � which is funny, given that my refresh rate is indeed 60, so it >> > seems a bit like there�s some sort of >> display.waitforverticalblank built >> > into canvas.copy. Curiously, this: >> > >> > For j = 1 To 100 >> > >> > DrawFixation �this is just a custom function drawing a line to >> > cnvsnext >> > >> > cnvs.copy cnvsnext >> > >> > display.waitforverticalblank >> > >> > debug.print clock.read - clocktime >> > >> > clocktime = clock.read >> > >> > Next j >> > >> > >> > >> > Gives me latencies equal to refresh rates (+- 1 ms). >> > >> > Whereas: >> > >> > >> > >> > For j = 1 To 100 >> > >> > DrawFixation �this is just a custom function drawing a line to >> > cnvsnext >> > >> > display.waitforverticalblank >> > >> > cnvs.copy cnvsnext >> > >> > debug.print clock.read - clocktime >> > >> > clocktime = clock.read >> > >> > Next j >> > >> > >> > >> > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes >> > should tell us if the first one doesn�t have cutting-off errors, >> > otherwise I�d suggest there might be some sort of waitforverticalblank >> > built into canvas.copy. >> > >> > Best, >> > >> > >> > >> > Michiel Sovij�rvi-Spap� >> > >> > >> > >> > Helsinki Institute for Information Technology >> > >> > Aalto & University of Helsinki >> > >> > Finland >> > >> > >> > >> > >> > >> > >> > >> > BTW: notice that using debug.print also incurs a delay (last measured at >> > 0.7 ms). >> > >> > >> > >> > >> > >> > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On >> > Behalf Of *Tamar >> > *Sent:* 24. April 2013 08:33 >> > *To:* e-p... at googlegroups.com >> > *Subject:* Canvas.Copy is taking too long to complete >> > >> > >> > >> > I'm programming a visual experiment, and suffering from some timing >> > issues. It seems that the line presenting the stimuli (canvas.copy) is >> > considerably time consuming: 10-12 ms. I can't figure out the cause for >> > this delay, and I would appreciate any help... >> > >> > Here is the relevant piece of code: >> > >> > ====== in an initializing inline script, at the begining of SessionProc: >> > ====== >> > Set MainCanvas = Display.Canvas >> > MainCanvas.fillColor = CColor(background_color) >> > MainCanvas.clear >> > >> > For i = 1 To NumStim >> > Set StimCanvases(i) = Display.CreateCanvas >> > >> > 'define destination rect as center of screen >> > destRects(i).Left = Display.XRes/2-stim_w/2 >> > destRects(i).Top = Display.YRes/2-stim_h/2 >> > destRects(i).Right = Display.XRes/2+stim_w/2 >> > destRects(i).Bottom = Display.YRes/2+stim_h/2 >> > >> > 'define source rect as upper left corner >> > srcRects(i).Left = 0 >> > srcRects(i).Top = 0 >> > srcRects(i).Right = stim_w >> > srcRects(i).Bottom = stim_h >> > >> > 'Load the image file >> > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" >> > >> > Next i >> > >> > ====== in the inline of TrialProc: ======= >> > Debug.Print "1:" & clock.read >> > StartTrialTime = clock.read >> > n = c.GetAttrib("CanvasNum") >> > c.SetAttrib "TrialStart", StartTrialTime >> > display.WaitForVerticalBlank >> > Debug.Print "4:" & clock.read >> > StartStimTime = clock.read >> > c.SetAttrib "StimStart", StartStimTime >> > Debug.Print "5:" & clock.read >> > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) >> > Debug.Print "6:" & clock.read >> > >> > >> > I've tried a few things: >> > - to create variables taking the values of >> > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, >> > so the mainCanvas.copy line would not need to approach the arrays. >> > - to present other simple canvases instead of my real stimuli (just a >> > fixation, for example. or an empty canvas) >> > - to draw something on the mainCanvas rather than copy a new canvas to >> > it (e.g. mainCanvas.Circle). >> > >> > All of these takes 10-12 ms! (as calculated by subtracting time5 from >> > time6). The only way I managed to get rid of the delay was to erase the >> > entire row... >> > >> > Am I missing something here?... >> > >> > Thanks, >> > Tamar >> >>-- >>You received this message because you are >>subscribed to the Google Groups "E-Prime" group. >>To unsubscribe from this group and stop >>receiving emails from it, send an email to e-prime+u... at googlegroups.com. >>To post to this group, send email to e-p... at googlegroups.com. >>To view this discussion on the web visit >>https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. >>For more options, visit >>https://groups.google.com/groups/opt_out. >> >> > >-- >You received this message because you are >subscribed to the Google Groups "E-Prime" group. >To unsubscribe from this group and stop >receiving emails from it, send an email to >e-prime+unsubscribe at googlegroups.com. >To post to this group, send email to e-prime at googlegroups.com. >To view this discussion on the web visit >https://groups.google.com/d/msg/e-prime/-/Vt8fFfvwiJwJ. >For more options, visit >https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Thu Apr 25 15:16:02 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 25 Apr 2013 11:16:02 -0400 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <201304250724.r3P7OMst022135@mail16.tpgi.com.au> Message-ID: Tamar, Very curious indeed, I wish I had the time to explore this further myself. You should definitely take this now to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp , and send them a link to this discussion (for your convenience, that link is https://groups.google.com/d/topic/e-prime/OX528cBioek ). And then please post back with the results. Thanks, ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/25/2013 03:24 AM Thursday, Peter Quain wrote: >there must be some interfacing routines we can't >see in the *.ebs files that differ between v1.? >and v.2.?, and that e-prime calls when the >scripts are run??? They both(?) must be >allowable, and they must call upon different >routines in e-prime that communicate with the hardware? > >At 05:08 PM 25/04/2013, you wrote: >>o.k., here is what I found, following your input: >> >>In any experiment I create in EP1 (in a >>neighboring lab...), canvas.copy takes under 1 ms. >>In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. >>If I take an experiment created in EP1 and >>convert it to EP2 - then canvas.copy time is >>under 1 ms... although nothing in the inline changed... >>How can that be? >> >> >> >>On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: >>I haven't tested any code examples, but have a >>lot of data showing canvas.copy in v.1.?.? >>takes under a ms, supporting David's >>observations. Perhaps something here is less >>instant in v2.?, and a bug has been identified? >>At 03:19 PM 25/04/2013, you wrote: >>>Thank you both your replies! >>>I am using E-prime 2.0.10, and a CRT iiyama >>>Vision Master screen, with display resolution >>>of 1024 x 768 and a refresh rate of 100 Hz. My >>>operating system is windows XP. >>>I'm troubled with this timing issue because my >>>experiment includes EEG recording, thus the >>>synchronization is terribly important. I need >>>to send triggers via the parallel port exactly at the >>>onset of each stimulus, or else my EEG signal >>>might be smeared. Considering that the canvas.copy >>>takes a refresh cycle to complete - I'm not >>>sure what time ought to be considered the stimulus onset... >>>Anyhow, David, I've tried running your code - >>>and I get dt's of 13-14ms. Do you think that all the difference >>>between your 0.22ms to my 13-14ms is due to >>>E-prime1 vs. E-prime2 differences? That's shocking... >>>I get the same results as Michiel for the loop >>>codes, as puzzling as they are... >>>Thanks again for your help, >>>Tamar >>> >>> >>> >>>On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >>>Hmm. I explored this issue myself three years ago, using EP1 (still my >>>favorite version for this type of exploration). I just dug up my test >>>program and ran it again on my trusty old XP laptop at home after >>>breakfast, and got times of 0.22 ms even for full screen copies, much as >>>I remember from before (where full screen means 1024 x 768; and yes, >>>that is less than a millisecond). To be sure, here is the core of my >>>test code: >>> t0 = clock.readmicrosec >>> dcnvs.copy cnvs >>> dt = clock.readmicrosec - t0 >>> msgbox format$( dt/1000, "Standard" ) & " ms" >>>where all variables are defined and initialized earlier as expected >>>(dcnvs is set to Display.Canvas just for notational convenience). >>>Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >>>evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >>>to the contrary, the code example there includes an explicit >>>Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >>>*extremely* surprised if Canvas.Copy included a >>>Display.WaitForVerticalBlank, as that would greatly compromise its >>>utility (e.g., when wanting to Copy several segments to an offscreen >>>Canvas before copying the complete result to Display.Canvas). >>>So I do not know how to account for your results. Mind you, I did all >>>my tests using good-old EP1 with 1024x768 display resolution. For all I >>>know things changed with the latest EP version, or things get slower >>>with larger display resolutions. What EP version do you use? What >>>display resolution? >>>Michiel, I am especially puzzled by your results. Both of your tests >>>measure the total time to perform a Canvas.Copy and >>>Display.WaitForVerticalBlank, only in different orders. So you should >>>get the same time for both tests, regardless of whether Canvas.Copy >>>includes its own Display.WaitForVerticalBlank. What am I missing? >>>Nevertheless, Michiel's advice still stands -- as long as your program >>>does everything it needs to do within one screen refresh (and assuming >>>that you *do* synchronize visual displays to the screen refresh, as you >>>should), then that is good enough. >>>----- >>>David McFarlane >>>E-Prime training online: >>>http://psychology.msu.edu/Workshops_Courses/eprime.aspx >>> >>>Twitter: @EPrimeMaster >>>(twitter.com/EPrimeMaster) >>>/----------- >>>Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >>>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, so make full use of it. 3) >>>In addition, PST takes questions at their Facebook page >>>( http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 >>>), and offers several instructional videos there and on their YouTube >>>channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, >>>though). 4) If you do get an answer from PST staff, please extend the >>>courtesy of posting their reply back here for the sake of others. >>>\----------- >>>Cognitology wrote: >>> > Hi, >>> > >>> > A quick look, but I think that you pretty much nailed it: it can take >>> > quite long to do any canvas operation. Given that your screen refresh >>> > rate presumably isn�t more than 100 Hz (and in any ways, your foveal >>> > vision isn�t), I don�t see the problem? >>> Indeed, if you were to draw many >>> > things to the main canvas, one after the other, then indeed, it gets to >>> > be a problem, but as long as the only >>> operation is copying a �preloaded� >>> > canvas to the shown one, it doesn�t >>> matter all that much. Notice, given >>> > that you�re not using E-Prime�s >>> stimdisplays, it�s not clear at what >>> > time the stimulus is actually displayed � >>> only when it�s done sending >>> > the command. I think it�s generally better for critical timing aspects >>> > of your experiment to avoid canvas as much as possible. Personally, I >>> > think �critical timing� is when it concerns a subliminal vs barely >>> > supraliminal prime or some such, for other types of stimuli the 10 ms of >>> > (constant, therefore presumably stimulus independent) delay is of >>> > trivial concern. >>> > >>> > >>> > >>> > Just testing some of it myself, and I get values ranging between 15 and >>> > 17 � which is funny, given that my refresh rate is indeed 60, so it >>> > seems a bit like there�s some sort of >>> display.waitforverticalblank built >>> > into canvas.copy. Curiously, this: >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation �this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > cnvs.copy cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to refresh rates (+- 1 ms). >>> > >>> > Whereas: >>> > >>> > >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation �this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > cnvs.copy cnvsnext >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes >>> > should tell us if the first one doesn�t have cutting-off errors, >>> > otherwise I�d suggest there might be some sort of waitforverticalblank >>> > built into canvas.copy. >>> > >>> > Best, >>> > >>> > >>> > >>> > Michiel Sovij�rvi-Spap� >>> > >>> > >>> > >>> > Helsinki Institute for Information Technology >>> > >>> > Aalto & University of Helsinki >>> > >>> > Finland >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > BTW: notice that using debug.print also incurs a delay (last measured at >>> > 0.7 ms). >>> > >>> > >>> > >>> > >>> > >>> > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On >>> > Behalf Of *Tamar >>> > *Sent:* 24. April 2013 08:33 >>> > *To:* e-p... at googlegroups.com >>> > *Subject:* Canvas.Copy is taking too long to complete >>> > >>> > >>> > >>> > I'm programming a visual experiment, and suffering from some timing >>> > issues. It seems that the line presenting the stimuli (canvas.copy) is >>> > considerably time consuming: 10-12 ms. I can't figure out the cause for >>> > this delay, and I would appreciate any help... >>> > >>> > Here is the relevant piece of code: >>> > >>> > ====== in an initializing inline script, at the begining of SessionProc: >>> > ====== >>> > Set MainCanvas = Display.Canvas >>> > MainCanvas.fillColor = CColor(background_color) >>> > MainCanvas.clear >>> > >>> > For i = 1 To NumStim >>> > Set StimCanvases(i) = Display.CreateCanvas >>> > >>> > 'define destination rect as center of screen >>> > destRects(i).Left = Display.XRes/2-stim_w/2 >>> > destRects(i).Top = Display.YRes/2-stim_h/2 >>> > destRects(i).Right = Display.XRes/2+stim_w/2 >>> > destRects(i).Bottom = Display.YRes/2+stim_h/2 >>> > >>> > 'define source rect as upper left corner >>> > srcRects(i).Left = 0 >>> > srcRects(i).Top = 0 >>> > srcRects(i).Right = stim_w >>> > srcRects(i).Bottom = stim_h >>> > >>> > 'Load the image file >>> > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" >>> > >>> > Next i >>> > >>> > ====== in the inline of TrialProc: ======= >>> > Debug.Print "1:" & clock.read >>> > StartTrialTime = clock.read >>> > n = c.GetAttrib("CanvasNum") >>> > c.SetAttrib "TrialStart", StartTrialTime >>> > display.WaitForVerticalBlank >>> > Debug.Print "4:" & clock.read >>> > StartStimTime = clock.read >>> > c.SetAttrib "StimStart", StartStimTime >>> > Debug.Print "5:" & clock.read >>> > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) >>> > Debug.Print "6:" & clock.read >>> > >>> > >>> > I've tried a few things: >>> > - to create variables taking the values of >>> > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, >>> > so the mainCanvas.copy line would not need to approach the arrays. >>> > - to present other simple canvases instead of my real stimuli (just a >>> > fixation, for example. or an empty canvas) >>> > - to draw something on the mainCanvas rather than copy a new canvas to >>> > it (e.g. mainCanvas.Circle). >>> > >>> > All of these takes 10-12 ms! (as calculated by subtracting time5 from >>> > time6). The only way I managed to get rid of the delay was to erase the >>> > entire row... >>> > >>> > Am I missing something here?... >>> > >>> > Thanks, >>> > Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From charlenebebko at gmail.com Fri Apr 26 01:35:37 2013 From: charlenebebko at gmail.com (CPB) Date: Thu, 25 Apr 2013 18:35:37 -0700 Subject: Any consultants for hire? Message-ID: Does anyone know of a consultant we can hire to assist in completing the synchronization of Tobii eyetracker and EEG using E-prime. We have the E-Prime program complete, except we are not able to figure out the programming necessary to put markers in the EEG reading. Actually, we aren't all that sure that the two are even 'talking to each other,' but we do have the hardware correctly configured. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/PybfGduy5wkJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Fri Apr 26 12:54:45 2013 From: mspape at cognitology.eu (Cognitology) Date: Fri, 26 Apr 2013 15:54:45 +0300 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <517948b7.c8c5320a.4bff.ffffd04fSMTPIN_ADDED_MISSING@gmr-mx.google.com> Message-ID: Hi, So, for anyone who'd like to test this. I use win7, 64bits (to do the coding anyway), EP2.0.10.242. This is the full code of the experiment and should work on any E-Prime with just a single inline bit in which you can paste the following: ------------------------ Dim cnvs As Canvas 'the active display Dim cnvsnext As Canvas 'the buffered canvas Dim j As Integer Dim clocktimes(1 To 100,1 To 4) As Long Set cnvs = Display.Canvas Set cnvsnext = Display.CreateCanvas() sleep 8000 'this is required for early experiment timing errors debug.print "*****WAIT BEFORE CNVSCOPY****" For j = 1 To 100 clocktimes(j,1) = clock.read cnvsnext.Line random(0,100), random(0,100), random(0,100), random(0,100) clocktimes(j,2) = clock.read - clocktimes(j,1) display.waitforverticalblank clocktimes(j,3) = clock.read - clocktimes(j,1) cnvs.copy cnvsnext clocktimes(j,4) = clock.read - clocktimes(j,1) Next j For j = 1 To 100 debug.print "Trial " &CStr(j) & ": " & CStr(clocktimes(j,1)) & " " & CStr(clocktimes(j,2)) & " " & CStr(clocktimes(j,3)) & " " & CStr(clocktimes(j,4)) Next j debug.print "Debug printing took " & CStr(clock.read - (clocktimes(100,1)+clocktimes(100,4))) For j = 1 To 100 clocktimes(j,1) = clock.read cnvsnext.Line random(100,200), random(0,100), random(100,200), random(0,100) clocktimes(j,2) = clock.read - clocktimes(j,1) cnvs.copy cnvsnext clocktimes(j,3) = clock.read - clocktimes(j,1) display.waitforverticalblank clocktimes(j,4) = clock.read - clocktimes(j,1) Next j debug.print "*****WAIT AFTER CNVSCOPY****" For j = 1 To 100 debug.print "Trial " &CStr(j) & ": " & CStr(clocktimes(j,1)) & " " & CStr(clocktimes(j,2)) & " " & CStr(clocktimes(j,3)) & " " & CStr(clocktimes(j,4)) Next j --------------------------- Apart from showing beautiful lines, it gives me the following info in the debug output: *****WAIT BEFORE CNVSCOPY**** Trial 1: 15854 1 7 24 Trial 2: 15878 2 17 33 Trial 3: 15912 1 16 33 Trial 4: 15945 1 16 33 Trial 5: 15978 2 17 33 Trial 6: 16012 1 16 33 Trial 7: 16045 1 16 33 Trial 8: 16078 1 17 33 Trial 9: 16111 2 17 34 Trial 10: 16145 1 16 33 Trial 11: 16178 1 17 33 Trial 12: 16211 2 17 34 Trial 13: 16245 1 16 33 Trial 14: 16278 1 17 33 Trial 15: 16311 2 17 34 Trial 16: 16345 1 16 33 Trial 17: 16378 2 17 33 Trial 18: 16411 2 17 34 Trial 19: 16445 1 16 33 Trial 20: 16478 1 17 33 Trial 21: 16511 2 17 34 Trial 22: 16545 1 16 33 Trial 23: 16578 1 17 33 Trial 24: 16611 2 17 34 Trial 25: 16645 1 16 33 Trial 26: 16678 2 17 33 Trial 27: 16711 2 17 34 Trial 28: 16745 1 16 33 Trial 29: 16778 1 17 33 Trial 30: 16811 2 17 34 Trial 31: 16845 1 16 33 Trial 32: 16878 1 17 33 Trial 33: 16911 2 17 34 Trial 34: 16945 1 16 33 Trial 35: 16978 1 17 33 Trial 36: 17011 2 17 34 Trial 37: 17045 1 16 33 Trial 38: 17078 2 17 33 Trial 39: 17111 2 17 34 Trial 40: 17145 1 16 33 Trial 41: 17178 1 17 33 Trial 42: 17211 2 17 34 Trial 43: 17245 1 16 33 Trial 44: 17278 1 16 33 Trial 45: 17311 2 17 34 Trial 46: 17345 1 16 33 Trial 47: 17378 1 16 33 Trial 48: 17411 2 17 33 Trial 49: 17445 1 16 33 Trial 50: 17478 1 16 33 Trial 51: 17511 2 17 34 Trial 52: 17545 1 16 33 Trial 53: 17578 2 17 33 Trial 54: 17611 2 17 34 Trial 55: 17645 1 16 33 Trial 56: 17678 1 16 33 Trial 57: 17711 2 17 33 Trial 58: 17745 1 16 33 Trial 59: 17778 1 16 33 Trial 60: 17812 1 16 32 Trial 61: 17845 1 16 33 Trial 62: 17878 1 16 33 Trial 63: 17911 2 17 33 Trial 64: 17944 2 17 34 Trial 65: 17978 1 16 33 Trial 66: 18011 2 17 33 Trial 67: 18044 2 17 34 Trial 68: 18078 1 16 33 Trial 69: 18111 1 17 33 Trial 70: 18144 2 17 34 Trial 71: 18178 1 16 33 Trial 72: 18211 1 17 33 Trial 73: 18244 2 17 34 Trial 74: 18278 1 16 33 Trial 75: 18311 2 17 33 Trial 76: 18344 2 17 34 Trial 77: 18378 1 16 33 Trial 78: 18411 2 17 33 Trial 79: 18444 2 17 34 Trial 80: 18478 1 16 33 Trial 81: 18511 2 17 33 Trial 82: 18544 2 17 34 Trial 83: 18578 1 16 33 Trial 84: 18611 2 17 33 Trial 85: 18644 2 17 34 Trial 86: 18678 1 16 33 Trial 87: 18711 1 17 33 Trial 88: 18744 2 17 34 Trial 89: 18778 1 16 33 Trial 90: 18811 1 17 33 Trial 91: 18844 2 17 34 Trial 92: 18878 1 16 33 Trial 93: 18911 1 17 33 Trial 94: 18944 2 17 34 Trial 95: 18978 1 16 33 Trial 96: 19011 1 17 33 Trial 97: 19044 2 17 34 Trial 98: 19078 1 16 33 Trial 99: 19111 2 17 33 Trial 100: 19144 2 17 33 Debug printing took 214 *****WAIT AFTER CNVSCOPY**** Trial 1: 19393 2 18 18 Trial 2: 19411 1 16 17 Trial 3: 19428 1 16 16 Trial 4: 19445 1 16 16 Trial 5: 19461 1 16 17 Trial 6: 19478 1 16 16 Trial 7: 19495 1 16 16 Trial 8: 19511 2 17 17 Trial 9: 19528 2 16 16 Trial 10: 19544 2 17 17 Trial 11: 19561 1 16 17 Trial 12: 19578 1 16 16 Trial 13: 19594 2 17 17 Trial 14: 19611 1 16 17 Trial 15: 19628 1 16 16 Trial 16: 19644 2 17 17 Trial 17: 19661 1 16 17 Trial 18: 19678 1 16 16 Trial 19: 19694 2 17 17 Trial 20: 19711 1 16 17 Trial 21: 19728 1 16 16 Trial 22: 19744 2 17 17 Trial 23: 19761 2 16 17 Trial 24: 19778 1 16 16 Trial 25: 19794 2 17 17 Trial 26: 19811 1 16 17 Trial 27: 19828 1 16 16 Trial 28: 19844 2 17 17 Trial 29: 19861 1 16 17 Trial 30: 19878 1 16 16 Trial 31: 19894 2 17 17 Trial 32: 19911 1 16 17 Trial 33: 19928 1 16 16 Trial 34: 19944 2 17 17 Trial 35: 19961 1 16 16 Trial 36: 19978 1 16 16 Trial 37: 19994 2 17 17 Trial 38: 20011 1 16 17 Trial 39: 20028 1 16 16 Trial 40: 20044 2 17 17 Trial 41: 20061 1 16 17 Trial 42: 20078 1 16 16 Trial 43: 20094 2 17 17 Trial 44: 20111 1 16 16 Trial 45: 20128 1 16 16 Trial 46: 20144 2 17 17 Trial 47: 20161 1 16 16 Trial 48: 20178 1 16 16 Trial 49: 20194 2 17 17 Trial 50: 20211 1 16 17 Trial 51: 20228 1 16 16 Trial 52: 20244 2 17 17 Trial 53: 20261 1 16 17 Trial 54: 20278 1 16 16 Trial 55: 20294 1 17 17 Trial 56: 20311 1 16 16 Trial 57: 20328 1 16 16 Trial 58: 20344 2 17 17 Trial 59: 20361 1 16 16 Trial 60: 20377 2 17 17 Trial 61: 20394 2 17 17 Trial 62: 20411 1 16 16 Trial 63: 20427 2 17 17 Trial 64: 20444 2 17 17 Trial 65: 20461 1 16 16 Trial 66: 20478 1 16 16 Trial 67: 20494 2 17 17 Trial 68: 20511 1 16 16 Trial 69: 20528 1 16 16 Trial 70: 20544 1 17 17 Trial 71: 20561 1 16 16 Trial 72: 20577 2 17 17 Trial 73: 20594 2 17 17 Trial 74: 20611 1 16 16 Trial 75: 20627 2 17 17 Trial 76: 20644 1 17 17 Trial 77: 20661 1 16 16 Trial 78: 20677 2 17 17 Trial 79: 20694 1 17 17 Trial 80: 20711 1 16 16 Trial 81: 20728 1 16 16 Trial 82: 20744 2 17 17 Trial 83: 20761 1 16 16 Trial 84: 20778 1 16 16 Trial 85: 20794 2 17 17 Trial 86: 20811 1 16 16 Trial 87: 20828 1 16 16 Trial 88: 20844 2 17 17 Trial 89: 20861 1 16 16 Trial 90: 20877 2 17 17 Trial 91: 20894 1 17 17 Trial 92: 20911 1 16 16 Trial 93: 20928 1 16 16 Trial 94: 20944 1 17 17 Trial 95: 20961 1 16 16 Trial 96: 20977 2 17 17 Trial 97: 20994 2 17 17 Trial 98: 21011 1 16 16 Trial 99: 21027 2 17 17 Trial 100: 21044 1 16 17 ---- Clearly then, something strange is going on. If anyone would like to verify this on their own PC/E-Prime, be my guest. Best, Michiel -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 25. April 2013 18:16 To: e-prime at googlegroups.com; e-prime at googlegroups.com Subject: Re: Canvas.Copy is taking too long to complete Tamar, Very curious indeed, I wish I had the time to explore this further myself. You should definitely take this now to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp , and send them a link to this discussion (for your convenience, that link is https://groups.google.com/d/topic/e-prime/OX528cBioek ). And then please post back with the results. Thanks, ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/25/2013 03:24 AM Thursday, Peter Quain wrote: >there must be some interfacing routines we can't >see in the *.ebs files that differ between v1.? >and v.2.?, and that e-prime calls when the >scripts are run??? They both(?) must be >allowable, and they must call upon different >routines in e-prime that communicate with the hardware? > >At 05:08 PM 25/04/2013, you wrote: >>o.k., here is what I found, following your input: >> >>In any experiment I create in EP1 (in a >>neighboring lab...), canvas.copy takes under 1 ms. >>In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. >>If I take an experiment created in EP1 and >>convert it to EP2 - then canvas.copy time is >>under 1 ms... although nothing in the inline changed... >>How can that be? >> >> >> >>On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: >>I haven't tested any code examples, but have a >>lot of data showing canvas.copy in v.1.?.? >>takes under a ms, supporting David's >>observations. Perhaps something here is less >>instant in v2.?, and a bug has been identified? >>At 03:19 PM 25/04/2013, you wrote: >>>Thank you both your replies! >>>I am using E-prime 2.0.10, and a CRT iiyama >>>Vision Master screen, with display resolution >>>of 1024 x 768 and a refresh rate of 100 Hz. My >>>operating system is windows XP. >>>I'm troubled with this timing issue because my >>>experiment includes EEG recording, thus the >>>synchronization is terribly important. I need >>>to send triggers via the parallel port exactly at the >>>onset of each stimulus, or else my EEG signal >>>might be smeared. Considering that the canvas.copy >>>takes a refresh cycle to complete - I'm not >>>sure what time ought to be considered the stimulus onset... >>>Anyhow, David, I've tried running your code - >>>and I get dt's of 13-14ms. Do you think that all the difference >>>between your 0.22ms to my 13-14ms is due to >>>E-prime1 vs. E-prime2 differences? That's shocking... >>>I get the same results as Michiel for the loop >>>codes, as puzzling as they are... >>>Thanks again for your help, >>>Tamar >>> >>> >>> >>>On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >>>Hmm. I explored this issue myself three years ago, using EP1 (still my >>>favorite version for this type of exploration). I just dug up my test >>>program and ran it again on my trusty old XP laptop at home after >>>breakfast, and got times of 0.22 ms even for full screen copies, much as >>>I remember from before (where full screen means 1024 x 768; and yes, >>>that is less than a millisecond). To be sure, here is the core of my >>>test code: >>> t0 = clock.readmicrosec >>> dcnvs.copy cnvs >>> dt = clock.readmicrosec - t0 >>> msgbox format$( dt/1000, "Standard" ) & " ms" >>>where all variables are defined and initialized earlier as expected >>>(dcnvs is set to Display.Canvas just for notational convenience). >>>Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >>>evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >>>to the contrary, the code example there includes an explicit >>>Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >>>*extremely* surprised if Canvas.Copy included a >>>Display.WaitForVerticalBlank, as that would greatly compromise its >>>utility (e.g., when wanting to Copy several segments to an offscreen >>>Canvas before copying the complete result to Display.Canvas). >>>So I do not know how to account for your results. Mind you, I did all >>>my tests using good-old EP1 with 1024x768 display resolution. For all I >>>know things changed with the latest EP version, or things get slower >>>with larger display resolutions. What EP version do you use? What >>>display resolution? >>>Michiel, I am especially puzzled by your results. Both of your tests >>>measure the total time to perform a Canvas.Copy and >>>Display.WaitForVerticalBlank, only in different orders. So you should >>>get the same time for both tests, regardless of whether Canvas.Copy >>>includes its own Display.WaitForVerticalBlank. What am I missing? >>>Nevertheless, Michiel's advice still stands -- as long as your program >>>does everything it needs to do within one screen refresh (and assuming >>>that you *do* synchronize visual displays to the screen refresh, as you >>>should), then that is good enough. >>>----- >>>David McFarlane >>>E-Prime training online: >>>http://psycholog y.msu.edu/Workshops_Courses/eprime.aspx >>> >>>Twitter: @EPrimeMaster >>>(twitter.com/EPrimeMaster) >>>/----------- >>>Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >>>any and all questions at >>>http://support.pst net.com/e%2Dprime/support/login.asp >>>, and they strive >>>to respond to all requests in 24-48 hours, so make full use of it. 3) >>>In addition, PST takes questions at their Facebook page >>>( http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 >>>), and offers several instructional videos there and on their YouTube >>>channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, >>>though). 4) If you do get an answer from PST staff, please extend the >>>courtesy of posting their reply back here for the sake of others. >>>\----------- >>>Cognitology wrote: >>> > Hi, >>> > >>> > A quick look, but I think that you pretty much nailed it: it can take >>> > quite long to do any canvas operation. Given that your screen refresh >>> > rate presumably isn�t more than 100 Hz (and in any ways, your foveal >>> > vision isn�t), I don�t see the problem? >>> Indeed, if you were to draw many >>> > things to the main canvas, one after the other, then indeed, it gets to >>> > be a problem, but as long as the only >>> operation is copying a �preloaded� >>> > canvas to the shown one, it doesn�t >>> matter all that much. Notice, given >>> > that you�re not using E-Prime�s >>> stimdisplays, it�s not clear at what >>> > time the stimulus is actually displayed � >>> only when it�s done sending >>> > the command. I think it�s generally better for critical timing aspects >>> > of your experiment to avoid canvas as much as possible. Personally, I >>> > think �critical timing� is when it concerns a subliminal vs barely >>> > supraliminal prime or some such, for other types of stimuli the 10 ms of >>> > (constant, therefore presumably stimulus independent) delay is of >>> > trivial concern. >>> > >>> > >>> > >>> > Just testing some of it myself, and I get values ranging between 15 and >>> > 17 � which is funny, given that my refresh rate is indeed 60, so it >>> > seems a bit like there�s some sort of >>> display.waitforverticalblank built >>> > into canvas.copy. Curiously, this: >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation �this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > cnvs.copy cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to refresh rates (+- 1 ms). >>> > >>> > Whereas: >>> > >>> > >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation �this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > cnvs.copy cnvsnext >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes >>> > should tell us if the first one doesn�t have cutting-off errors, >>> > otherwise I�d suggest there might be some sort of waitforverticalblank >>> > built into canvas.copy. >>> > >>> > Best, >>> > >>> > >>> > >>> > Michiel Sovij�rvi-Spap� >>> > >>> > >>> > >>> > Helsinki Institute for Information Technology >>> > >>> > Aalto & University of Helsinki >>> > >>> > Finland >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > BTW: notice that using debug.print also incurs a delay (last measured at >>> > 0.7 ms). >>> > >>> > >>> > >>> > >>> > >>> > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On >>> > Behalf Of *Tamar >>> > *Sent:* 24. April 2013 08:33 >>> > *To:* e-p... at googlegroups.com >>> > *Subject:* Canvas.Copy is taking too long to complete >>> > >>> > >>> > >>> > I'm programming a visual experiment, and suffering from some timing >>> > issues. It seems that the line presenting the stimuli (canvas.copy) is >>> > considerably time consuming: 10-12 ms. I can't figure out the cause for >>> > this delay, and I would appreciate any help... >>> > >>> > Here is the relevant piece of code: >>> > >>> > ====== in an initializing inline script, at the begining of SessionProc: >>> > ====== >>> > Set MainCanvas = Display.Canvas >>> > MainCanvas.fillColor = CColor(background_color) >>> > MainCanvas.clear >>> > >>> > For i = 1 To NumStim >>> > Set StimCanvases(i) = Display.CreateCanvas >>> > >>> > 'define destination rect as center of screen >>> > destRects(i).Left = Display.XRes/2-stim_w/2 >>> > destRects(i).Top = Display.YRes/2-stim_h/2 >>> > destRects(i).Right = Display.XRes/2+stim_w/2 >>> > destRects(i).Bottom = Display.YRes/2+stim_h/2 >>> > >>> > 'define source rect as upper left corner >>> > srcRects(i).Left = 0 >>> > srcRects(i).Top = 0 >>> > srcRects(i).Right = stim_w >>> > srcRects(i).Bottom = stim_h >>> > >>> > 'Load the image file >>> > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" >>> > >>> > Next i >>> > >>> > ====== in the inline of TrialProc: ======= >>> > Debug.Print "1:" & clock.read >>> > StartTrialTime = clock.read >>> > n = c.GetAttrib("CanvasNum") >>> > c.SetAttrib "TrialStart", StartTrialTime >>> > display.WaitForVerticalBlank >>> > Debug.Print "4:" & clock.read >>> > StartStimTime = clock.read >>> > c.SetAttrib "StimStart", StartStimTime >>> > Debug.Print "5:" & clock.read >>> > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) >>> > Debug.Print "6:" & clock.read >>> > >>> > >>> > I've tried a few things: >>> > - to create variables taking the values of >>> > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, >>> > so the mainCanvas.copy line would not need to approach the arrays. >>> > - to present other simple canvases instead of my real stimuli (just a >>> > fixation, for example. or an empty canvas) >>> > - to draw something on the mainCanvas rather than copy a new canvas to >>> > it (e.g. mainCanvas.Circle). >>> > >>> > All of these takes 10-12 ms! (as calculated by subtracting time5 from >>> > time6). The only way I managed to get rid of the delay was to erase the >>> > entire row... >>> > >>> > Am I missing something here?... >>> > >>> > Thanks, >>> > Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From gusunny1 at gmail.com Sat Apr 27 02:44:08 2013 From: gusunny1 at gmail.com (=?GB2312?B?vKrP6cjn0uI=?=) Date: Sat, 27 Apr 2013 10:44:08 +0800 Subject: E-prime crashes after reading text file In-Reply-To: Message-ID: sorry , I just checked email this morning. you can refer to this code : open "G:\\lisa.txt" for input as #1 linecount=-1 do while not EOF(1) linecount=linecount+1 input #1, ss loop close #1 redim array1(linecount) leth1=linecount+1 open "G:\\lisa.txt" for input as #1 for n=0 to linecount input #1,array1(n) next n close #1 redim array3(linecount/2) 2013/4/3 Marisa Crisostomo > How would I do that? > > > On Sun, Mar 31, 2013 at 11:38 PM, 吉祥如意 wrote: > >> I am not sure but I have learnt that when you call from a text file, you >> need first get the line number in the text, then loop again to get each >> line in the textfile. I don't know if this is the reason your eprime >> program get crashed. >> >> >> 2013/3/30 Marisa Crisostomo >> >>> I deleted all unreferenced objects and it is still too large. What is >>> interesting is that my program was being compiled until I started changing >>> fonts and layouts of the slides. >>> >>> Marisa >>> >>> >>> On Thu, Mar 28, 2013 at 3:48 PM, ben robinson wrote: >>> >>>> Do you have a lot of unused "Unreferenced E-Objects" in your file? Try >>>> deleting them, if so, and see if your script is no longer "too large to be >>>> compiled". >>>> >>>> Ben >>>> >>>> >>>> On Thu, Mar 28, 2013 at 3:01 PM, MarisaC wrote: >>>> >>>>> Hello, >>>>> >>>>> I am hoping someone could help me out. >>>>> My script is "too large to be compiled" so I am trying to have e-prime >>>>> call from a text file instead. >>>>> >>>>> Here is the code that I have been using: >>>>> >>>>> open "FinalTstQuestionTXT2.txt" for Input as #1 >>>>> For IndxArt=0 to Article_Count - 1 >>>>> For TxtCounter = 1 to FinalTstQ_Count >>>>> Line Input #1, textstring$ >>>>> 'Articles(IndxArt).FinalTst(TxtCounter).FinalQuestion = textstring$ >>>>> Next TxtCounter >>>>> Next IndxArt >>>>> close #1 >>>>> >>>>> The program compiles and the script is generated successfully, but >>>>> when I try to run it, e-prime crashes, and I get the windows message. >>>>> >>>>> I know that e-prime is reading from the file because when I set the >>>>> FinalTstQ_count number to more than the number of lines in the text file, I >>>>> get the "Input past end of file" error message (as expected). It seems that >>>>> the problem occurs when e-prime gets to the end of the text file. >>>>> >>>>> Any help would be greatly appreciated! >>>>> Thank you, >>>>> Marisa >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "E-Prime" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to e-prime+unsubscribe at googlegroups.com. >>>>> To post to this group, send email to e-prime at googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msg/e-prime/-/kCPKL2LGInMJ. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "E-Prime" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to e-prime+unsubscribe at googlegroups.com. >>>> To post to this group, send email to e-prime at googlegroups.com. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+unsubscribe at googlegroups.com. >>> To post to this group, send email to e-prime at googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+unsubscribe at googlegroups.com. >> To post to this group, send email to e-prime at googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From krishane.patel at gmail.com Sat Apr 27 06:59:12 2013 From: krishane.patel at gmail.com (Krishane Patel) Date: Fri, 26 Apr 2013 23:59:12 -0700 Subject: Multiple clicks on a single slide Message-ID: In my masters project I need participants to respond in rhythm to music by repeatedly tapping the mouse. I wanted to measure the times between clicks. I'm new to E-prime and don't really know how or if this is possible. Can someone please help with this. Thanks -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/JFLtNGB6xhIJ. For more options, visit https://groups.google.com/groups/opt_out. From krishane.patel at gmail.com Sat Apr 27 07:07:23 2013 From: krishane.patel at gmail.com (Krishane Patel) Date: Sat, 27 Apr 2013 00:07:23 -0700 Subject: Repeated key/mouse presses Message-ID: Hello I'm designing a perceptual experiment to test how accurate we are at listening and remembering music. Participants will respond after listening to music by tapping/clicking the mouse (whichever would be easier to run) to resemble what they believed the rhythm of the music was and its tempo. So I would need multiple responses and would need to record the time between presses. There is no "correct answer" as it's a judgment task, and wanted to compare beginner and experts judgements. I have set the max count to the desired limit, but E-prime ends up only recording 4/5 out of the 20 presses. Any ideas how to get around this? Thanks Kris -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/GWW_rIuAL14J. For more options, visit https://groups.google.com/groups/opt_out. From mspape at cognitology.eu Mon Apr 29 08:35:46 2013 From: mspape at cognitology.eu (Cognitology) Date: Mon, 29 Apr 2013 11:35:46 +0300 Subject: Repeated key/mouse presses In-Reply-To: <76a464b5-42b2-4940-bb2f-4f2f0ef21c0f@googlegroups.com> Message-ID: Hi, I have no idea why it fails to capture more than 4/5 responses, but in any case, the easier way to get around it is not to use multiple answers. You just set the audio running a time X, collect its onsettime, then start a list with a single wait object which will then collect the RTTime. Go to user script, declare DIM mylong as long Enter a single Inline thingy after your waitobject: c.SetAttrib "ITI", wait.RTTime - mylong mylong = wait.RTTime Voila. Can be done a bit more elegantly, so you don't save the first ITI (given that there's no previous one), but you could always filter these out later on. Best, Michiel -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Krishane Patel Sent: 27. April 2013 10:07 To: e-prime at googlegroups.com Subject: Repeated key/mouse presses Hello I'm designing a perceptual experiment to test how accurate we are at listening and remembering music. Participants will respond after listening to music by tapping/clicking the mouse (whichever would be easier to run) to resemble what they believed the rhythm of the music was and its tempo. So I would need multiple responses and would need to record the time between presses. There is no "correct answer" as it's a judgment task, and wanted to compare beginner and experts judgements. I have set the max count to the desired limit, but E-prime ends up only recording 4/5 out of the 20 presses. Any ideas how to get around this? Thanks Kris -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/GWW_rIuAL14J. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From flavia.cardini1 at gmail.com Mon Apr 29 10:42:33 2013 From: flavia.cardini1 at gmail.com (flavia) Date: Mon, 29 Apr 2013 03:42:33 -0700 Subject: calcualting average for individual conditions Message-ID: Hi, I am running an experiment where I would like to display a final feedback of participants' accuracy in doing a recognition task. In my trial list I have 2 conditions to be recognised and I would like to show the accuracy for each of them separately. For the moment I am able to show the total accuracy, but I don't know how to select the 2 conditions individually. this is the line I use to calcualte and display the total accuracy (in %): MsgBox "Your accuracy is " & CInt(accuracy.Mean * 100) & "%" any help? thanks -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/YunZQ0xPhFQJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.fw at gmail.com Tue Apr 30 09:53:55 2013 From: tobias.fw at gmail.com (Tobias) Date: Tue, 30 Apr 2013 02:53:55 -0700 Subject: sending trigger during stimulus presentation Message-ID: Dear all, I am using E-Prime 2.0 with EEG paradigms. I have the following problem: So far, I have used the "terminate" option for responses so that a display sets off as soon as a subject responds. I would then have some fake object that is only there to send a trigger to the EEG computer. The idea is, with the onset of that fake object, a trigger is sent and this trigger is thus locked to the offset of the previous object - that sets off when subjects respond. So far so good. This time, I would like to present a stimulus for exactly 500 ms, no matter how fast subjects react. Is it possible to send a trigger during presentation of a stimulus? It would be perfect if there was an "end option" like "(none, but execute inline...)" Any help is much appreciated. Tobias -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Wf-B3EqFcRQJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Apr 30 15:31:03 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 30 Apr 2013 11:31:03 -0400 Subject: sending trigger during stimulus presentation In-Reply-To: Message-ID: Tobias, Didn't we discuss this already at https://groups.google.com/d/topic/e-prime/z8PQMH1cf70 ? And now, if you have upgraded EP2.0.10.x, and under the right conditions, you might handle this much better with the new Task Events feature (see http://www.pstnet.com/support/kb.asp?TopicID=4803 , and the New Features Guide). ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/30/2013 05:53 AM Tuesday, Tobias wrote: >I am using E-Prime 2.0 with EEG paradigms. I have the following problem: > >So far, I have used the "terminate" option for responses so that a >display sets off as soon as a subject responds. I would then have >some fake object that is only there to send a trigger to the EEG computer. >The idea is, with the onset of that fake object, a trigger is sent >and this trigger is thus locked to the offset of the previous object >- that sets off when subjects respond. > >So far so good. This time, I would like to present a stimulus for >exactly 500 ms, no matter how fast subjects react. >Is it possible to send a trigger during presentation of a stimulus? >It would be perfect if there was an "end option" like "(none, but >execute inline...)" > >Any help is much appreciated. >Tobias -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From mcfarla9 at msu.edu Tue Apr 30 15:34:01 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 30 Apr 2013 11:34:01 -0400 Subject: Repeated key/mouse presses In-Reply-To: <002601ce44b4$8bba0870$a32e1950$@eu> Message-ID: Krins, I am a bit puzzled about how you get it to record more than 1 response, but not all the responses. Anyway, as another approach see the "Multiple Response Collection" example downloadable from the PST website. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) /---- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST offers several instructional videos on their YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \---- At 4/29/2013 04:35 AM Monday, Cognitology wrote: >Hi, >I have no idea why it fails to capture more than 4/5 responses, but in any >case, the easier way to get around it is not to use multiple answers. You >just set the audio running a time X, collect its onsettime, then start a >list with a single wait object which will then collect the RTTime. Go to >user script, declare >DIM mylong as long >Enter a single Inline thingy after your waitobject: >c.SetAttrib "ITI", wait.RTTime - mylong >mylong = wait.RTTime > >Voila. >Can be done a bit more elegantly, so you don't save the first ITI (given >that there's no previous one), but you could always filter these out later >on. >Best, >Michiel > >-----Original Message----- >From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf >Of Krishane Patel >Sent: 27. April 2013 10:07 >To: e-prime at googlegroups.com >Subject: Repeated key/mouse presses > >Hello > >I'm designing a perceptual experiment to test how accurate we are at >listening and remembering music. Participants will respond after listening >to music by tapping/clicking the mouse (whichever would be easier to run) to >resemble what they believed the rhythm of the music was and its tempo. > >So I would need multiple responses and would need to record the time between >presses. > >There is no "correct answer" as it's a judgment task, and wanted to compare >beginner and experts judgements. > >I have set the max count to the desired limit, but E-prime ends up only >recording 4/5 out of the 20 presses. > >Any ideas how to get around this? > >Thanks >Kris -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From gusunny1 at gmail.com Mon Apr 1 04:38:01 2013 From: gusunny1 at gmail.com (=?GB2312?B?vKrP6cjn0uI=?=) Date: Mon, 1 Apr 2013 12:38:01 +0800 Subject: E-prime crashes after reading text file In-Reply-To: Message-ID: I am not sure but I have learnt that when you call from a text file, you need first get the line number in the text, then loop again to get each line in the textfile. I don't know if this is the reason your eprime program get crashed. 2013/3/30 Marisa Crisostomo > I deleted all unreferenced objects and it is still too large. What is > interesting is that my program was being compiled until I started changing > fonts and layouts of the slides. > > Marisa > > > On Thu, Mar 28, 2013 at 3:48 PM, ben robinson wrote: > >> Do you have a lot of unused "Unreferenced E-Objects" in your file? Try >> deleting them, if so, and see if your script is no longer "too large to be >> compiled". >> >> Ben >> >> >> On Thu, Mar 28, 2013 at 3:01 PM, MarisaC wrote: >> >>> Hello, >>> >>> I am hoping someone could help me out. >>> My script is "too large to be compiled" so I am trying to have e-prime >>> call from a text file instead. >>> >>> Here is the code that I have been using: >>> >>> open "FinalTstQuestionTXT2.txt" for Input as #1 >>> For IndxArt=0 to Article_Count - 1 >>> For TxtCounter = 1 to FinalTstQ_Count >>> Line Input #1, textstring$ >>> 'Articles(IndxArt).FinalTst(TxtCounter).FinalQuestion = textstring$ >>> Next TxtCounter >>> Next IndxArt >>> close #1 >>> >>> The program compiles and the script is generated successfully, but when >>> I try to run it, e-prime crashes, and I get the windows message. >>> >>> I know that e-prime is reading from the file because when I set the >>> FinalTstQ_count number to more than the number of lines in the text file, I >>> get the "Input past end of file" error message (as expected). It seems that >>> the problem occurs when e-prime gets to the end of the text file. >>> >>> Any help would be greatly appreciated! >>> Thank you, >>> Marisa >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+unsubscribe at googlegroups.com. >>> To post to this group, send email to e-prime at googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msg/e-prime/-/kCPKL2LGInMJ. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+unsubscribe at googlegroups.com. >> To post to this group, send email to e-prime at googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From carne006 at gmail.com Mon Apr 1 15:29:47 2013 From: carne006 at gmail.com (Edward Carney) Date: Mon, 1 Apr 2013 08:29:47 -0700 Subject: Premature exit from list object Message-ID: I?ve run into a curious problem. Here?s the basic pseudo-code: SessionProc List runs ProcX ProcX Show slide object Play sound Inline ? collect mouse click and determine location Test on location and run either of: ErrorSlideObject.Run to manipulate an image object to place it on the correct location providing feedback CorrectSlideObject.Run to display text. GoodbyeTextDisplay The final TextDisplay object is intended to say ?thanks, goodbye.? Problem: This seems to lie in the list object?it finishes and immediately exits the script. No final "goodbye" text object shows up. I?ve done all kinds of things: a) create a new procedure to show the TextObject and made it last in the List object; b) add labels to jump to; c) terminate the Error/Correct Slide objects with ?none? or ?Jump? to label. What might be going on in the handoff relationship between the InLine objects and the List object to cause this? BTW, the Error/Correct slide objects are ?hidden? in Unreferenced E-Objects. Thanks, Edward Carney Research Assoc. University of Minnesota -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/i5jQdxbw-KsJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From axg34psu at gmail.com Tue Apr 2 15:42:45 2013 From: axg34psu at gmail.com (amanda gearhart) Date: Tue, 2 Apr 2013 08:42:45 -0700 Subject: Borders and setting changes Message-ID: We are currently running Eprime 2.0.8.74 on a Microsoft Windows 7 Ultimate SP1, Intel Core i3-2120 @ 3.3 GHz, 8 GB RAM, 64-bit. I have a script that has a white background with black letters. About halfway through the 10 runs we have the script starts to have a black frame. When exiting out with ctr/alt/shift the script it seems to fix itself with no adjustments made to the script and the issue resolves itself with no changes to the script what so ever. Has anyone encountered this? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/ZqDsRTSuTXYJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From me.crisostomo6 at gmail.com Tue Apr 2 17:34:42 2013 From: me.crisostomo6 at gmail.com (Marisa Crisostomo) Date: Tue, 2 Apr 2013 12:34:42 -0500 Subject: E-prime crashes after reading text file In-Reply-To: Message-ID: How would I do that? On Sun, Mar 31, 2013 at 11:38 PM, ???? wrote: > I am not sure but I have learnt that when you call from a text file, you > need first get the line number in the text, then loop again to get each > line in the textfile. I don't know if this is the reason your eprime > program get crashed. > > > 2013/3/30 Marisa Crisostomo > >> I deleted all unreferenced objects and it is still too large. What is >> interesting is that my program was being compiled until I started changing >> fonts and layouts of the slides. >> >> Marisa >> >> >> On Thu, Mar 28, 2013 at 3:48 PM, ben robinson wrote: >> >>> Do you have a lot of unused "Unreferenced E-Objects" in your file? Try >>> deleting them, if so, and see if your script is no longer "too large to be >>> compiled". >>> >>> Ben >>> >>> >>> On Thu, Mar 28, 2013 at 3:01 PM, MarisaC wrote: >>> >>>> Hello, >>>> >>>> I am hoping someone could help me out. >>>> My script is "too large to be compiled" so I am trying to have e-prime >>>> call from a text file instead. >>>> >>>> Here is the code that I have been using: >>>> >>>> open "FinalTstQuestionTXT2.txt" for Input as #1 >>>> For IndxArt=0 to Article_Count - 1 >>>> For TxtCounter = 1 to FinalTstQ_Count >>>> Line Input #1, textstring$ >>>> 'Articles(IndxArt).FinalTst(TxtCounter).FinalQuestion = textstring$ >>>> Next TxtCounter >>>> Next IndxArt >>>> close #1 >>>> >>>> The program compiles and the script is generated successfully, but when >>>> I try to run it, e-prime crashes, and I get the windows message. >>>> >>>> I know that e-prime is reading from the file because when I set the >>>> FinalTstQ_count number to more than the number of lines in the text file, I >>>> get the "Input past end of file" error message (as expected). It seems that >>>> the problem occurs when e-prime gets to the end of the text file. >>>> >>>> Any help would be greatly appreciated! >>>> Thank you, >>>> Marisa >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "E-Prime" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to e-prime+unsubscribe at googlegroups.com. >>>> To post to this group, send email to e-prime at googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msg/e-prime/-/kCPKL2LGInMJ. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+unsubscribe at googlegroups.com. >>> To post to this group, send email to e-prime at googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+unsubscribe at googlegroups.com. >> To post to this group, send email to e-prime at googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From carne006 at gmail.com Fri Apr 5 22:15:04 2013 From: carne006 at gmail.com (Edward Carney) Date: Fri, 5 Apr 2013 15:15:04 -0700 Subject: Premature exit from list object In-Reply-To: <3120e473-ad85-4589-9886-59b77941a741@googlegroups.com> Message-ID: Weird. I added a second list item called ExitStuff to run some TextDisplay to end up with, and that worked. But it only worked after I added a Wait object immediately after the TextDisplay. Otherwise, the text popped up and disappeared, no matter the duration. I give up. I'm chalking this up as a workaround for weirdness. Edward C. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/jzufBEakOakJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgbellows at gmail.com Fri Apr 12 18:11:33 2013 From: bgbellows at gmail.com (HFAC) Date: Fri, 12 Apr 2013 11:11:33 -0700 Subject: Response accuracy unreliable because {SHIFT} logged as response Message-ID: Hello all, Thank you for your advice in advance. To introduce myself, I use EPrime to develop my experiments because I have no experience coding (a shame I know), so please keep that in mind when responding. So far, I have only used the built in functions of EPrime. *My Experiment*: I have developed an experiment where participants see a stimuli and participants are expected to answer using a series of (capital) X, I, V, or -, +, and =. (For example: X=V+I) The participants have 2 minutes to come up with correct answer and they may try as many answers as they would like until they find the correct one. I have set the experiment up where if the participant enters an answer and it is incorrect they cannot continue but if they enter the correct response they will receive feedback that they are correct and can continue to the next puzzle. *My Problem*: I cannot get Eprime to recognize the correct response (for example: X=V+I) because when participants capitalize their responses EPrime records {SHIFT}. I have tried making the correct response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable because participants hit shift a variable number of times (when making mistakes, etc.) so there is no way for me to predict the number of shifts in their answer. Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/ncnES7GdmkMJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgbellows at gmail.com Fri Apr 12 18:17:54 2013 From: bgbellows at gmail.com (HFAC) Date: Fri, 12 Apr 2013 11:17:54 -0700 Subject: Script for cleaning up participants' typed responses In-Reply-To: <512f7dc5-53ba-42a3-b9c7-03e1bf3798d5@k37g2000hsf.googlegroups.com> Message-ID: Matt, I am also having a problem with E-Prime recording {SHIFT}. See my post for a more detailed explanation of my problem: https://groups.google.com/forum/?fromgroups=#!topic/e-prime/wysgwiaYR_0 I would like to try the script that you mentioned but cannot seem to locate it. If possible, will you post a response to me and attach it? I would greatly appreciate it. On Wednesday, April 16, 2008 1:10:01 PM UTC-4, Matt wrote: > > Hi Joseph, > > I have added a sample experiment to the Files section of this group > (TextString.es). This sample echoes subject responses and then "cleans > up" the special characters that are used by parsing the string. You > can look through the comments in the script to see how this parsing is > done. The sample only handles a few cases (e.g., Shift, period, etc). > However, you can modify the script to handle many different cases. > > Please let me know if you have any questions after looking at the > sample. > > Sincerely, > Matt Lenhart > PST Technical Consultant > http://pstnet.com -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/uvA3tqVcEa8J. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Sun Apr 14 20:23:10 2013 From: pfc.groot at gmail.com (Paul Groot) Date: Sun, 14 Apr 2013 22:23:10 +0200 Subject: Script for cleaning up participants' typed responses In-Reply-To: <98074db6-55cf-4e7b-876a-ca1147238c1e@googlegroups.com> Message-ID: hi, You can get rid of explicit {SHIFT} responses in the response values by setting an allowable mask that only includes the characters you actually allow. For example, you might set it to the following to allow alphabetic characters, the equal sign and the plus sign: {ALPHA}{=}{+}{ENTER} If you use the enter-key as input-terminator, you also have to include that one explicitly. So, that is the easy part. If you also would like to replace the special {key} responses with the original literal (i.e. replace {+} with just +), you also have to add some script after the input screen (TextDisplay1 in this example): Dim t As String Dim pos As Integer Dim ii As Integer ' Define a table with two columns: {key} and replacement ' The rows must include all literal {key}'s used in the input allowable mask Const NSPECIAL%=3 Dim special (1 To NSPECIAL, 1 To 2) As String special(1,1) = "{+}" special(1,2) = "+" special(2,1) = "{=}" special(2,2) = "=" special(3,1) = "{ENTER}" special(3,2) = "" t = UCase(TextDisplay1.RESP) 'convert input to upper case For ii=1 To NSPECIAL Dim key As String key = special(ii,1) 'find special {key} strings pos = InStr(t,key) If pos<>0 Then ' replace special {key}'s with their original character t = Left(t,pos-1) & special(ii,2) & Mid(t,pos+Len(key)) ii = ii-1 ' tricky cheat: retry this same special sequence again End If Next ' show result in next text display object TextDIsplay2.Text = TextDisplay1.RESP & ebCrLf & "is replaced by:" & ebCrLf & t 'overwrite the RESP attribute (note: disable default loging first) c.SetAttrib TextDisplay1.Name & ebDot & ebLogNameRESP, t Also find this example code in the attached script (requires EP 2.0.10.242). Best Paul On 12 April 2013 20:17, HFAC wrote: > Matt, > I am also having a problem with E-Prime recording {SHIFT}. See my post for > a more detailed explanation of my problem: > https://groups.google.com/forum/?fromgroups=#!topic/e-prime/wysgwiaYR_0 > > I would like to try the script that you mentioned but cannot seem to > locate it. If possible, will you post a response to me and attach it? I > would greatly appreciate it. > > On Wednesday, April 16, 2008 1:10:01 PM UTC-4, Matt wrote: >> >> Hi Joseph, >> >> I have added a sample experiment to the Files section of this group >> (TextString.es). This sample echoes subject responses and then "cleans >> up" the special characters that are used by parsing the string. You >> can look through the comments in the script to see how this parsing is >> done. The sample only handles a few cases (e.g., Shift, period, etc). >> However, you can modify the script to handle many different cases. >> >> Please let me know if you have any questions after looking at the >> sample. >> >> Sincerely, >> Matt Lenhart >> PST Technical Consultant >> http://pstnet.com > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/uvA3tqVcEa8J. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: resp_shift_check.es2 Type: application/octet-stream Size: 48310 bytes Desc: not available URL: From mcfarla9 at msu.edu Mon Apr 15 18:12:59 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 15 Apr 2013 14:12:59 -0400 Subject: Script for cleaning up participants' typed responses In-Reply-To: Message-ID: Google Groups removed support for uploaded files, so you cannot find Matt's program here anymore. He did, however, also post it to a thread at http://www.pstnet.com/forum/Topic2194-5-1.aspx . His example has not seemed to make it to the PST Samples section on the website yet. You may find yet another example program at STEP, http://step.psy.cmu.edu/scripts-plus/ , see the KeyCodeMap example there. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) /---- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST offers several instructional videos on their YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \---- At 4/14/2013 04:23 PM Sunday, Paul Groot wrote: >hi, > >You can get rid of explicit {SHIFT} responses in the response values >by setting an allowable mask that only includes the characters you >actually allow. For example, you might set it to the following to >allow alphabetic characters, the equal sign and the plus sign: >{ALPHA}{=}{+}{ENTER} > >If you use the enter-key as input-terminator, you also have to >include that one explicitly. > >So, that is the easy part. If you also would like to replace the >special {key} responses with the original literal (i.e. replace {+} >with just +), you also have to add some script after the input >screen (TextDisplay1 in this example): > >Dim t As String >Dim pos As Integer >Dim ii As Integer > >' Define a table with two columns: {key} and replacement >' The rows must include all literal {key}'s used in the input allowable mask >Const NSPECIAL%=3 >Dim special (1 To NSPECIAL, 1 To 2) As String >special(1,1) = "{+}" >special(1,2) = "+" >special(2,1) = "{=}" >special(2,2) = "=" >special(3,1) = "{ENTER}" >special(3,2) = "" > >t = UCase(TextDisplay1.RESP) 'convert input to upper case >For ii=1 To NSPECIAL > Dim key As String > key = special(ii,1) > > 'find special {key} strings > pos = InStr(t,key) > If pos<>0 Then > ' replace special {key}'s with their original character > t = Left(t,pos-1) & special(ii,2) & Mid(t,pos+Len(key)) > ii = ii-1 ' tricky cheat: retry this same special sequence again > End If >Next > >' show result in next text display object >TextDIsplay2.Text = TextDisplay1.RESP & ebCrLf & "is replaced by:" & >ebCrLf & t > >'overwrite the RESP attribute (note: disable default loging first) >c.SetAttrib TextDisplay1.Name & ebDot & ebLogNameRESP, t > > >Also find this example code in the attached script (requires EP 2.0.10.242). > >Best >Paul > > > > >On 12 April 2013 20:17, HFAC ><bgbellows at gmail.com> wrote: >Matt, >I am also having a problem with E-Prime recording {SHIFT}. See my >post for a more detailed explanation of my problem: >https://groups.google.com/forum/?fromgroups=#!topic/e-prime/wysgwiaYR_0 > >I would like to try the script that you mentioned but cannot seem to >locate it. If possible, will you post a response to me and attach >it? I would greatly appreciate it. > >On Wednesday, April 16, 2008 1:10:01 PM UTC-4, Matt wrote: >Hi Joseph, > >I have added a sample experiment to the Files section of this group >(TextString.es). This sample echoes subject responses and then "cleans >up" the special characters that are used by parsing the string. You >can look through the comments in the script to see how this parsing is >done. The sample only handles a few cases (e.g., Shift, period, etc). >However, you can modify the script to handle many different cases. > >Please let me know if you have any questions after looking at the >sample. > >Sincerely, >Matt Lenhart >PST Technical Consultant >http://pstnet.com -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From mcfarla9 at msu.edu Mon Apr 15 18:14:53 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 15 Apr 2013 14:14:53 -0400 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: Message-ID: If all your letter responses are upper-case, why not just use Caps Lock so that subjects do not have to press Shift? ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) /---- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST offers several instructional videos on their YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \---- At 4/12/2013 02:11 PM Friday, HFAC wrote: >Hello all, > >Thank you for your advice in advance. To introduce myself, I use >EPrime to develop my experiments because I have no experience coding >(a shame I know), so please keep that in mind when responding. So >far, I have only used the built in functions of EPrime. > >My Experiment: I have developed an experiment where participants see >a stimuli and participants are expected to answer using a series of >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The >participants have 2 minutes to come up with correct answer and they >may try as many answers as they would like until they find the >correct one. I have set the experiment up where if the participant >enters an answer and it is incorrect they cannot continue but if >they enter the correct response they will receive feedback that they >are correct and can continue to the next puzzle. > >My Problem: I cannot get Eprime to recognize the correct response >(for example: X=V+I) because when participants capitalize their >responses EPrime records {SHIFT}. I have tried making the correct >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable >because participants hit shift a variable number of times (when >making mistakes, etc.) so there is no way for me to predict the >number of shifts in their answer. > >Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From bwmooneyham at gmail.com Mon Apr 15 20:43:53 2013 From: bwmooneyham at gmail.com (Ben Mooneyham) Date: Mon, 15 Apr 2013 13:43:53 -0700 Subject: countdown clock and echo problem In-Reply-To: <2b4cbceb-b780-4828-9a3f-c7ead1f2c308@12g2000vba.googlegroups.com> Message-ID: As for your second issue (getting the echo to disappear afterwards), you can solve this by going to the Properties page for your Slide, going to the sync tab, and selecting "vertical blank" under "offset sync." That should fix it. - Ben Mooneyham On Wednesday, April 18, 2012 5:36:22 AM UTC-7, jotapan wrote: > > Hello, > > I have been trying to add a countdown clock to a slide that collects > and displays participants' responses. The idea is just to give the > participant a notion on how much time he has remaining to respond. At > the same time, I want the instructions to remain visible to the > participant as allow the participant to see his/her responses. > > I have tried to work around the example provided in the countdown > sample experiment available online, but I'm not being able to get it > to work. When I make appear right from the beginning by setting > lnCountAfterTime = lnStartTime + 0 it no longer displays the text I > want to be visible. I think this happens because it sets the slide > back to its "default" which is a blank slide. > > The other problem relates to the slide's echo: I'm not being able to > get it to disappear after the program moves on to the next slide. > > These are probably really simple issues to solve, but I'm really not > being able to do it. Any help is appreciated. > > Jotapan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/tX9G0U3xhksJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kmaayane at gmail.com Wed Apr 17 14:10:50 2013 From: kmaayane at gmail.com (maayan kedar) Date: Wed, 17 Apr 2013 07:10:50 -0700 Subject: Flickering '+' fixation Message-ID: Hello, I am having hard time to understand how I can create a slide which contains flickering '+' fixation. I looked up here and sow explanations about crating few items flickering on different time but am not got to create only one! I used the online help and tried this: Slide. Draw Sleep 200 Slide. Clear and so on, but no matter how much I repeated these draw and clear it always stop after 3 times! I also tried to create loop but it didn't go well /: Another problem is that I need only the fixation to flash and not other items, and to stop when the participant presses the keyboard for correct answer. I whold appreciate very much your help to explain how to put the fixation to flash with or without loop? Thank you very much in advance Maayan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/8QzHioM6ghAJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bsmith.lap at gmail.com Wed Apr 17 20:53:20 2013 From: bsmith.lap at gmail.com (Benjamin) Date: Wed, 17 Apr 2013 13:53:20 -0700 Subject: Control Alt Shift In-Reply-To: <00cc01ce2c92$74bf6230$5e3e2690$@eu> Message-ID: I'm going to have to disagree with you there. Control alt backspace caused my program to get stuck in a loop. On Friday, March 29, 2013 11:31:16 AM UTC-4, Michiel Sovij?rvi-Spap? wrote: > Hi, > > This is slightly unrelated, but as I myself keep forgetting it all the > time, I thought I?ll repeat it here: control-alt-backspace results in a > more ?graceful? exit in E-Prime 2 pro ( > http://www.pstnet.com/support/kb.asp?TopicID=2634). > > Best, > > Michiel > > > > *From:* e-p... at googlegroups.com [mailto: > e-p... at googlegroups.com ] *On Behalf Of *Benjamin > *Sent:* 29. March 2013 15:21 > *To:* e-p... at googlegroups.com > *Subject:* Re: Control Alt Shift > > > > I believe I have solved the problem. Control Alt Shift will not work if > the keyboard is unchecked in the Devices tab of the experiment properties. > This was not the case in version 2.0.8.x, so converting some old code in > which I had disabled the keyboard caused the problem. Control escape works > regardless, but you still need to force quit E-Prime from the task manager. > > > On Thursday, March 28, 2013 12:25:48 PM UTC-4, Benjamin wrote: > > Is anyone else having trouble with Control Alt Shift in E-Prime 2.0.10.x > ? I find that it often does not work at all, so I use control escape, and > eventually I have to use Control Alt Delete and quit E-Prime entirely from > the Task Manager because it is unresponsive. > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+u... at googlegroups.com . > To post to this group, send email to e-p... at googlegroups.com > . > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/Xs9EaQEXOPUJ. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/libM5V9TcW4J. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Wed Apr 17 22:16:12 2013 From: pfc.groot at gmail.com (Paul Groot) Date: Thu, 18 Apr 2013 00:16:12 +0200 Subject: Flickering '+' fixation In-Reply-To: <197243e5-6a8b-42aa-bd14-7ce681a8f9a3@googlegroups.com> Message-ID: Hi, Normally I would advise to simply use another list-object for creating a repeating (flickering) slide object. But if timing is critical, and you would only like to redraw/clear a single subobject on the slide, you could go ahead with the for loop. However, keep in mind you have to sync with the refresh rate of the display if you update the screen contents (by using Display.WaitForVerticalBlank). When the loop should be terminated by a keyboard response, you should use the InputMaskManager.IsPending function and a while loop. The fixation object can be referenced as a subobject of the Slide state (Slide.States('...').Objects('...')) The EBasic manual contains examples for this... cheers Paul On 17 April 2013 16:10, maayan kedar wrote: > Hello,**** > > ** ** > > ** ** > > I am having hard time to understand how I can create a slide which > contains flickering '+' fixation.**** > > I looked up here and sow explanations about crating few items flickering > on different time but am not got to create only one!**** > > ** ** > > I used the online help and tried this:**** > > ** ** > > Slide. Draw**** > > ** ** > > Sleep 200**** > > ** ** > > Slide. Clear**** > > ** ** > > and so on, but no matter how much I repeated these draw and clear it > always stop after 3 times!**** > > ** ** > > I also tried to create loop but it didn't go well /:**** > > ** ** > > ** ** > > Another problem is that I need only the fixation to flash and not other > items, and to stop when the participant presses the keyboard for correct > answer.**** > > ** ** > > I whold appreciate very much your help to explain how to put the fixation > to flash with or without loop?**** > > ** ** > > Thank you very much in advance**** > > ** ** > > Maayan**** > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/8QzHioM6ghAJ. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sibelozer.ege at gmail.com Thu Apr 18 05:17:24 2013 From: sibelozer.ege at gmail.com (Sibel Ozer) Date: Thu, 18 Apr 2013 08:17:24 +0300 Subject: auditory stimulus presentation Message-ID: Hi all, I would like to ask a question not directly related to E-prime. In a study, we plan to present stimulus auditorily and we try to decide the gender of the narrator. For stimulus presentation, does it yield significant differences to use man or female voice or which one is better? thank you, best Sibel -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Mon Apr 22 13:46:09 2013 From: mspape at cognitology.eu (Cognitology) Date: Mon, 22 Apr 2013 16:46:09 +0300 Subject: Control Alt Shift In-Reply-To: <5e4a45a6-b553-4f75-8170-9aa663920db9@googlegroups.com> Message-ID: Hi, Graceful, by the PST choice of words, not mine J. They mean that it *should* save your data as an .edat (for which we have e-recovery anyway, but nevermind) and stop some ongoing processes. It worked here, last time I tried (but indeed, I keep forgetting), so I?d suggest filing it as a bug-report if it doesn?t work for you. Best, Michiel From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Benjamin Sent: 17. April 2013 23:53 To: e-prime at googlegroups.com Subject: Re: Control Alt Shift I'm going to have to disagree with you there. Control alt backspace caused my program to get stuck in a loop. On Friday, March 29, 2013 11:31:16 AM UTC-4, Michiel Sovij?rvi-Spap? wrote: Hi, This is slightly unrelated, but as I myself keep forgetting it all the time, I thought I?ll repeat it here: control-alt-backspace results in a more ?graceful? exit in E-Prime 2 pro (http://www.pstnet.com/support/kb.asp?TopicID=2634). Best, Michiel From: e-p... at googlegroups.com [mailto:e-p... at googlegroups.com ] On Behalf Of Benjamin Sent: 29. March 2013 15:21 To: e-p... at googlegroups.com Subject: Re: Control Alt Shift I believe I have solved the problem. Control Alt Shift will not work if the keyboard is unchecked in the Devices tab of the experiment properties. This was not the case in version 2.0.8.x, so converting some old code in which I had disabled the keyboard caused the problem. Control escape works regardless, but you still need to force quit E-Prime from the task manager. On Thursday, March 28, 2013 12:25:48 PM UTC-4, Benjamin wrote: Is anyone else having trouble with Control Alt Shift in E-Prime 2.0.10.x ? I find that it often does not work at all, so I use control escape, and eventually I have to use Control Alt Delete and quit E-Prime entirely from the Task Manager because it is unresponsive. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+u... at googlegroups.com . To post to this group, send email to e-p... at googlegroups.com . To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Xs9EaQEXOPUJ. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/libM5V9TcW4J. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kmaayane at gmail.com Mon Apr 22 16:30:54 2013 From: kmaayane at gmail.com (maayan kedar) Date: Mon, 22 Apr 2013 09:30:54 -0700 Subject: Flickering '+' fixation In-Reply-To: Message-ID: Thanks! Some how, I got into a problem with the subobject, got an error massage says thet I cant for example fix the duration of a subobject. Anyway I'll try this direction again Thanks again Maayan ?????? ??? ?????, 18 ?????? 2013 01:16:12 UTC+3, ??? Paul Groot: > > Hi, > > Normally I would advise to simply use another list-object for creating a > repeating (flickering) slide object. But if timing is critical, and you > would only like to redraw/clear a single subobject on the slide, you could > go ahead with the for loop. However, keep in mind you have to sync with the > refresh rate of the display if you update the screen contents (by using > Display.WaitForVerticalBlank). When the loop should be terminated by a > keyboard response, you should use the InputMaskManager.IsPending > function and a while loop. The fixation object can be referenced as a > subobject of the Slide state (Slide.States('...').Objects('...')) The > EBasic manual contains examples for this... > > cheers > Paul > > > On 17 April 2013 16:10, maayan kedar >wrote: > >> Hello,**** >> >> ** ** >> >> ** ** >> >> I am having hard time to understand how I can create a slide which >> contains flickering '+' fixation.**** >> >> I looked up here and sow explanations about crating few items flickering >> on different time but am not got to create only one!**** >> >> ** ** >> >> I used the online help and tried this:**** >> >> ** ** >> >> Slide. Draw**** >> >> ** ** >> >> Sleep 200**** >> >> ** ** >> >> Slide. Clear**** >> >> ** ** >> >> and so on, but no matter how much I repeated these draw and clear it >> always stop after 3 times!**** >> >> ** ** >> >> I also tried to create loop but it didn't go well /:**** >> >> ** ** >> >> ** ** >> >> Another problem is that I need only the fixation to flash and not other >> items, and to stop when the participant presses the keyboard for correct >> answer.**** >> >> ** ** >> >> I whold appreciate very much your help to explain how to put the fixation >> to flash with or without loop?**** >> >> ** ** >> >> Thank you very much in advance**** >> >> ** ** >> >> Maayan**** >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+u... at googlegroups.com . >> To post to this group, send email to e-p... at googlegroups.com >> . >> To view this discussion on the web visit >> https://groups.google.com/d/msg/e-prime/-/8QzHioM6ghAJ. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/JTZiYyhJsXEJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pfc.groot at gmail.com Mon Apr 22 19:51:50 2013 From: pfc.groot at gmail.com (Paul Groot) Date: Mon, 22 Apr 2013 21:51:50 +0200 Subject: Flickering '+' fixation In-Reply-To: <209ac29d-39f1-4a20-961d-09350206bc9c@googlegroups.com> Message-ID: Duration is a property of the (parent) Slide object, not one of its subobjects... paul On 22 April 2013 18:30, maayan kedar wrote: > Thanks! > Some how, I got into a problem with the subobject, got an error massage > says thet I cant for example fix the duration of a subobject. > > Anyway I'll try this direction again > > Thanks again > Maayan > > ?????? ??? ?????, 18 ?????? 2013 01:16:12 UTC+3, ??? Paul Groot: >> >> Hi, >> >> Normally I would advise to simply use another list-object for creating a >> repeating (flickering) slide object. But if timing is critical, and you >> would only like to redraw/clear a single subobject on the slide, you could >> go ahead with the for loop. However, keep in mind you have to sync with the >> refresh rate of the display if you update the screen contents (by using >> Display.WaitForVerticalBlank). When the loop should be terminated by a >> keyboard response, you should use the InputMaskManager.IsPending >> function and a while loop. The fixation object can be referenced as a >> subobject of the Slide state (Slide.States('...').Objects('**...')) The >> EBasic manual contains examples for this... >> >> cheers >> Paul >> >> >> On 17 April 2013 16:10, maayan kedar wrote: >> >>> Hello,**** >>> >>> ** ** >>> >>> ** ** >>> >>> I am having hard time to understand how I can create a slide which >>> contains flickering '+' fixation.**** >>> >>> I looked up here and sow explanations about crating few items flickering >>> on different time but am not got to create only one!**** >>> >>> ** ** >>> >>> I used the online help and tried this:**** >>> >>> ** ** >>> >>> Slide. Draw**** >>> >>> ** ** >>> >>> Sleep 200**** >>> >>> ** ** >>> >>> Slide. Clear**** >>> >>> ** ** >>> >>> and so on, but no matter how much I repeated these draw and clear it >>> always stop after 3 times!**** >>> >>> ** ** >>> >>> I also tried to create loop but it didn't go well /:**** >>> >>> ** ** >>> >>> ** ** >>> >>> Another problem is that I need only the fixation to flash and not other >>> items, and to stop when the participant presses the keyboard for correct >>> answer.**** >>> >>> ** ** >>> >>> I whold appreciate very much your help to explain how to put the >>> fixation to flash with or without loop?**** >>> >>> ** ** >>> >>> Thank you very much in advance**** >>> >>> ** ** >>> >>> Maayan**** >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+u...@**googlegroups.com. >>> To post to this group, send email to e-p... at googlegroups.com. >>> >>> To view this discussion on the web visit https://groups.google.com/d/** >>> msg/e-prime/-/8QzHioM6ghAJ >>> . >>> For more options, visit https://groups.google.com/**groups/opt_out >>> . >>> >>> >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/JTZiYyhJsXEJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From valerio.biscione at gmail.com Tue Apr 23 10:50:32 2013 From: valerio.biscione at gmail.com (Valerio Biscione) Date: Tue, 23 Apr 2013 03:50:32 -0700 Subject: Repeat incorrect trial at the end of the list, until correct Message-ID: Hi. How can I do an experiment in which the incorrect trial are repeated at the end of the trial list, until a correct response is given? I have looked for some similar topic but I have not found anything really similar. I suppose that I could either repeat the main list until all the trials are "correct" (but how would I know? When the software goes on the top of the list, all the Correct attribute are set to 0!) or I can dynamically create a new list until all of the last trials are correct. Do you have any suggestion? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Z8a678gGgzEJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From d.vinson at ucl.ac.uk Tue Apr 23 11:19:28 2013 From: d.vinson at ucl.ac.uk (David Vinson) Date: Tue, 23 Apr 2013 12:19:28 +0100 Subject: Repeat incorrect trial at the end of the list, until correct In-Reply-To: <0e3d102f-447f-4561-8758-ebab1ee2e55b@googlegroups.com> Message-ID: There is a sample experiment "Rerun Error Trials Until All Correct" that does what you are looking for: http://www.pstnet.com/support/samples.asp?Mode=View&SampleID=37 On 23/04/2013 11:50, Valerio Biscione wrote: > Hi. How can I do an experiment in which the incorrect trial are > repeated at the end of the trial list, until a correct response is given? > I have looked for some similar topic but I have not found anything > really similar. I suppose that I could either repeat the main list > until all the trials are "correct" (but how would I know? When the > software goes on the top of the list, all the Correct attribute are > set to 0!) or I can dynamically create a new list until all of the > last trials are correct. > > Do you have any suggestion? > -- > You received this message because you are subscribed to the Google > Groups "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/Z8a678gGgzEJ. > For more options, visit https://groups.google.com/groups/opt_out. > > -- David Vinson, Ph.D. ESRC Research Fellow Cognitive, Perceptual and Brain Sciences Research Department University College London 26 Bedford Way, London WC1H 0AP Tel +44 (0)20 7679 5311 (UCL internal ext. 25311) -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From valerio.biscione at gmail.com Tue Apr 23 14:09:16 2013 From: valerio.biscione at gmail.com (Valerio Biscione) Date: Tue, 23 Apr 2013 07:09:16 -0700 Subject: Repeat incorrect trial at the end of the list, until correct In-Reply-To: <51766E40.10408@ucl.ac.uk> Message-ID: THank you, the sample experiment does exactly what I need! On Tuesday, 23 April 2013 12:19:28 UTC+1, Vinson, David: UCL wrote: > > There is a sample experiment "Rerun Error Trials Until All Correct" that > does what you are looking for: > http://www.pstnet.com/support/samples.asp?Mode=View&SampleID=37 > > On 23/04/2013 11:50, Valerio Biscione wrote: > > Hi. How can I do an experiment in which the incorrect trial are > > repeated at the end of the trial list, until a correct response is > given? > > I have looked for some similar topic but I have not found anything > > really similar. I suppose that I could either repeat the main list > > until all the trials are "correct" (but how would I know? When the > > software goes on the top of the list, all the Correct attribute are > > set to 0!) or I can dynamically create a new list until all of the > > last trials are correct. > > > > Do you have any suggestion? > > -- > > You received this message because you are subscribed to the Google > > Groups "E-Prime" group. > > To unsubscribe from this group and stop receiving emails from it, send > > an email to e-prime+u... at googlegroups.com . > > To post to this group, send email to e-p... at googlegroups.com. > > > To view this discussion on the web visit > > https://groups.google.com/d/msg/e-prime/-/Z8a678gGgzEJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > -- > David Vinson, Ph.D. > ESRC Research Fellow > Cognitive, Perceptual and Brain Sciences Research Department > University College London > 26 Bedford Way, London WC1H 0AP > Tel +44 (0)20 7679 5311 (UCL internal ext. 25311) > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/2naSo4OYV0MJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bgbellows at gmail.com Tue Apr 23 14:38:31 2013 From: bgbellows at gmail.com (HFAC) Date: Tue, 23 Apr 2013 07:38:31 -0700 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <516c43af.c8c5320a.7528.3d4fSMTPIN_ADDED_MISSING@gmr-mx.google.com> Message-ID: David, thanks for the response. I thought of this solution as well, but I cannot use caps lock because the + and = would not work properly as they are on the same key. On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: > > If all your letter responses are upper-case, why not just use Caps > Lock so that subjects do not have to press Shift? > > ----- > David McFarlane > E-Prime training > online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx > Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) > > /---- > Stock reminder: 1) I do not work for PST. 2) PST's trained staff > take 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, so make full use of > it. 3) In addition, PST offers several instructional videos on their > YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do > get an answer from PST staff, please extend the courtesy of posting > their reply back here for the sake of others. > \---- > > > At 4/12/2013 02:11 PM Friday, HFAC wrote: > >Hello all, > > > >Thank you for your advice in advance. To introduce myself, I use > >EPrime to develop my experiments because I have no experience coding > >(a shame I know), so please keep that in mind when responding. So > >far, I have only used the built in functions of EPrime. > > > >My Experiment: I have developed an experiment where participants see > >a stimuli and participants are expected to answer using a series of > >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The > >participants have 2 minutes to come up with correct answer and they > >may try as many answers as they would like until they find the > >correct one. I have set the experiment up where if the participant > >enters an answer and it is incorrect they cannot continue but if > >they enter the correct response they will receive feedback that they > >are correct and can continue to the next puzzle. > > > >My Problem: I cannot get Eprime to recognize the correct response > >(for example: X=V+I) because when participants capitalize their > >responses EPrime records {SHIFT}. I have tried making the correct > >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable > >because participants hit shift a variable number of times (when > >making mistakes, etc.) so there is no way for me to predict the > >number of shifts in their answer. > > > >Please let me know if you need additional information in order to help > me. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/75gKBeiiwCsJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hester.duffy at gmail.com Tue Apr 23 14:42:23 2013 From: hester.duffy at gmail.com (Hester Duffy) Date: Tue, 23 Apr 2013 10:42:23 -0400 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <02be4e40-a34c-41a4-8731-92ce72509836@googlegroups.com> Message-ID: Do the responses have to be capitals? Could you not ask them to use lower-case instead? Youll still have to figure out how to let them use both + and = without the shift key causing problems, but that might at least help? H On Tue, Apr 23, 2013 at 10:38 AM, HFAC wrote: > David, thanks for the response. I thought of this solution as well, but I > cannot use caps lock because the + and = would not work properly as they > are on the same key. > > > On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: >> >> If all your letter responses are upper-case, why not just use Caps >> Lock so that subjects do not have to press Shift? >> >> ----- >> David McFarlane >> E-Prime training >> online: http://psychology.msu.edu/**Workshops_Courses/eprime.aspx >> Twitter: @EPrimeMaster (https://twitter.com/**EPrimeMaster) >> >> >> /---- >> Stock reminder: 1) I do not work for PST. 2) PST's trained staff >> take 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, so make full use of >> it. 3) In addition, PST offers several instructional videos on their >> YouTube channel (http://www.youtube.com/user/**PSTNET). 4) If you do >> get an answer from PST staff, please extend the courtesy of posting >> their reply back here for the sake of others. >> \---- >> >> >> At 4/12/2013 02:11 PM Friday, HFAC wrote: >> >Hello all, >> > >> >Thank you for your advice in advance. To introduce myself, I use >> >EPrime to develop my experiments because I have no experience coding >> >(a shame I know), so please keep that in mind when responding. So >> >far, I have only used the built in functions of EPrime. >> > >> >My Experiment: I have developed an experiment where participants see >> >a stimuli and participants are expected to answer using a series of >> >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The >> >participants have 2 minutes to come up with correct answer and they >> >may try as many answers as they would like until they find the >> >correct one. I have set the experiment up where if the participant >> >enters an answer and it is incorrect they cannot continue but if >> >they enter the correct response they will receive feedback that they >> >are correct and can continue to the next puzzle. >> > >> >My Problem: I cannot get Eprime to recognize the correct response >> >(for example: X=V+I) because when participants capitalize their >> >responses EPrime records {SHIFT}. I have tried making the correct >> >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}**I. This method is not reliable >> >because participants hit shift a variable number of times (when >> >making mistakes, etc.) so there is no way for me to predict the >> >number of shifts in their answer. >> > >> >Please let me know if you need additional information in order to help >> me. >> >> -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/75gKBeiiwCsJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Postdoctoral Fellow Brain and Mind Institute The University of Western Ontario London, ON, N6A 5B7 Canada -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Apr 23 15:15:18 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 23 Apr 2013 11:15:18 -0400 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <02be4e40-a34c-41a4-8731-92ce72509836@googlegroups.com> Message-ID: I started to post the following... Ah, yes, that does pose a problem. In that case, you might rather use some inline code to strip out the extraneous {SHIFT} characters (and along the way convert everything to the same case, e.g., UCase$()), and then use If-Then to score the accuracy in code. For handling key-nomenclature characters, see the "KeyCodeMap" demo at http://step.psy.cmu.edu/scripts-plus/ . But then I thought this through further, especially considering your comment, "I use EPrime to develop my experiments because I have no experience coding ..., so please keep that in mind when responding." So I came up with a much better, coding-free solution. For Allowable, explicitly list all allowable characters, *without* {SHIFT}, e.g., "IVX{-}{+}{=}". Then for Correct use the encoded response, again without {SHIFT}, e.g., "X{=}V{+}I". If you use {ENTER} or whatever as a termination character, then you will also have to include that character for both Allowable and Correct. Once you do this, {SHIFT} will continue to work for shifting keyboard characters, but will *not* show up in RESP, and everything will work as you asked, at least it worked for me when I tried it just now. Good luck, let us know how it works out. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/23/2013 10:38 AM Tuesday, HFAC wrote: >David, thanks for the response. I thought of this solution as well, >but I cannot use caps lock because the + and = would not work >properly as they are on the same key. > >On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: >If all your letter responses are upper-case, why not just use Caps >Lock so that subjects do not have to press Shift? > >----- >David McFarlane >E-Prime training >online: >http://psychology.msu.edu/Workshops_Courses/eprime.aspx > >Twitter: @EPrimeMaster >(https://twitter.com/EPrimeMaster) > >/---- >Stock reminder: 1) I do not work for PST. 2) PST's trained staff >take 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, so make full use of >it. 3) In addition, PST offers several instructional videos on their >YouTube channel >(http://www.youtube.com/user/PSTNET >). 4) If you do >get an answer from PST staff, please extend the courtesy of posting >their reply back here for the sake of others. >\---- > > >At 4/12/2013 02:11 PM Friday, HFAC wrote: > >Hello all, > > > >Thank you for your advice in advance. To introduce myself, I use > >EPrime to develop my experiments because I have no experience coding > >(a shame I know), so please keep that in mind when responding. So > >far, I have only used the built in functions of EPrime. > > > >My Experiment: I have developed an experiment where participants see > >a stimuli and participants are expected to answer using a series of > >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The > >participants have 2 minutes to come up with correct answer and they > >may try as many answers as they would like until they find the > >correct one. I have set the experiment up where if the participant > >enters an answer and it is incorrect they cannot continue but if > >they enter the correct response they will receive feedback that they > >are correct and can continue to the next puzzle. > > > >My Problem: I cannot get Eprime to recognize the correct response > >(for example: X=V+I) because when participants capitalize their > >responses EPrime records {SHIFT}. I have tried making the correct > >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable > >because participants hit shift a variable number of times (when > >making mistakes, etc.) so there is no way for me to predict the > >number of shifts in their answer. > > > >Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From tamar.kolodny at gmail.com Wed Apr 24 05:33:21 2013 From: tamar.kolodny at gmail.com (Tamar) Date: Tue, 23 Apr 2013 22:33:21 -0700 Subject: Canvas.Copy is taking too long to complete Message-ID: I'm programming a visual experiment, and suffering from some timing issues. It seems that the line presenting the stimuli (canvas.copy) is considerably time consuming: 10-12 ms. I can't figure out the cause for this delay, and I would appreciate any help... Here is the relevant piece of code: ====== in an initializing inline script, at the begining of SessionProc: ====== Set MainCanvas = Display.Canvas MainCanvas.fillColor = CColor(background_color) MainCanvas.clear For i = 1 To NumStim Set StimCanvases(i) = Display.CreateCanvas 'define destination rect as center of screen destRects(i).Left = Display.XRes/2-stim_w/2 destRects(i).Top = Display.YRes/2-stim_h/2 destRects(i).Right = Display.XRes/2+stim_w/2 destRects(i).Bottom = Display.YRes/2+stim_h/2 'define source rect as upper left corner srcRects(i).Left = 0 srcRects(i).Top = 0 srcRects(i).Right = stim_w srcRects(i).Bottom = stim_h 'Load the image file StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" Next i ====== in the inline of TrialProc: ======= Debug.Print "1:" & clock.read StartTrialTime = clock.read n = c.GetAttrib("CanvasNum") c.SetAttrib "TrialStart", StartTrialTime display.WaitForVerticalBlank Debug.Print "4:" & clock.read StartStimTime = clock.read c.SetAttrib "StimStart", StartStimTime Debug.Print "5:" & clock.read mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) Debug.Print "6:" & clock.read I've tried a few things: - to create variables taking the values of StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, so the mainCanvas.copy line would not need to approach the arrays. - to present other simple canvases instead of my real stimuli (just a fixation, for example. or an empty canvas) - to draw something on the mainCanvas rather than copy a new canvas to it (e.g. mainCanvas.Circle). All of these takes 10-12 ms! (as calculated by subtracting time5 from time6). The only way I managed to get rid of the delay was to erase the entire row... Am I missing something here?... Thanks, Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/y5hiddEu-6oJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Wed Apr 24 07:51:25 2013 From: mspape at cognitology.eu (Cognitology) Date: Wed, 24 Apr 2013 10:51:25 +0300 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <5e3542a2-238c-49ad-8b6c-b11f1c7cc0da@googlegroups.com> Message-ID: Hi, A quick look, but I think that you pretty much nailed it: it can take quite long to do any canvas operation. Given that your screen refresh rate presumably isn?t more than 100 Hz (and in any ways, your foveal vision isn?t), I don?t see the problem? Indeed, if you were to draw many things to the main canvas, one after the other, then indeed, it gets to be a problem, but as long as the only operation is copying a ?preloaded? canvas to the shown one, it doesn?t matter all that much. Notice, given that you?re not using E-Prime?s stimdisplays, it?s not clear at what time the stimulus is actually displayed ? only when it?s done sending the command. I think it?s generally better for critical timing aspects of your experiment to avoid canvas as much as possible. Personally, I think ?critical timing? is when it concerns a subliminal vs barely supraliminal prime or some such, for other types of stimuli the 10 ms of (constant, therefore presumably stimulus independent) delay is of trivial concern. Just testing some of it myself, and I get values ranging between 15 and 17 ? which is funny, given that my refresh rate is indeed 60, so it seems a bit like there?s some sort of display.waitforverticalblank built into canvas.copy. Curiously, this: For j = 1 To 100 DrawFixation ?this is just a custom function drawing a line to cnvsnext cnvs.copy cnvsnext display.waitforverticalblank debug.print clock.read - clocktime clocktime = clock.read Next j Gives me latencies equal to refresh rates (+- 1 ms). Whereas: For j = 1 To 100 DrawFixation ?this is just a custom function drawing a line to cnvsnext display.waitforverticalblank cnvs.copy cnvsnext debug.print clock.read - clocktime clocktime = clock.read Next j Gives me latencies equal to 2xrefresh rates. Somebody with young eyes should tell us if the first one doesn?t have cutting-off errors, otherwise I?d suggest there might be some sort of waitforverticalblank built into canvas.copy. Best, Michiel Sovij?rvi-Spap? Helsinki Institute for Information Technology Aalto & University of Helsinki Finland BTW: notice that using debug.print also incurs a delay (last measured at 0.7 ms). From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Tamar Sent: 24. April 2013 08:33 To: e-prime at googlegroups.com Subject: Canvas.Copy is taking too long to complete I'm programming a visual experiment, and suffering from some timing issues. It seems that the line presenting the stimuli (canvas.copy) is considerably time consuming: 10-12 ms. I can't figure out the cause for this delay, and I would appreciate any help... Here is the relevant piece of code: ====== in an initializing inline script, at the begining of SessionProc: ====== Set MainCanvas = Display.Canvas MainCanvas.fillColor = CColor(background_color) MainCanvas.clear For i = 1 To NumStim Set StimCanvases(i) = Display.CreateCanvas 'define destination rect as center of screen destRects(i).Left = Display.XRes/2-stim_w/2 destRects(i).Top = Display.YRes/2-stim_h/2 destRects(i).Right = Display.XRes/2+stim_w/2 destRects(i).Bottom = Display.YRes/2+stim_h/2 'define source rect as upper left corner srcRects(i).Left = 0 srcRects(i).Top = 0 srcRects(i).Right = stim_w srcRects(i).Bottom = stim_h 'Load the image file StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" Next i ====== in the inline of TrialProc: ======= Debug.Print "1:" & clock.read StartTrialTime = clock.read n = c.GetAttrib("CanvasNum") c.SetAttrib "TrialStart", StartTrialTime display.WaitForVerticalBlank Debug.Print "4:" & clock.read StartStimTime = clock.read c.SetAttrib "StimStart", StartStimTime Debug.Print "5:" & clock.read mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) Debug.Print "6:" & clock.read I've tried a few things: - to create variables taking the values of StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, so the mainCanvas.copy line would not need to approach the arrays. - to present other simple canvases instead of my real stimuli (just a fixation, for example. or an empty canvas) - to draw something on the mainCanvas rather than copy a new canvas to it (e.g. mainCanvas.Circle). All of these takes 10-12 ms! (as calculated by subtracting time5 from time6). The only way I managed to get rid of the delay was to erase the entire row... Am I missing something here?... Thanks, Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/y5hiddEu-6oJ. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Wed Apr 24 08:17:46 2013 From: mspape at cognitology.eu (Cognitology) Date: Wed, 24 Apr 2013 11:17:46 +0300 Subject: Response accuracy unreliable because {SHIFT} logged as response In-Reply-To: <5176a5ac.5006320a.6eb7.4e9eSMTPIN_ADDED_MISSING@gmr-mx.google.com> Message-ID: Hi, Reading the experiment info, I was wondering: if you're actually looking for the experiment of the Knoblich / ?llinger et al., group on insight problem solving with matchsticks, I still have a flash version of that experiment, and willing to share the code, should that be useful. It's quite pretty, if I may say so myself, but in Dutch (that'd be about 10 minutes work to translate): http://www.hiit.fi/u/sovspape/pubs/insight.php . People on this list and elsewhere are welcome to test it for themselves, it takes about 10 minutes and the idea is that you "mentally" move a matchstick to correct an equation, and then fill this one in instead. I.e. I + II = I is wrong, so you move the second I to the end, and get I + I = II. ...Once upon a time, I actually ran this experiment analog style: it takes a few dozens of subjects, a box of matchsticks and a stopwatch. Ah, those were the days! Best, Michiel -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 23. April 2013 18:15 To: e-prime at googlegroups.com Subject: Re: Response accuracy unreliable because {SHIFT} logged as response I started to post the following... Ah, yes, that does pose a problem. In that case, you might rather use some inline code to strip out the extraneous {SHIFT} characters (and along the way convert everything to the same case, e.g., UCase$()), and then use If-Then to score the accuracy in code. For handling key-nomenclature characters, see the "KeyCodeMap" demo at http://step.psy.cmu.edu/scripts-plus/ . But then I thought this through further, especially considering your comment, "I use EPrime to develop my experiments because I have no experience coding ..., so please keep that in mind when responding." So I came up with a much better, coding-free solution. For Allowable, explicitly list all allowable characters, *without* {SHIFT}, e.g., "IVX{-}{+}{=}". Then for Correct use the encoded response, again without {SHIFT}, e.g., "X{=}V{+}I". If you use {ENTER} or whatever as a termination character, then you will also have to include that character for both Allowable and Correct. Once you do this, {SHIFT} will continue to work for shifting keyboard characters, but will *not* show up in RESP, and everything will work as you asked, at least it worked for me when I tried it just now. Good luck, let us know how it works out. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/23/2013 10:38 AM Tuesday, HFAC wrote: >David, thanks for the response. I thought of this solution as well, >but I cannot use caps lock because the + and = would not work >properly as they are on the same key. > >On Monday, April 15, 2013 2:14:53 PM UTC-4, McFarlane, David wrote: >If all your letter responses are upper-case, why not just use Caps >Lock so that subjects do not have to press Shift? > >----- >David McFarlane >E-Prime training >online: >http://psychology. msu.edu/Workshops_Courses/eprime.aspx > >Twitter: @EPrimeMaster >(https://twitter.com/EPrimeMaster) > >/---- >Stock reminder: 1) I do not work for PST. 2) PST's trained staff >take any and all questions at >http://support.pstne t.com/e%2Dprime/support/login.asp >, and they >strive to respond to all requests in 24-48 hours, so make full use of >it. 3) In addition, PST offers several instructional videos on their >YouTube channel >(http://www.youtube.com/user/PSTNET >). 4) If you do >get an answer from PST staff, please extend the courtesy of posting >their reply back here for the sake of others. >\---- > > >At 4/12/2013 02:11 PM Friday, HFAC wrote: > >Hello all, > > > >Thank you for your advice in advance. To introduce myself, I use > >EPrime to develop my experiments because I have no experience coding > >(a shame I know), so please keep that in mind when responding. So > >far, I have only used the built in functions of EPrime. > > > >My Experiment: I have developed an experiment where participants see > >a stimuli and participants are expected to answer using a series of > >(capital) X, I, V, or -, +, and =. (For example: X=V+I) The > >participants have 2 minutes to come up with correct answer and they > >may try as many answers as they would like until they find the > >correct one. I have set the experiment up where if the participant > >enters an answer and it is incorrect they cannot continue but if > >they enter the correct response they will receive feedback that they > >are correct and can continue to the next puzzle. > > > >My Problem: I cannot get Eprime to recognize the correct response > >(for example: X=V+I) because when participants capitalize their > >responses EPrime records {SHIFT}. I have tried making the correct > >response {SHIFT}X{=}{SHIFT}V{+}{SHIFT}I. This method is not reliable > >because participants hit shift a variable number of times (when > >making mistakes, etc.) so there is no way for me to predict the > >number of shifts in their answer. > > > >Please let me know if you need additional information in order to help me. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From mcfarla9 at msu.edu Wed Apr 24 13:44:46 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 24 Apr 2013 09:44:46 -0400 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <016701ce40c0$85acdcc0$91069640$@eu> Message-ID: Hmm. I explored this issue myself three years ago, using EP1 (still my favorite version for this type of exploration). I just dug up my test program and ran it again on my trusty old XP laptop at home after breakfast, and got times of 0.22 ms even for full screen copies, much as I remember from before (where full screen means 1024 x 768; and yes, that is less than a millisecond). To be sure, here is the core of my test code: t0 = clock.readmicrosec dcnvs.copy cnvs dt = clock.readmicrosec - t0 msgbox format$( dt/1000, "Standard" ) & " ms" where all variables are defined and initialized earlier as expected (dcnvs is set to Display.Canvas just for notational convenience). Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no evidence that .Copy includes an implicit Display.WaitForVerticalBlank, to the contrary, the code example there includes an explicit Display.WaitForVerticalBlank just before the cnvs.Copy. I would be *extremely* surprised if Canvas.Copy included a Display.WaitForVerticalBlank, as that would greatly compromise its utility (e.g., when wanting to Copy several segments to an offscreen Canvas before copying the complete result to Display.Canvas). So I do not know how to account for your results. Mind you, I did all my tests using good-old EP1 with 1024x768 display resolution. For all I know things changed with the latest EP version, or things get slower with larger display resolutions. What EP version do you use? What display resolution? Michiel, I am especially puzzled by your results. Both of your tests measure the total time to perform a Canvas.Copy and Display.WaitForVerticalBlank, only in different orders. So you should get the same time for both tests, regardless of whether Canvas.Copy includes its own Display.WaitForVerticalBlank. What am I missing? Nevertheless, Michiel's advice still stands -- as long as your program does everything it needs to do within one screen refresh (and assuming that you *do* synchronize visual displays to the screen refresh, as you should), then that is good enough. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (twitter.com/EPrimeMaster) /----------- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST takes questions at their Facebook page (http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 ), and offers several instructional videos there and on their YouTube channel (http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, though). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \----------- Cognitology wrote: > Hi, > > A quick look, but I think that you pretty much nailed it: it can take > quite long to do any canvas operation. Given that your screen refresh > rate presumably isn?t more than 100 Hz (and in any ways, your foveal > vision isn?t), I don?t see the problem? Indeed, if you were to draw many > things to the main canvas, one after the other, then indeed, it gets to > be a problem, but as long as the only operation is copying a ?preloaded? > canvas to the shown one, it doesn?t matter all that much. Notice, given > that you?re not using E-Prime?s stimdisplays, it?s not clear at what > time the stimulus is actually displayed ? only when it?s done sending > the command. I think it?s generally better for critical timing aspects > of your experiment to avoid canvas as much as possible. Personally, I > think ?critical timing? is when it concerns a subliminal vs barely > supraliminal prime or some such, for other types of stimuli the 10 ms of > (constant, therefore presumably stimulus independent) delay is of > trivial concern. > > > > Just testing some of it myself, and I get values ranging between 15 and > 17 ? which is funny, given that my refresh rate is indeed 60, so it > seems a bit like there?s some sort of display.waitforverticalblank built > into canvas.copy. Curiously, this: > > For j = 1 To 100 > > DrawFixation ?this is just a custom function drawing a line to > cnvsnext > > cnvs.copy cnvsnext > > display.waitforverticalblank > > debug.print clock.read - clocktime > > clocktime = clock.read > > Next j > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > Whereas: > > > > For j = 1 To 100 > > DrawFixation ?this is just a custom function drawing a line to > cnvsnext > > display.waitforverticalblank > > cnvs.copy cnvsnext > > debug.print clock.read - clocktime > > clocktime = clock.read > > Next j > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > should tell us if the first one doesn?t have cutting-off errors, > otherwise I?d suggest there might be some sort of waitforverticalblank > built into canvas.copy. > > Best, > > > > Michiel Sovij?rvi-Spap? > > > > Helsinki Institute for Information Technology > > Aalto & University of Helsinki > > Finland > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > 0.7 ms). > > > > > > *From:* e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] *On > Behalf Of *Tamar > *Sent:* 24. April 2013 08:33 > *To:* e-prime at googlegroups.com > *Subject:* Canvas.Copy is taking too long to complete > > > > I'm programming a visual experiment, and suffering from some timing > issues. It seems that the line presenting the stimuli (canvas.copy) is > considerably time consuming: 10-12 ms. I can't figure out the cause for > this delay, and I would appreciate any help... > > Here is the relevant piece of code: > > ====== in an initializing inline script, at the begining of SessionProc: > ====== > Set MainCanvas = Display.Canvas > MainCanvas.fillColor = CColor(background_color) > MainCanvas.clear > > For i = 1 To NumStim > Set StimCanvases(i) = Display.CreateCanvas > > 'define destination rect as center of screen > destRects(i).Left = Display.XRes/2-stim_w/2 > destRects(i).Top = Display.YRes/2-stim_h/2 > destRects(i).Right = Display.XRes/2+stim_w/2 > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > 'define source rect as upper left corner > srcRects(i).Left = 0 > srcRects(i).Top = 0 > srcRects(i).Right = stim_w > srcRects(i).Bottom = stim_h > > 'Load the image file > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > Next i > > ====== in the inline of TrialProc: ======= > Debug.Print "1:" & clock.read > StartTrialTime = clock.read > n = c.GetAttrib("CanvasNum") > c.SetAttrib "TrialStart", StartTrialTime > display.WaitForVerticalBlank > Debug.Print "4:" & clock.read > StartStimTime = clock.read > c.SetAttrib "StimStart", StartStimTime > Debug.Print "5:" & clock.read > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > Debug.Print "6:" & clock.read > > > I've tried a few things: > - to create variables taking the values of > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > so the mainCanvas.copy line would not need to approach the arrays. > - to present other simple canvases instead of my real stimuli (just a > fixation, for example. or an empty canvas) > - to draw something on the mainCanvas rather than copy a new canvas to > it (e.g. mainCanvas.Circle). > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > time6). The only way I managed to get rid of the delay was to erase the > entire row... > > Am I missing something here?... > > Thanks, > Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From tamar.kolodny at gmail.com Thu Apr 25 05:19:52 2013 From: tamar.kolodny at gmail.com (Tamar) Date: Wed, 24 Apr 2013 22:19:52 -0700 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <5177E1CE.1030205@msu.edu> Message-ID: Thank you both your replies! I am using E-prime 2.0.10, and a CRT iiyama Vision Master screen, with display resolution of 1024 x 768 and a refresh rate of 100 Hz. My operating system is windows XP. I'm troubled with this timing issue because my experiment includes EEG recording, thus the synchronization is terribly important. I need to send triggers via the parallel port exactly at the onset of each stimulus, or else my EEG signal might be smeared. Considering that the canvas.copy takes a refresh cycle to complete - I'm not sure what time ought to be considered the stimulus onset... Anyhow, David, I've tried running your code - and I get dt's of 13-14ms. Do you think that all the difference between your 0.22ms to my 13-14ms is due to E-prime1 vs. E-prime2 differences? That's shocking... I get the same results as Michiel for the loop codes, as puzzling as they are... Thanks again for your help, Tamar On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: > > Hmm. I explored this issue myself three years ago, using EP1 (still my > favorite version for this type of exploration). I just dug up my test > program and ran it again on my trusty old XP laptop at home after > breakfast, and got times of 0.22 ms even for full screen copies, much as > I remember from before (where full screen means 1024 x 768; and yes, > that is less than a millisecond). To be sure, here is the core of my > test code: > > t0 = clock.readmicrosec > dcnvs.copy cnvs > dt = clock.readmicrosec - t0 > msgbox format$( dt/1000, "Standard" ) & " ms" > > where all variables are defined and initialized earlier as expected > (dcnvs is set to Display.Canvas just for notational convenience). > > Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no > evidence that .Copy includes an implicit Display.WaitForVerticalBlank, > to the contrary, the code example there includes an explicit > Display.WaitForVerticalBlank just before the cnvs.Copy. I would be > *extremely* surprised if Canvas.Copy included a > Display.WaitForVerticalBlank, as that would greatly compromise its > utility (e.g., when wanting to Copy several segments to an offscreen > Canvas before copying the complete result to Display.Canvas). > > So I do not know how to account for your results. Mind you, I did all > my tests using good-old EP1 with 1024x768 display resolution. For all I > know things changed with the latest EP version, or things get slower > with larger display resolutions. What EP version do you use? What > display resolution? > > Michiel, I am especially puzzled by your results. Both of your tests > measure the total time to perform a Canvas.Copy and > Display.WaitForVerticalBlank, only in different orders. So you should > get the same time for both tests, regardless of whether Canvas.Copy > includes its own Display.WaitForVerticalBlank. What am I missing? > > Nevertheless, Michiel's advice still stands -- as long as your program > does everything it needs to do within one screen refresh (and assuming > that you *do* synchronize visual displays to the screen refresh, as you > should), then that is good enough. > > ----- > David McFarlane > E-Prime training online: > http://psychology.msu.edu/Workshops_Courses/eprime.aspx > Twitter: @EPrimeMaster (twitter.com/EPrimeMaster) > > /----------- > Stock reminder: 1) I do not work for PST. 2) PST's trained staff take > 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, so make full use of it. 3) > In addition, PST takes questions at their Facebook page > (http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 > ), and offers several instructional videos there and on their YouTube > channel (http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, > though). 4) If you do get an answer from PST staff, please extend the > courtesy of posting their reply back here for the sake of others. > \----------- > > > Cognitology wrote: > > Hi, > > > > A quick look, but I think that you pretty much nailed it: it can take > > quite long to do any canvas operation. Given that your screen refresh > > rate presumably isn???t more than 100 Hz (and in any ways, your foveal > > vision isn???t), I don???t see the problem? Indeed, if you were to draw > many > > things to the main canvas, one after the other, then indeed, it gets to > > be a problem, but as long as the only operation is copying a > ???preloaded??? > > canvas to the shown one, it doesn???t matter all that much. Notice, > given > > that you???re not using E-Prime???s stimdisplays, it???s not clear at > what > > time the stimulus is actually displayed ??? only when it???s done > sending > > the command. I think it???s generally better for critical timing aspects > > of your experiment to avoid canvas as much as possible. Personally, I > > think ???critical timing??? is when it concerns a subliminal vs barely > > supraliminal prime or some such, for other types of stimuli the 10 ms of > > (constant, therefore presumably stimulus independent) delay is of > > trivial concern. > > > > > > > > Just testing some of it myself, and I get values ranging between 15 and > > 17 ??? which is funny, given that my refresh rate is indeed 60, so it > > seems a bit like there???s some sort of display.waitforverticalblank > built > > into canvas.copy. Curiously, this: > > > > For j = 1 To 100 > > > > DrawFixation ???this is just a custom function drawing a line to > > cnvsnext > > > > cnvs.copy cnvsnext > > > > display.waitforverticalblank > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > > > Whereas: > > > > > > > > For j = 1 To 100 > > > > DrawFixation ???this is just a custom function drawing a line to > > cnvsnext > > > > display.waitforverticalblank > > > > cnvs.copy cnvsnext > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > > should tell us if the first one doesn???t have cutting-off errors, > > otherwise I???d suggest there might be some sort of waitforverticalblank > > built into canvas.copy. > > > > Best, > > > > > > > > Michiel Sovij???rvi-Spap??? > > > > > > > > Helsinki Institute for Information Technology > > > > Aalto & University of Helsinki > > > > Finland > > > > > > > > > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > > 0.7 ms). > > > > > > > > > > > > *From:* e-p... at googlegroups.com [mailto: > e-p... at googlegroups.com ] *On > > Behalf Of *Tamar > > *Sent:* 24. April 2013 08:33 > > *To:* e-p... at googlegroups.com > > *Subject:* Canvas.Copy is taking too long to complete > > > > > > > > I'm programming a visual experiment, and suffering from some timing > > issues. It seems that the line presenting the stimuli (canvas.copy) is > > considerably time consuming: 10-12 ms. I can't figure out the cause for > > this delay, and I would appreciate any help... > > > > Here is the relevant piece of code: > > > > ====== in an initializing inline script, at the begining of SessionProc: > > ====== > > Set MainCanvas = Display.Canvas > > MainCanvas.fillColor = CColor(background_color) > > MainCanvas.clear > > > > For i = 1 To NumStim > > Set StimCanvases(i) = Display.CreateCanvas > > > > 'define destination rect as center of screen > > destRects(i).Left = Display.XRes/2-stim_w/2 > > destRects(i).Top = Display.YRes/2-stim_h/2 > > destRects(i).Right = Display.XRes/2+stim_w/2 > > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > > > 'define source rect as upper left corner > > srcRects(i).Left = 0 > > srcRects(i).Top = 0 > > srcRects(i).Right = stim_w > > srcRects(i).Bottom = stim_h > > > > 'Load the image file > > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > > > Next i > > > > ====== in the inline of TrialProc: ======= > > Debug.Print "1:" & clock.read > > StartTrialTime = clock.read > > n = c.GetAttrib("CanvasNum") > > c.SetAttrib "TrialStart", StartTrialTime > > display.WaitForVerticalBlank > > Debug.Print "4:" & clock.read > > StartStimTime = clock.read > > c.SetAttrib "StimStart", StartStimTime > > Debug.Print "5:" & clock.read > > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > > Debug.Print "6:" & clock.read > > > > > > I've tried a few things: > > - to create variables taking the values of > > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > > so the mainCanvas.copy line would not need to approach the arrays. > > - to present other simple canvases instead of my real stimuli (just a > > fixation, for example. or an empty canvas) > > - to draw something on the mainCanvas rather than copy a new canvas to > > it (e.g. mainCanvas.Circle). > > > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > > time6). The only way I managed to get rid of the delay was to erase the > > entire row... > > > > Am I missing something here?... > > > > Thanks, > > Tamar > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pquain at une.edu.au Thu Apr 25 05:29:06 2013 From: pquain at une.edu.au (Peter Quain) Date: Thu, 25 Apr 2013 15:29:06 +1000 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <7dad8c29-b108-43a1-aead-1f981d60ac83@googlegroups.com> Message-ID: I haven't tested any code examples, but have a lot of data showing canvas.copy in v.1.?.? takes under a ms, supporting David's observations. Perhaps something here is less instant in v2.?, and a bug has been identified? At 03:19 PM 25/04/2013, you wrote: >Thank you both your replies! > >I am using E-prime 2.0.10, and a CRT iiyama >Vision Master screen, with display resolution >of 1024 x 768 and a refresh rate of 100 Hz. My operating system is windows XP. > >I'm troubled with this timing issue because my >experiment includes EEG recording, thus the >synchronization is terribly important. I need to >send triggers via the parallel port exactly at the >onset of each stimulus, or else my EEG signal >might be smeared. Considering that the canvas.copy >takes a refresh cycle to complete - I'm not sure >what time ought to be considered the stimulus onset... > >Anyhow, David, I've tried running your code - >and I get dt's of 13-14ms. Do you think that all the difference >between your 0.22ms to my 13-14ms is due to >E-prime1 vs. E-prime2 differences? That's shocking... >I get the same results as Michiel for the loop >codes, as puzzling as they are... > >Thanks again for your help, >Tamar > > > > >On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >Hmm. I explored this issue myself three years ago, using EP1 (still my >favorite version for this type of exploration). I just dug up my test >program and ran it again on my trusty old XP laptop at home after >breakfast, and got times of 0.22 ms even for full screen copies, much as >I remember from before (where full screen means 1024 x 768; and yes, >that is less than a millisecond). To be sure, here is the core of my >test code: > > t0 = clock.readmicrosec > dcnvs.copy cnvs > dt = clock.readmicrosec - t0 > msgbox format$( dt/1000, "Standard" ) & " ms" > >where all variables are defined and initialized earlier as expected >(dcnvs is set to Display.Canvas just for notational convenience). > >Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >to the contrary, the code example there includes an explicit >Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >*extremely* surprised if Canvas.Copy included a >Display.WaitForVerticalBlank, as that would greatly compromise its >utility (e.g., when wanting to Copy several segments to an offscreen >Canvas before copying the complete result to Display.Canvas). > >So I do not know how to account for your results. Mind you, I did all >my tests using good-old EP1 with 1024x768 display resolution. For all I >know things changed with the latest EP version, or things get slower >with larger display resolutions. What EP version do you use? What >display resolution? > >Michiel, I am especially puzzled by your results. Both of your tests >measure the total time to perform a Canvas.Copy and >Display.WaitForVerticalBlank, only in different orders. So you should >get the same time for both tests, regardless of whether Canvas.Copy >includes its own Display.WaitForVerticalBlank. What am I missing? > >Nevertheless, Michiel's advice still stands -- as long as your program >does everything it needs to do within one screen refresh (and assuming >that you *do* synchronize visual displays to the screen refresh, as you >should), then that is good enough. > >----- >David McFarlane >E-Prime training online: >http://psychology.msu.edu/Workshops_Courses/eprime.aspx > >Twitter: @EPrimeMaster >(twitter.com/EPrimeMaster) > >/----------- >Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >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, so make full use of it. 3) >In addition, PST takes questions at their Facebook page >(http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 > >), and offers several instructional videos there and on their YouTube >channel >(http://www.youtube.com/user/PSTNET >) (no Twitter feed yet, >though). 4) If you do get an answer from PST staff, please extend the >courtesy of posting their reply back here for the sake of others. >\----------- > > >Cognitology wrote: > > Hi, > > > > A quick look, but I think that you pretty much nailed it: it can take > > quite long to do any canvas operation. Given that your screen refresh > > rate presumably isn???t more than 100 Hz (and in any ways, your foveal > > vision isn???t), I don???t see the problem? > Indeed, if you were to draw many > > things to the main canvas, one after the other, then indeed, it gets to > > be a problem, but as long as the only > operation is copying a ???preloaded??? > > canvas to the shown one, it doesn???t matter all that much. Notice, given > > that you???re not using E-Prime???s stimdisplays, it???s not clear at what > > time the stimulus is actually displayed ??? only when it???s done sending > > the command. I think it???s generally better for critical timing aspects > > of your experiment to avoid canvas as much as possible. Personally, I > > think ???critical timing??? is when it concerns a subliminal vs barely > > supraliminal prime or some such, for other types of stimuli the 10 ms of > > (constant, therefore presumably stimulus independent) delay is of > > trivial concern. > > > > > > > > Just testing some of it myself, and I get values ranging between 15 and > > 17 ??? which is funny, given that my refresh rate is indeed 60, so it > > seems a bit like there???s some sort of display.waitforverticalblank built > > into canvas.copy. Curiously, this: > > > > For j = 1 To 100 > > > > DrawFixation ???this is just a custom function drawing a line to > > cnvsnext > > > > cnvs.copy cnvsnext > > > > display.waitforverticalblank > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > > > Whereas: > > > > > > > > For j = 1 To 100 > > > > DrawFixation ???this is just a custom function drawing a line to > > cnvsnext > > > > display.waitforverticalblank > > > > cnvs.copy cnvsnext > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > > should tell us if the first one doesn???t have cutting-off errors, > > otherwise I???d suggest there might be some sort of waitforverticalblank > > built into canvas.copy. > > > > Best, > > > > > > > > Michiel Sovij???rvi-Spap??? > > > > > > > > Helsinki Institute for Information Technology > > > > Aalto & University of Helsinki > > > > Finland > > > > > > > > > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > > 0.7 ms). > > > > > > > > > > > > *From:* e-p... at googlegroups.com [mailto:e-p... at googlegroups.com] *On > > Behalf Of *Tamar > > *Sent:* 24. April 2013 08:33 > > *To:* e-p... at googlegroups.com > > *Subject:* Canvas.Copy is taking too long to complete > > > > > > > > I'm programming a visual experiment, and suffering from some timing > > issues. It seems that the line presenting the stimuli (canvas.copy) is > > considerably time consuming: 10-12 ms. I can't figure out the cause for > > this delay, and I would appreciate any help... > > > > Here is the relevant piece of code: > > > > ====== in an initializing inline script, at the begining of SessionProc: > > ====== > > Set MainCanvas = Display.Canvas > > MainCanvas.fillColor = CColor(background_color) > > MainCanvas.clear > > > > For i = 1 To NumStim > > Set StimCanvases(i) = Display.CreateCanvas > > > > 'define destination rect as center of screen > > destRects(i).Left = Display.XRes/2-stim_w/2 > > destRects(i).Top = Display.YRes/2-stim_h/2 > > destRects(i).Right = Display.XRes/2+stim_w/2 > > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > > > 'define source rect as upper left corner > > srcRects(i).Left = 0 > > srcRects(i).Top = 0 > > srcRects(i).Right = stim_w > > srcRects(i).Bottom = stim_h > > > > 'Load the image file > > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > > > Next i > > > > ====== in the inline of TrialProc: ======= > > Debug.Print "1:" & clock.read > > StartTrialTime = clock.read > > n = c.GetAttrib("CanvasNum") > > c.SetAttrib "TrialStart", StartTrialTime > > display.WaitForVerticalBlank > > Debug.Print "4:" & clock.read > > StartStimTime = clock.read > > c.SetAttrib "StimStart", StartStimTime > > Debug.Print "5:" & clock.read > > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > > Debug.Print "6:" & clock.read > > > > > > I've tried a few things: > > - to create variables taking the values of > > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > > so the mainCanvas.copy line would not need to approach the arrays. > > - to present other simple canvases instead of my real stimuli (just a > > fixation, for example. or an empty canvas) > > - to draw something on the mainCanvas rather than copy a new canvas to > > it (e.g. mainCanvas.Circle). > > > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > > time6). The only way I managed to get rid of the delay was to erase the > > entire row... > > > > Am I missing something here?... > > > > Thanks, > > Tamar > >-- >You received this message because you are >subscribed to the Google Groups "E-Prime" group. >To unsubscribe from this group and stop >receiving emails from it, send an email to >e-prime+unsubscribe at googlegroups.com. >To post to this group, send email to e-prime at googlegroups.com. >To view this discussion on the web visit >https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. >For more options, visit >https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tamar.kolodny at gmail.com Thu Apr 25 07:08:52 2013 From: tamar.kolodny at gmail.com (Tamar) Date: Thu, 25 Apr 2013 00:08:52 -0700 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <201304250529.r3P5T8Kx023758@mail9.tpg.com.au> Message-ID: o.k., here is what I found, following your input: In any experiment I create in EP1 (in a neighboring lab...), canvas.copy takes under 1 ms. In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. If I take an experiment created in EP1 and convert it to EP2 - then canvas.copy time is under 1 ms... although nothing in the inline changed... How can that be? On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: > > > I haven't tested any code examples, but have a lot of data showing > canvas.copy in v.1.?.? takes under a ms, supporting David's observations. > Perhaps something here is less instant in v2.?, and a bug has been > identified? > > At 03:19 PM 25/04/2013, you wrote: > > Thank you both your replies! > > I am using E-prime 2.0.10, and a CRT iiyama Vision Master screen, with > display resolution > of 1024 x 768 and a refresh rate of 100 Hz. My operating system is windows > XP. > > I'm troubled with this timing issue because my experiment includes EEG > recording, thus the > synchronization is terribly important. I need to send triggers via the > parallel port exactly at the > onset of each stimulus, or else my EEG signal might be smeared. > Considering that the canvas.copy > takes a refresh cycle to complete - I'm not sure what time ought to be > considered the stimulus onset... > > Anyhow, David, I've tried running your code - and I get dt's of 13-14ms. > Do you think that all the difference > between your 0.22ms to my 13-14ms is due to E-prime1 vs. E-prime2 > differences? That's shocking... > I get the same results as Michiel for the loop codes, as puzzling as they > are... > > Thanks again for your help, > Tamar > > > > > On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: > Hmm. I explored this issue myself three years ago, using EP1 (still my > favorite version for this type of exploration). I just dug up my test > program and ran it again on my trusty old XP laptop at home after > breakfast, and got times of 0.22 ms even for full screen copies, much as > I remember from before (where full screen means 1024 x 768; and yes, > that is less than a millisecond). To be sure, here is the core of my > test code: > > t0 = clock.readmicrosec > dcnvs.copy cnvs > dt = clock.readmicrosec - t0 > msgbox format$( dt/1000, "Standard" ) & " ms" > > where all variables are defined and initialized earlier as expected > (dcnvs is set to Display.Canvas just for notational convenience). > > Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no > evidence that .Copy includes an implicit Display.WaitForVerticalBlank, > to the contrary, the code example there includes an explicit > Display.WaitForVerticalBlank just before the cnvs.Copy. I would be > *extremely* surprised if Canvas.Copy included a > Display.WaitForVerticalBlank, as that would greatly compromise its > utility (e.g., when wanting to Copy several segments to an offscreen > Canvas before copying the complete result to Display.Canvas). > > So I do not know how to account for your results. Mind you, I did all > my tests using good-old EP1 with 1024x768 display resolution. For all I > know things changed with the latest EP version, or things get slower > with larger display resolutions. What EP version do you use? What > display resolution? > > Michiel, I am especially puzzled by your results. Both of your tests > measure the total time to perform a Canvas.Copy and > Display.WaitForVerticalBlank, only in different orders. So you should > get the same time for both tests, regardless of whether Canvas.Copy > includes its own Display.WaitForVerticalBlank. What am I missing? > > Nevertheless, Michiel's advice still stands -- as long as your program > does everything it needs to do within one screen refresh (and assuming > that you *do* synchronize visual displays to the screen refresh, as you > should), then that is good enough. > > ----- > David McFarlane > E-Prime training online: > http://psychology.msu.edu/Workshops_Courses/eprime.aspx > Twitter: @EPrimeMaster (twitter.com/EPrimeMaster) > > /----------- > Stock reminder: 1) I do not work for PST. 2) PST's trained staff take > 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, so make full use of it. 3) > In addition, PST takes questions at their Facebook page > (http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 > ), and offers several instructional videos there and on their YouTube > channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, > though). 4) If you do get an answer from PST staff, please extend the > courtesy of posting their reply back here for the sake of others. > \----------- > > > Cognitology wrote: > > Hi, > > > > A quick look, but I think that you pretty much nailed it: it can take > > quite long to do any canvas operation. Given that your screen refresh > > rate presumably isn???t more than 100 Hz (and in any ways, your foveal > > vision isn???t), I don???t see the problem? Indeed, if you were to draw > many > > things to the main canvas, one after the other, then indeed, it gets to > > be a problem, but as long as the only operation is copying a > ???preloaded??? > > canvas to the shown one, it doesn???t matter all that much. Notice, > given > > that you???re not using E-Prime???s stimdisplays, it???s not clear at > what > > time the stimulus is actually displayed ??? only when it???s done > sending > > the command. I think it???s generally better for critical timing aspects > > of your experiment to avoid canvas as much as possible. Personally, I > > think ???critical timing??? is when it concerns a subliminal vs barely > > supraliminal prime or some such, for other types of stimuli the 10 ms of > > (constant, therefore presumably stimulus independent) delay is of > > trivial concern. > > > > > > > > Just testing some of it myself, and I get values ranging between 15 and > > 17 ??? which is funny, given that my refresh rate is indeed 60, so it > > seems a bit like there???s some sort of display.waitforverticalblank > built > > into canvas.copy. Curiously, this: > > > > For j = 1 To 100 > > > > DrawFixation ???this is just a custom function drawing a line to > > cnvsnext > > > > cnvs.copy cnvsnext > > > > display.waitforverticalblank > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to refresh rates (+- 1 ms). > > > > Whereas: > > > > > > > > For j = 1 To 100 > > > > DrawFixation ???this is just a custom function drawing a line to > > cnvsnext > > > > display.waitforverticalblank > > > > cnvs.copy cnvsnext > > > > debug.print clock.read - clocktime > > > > clocktime = clock.read > > > > Next j > > > > > > > > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes > > should tell us if the first one doesn???t have cutting-off errors, > > otherwise I???d suggest there might be some sort of waitforverticalblank > > built into canvas.copy. > > > > Best, > > > > > > > > Michiel Sovij???rvi-Spap??? > > > > > > > > Helsinki Institute for Information Technology > > > > Aalto & University of Helsinki > > > > Finland > > > > > > > > > > > > > > > > BTW: notice that using debug.print also incurs a delay (last measured at > > 0.7 ms). > > > > > > > > > > > > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On > > Behalf Of *Tamar > > *Sent:* 24. April 2013 08:33 > > *To:* e-p... at googlegroups.com > > *Subject:* Canvas.Copy is taking too long to complete > > > > > > > > I'm programming a visual experiment, and suffering from some timing > > issues. It seems that the line presenting the stimuli (canvas.copy) is > > considerably time consuming: 10-12 ms. I can't figure out the cause for > > this delay, and I would appreciate any help... > > > > Here is the relevant piece of code: > > > > ====== in an initializing inline script, at the begining of SessionProc: > > ====== > > Set MainCanvas = Display.Canvas > > MainCanvas.fillColor = CColor(background_color) > > MainCanvas.clear > > > > For i = 1 To NumStim > > Set StimCanvases(i) = Display.CreateCanvas > > > > 'define destination rect as center of screen > > destRects(i).Left = Display.XRes/2-stim_w/2 > > destRects(i).Top = Display.YRes/2-stim_h/2 > > destRects(i).Right = Display.XRes/2+stim_w/2 > > destRects(i).Bottom = Display.YRes/2+stim_h/2 > > > > 'define source rect as upper left corner > > srcRects(i).Left = 0 > > srcRects(i).Top = 0 > > srcRects(i).Right = stim_w > > srcRects(i).Bottom = stim_h > > > > 'Load the image file > > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" > > > > Next i > > > > ====== in the inline of TrialProc: ======= > > Debug.Print "1:" & clock.read > > StartTrialTime = clock.read > > n = c.GetAttrib("CanvasNum") > > c.SetAttrib "TrialStart", StartTrialTime > > display.WaitForVerticalBlank > > Debug.Print "4:" & clock.read > > StartStimTime = clock.read > > c.SetAttrib "StimStart", StartStimTime > > Debug.Print "5:" & clock.read > > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) > > Debug.Print "6:" & clock.read > > > > > > I've tried a few things: > > - to create variables taking the values of > > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, > > so the mainCanvas.copy line would not need to approach the arrays. > > - to present other simple canvases instead of my real stimuli (just a > > fixation, for example. or an empty canvas) > > - to draw something on the mainCanvas rather than copy a new canvas to > > it (e.g. mainCanvas.Circle). > > > > All of these takes 10-12 ms! (as calculated by subtracting time5 from > > time6). The only way I managed to get rid of the delay was to erase the > > entire row... > > > > Am I missing something here?... > > > > Thanks, > > Tamar > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+u... at googlegroups.com . > To post to this group, send email to e-p... at googlegroups.com > . > To view this discussion on the web visit > https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. > For more options, visit https://groups.google.com/groups/opt_out. > > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Vt8fFfvwiJwJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pquain at une.edu.au Thu Apr 25 07:24:20 2013 From: pquain at une.edu.au (Peter Quain) Date: Thu, 25 Apr 2013 17:24:20 +1000 Subject: Canvas.Copy is taking too long to complete In-Reply-To: Message-ID: there must be some interfacing routines we can't see in the *.ebs files that differ between v1.? and v.2.?, and that e-prime calls when the scripts are run??? They both(?) must be allowable, and they must call upon different routines in e-prime that communicate with the hardware? At 05:08 PM 25/04/2013, you wrote: >o.k., here is what I found, following your input: > >In any experiment I create in EP1 (in a >neighboring lab...), canvas.copy takes under 1 ms. >In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. >If I take an experiment created in EP1 and >convert it to EP2 - then canvas.copy time is >under 1 ms... although nothing in the inline changed... >How can that be? > > > >On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: > >I haven't tested any code examples, but have a >lot of data showing canvas.copy in v.1.?.? takes >under a ms, supporting David's observations. >Perhaps something here is less instant in v2.?, and a bug has been identified? > >At 03:19 PM 25/04/2013, you wrote: >>Thank you both your replies! >> >>I am using E-prime 2.0.10, and a CRT iiyama >>Vision Master screen, with display resolution >>of 1024 x 768 and a refresh rate of 100 Hz. My >>operating system is windows XP. >> >>I'm troubled with this timing issue because my >>experiment includes EEG recording, thus the >>synchronization is terribly important. I need >>to send triggers via the parallel port exactly at the >>onset of each stimulus, or else my EEG signal >>might be smeared. Considering that the canvas.copy >>takes a refresh cycle to complete - I'm not >>sure what time ought to be considered the stimulus onset... >> >>Anyhow, David, I've tried running your code - >>and I get dt's of 13-14ms. Do you think that all the difference >>between your 0.22ms to my 13-14ms is due to >>E-prime1 vs. E-prime2 differences? That's shocking... >>I get the same results as Michiel for the loop >>codes, as puzzling as they are... >> >>Thanks again for your help, >>Tamar >> >> >> >> >>On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >>Hmm. I explored this issue myself three years ago, using EP1 (still my >>favorite version for this type of exploration). I just dug up my test >>program and ran it again on my trusty old XP laptop at home after >>breakfast, and got times of 0.22 ms even for full screen copies, much as >>I remember from before (where full screen means 1024 x 768; and yes, >>that is less than a millisecond). To be sure, here is the core of my >>test code: >> t0 = clock.readmicrosec >> dcnvs.copy cnvs >> dt = clock.readmicrosec - t0 >> msgbox format$( dt/1000, "Standard" ) & " ms" >>where all variables are defined and initialized earlier as expected >>(dcnvs is set to Display.Canvas just for notational convenience). >>Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >>evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >>to the contrary, the code example there includes an explicit >>Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >>*extremely* surprised if Canvas.Copy included a >>Display.WaitForVerticalBlank, as that would greatly compromise its >>utility (e.g., when wanting to Copy several segments to an offscreen >>Canvas before copying the complete result to Display.Canvas). >>So I do not know how to account for your results. Mind you, I did all >>my tests using good-old EP1 with 1024x768 display resolution. For all I >>know things changed with the latest EP version, or things get slower >>with larger display resolutions. What EP version do you use? What >>display resolution? >>Michiel, I am especially puzzled by your results. Both of your tests >>measure the total time to perform a Canvas.Copy and >>Display.WaitForVerticalBlank, only in different orders. So you should >>get the same time for both tests, regardless of whether Canvas.Copy >>includes its own Display.WaitForVerticalBlank. What am I missing? >>Nevertheless, Michiel's advice still stands -- as long as your program >>does everything it needs to do within one screen refresh (and assuming >>that you *do* synchronize visual displays to the screen refresh, as you >>should), then that is good enough. >>----- >>David McFarlane >>E-Prime training online: >>http://psychology.msu.edu/Workshops_Courses/eprime.aspx >> >>Twitter: @EPrimeMaster >>(twitter.com/EPrimeMaster) >>/----------- >>Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >>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, so make full use of it. 3) >>In addition, PST takes questions at their Facebook page >>( http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 >>), and offers several instructional videos there and on their YouTube >>channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, >>though). 4) If you do get an answer from PST staff, please extend the >>courtesy of posting their reply back here for the sake of others. >>\----------- >> >>Cognitology wrote: >> > Hi, >> > >> > A quick look, but I think that you pretty much nailed it: it can take >> > quite long to do any canvas operation. Given that your screen refresh >> > rate presumably isn???t more than 100 Hz (and in any ways, your foveal >> > vision isn???t), I don???t see the problem? >> Indeed, if you were to draw many >> > things to the main canvas, one after the other, then indeed, it gets to >> > be a problem, but as long as the only >> operation is copying a ???preloaded??? >> > canvas to the shown one, it doesn???t matter all that much. Notice, given >> > that you???re not using E-Prime???s >> stimdisplays, it???s not clear at what >> > time the stimulus is actually displayed ??? only when it???s done sending >> > the command. I think it???s generally better for critical timing aspects >> > of your experiment to avoid canvas as much as possible. Personally, I >> > think ???critical timing??? is when it concerns a subliminal vs barely >> > supraliminal prime or some such, for other types of stimuli the 10 ms of >> > (constant, therefore presumably stimulus independent) delay is of >> > trivial concern. >> > >> > >> > >> > Just testing some of it myself, and I get values ranging between 15 and >> > 17 ??? which is funny, given that my refresh rate is indeed 60, so it >> > seems a bit like there???s some sort of >> display.waitforverticalblank built >> > into canvas.copy. Curiously, this: >> > >> > For j = 1 To 100 >> > >> > DrawFixation ???this is just a custom function drawing a line to >> > cnvsnext >> > >> > cnvs.copy cnvsnext >> > >> > display.waitforverticalblank >> > >> > debug.print clock.read - clocktime >> > >> > clocktime = clock.read >> > >> > Next j >> > >> > >> > >> > Gives me latencies equal to refresh rates (+- 1 ms). >> > >> > Whereas: >> > >> > >> > >> > For j = 1 To 100 >> > >> > DrawFixation ???this is just a custom function drawing a line to >> > cnvsnext >> > >> > display.waitforverticalblank >> > >> > cnvs.copy cnvsnext >> > >> > debug.print clock.read - clocktime >> > >> > clocktime = clock.read >> > >> > Next j >> > >> > >> > >> > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes >> > should tell us if the first one doesn???t have cutting-off errors, >> > otherwise I???d suggest there might be some sort of waitforverticalblank >> > built into canvas.copy. >> > >> > Best, >> > >> > >> > >> > Michiel Sovij???rvi-Spap??? >> > >> > >> > >> > Helsinki Institute for Information Technology >> > >> > Aalto & University of Helsinki >> > >> > Finland >> > >> > >> > >> > >> > >> > >> > >> > BTW: notice that using debug.print also incurs a delay (last measured at >> > 0.7 ms). >> > >> > >> > >> > >> > >> > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On >> > Behalf Of *Tamar >> > *Sent:* 24. April 2013 08:33 >> > *To:* e-p... at googlegroups.com >> > *Subject:* Canvas.Copy is taking too long to complete >> > >> > >> > >> > I'm programming a visual experiment, and suffering from some timing >> > issues. It seems that the line presenting the stimuli (canvas.copy) is >> > considerably time consuming: 10-12 ms. I can't figure out the cause for >> > this delay, and I would appreciate any help... >> > >> > Here is the relevant piece of code: >> > >> > ====== in an initializing inline script, at the begining of SessionProc: >> > ====== >> > Set MainCanvas = Display.Canvas >> > MainCanvas.fillColor = CColor(background_color) >> > MainCanvas.clear >> > >> > For i = 1 To NumStim >> > Set StimCanvases(i) = Display.CreateCanvas >> > >> > 'define destination rect as center of screen >> > destRects(i).Left = Display.XRes/2-stim_w/2 >> > destRects(i).Top = Display.YRes/2-stim_h/2 >> > destRects(i).Right = Display.XRes/2+stim_w/2 >> > destRects(i).Bottom = Display.YRes/2+stim_h/2 >> > >> > 'define source rect as upper left corner >> > srcRects(i).Left = 0 >> > srcRects(i).Top = 0 >> > srcRects(i).Right = stim_w >> > srcRects(i).Bottom = stim_h >> > >> > 'Load the image file >> > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" >> > >> > Next i >> > >> > ====== in the inline of TrialProc: ======= >> > Debug.Print "1:" & clock.read >> > StartTrialTime = clock.read >> > n = c.GetAttrib("CanvasNum") >> > c.SetAttrib "TrialStart", StartTrialTime >> > display.WaitForVerticalBlank >> > Debug.Print "4:" & clock.read >> > StartStimTime = clock.read >> > c.SetAttrib "StimStart", StartStimTime >> > Debug.Print "5:" & clock.read >> > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) >> > Debug.Print "6:" & clock.read >> > >> > >> > I've tried a few things: >> > - to create variables taking the values of >> > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, >> > so the mainCanvas.copy line would not need to approach the arrays. >> > - to present other simple canvases instead of my real stimuli (just a >> > fixation, for example. or an empty canvas) >> > - to draw something on the mainCanvas rather than copy a new canvas to >> > it (e.g. mainCanvas.Circle). >> > >> > All of these takes 10-12 ms! (as calculated by subtracting time5 from >> > time6). The only way I managed to get rid of the delay was to erase the >> > entire row... >> > >> > Am I missing something here?... >> > >> > Thanks, >> > Tamar >> >>-- >>You received this message because you are >>subscribed to the Google Groups "E-Prime" group. >>To unsubscribe from this group and stop >>receiving emails from it, send an email to e-prime+u... at googlegroups.com. >>To post to this group, send email to e-p... at googlegroups.com. >>To view this discussion on the web visit >>https://groups.google.com/d/msg/e-prime/-/0DZ5JBsrwGUJ. >>For more options, visit >>https://groups.google.com/groups/opt_out. >> >> > >-- >You received this message because you are >subscribed to the Google Groups "E-Prime" group. >To unsubscribe from this group and stop >receiving emails from it, send an email to >e-prime+unsubscribe at googlegroups.com. >To post to this group, send email to e-prime at googlegroups.com. >To view this discussion on the web visit >https://groups.google.com/d/msg/e-prime/-/Vt8fFfvwiJwJ. >For more options, visit >https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Thu Apr 25 15:16:02 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 25 Apr 2013 11:16:02 -0400 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <201304250724.r3P7OMst022135@mail16.tpgi.com.au> Message-ID: Tamar, Very curious indeed, I wish I had the time to explore this further myself. You should definitely take this now to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp , and send them a link to this discussion (for your convenience, that link is https://groups.google.com/d/topic/e-prime/OX528cBioek ). And then please post back with the results. Thanks, ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/25/2013 03:24 AM Thursday, Peter Quain wrote: >there must be some interfacing routines we can't >see in the *.ebs files that differ between v1.? >and v.2.?, and that e-prime calls when the >scripts are run??? They both(?) must be >allowable, and they must call upon different >routines in e-prime that communicate with the hardware? > >At 05:08 PM 25/04/2013, you wrote: >>o.k., here is what I found, following your input: >> >>In any experiment I create in EP1 (in a >>neighboring lab...), canvas.copy takes under 1 ms. >>In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. >>If I take an experiment created in EP1 and >>convert it to EP2 - then canvas.copy time is >>under 1 ms... although nothing in the inline changed... >>How can that be? >> >> >> >>On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: >>I haven't tested any code examples, but have a >>lot of data showing canvas.copy in v.1.?.? >>takes under a ms, supporting David's >>observations. Perhaps something here is less >>instant in v2.?, and a bug has been identified? >>At 03:19 PM 25/04/2013, you wrote: >>>Thank you both your replies! >>>I am using E-prime 2.0.10, and a CRT iiyama >>>Vision Master screen, with display resolution >>>of 1024 x 768 and a refresh rate of 100 Hz. My >>>operating system is windows XP. >>>I'm troubled with this timing issue because my >>>experiment includes EEG recording, thus the >>>synchronization is terribly important. I need >>>to send triggers via the parallel port exactly at the >>>onset of each stimulus, or else my EEG signal >>>might be smeared. Considering that the canvas.copy >>>takes a refresh cycle to complete - I'm not >>>sure what time ought to be considered the stimulus onset... >>>Anyhow, David, I've tried running your code - >>>and I get dt's of 13-14ms. Do you think that all the difference >>>between your 0.22ms to my 13-14ms is due to >>>E-prime1 vs. E-prime2 differences? That's shocking... >>>I get the same results as Michiel for the loop >>>codes, as puzzling as they are... >>>Thanks again for your help, >>>Tamar >>> >>> >>> >>>On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >>>Hmm. I explored this issue myself three years ago, using EP1 (still my >>>favorite version for this type of exploration). I just dug up my test >>>program and ran it again on my trusty old XP laptop at home after >>>breakfast, and got times of 0.22 ms even for full screen copies, much as >>>I remember from before (where full screen means 1024 x 768; and yes, >>>that is less than a millisecond). To be sure, here is the core of my >>>test code: >>> t0 = clock.readmicrosec >>> dcnvs.copy cnvs >>> dt = clock.readmicrosec - t0 >>> msgbox format$( dt/1000, "Standard" ) & " ms" >>>where all variables are defined and initialized earlier as expected >>>(dcnvs is set to Display.Canvas just for notational convenience). >>>Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >>>evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >>>to the contrary, the code example there includes an explicit >>>Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >>>*extremely* surprised if Canvas.Copy included a >>>Display.WaitForVerticalBlank, as that would greatly compromise its >>>utility (e.g., when wanting to Copy several segments to an offscreen >>>Canvas before copying the complete result to Display.Canvas). >>>So I do not know how to account for your results. Mind you, I did all >>>my tests using good-old EP1 with 1024x768 display resolution. For all I >>>know things changed with the latest EP version, or things get slower >>>with larger display resolutions. What EP version do you use? What >>>display resolution? >>>Michiel, I am especially puzzled by your results. Both of your tests >>>measure the total time to perform a Canvas.Copy and >>>Display.WaitForVerticalBlank, only in different orders. So you should >>>get the same time for both tests, regardless of whether Canvas.Copy >>>includes its own Display.WaitForVerticalBlank. What am I missing? >>>Nevertheless, Michiel's advice still stands -- as long as your program >>>does everything it needs to do within one screen refresh (and assuming >>>that you *do* synchronize visual displays to the screen refresh, as you >>>should), then that is good enough. >>>----- >>>David McFarlane >>>E-Prime training online: >>>http://psychology.msu.edu/Workshops_Courses/eprime.aspx >>> >>>Twitter: @EPrimeMaster >>>(twitter.com/EPrimeMaster) >>>/----------- >>>Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >>>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, so make full use of it. 3) >>>In addition, PST takes questions at their Facebook page >>>( http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 >>>), and offers several instructional videos there and on their YouTube >>>channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, >>>though). 4) If you do get an answer from PST staff, please extend the >>>courtesy of posting their reply back here for the sake of others. >>>\----------- >>>Cognitology wrote: >>> > Hi, >>> > >>> > A quick look, but I think that you pretty much nailed it: it can take >>> > quite long to do any canvas operation. Given that your screen refresh >>> > rate presumably isn???t more than 100 Hz (and in any ways, your foveal >>> > vision isn???t), I don???t see the problem? >>> Indeed, if you were to draw many >>> > things to the main canvas, one after the other, then indeed, it gets to >>> > be a problem, but as long as the only >>> operation is copying a ???preloaded??? >>> > canvas to the shown one, it doesn???t >>> matter all that much. Notice, given >>> > that you???re not using E-Prime???s >>> stimdisplays, it???s not clear at what >>> > time the stimulus is actually displayed ??? >>> only when it???s done sending >>> > the command. I think it???s generally better for critical timing aspects >>> > of your experiment to avoid canvas as much as possible. Personally, I >>> > think ???critical timing??? is when it concerns a subliminal vs barely >>> > supraliminal prime or some such, for other types of stimuli the 10 ms of >>> > (constant, therefore presumably stimulus independent) delay is of >>> > trivial concern. >>> > >>> > >>> > >>> > Just testing some of it myself, and I get values ranging between 15 and >>> > 17 ??? which is funny, given that my refresh rate is indeed 60, so it >>> > seems a bit like there???s some sort of >>> display.waitforverticalblank built >>> > into canvas.copy. Curiously, this: >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation ???this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > cnvs.copy cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to refresh rates (+- 1 ms). >>> > >>> > Whereas: >>> > >>> > >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation ???this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > cnvs.copy cnvsnext >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes >>> > should tell us if the first one doesn???t have cutting-off errors, >>> > otherwise I???d suggest there might be some sort of waitforverticalblank >>> > built into canvas.copy. >>> > >>> > Best, >>> > >>> > >>> > >>> > Michiel Sovij???rvi-Spap??? >>> > >>> > >>> > >>> > Helsinki Institute for Information Technology >>> > >>> > Aalto & University of Helsinki >>> > >>> > Finland >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > BTW: notice that using debug.print also incurs a delay (last measured at >>> > 0.7 ms). >>> > >>> > >>> > >>> > >>> > >>> > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On >>> > Behalf Of *Tamar >>> > *Sent:* 24. April 2013 08:33 >>> > *To:* e-p... at googlegroups.com >>> > *Subject:* Canvas.Copy is taking too long to complete >>> > >>> > >>> > >>> > I'm programming a visual experiment, and suffering from some timing >>> > issues. It seems that the line presenting the stimuli (canvas.copy) is >>> > considerably time consuming: 10-12 ms. I can't figure out the cause for >>> > this delay, and I would appreciate any help... >>> > >>> > Here is the relevant piece of code: >>> > >>> > ====== in an initializing inline script, at the begining of SessionProc: >>> > ====== >>> > Set MainCanvas = Display.Canvas >>> > MainCanvas.fillColor = CColor(background_color) >>> > MainCanvas.clear >>> > >>> > For i = 1 To NumStim >>> > Set StimCanvases(i) = Display.CreateCanvas >>> > >>> > 'define destination rect as center of screen >>> > destRects(i).Left = Display.XRes/2-stim_w/2 >>> > destRects(i).Top = Display.YRes/2-stim_h/2 >>> > destRects(i).Right = Display.XRes/2+stim_w/2 >>> > destRects(i).Bottom = Display.YRes/2+stim_h/2 >>> > >>> > 'define source rect as upper left corner >>> > srcRects(i).Left = 0 >>> > srcRects(i).Top = 0 >>> > srcRects(i).Right = stim_w >>> > srcRects(i).Bottom = stim_h >>> > >>> > 'Load the image file >>> > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" >>> > >>> > Next i >>> > >>> > ====== in the inline of TrialProc: ======= >>> > Debug.Print "1:" & clock.read >>> > StartTrialTime = clock.read >>> > n = c.GetAttrib("CanvasNum") >>> > c.SetAttrib "TrialStart", StartTrialTime >>> > display.WaitForVerticalBlank >>> > Debug.Print "4:" & clock.read >>> > StartStimTime = clock.read >>> > c.SetAttrib "StimStart", StartStimTime >>> > Debug.Print "5:" & clock.read >>> > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) >>> > Debug.Print "6:" & clock.read >>> > >>> > >>> > I've tried a few things: >>> > - to create variables taking the values of >>> > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, >>> > so the mainCanvas.copy line would not need to approach the arrays. >>> > - to present other simple canvases instead of my real stimuli (just a >>> > fixation, for example. or an empty canvas) >>> > - to draw something on the mainCanvas rather than copy a new canvas to >>> > it (e.g. mainCanvas.Circle). >>> > >>> > All of these takes 10-12 ms! (as calculated by subtracting time5 from >>> > time6). The only way I managed to get rid of the delay was to erase the >>> > entire row... >>> > >>> > Am I missing something here?... >>> > >>> > Thanks, >>> > Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From charlenebebko at gmail.com Fri Apr 26 01:35:37 2013 From: charlenebebko at gmail.com (CPB) Date: Thu, 25 Apr 2013 18:35:37 -0700 Subject: Any consultants for hire? Message-ID: Does anyone know of a consultant we can hire to assist in completing the synchronization of Tobii eyetracker and EEG using E-prime. We have the E-Prime program complete, except we are not able to figure out the programming necessary to put markers in the EEG reading. Actually, we aren't all that sure that the two are even 'talking to each other,' but we do have the hardware correctly configured. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/PybfGduy5wkJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mspape at cognitology.eu Fri Apr 26 12:54:45 2013 From: mspape at cognitology.eu (Cognitology) Date: Fri, 26 Apr 2013 15:54:45 +0300 Subject: Canvas.Copy is taking too long to complete In-Reply-To: <517948b7.c8c5320a.4bff.ffffd04fSMTPIN_ADDED_MISSING@gmr-mx.google.com> Message-ID: Hi, So, for anyone who'd like to test this. I use win7, 64bits (to do the coding anyway), EP2.0.10.242. This is the full code of the experiment and should work on any E-Prime with just a single inline bit in which you can paste the following: ------------------------ Dim cnvs As Canvas 'the active display Dim cnvsnext As Canvas 'the buffered canvas Dim j As Integer Dim clocktimes(1 To 100,1 To 4) As Long Set cnvs = Display.Canvas Set cnvsnext = Display.CreateCanvas() sleep 8000 'this is required for early experiment timing errors debug.print "*****WAIT BEFORE CNVSCOPY****" For j = 1 To 100 clocktimes(j,1) = clock.read cnvsnext.Line random(0,100), random(0,100), random(0,100), random(0,100) clocktimes(j,2) = clock.read - clocktimes(j,1) display.waitforverticalblank clocktimes(j,3) = clock.read - clocktimes(j,1) cnvs.copy cnvsnext clocktimes(j,4) = clock.read - clocktimes(j,1) Next j For j = 1 To 100 debug.print "Trial " &CStr(j) & ": " & CStr(clocktimes(j,1)) & " " & CStr(clocktimes(j,2)) & " " & CStr(clocktimes(j,3)) & " " & CStr(clocktimes(j,4)) Next j debug.print "Debug printing took " & CStr(clock.read - (clocktimes(100,1)+clocktimes(100,4))) For j = 1 To 100 clocktimes(j,1) = clock.read cnvsnext.Line random(100,200), random(0,100), random(100,200), random(0,100) clocktimes(j,2) = clock.read - clocktimes(j,1) cnvs.copy cnvsnext clocktimes(j,3) = clock.read - clocktimes(j,1) display.waitforverticalblank clocktimes(j,4) = clock.read - clocktimes(j,1) Next j debug.print "*****WAIT AFTER CNVSCOPY****" For j = 1 To 100 debug.print "Trial " &CStr(j) & ": " & CStr(clocktimes(j,1)) & " " & CStr(clocktimes(j,2)) & " " & CStr(clocktimes(j,3)) & " " & CStr(clocktimes(j,4)) Next j --------------------------- Apart from showing beautiful lines, it gives me the following info in the debug output: *****WAIT BEFORE CNVSCOPY**** Trial 1: 15854 1 7 24 Trial 2: 15878 2 17 33 Trial 3: 15912 1 16 33 Trial 4: 15945 1 16 33 Trial 5: 15978 2 17 33 Trial 6: 16012 1 16 33 Trial 7: 16045 1 16 33 Trial 8: 16078 1 17 33 Trial 9: 16111 2 17 34 Trial 10: 16145 1 16 33 Trial 11: 16178 1 17 33 Trial 12: 16211 2 17 34 Trial 13: 16245 1 16 33 Trial 14: 16278 1 17 33 Trial 15: 16311 2 17 34 Trial 16: 16345 1 16 33 Trial 17: 16378 2 17 33 Trial 18: 16411 2 17 34 Trial 19: 16445 1 16 33 Trial 20: 16478 1 17 33 Trial 21: 16511 2 17 34 Trial 22: 16545 1 16 33 Trial 23: 16578 1 17 33 Trial 24: 16611 2 17 34 Trial 25: 16645 1 16 33 Trial 26: 16678 2 17 33 Trial 27: 16711 2 17 34 Trial 28: 16745 1 16 33 Trial 29: 16778 1 17 33 Trial 30: 16811 2 17 34 Trial 31: 16845 1 16 33 Trial 32: 16878 1 17 33 Trial 33: 16911 2 17 34 Trial 34: 16945 1 16 33 Trial 35: 16978 1 17 33 Trial 36: 17011 2 17 34 Trial 37: 17045 1 16 33 Trial 38: 17078 2 17 33 Trial 39: 17111 2 17 34 Trial 40: 17145 1 16 33 Trial 41: 17178 1 17 33 Trial 42: 17211 2 17 34 Trial 43: 17245 1 16 33 Trial 44: 17278 1 16 33 Trial 45: 17311 2 17 34 Trial 46: 17345 1 16 33 Trial 47: 17378 1 16 33 Trial 48: 17411 2 17 33 Trial 49: 17445 1 16 33 Trial 50: 17478 1 16 33 Trial 51: 17511 2 17 34 Trial 52: 17545 1 16 33 Trial 53: 17578 2 17 33 Trial 54: 17611 2 17 34 Trial 55: 17645 1 16 33 Trial 56: 17678 1 16 33 Trial 57: 17711 2 17 33 Trial 58: 17745 1 16 33 Trial 59: 17778 1 16 33 Trial 60: 17812 1 16 32 Trial 61: 17845 1 16 33 Trial 62: 17878 1 16 33 Trial 63: 17911 2 17 33 Trial 64: 17944 2 17 34 Trial 65: 17978 1 16 33 Trial 66: 18011 2 17 33 Trial 67: 18044 2 17 34 Trial 68: 18078 1 16 33 Trial 69: 18111 1 17 33 Trial 70: 18144 2 17 34 Trial 71: 18178 1 16 33 Trial 72: 18211 1 17 33 Trial 73: 18244 2 17 34 Trial 74: 18278 1 16 33 Trial 75: 18311 2 17 33 Trial 76: 18344 2 17 34 Trial 77: 18378 1 16 33 Trial 78: 18411 2 17 33 Trial 79: 18444 2 17 34 Trial 80: 18478 1 16 33 Trial 81: 18511 2 17 33 Trial 82: 18544 2 17 34 Trial 83: 18578 1 16 33 Trial 84: 18611 2 17 33 Trial 85: 18644 2 17 34 Trial 86: 18678 1 16 33 Trial 87: 18711 1 17 33 Trial 88: 18744 2 17 34 Trial 89: 18778 1 16 33 Trial 90: 18811 1 17 33 Trial 91: 18844 2 17 34 Trial 92: 18878 1 16 33 Trial 93: 18911 1 17 33 Trial 94: 18944 2 17 34 Trial 95: 18978 1 16 33 Trial 96: 19011 1 17 33 Trial 97: 19044 2 17 34 Trial 98: 19078 1 16 33 Trial 99: 19111 2 17 33 Trial 100: 19144 2 17 33 Debug printing took 214 *****WAIT AFTER CNVSCOPY**** Trial 1: 19393 2 18 18 Trial 2: 19411 1 16 17 Trial 3: 19428 1 16 16 Trial 4: 19445 1 16 16 Trial 5: 19461 1 16 17 Trial 6: 19478 1 16 16 Trial 7: 19495 1 16 16 Trial 8: 19511 2 17 17 Trial 9: 19528 2 16 16 Trial 10: 19544 2 17 17 Trial 11: 19561 1 16 17 Trial 12: 19578 1 16 16 Trial 13: 19594 2 17 17 Trial 14: 19611 1 16 17 Trial 15: 19628 1 16 16 Trial 16: 19644 2 17 17 Trial 17: 19661 1 16 17 Trial 18: 19678 1 16 16 Trial 19: 19694 2 17 17 Trial 20: 19711 1 16 17 Trial 21: 19728 1 16 16 Trial 22: 19744 2 17 17 Trial 23: 19761 2 16 17 Trial 24: 19778 1 16 16 Trial 25: 19794 2 17 17 Trial 26: 19811 1 16 17 Trial 27: 19828 1 16 16 Trial 28: 19844 2 17 17 Trial 29: 19861 1 16 17 Trial 30: 19878 1 16 16 Trial 31: 19894 2 17 17 Trial 32: 19911 1 16 17 Trial 33: 19928 1 16 16 Trial 34: 19944 2 17 17 Trial 35: 19961 1 16 16 Trial 36: 19978 1 16 16 Trial 37: 19994 2 17 17 Trial 38: 20011 1 16 17 Trial 39: 20028 1 16 16 Trial 40: 20044 2 17 17 Trial 41: 20061 1 16 17 Trial 42: 20078 1 16 16 Trial 43: 20094 2 17 17 Trial 44: 20111 1 16 16 Trial 45: 20128 1 16 16 Trial 46: 20144 2 17 17 Trial 47: 20161 1 16 16 Trial 48: 20178 1 16 16 Trial 49: 20194 2 17 17 Trial 50: 20211 1 16 17 Trial 51: 20228 1 16 16 Trial 52: 20244 2 17 17 Trial 53: 20261 1 16 17 Trial 54: 20278 1 16 16 Trial 55: 20294 1 17 17 Trial 56: 20311 1 16 16 Trial 57: 20328 1 16 16 Trial 58: 20344 2 17 17 Trial 59: 20361 1 16 16 Trial 60: 20377 2 17 17 Trial 61: 20394 2 17 17 Trial 62: 20411 1 16 16 Trial 63: 20427 2 17 17 Trial 64: 20444 2 17 17 Trial 65: 20461 1 16 16 Trial 66: 20478 1 16 16 Trial 67: 20494 2 17 17 Trial 68: 20511 1 16 16 Trial 69: 20528 1 16 16 Trial 70: 20544 1 17 17 Trial 71: 20561 1 16 16 Trial 72: 20577 2 17 17 Trial 73: 20594 2 17 17 Trial 74: 20611 1 16 16 Trial 75: 20627 2 17 17 Trial 76: 20644 1 17 17 Trial 77: 20661 1 16 16 Trial 78: 20677 2 17 17 Trial 79: 20694 1 17 17 Trial 80: 20711 1 16 16 Trial 81: 20728 1 16 16 Trial 82: 20744 2 17 17 Trial 83: 20761 1 16 16 Trial 84: 20778 1 16 16 Trial 85: 20794 2 17 17 Trial 86: 20811 1 16 16 Trial 87: 20828 1 16 16 Trial 88: 20844 2 17 17 Trial 89: 20861 1 16 16 Trial 90: 20877 2 17 17 Trial 91: 20894 1 17 17 Trial 92: 20911 1 16 16 Trial 93: 20928 1 16 16 Trial 94: 20944 1 17 17 Trial 95: 20961 1 16 16 Trial 96: 20977 2 17 17 Trial 97: 20994 2 17 17 Trial 98: 21011 1 16 16 Trial 99: 21027 2 17 17 Trial 100: 21044 1 16 17 ---- Clearly then, something strange is going on. If anyone would like to verify this on their own PC/E-Prime, be my guest. Best, Michiel -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 25. April 2013 18:16 To: e-prime at googlegroups.com; e-prime at googlegroups.com Subject: Re: Canvas.Copy is taking too long to complete Tamar, Very curious indeed, I wish I had the time to explore this further myself. You should definitely take this now to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp , and send them a link to this discussion (for your convenience, that link is https://groups.google.com/d/topic/e-prime/OX528cBioek ). And then please post back with the results. Thanks, ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/25/2013 03:24 AM Thursday, Peter Quain wrote: >there must be some interfacing routines we can't >see in the *.ebs files that differ between v1.? >and v.2.?, and that e-prime calls when the >scripts are run??? They both(?) must be >allowable, and they must call upon different >routines in e-prime that communicate with the hardware? > >At 05:08 PM 25/04/2013, you wrote: >>o.k., here is what I found, following your input: >> >>In any experiment I create in EP1 (in a >>neighboring lab...), canvas.copy takes under 1 ms. >>In any experiment I create in EP2, canvas.copy takes a whole refresh cycle. >>If I take an experiment created in EP1 and >>convert it to EP2 - then canvas.copy time is >>under 1 ms... although nothing in the inline changed... >>How can that be? >> >> >> >>On Thursday, April 25, 2013 8:29:06 AM UTC+3, Peter Quain wrote: >>I haven't tested any code examples, but have a >>lot of data showing canvas.copy in v.1.?.? >>takes under a ms, supporting David's >>observations. Perhaps something here is less >>instant in v2.?, and a bug has been identified? >>At 03:19 PM 25/04/2013, you wrote: >>>Thank you both your replies! >>>I am using E-prime 2.0.10, and a CRT iiyama >>>Vision Master screen, with display resolution >>>of 1024 x 768 and a refresh rate of 100 Hz. My >>>operating system is windows XP. >>>I'm troubled with this timing issue because my >>>experiment includes EEG recording, thus the >>>synchronization is terribly important. I need >>>to send triggers via the parallel port exactly at the >>>onset of each stimulus, or else my EEG signal >>>might be smeared. Considering that the canvas.copy >>>takes a refresh cycle to complete - I'm not >>>sure what time ought to be considered the stimulus onset... >>>Anyhow, David, I've tried running your code - >>>and I get dt's of 13-14ms. Do you think that all the difference >>>between your 0.22ms to my 13-14ms is due to >>>E-prime1 vs. E-prime2 differences? That's shocking... >>>I get the same results as Michiel for the loop >>>codes, as puzzling as they are... >>>Thanks again for your help, >>>Tamar >>> >>> >>> >>>On Wednesday, April 24, 2013 4:44:46 PM UTC+3, McFarlane, David wrote: >>>Hmm. I explored this issue myself three years ago, using EP1 (still my >>>favorite version for this type of exploration). I just dug up my test >>>program and ran it again on my trusty old XP laptop at home after >>>breakfast, and got times of 0.22 ms even for full screen copies, much as >>>I remember from before (where full screen means 1024 x 768; and yes, >>>that is less than a millisecond). To be sure, here is the core of my >>>test code: >>> t0 = clock.readmicrosec >>> dcnvs.copy cnvs >>> dt = clock.readmicrosec - t0 >>> msgbox format$( dt/1000, "Standard" ) & " ms" >>>where all variables are defined and initialized earlier as expected >>>(dcnvs is set to Display.Canvas just for notational convenience). >>>Also, I looked at the Canvas.Copy topic in the E-Basic Help -- no >>>evidence that .Copy includes an implicit Display.WaitForVerticalBlank, >>>to the contrary, the code example there includes an explicit >>>Display.WaitForVerticalBlank just before the cnvs.Copy. I would be >>>*extremely* surprised if Canvas.Copy included a >>>Display.WaitForVerticalBlank, as that would greatly compromise its >>>utility (e.g., when wanting to Copy several segments to an offscreen >>>Canvas before copying the complete result to Display.Canvas). >>>So I do not know how to account for your results. Mind you, I did all >>>my tests using good-old EP1 with 1024x768 display resolution. For all I >>>know things changed with the latest EP version, or things get slower >>>with larger display resolutions. What EP version do you use? What >>>display resolution? >>>Michiel, I am especially puzzled by your results. Both of your tests >>>measure the total time to perform a Canvas.Copy and >>>Display.WaitForVerticalBlank, only in different orders. So you should >>>get the same time for both tests, regardless of whether Canvas.Copy >>>includes its own Display.WaitForVerticalBlank. What am I missing? >>>Nevertheless, Michiel's advice still stands -- as long as your program >>>does everything it needs to do within one screen refresh (and assuming >>>that you *do* synchronize visual displays to the screen refresh, as you >>>should), then that is good enough. >>>----- >>>David McFarlane >>>E-Prime training online: >>>http://psycholog y.msu.edu/Workshops_Courses/eprime.aspx >>> >>>Twitter: @EPrimeMaster >>>(twitter.com/EPrimeMaster) >>>/----------- >>>Stock reminder: 1) I do not work for PST. 2) PST's trained staff take >>>any and all questions at >>>http://support.pst net.com/e%2Dprime/support/login.asp >>>, and they strive >>>to respond to all requests in 24-48 hours, so make full use of it. 3) >>>In addition, PST takes questions at their Facebook page >>>( http://www.facebook.com/pages/Psychology-Software-Tools-Inc/241802160683 >>>), and offers several instructional videos there and on their YouTube >>>channel ( http://www.youtube.com/user/PSTNET ) (no Twitter feed yet, >>>though). 4) If you do get an answer from PST staff, please extend the >>>courtesy of posting their reply back here for the sake of others. >>>\----------- >>>Cognitology wrote: >>> > Hi, >>> > >>> > A quick look, but I think that you pretty much nailed it: it can take >>> > quite long to do any canvas operation. Given that your screen refresh >>> > rate presumably isn???t more than 100 Hz (and in any ways, your foveal >>> > vision isn???t), I don???t see the problem? >>> Indeed, if you were to draw many >>> > things to the main canvas, one after the other, then indeed, it gets to >>> > be a problem, but as long as the only >>> operation is copying a ???preloaded??? >>> > canvas to the shown one, it doesn???t >>> matter all that much. Notice, given >>> > that you???re not using E-Prime???s >>> stimdisplays, it???s not clear at what >>> > time the stimulus is actually displayed ??? >>> only when it???s done sending >>> > the command. I think it???s generally better for critical timing aspects >>> > of your experiment to avoid canvas as much as possible. Personally, I >>> > think ???critical timing??? is when it concerns a subliminal vs barely >>> > supraliminal prime or some such, for other types of stimuli the 10 ms of >>> > (constant, therefore presumably stimulus independent) delay is of >>> > trivial concern. >>> > >>> > >>> > >>> > Just testing some of it myself, and I get values ranging between 15 and >>> > 17 ??? which is funny, given that my refresh rate is indeed 60, so it >>> > seems a bit like there???s some sort of >>> display.waitforverticalblank built >>> > into canvas.copy. Curiously, this: >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation ???this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > cnvs.copy cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to refresh rates (+- 1 ms). >>> > >>> > Whereas: >>> > >>> > >>> > >>> > For j = 1 To 100 >>> > >>> > DrawFixation ???this is just a custom function drawing a line to >>> > cnvsnext >>> > >>> > display.waitforverticalblank >>> > >>> > cnvs.copy cnvsnext >>> > >>> > debug.print clock.read - clocktime >>> > >>> > clocktime = clock.read >>> > >>> > Next j >>> > >>> > >>> > >>> > Gives me latencies equal to 2xrefresh rates. Somebody with young eyes >>> > should tell us if the first one doesn???t have cutting-off errors, >>> > otherwise I???d suggest there might be some sort of waitforverticalblank >>> > built into canvas.copy. >>> > >>> > Best, >>> > >>> > >>> > >>> > Michiel Sovij???rvi-Spap??? >>> > >>> > >>> > >>> > Helsinki Institute for Information Technology >>> > >>> > Aalto & University of Helsinki >>> > >>> > Finland >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > BTW: notice that using debug.print also incurs a delay (last measured at >>> > 0.7 ms). >>> > >>> > >>> > >>> > >>> > >>> > *From:* e-p... at googlegroups.com [ mailto:e-p... at googlegroups.com] *On >>> > Behalf Of *Tamar >>> > *Sent:* 24. April 2013 08:33 >>> > *To:* e-p... at googlegroups.com >>> > *Subject:* Canvas.Copy is taking too long to complete >>> > >>> > >>> > >>> > I'm programming a visual experiment, and suffering from some timing >>> > issues. It seems that the line presenting the stimuli (canvas.copy) is >>> > considerably time consuming: 10-12 ms. I can't figure out the cause for >>> > this delay, and I would appreciate any help... >>> > >>> > Here is the relevant piece of code: >>> > >>> > ====== in an initializing inline script, at the begining of SessionProc: >>> > ====== >>> > Set MainCanvas = Display.Canvas >>> > MainCanvas.fillColor = CColor(background_color) >>> > MainCanvas.clear >>> > >>> > For i = 1 To NumStim >>> > Set StimCanvases(i) = Display.CreateCanvas >>> > >>> > 'define destination rect as center of screen >>> > destRects(i).Left = Display.XRes/2-stim_w/2 >>> > destRects(i).Top = Display.YRes/2-stim_h/2 >>> > destRects(i).Right = Display.XRes/2+stim_w/2 >>> > destRects(i).Bottom = Display.YRes/2+stim_h/2 >>> > >>> > 'define source rect as upper left corner >>> > srcRects(i).Left = 0 >>> > srcRects(i).Top = 0 >>> > srcRects(i).Right = stim_w >>> > srcRects(i).Bottom = stim_h >>> > >>> > 'Load the image file >>> > StimCanvases(i).LoadImage "Stimuli/" & FileNames(i) & ".bmp" >>> > >>> > Next i >>> > >>> > ====== in the inline of TrialProc: ======= >>> > Debug.Print "1:" & clock.read >>> > StartTrialTime = clock.read >>> > n = c.GetAttrib("CanvasNum") >>> > c.SetAttrib "TrialStart", StartTrialTime >>> > display.WaitForVerticalBlank >>> > Debug.Print "4:" & clock.read >>> > StartStimTime = clock.read >>> > c.SetAttrib "StimStart", StartStimTime >>> > Debug.Print "5:" & clock.read >>> > mainCanvas.copy StimCanvases(n),srcRects(n),destRects(n) >>> > Debug.Print "6:" & clock.read >>> > >>> > >>> > I've tried a few things: >>> > - to create variables taking the values of >>> > StimCanvases(n),srcRects(n),destRects(n) in the beginning of the trial, >>> > so the mainCanvas.copy line would not need to approach the arrays. >>> > - to present other simple canvases instead of my real stimuli (just a >>> > fixation, for example. or an empty canvas) >>> > - to draw something on the mainCanvas rather than copy a new canvas to >>> > it (e.g. mainCanvas.Circle). >>> > >>> > All of these takes 10-12 ms! (as calculated by subtracting time5 from >>> > time6). The only way I managed to get rid of the delay was to erase the >>> > entire row... >>> > >>> > Am I missing something here?... >>> > >>> > Thanks, >>> > Tamar -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From gusunny1 at gmail.com Sat Apr 27 02:44:08 2013 From: gusunny1 at gmail.com (=?GB2312?B?vKrP6cjn0uI=?=) Date: Sat, 27 Apr 2013 10:44:08 +0800 Subject: E-prime crashes after reading text file In-Reply-To: Message-ID: sorry , I just checked email this morning. you can refer to this code : open "G:\\lisa.txt" for input as #1 linecount=-1 do while not EOF(1) linecount=linecount+1 input #1, ss loop close #1 redim array1(linecount) leth1=linecount+1 open "G:\\lisa.txt" for input as #1 for n=0 to linecount input #1,array1(n) next n close #1 redim array3(linecount/2) 2013/4/3 Marisa Crisostomo > How would I do that? > > > On Sun, Mar 31, 2013 at 11:38 PM, ???? wrote: > >> I am not sure but I have learnt that when you call from a text file, you >> need first get the line number in the text, then loop again to get each >> line in the textfile. I don't know if this is the reason your eprime >> program get crashed. >> >> >> 2013/3/30 Marisa Crisostomo >> >>> I deleted all unreferenced objects and it is still too large. What is >>> interesting is that my program was being compiled until I started changing >>> fonts and layouts of the slides. >>> >>> Marisa >>> >>> >>> On Thu, Mar 28, 2013 at 3:48 PM, ben robinson wrote: >>> >>>> Do you have a lot of unused "Unreferenced E-Objects" in your file? Try >>>> deleting them, if so, and see if your script is no longer "too large to be >>>> compiled". >>>> >>>> Ben >>>> >>>> >>>> On Thu, Mar 28, 2013 at 3:01 PM, MarisaC wrote: >>>> >>>>> Hello, >>>>> >>>>> I am hoping someone could help me out. >>>>> My script is "too large to be compiled" so I am trying to have e-prime >>>>> call from a text file instead. >>>>> >>>>> Here is the code that I have been using: >>>>> >>>>> open "FinalTstQuestionTXT2.txt" for Input as #1 >>>>> For IndxArt=0 to Article_Count - 1 >>>>> For TxtCounter = 1 to FinalTstQ_Count >>>>> Line Input #1, textstring$ >>>>> 'Articles(IndxArt).FinalTst(TxtCounter).FinalQuestion = textstring$ >>>>> Next TxtCounter >>>>> Next IndxArt >>>>> close #1 >>>>> >>>>> The program compiles and the script is generated successfully, but >>>>> when I try to run it, e-prime crashes, and I get the windows message. >>>>> >>>>> I know that e-prime is reading from the file because when I set the >>>>> FinalTstQ_count number to more than the number of lines in the text file, I >>>>> get the "Input past end of file" error message (as expected). It seems that >>>>> the problem occurs when e-prime gets to the end of the text file. >>>>> >>>>> Any help would be greatly appreciated! >>>>> Thank you, >>>>> Marisa >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "E-Prime" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to e-prime+unsubscribe at googlegroups.com. >>>>> To post to this group, send email to e-prime at googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msg/e-prime/-/kCPKL2LGInMJ. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "E-Prime" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to e-prime+unsubscribe at googlegroups.com. >>>> To post to this group, send email to e-prime at googlegroups.com. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "E-Prime" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to e-prime+unsubscribe at googlegroups.com. >>> To post to this group, send email to e-prime at googlegroups.com. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "E-Prime" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to e-prime+unsubscribe at googlegroups.com. >> To post to this group, send email to e-prime at googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to e-prime+unsubscribe at googlegroups.com. > To post to this group, send email to e-prime at googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From krishane.patel at gmail.com Sat Apr 27 06:59:12 2013 From: krishane.patel at gmail.com (Krishane Patel) Date: Fri, 26 Apr 2013 23:59:12 -0700 Subject: Multiple clicks on a single slide Message-ID: In my masters project I need participants to respond in rhythm to music by repeatedly tapping the mouse. I wanted to measure the times between clicks. I'm new to E-prime and don't really know how or if this is possible. Can someone please help with this. Thanks -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/JFLtNGB6xhIJ. For more options, visit https://groups.google.com/groups/opt_out. From krishane.patel at gmail.com Sat Apr 27 07:07:23 2013 From: krishane.patel at gmail.com (Krishane Patel) Date: Sat, 27 Apr 2013 00:07:23 -0700 Subject: Repeated key/mouse presses Message-ID: Hello I'm designing a perceptual experiment to test how accurate we are at listening and remembering music. Participants will respond after listening to music by tapping/clicking the mouse (whichever would be easier to run) to resemble what they believed the rhythm of the music was and its tempo. So I would need multiple responses and would need to record the time between presses. There is no "correct answer" as it's a judgment task, and wanted to compare beginner and experts judgements. I have set the max count to the desired limit, but E-prime ends up only recording 4/5 out of the 20 presses. Any ideas how to get around this? Thanks Kris -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/GWW_rIuAL14J. For more options, visit https://groups.google.com/groups/opt_out. From mspape at cognitology.eu Mon Apr 29 08:35:46 2013 From: mspape at cognitology.eu (Cognitology) Date: Mon, 29 Apr 2013 11:35:46 +0300 Subject: Repeated key/mouse presses In-Reply-To: <76a464b5-42b2-4940-bb2f-4f2f0ef21c0f@googlegroups.com> Message-ID: Hi, I have no idea why it fails to capture more than 4/5 responses, but in any case, the easier way to get around it is not to use multiple answers. You just set the audio running a time X, collect its onsettime, then start a list with a single wait object which will then collect the RTTime. Go to user script, declare DIM mylong as long Enter a single Inline thingy after your waitobject: c.SetAttrib "ITI", wait.RTTime - mylong mylong = wait.RTTime Voila. Can be done a bit more elegantly, so you don't save the first ITI (given that there's no previous one), but you could always filter these out later on. Best, Michiel -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Krishane Patel Sent: 27. April 2013 10:07 To: e-prime at googlegroups.com Subject: Repeated key/mouse presses Hello I'm designing a perceptual experiment to test how accurate we are at listening and remembering music. Participants will respond after listening to music by tapping/clicking the mouse (whichever would be easier to run) to resemble what they believed the rhythm of the music was and its tempo. So I would need multiple responses and would need to record the time between presses. There is no "correct answer" as it's a judgment task, and wanted to compare beginner and experts judgements. I have set the max count to the desired limit, but E-prime ends up only recording 4/5 out of the 20 presses. Any ideas how to get around this? Thanks Kris -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/GWW_rIuAL14J. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From flavia.cardini1 at gmail.com Mon Apr 29 10:42:33 2013 From: flavia.cardini1 at gmail.com (flavia) Date: Mon, 29 Apr 2013 03:42:33 -0700 Subject: calcualting average for individual conditions Message-ID: Hi, I am running an experiment where I would like to display a final feedback of participants' accuracy in doing a recognition task. In my trial list I have 2 conditions to be recognised and I would like to show the accuracy for each of them separately. For the moment I am able to show the total accuracy, but I don't know how to select the 2 conditions individually. this is the line I use to calcualte and display the total accuracy (in %): MsgBox "Your accuracy is " & CInt(accuracy.Mean * 100) & "%" any help? thanks -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/YunZQ0xPhFQJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.fw at gmail.com Tue Apr 30 09:53:55 2013 From: tobias.fw at gmail.com (Tobias) Date: Tue, 30 Apr 2013 02:53:55 -0700 Subject: sending trigger during stimulus presentation Message-ID: Dear all, I am using E-Prime 2.0 with EEG paradigms. I have the following problem: So far, I have used the "terminate" option for responses so that a display sets off as soon as a subject responds. I would then have some fake object that is only there to send a trigger to the EEG computer. The idea is, with the onset of that fake object, a trigger is sent and this trigger is thus locked to the offset of the previous object - that sets off when subjects respond. So far so good. This time, I would like to present a stimulus for exactly 500 ms, no matter how fast subjects react. Is it possible to send a trigger during presentation of a stimulus? It would be perfect if there was an "end option" like "(none, but execute inline...)" Any help is much appreciated. Tobias -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/Wf-B3EqFcRQJ. For more options, visit https://groups.google.com/groups/opt_out. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Tue Apr 30 15:31:03 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 30 Apr 2013 11:31:03 -0400 Subject: sending trigger during stimulus presentation In-Reply-To: Message-ID: Tobias, Didn't we discuss this already at https://groups.google.com/d/topic/e-prime/z8PQMH1cf70 ? And now, if you have upgraded EP2.0.10.x, and under the right conditions, you might handle this much better with the new Task Events feature (see http://www.pstnet.com/support/kb.asp?TopicID=4803 , and the New Features Guide). ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) At 4/30/2013 05:53 AM Tuesday, Tobias wrote: >I am using E-Prime 2.0 with EEG paradigms. I have the following problem: > >So far, I have used the "terminate" option for responses so that a >display sets off as soon as a subject responds. I would then have >some fake object that is only there to send a trigger to the EEG computer. >The idea is, with the onset of that fake object, a trigger is sent >and this trigger is thus locked to the offset of the previous object >- that sets off when subjects respond. > >So far so good. This time, I would like to present a stimulus for >exactly 500 ms, no matter how fast subjects react. >Is it possible to send a trigger during presentation of a stimulus? >It would be perfect if there was an "end option" like "(none, but >execute inline...)" > >Any help is much appreciated. >Tobias -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. From mcfarla9 at msu.edu Tue Apr 30 15:34:01 2013 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 30 Apr 2013 11:34:01 -0400 Subject: Repeated key/mouse presses In-Reply-To: <002601ce44b4$8bba0870$a32e1950$@eu> Message-ID: Krins, I am a bit puzzled about how you get it to record more than 1 response, but not all the responses. Anyway, as another approach see the "Multiple Response Collection" example downloadable from the PST website. ----- David McFarlane E-Prime training online: http://psychology.msu.edu/Workshops_Courses/eprime.aspx Twitter: @EPrimeMaster (https://twitter.com/EPrimeMaster) /---- Stock reminder: 1) I do not work for PST. 2) PST's trained staff take 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, so make full use of it. 3) In addition, PST offers several instructional videos on their YouTube channel (http://www.youtube.com/user/PSTNET ). 4) If you do get an answer from PST staff, please extend the courtesy of posting their reply back here for the sake of others. \---- At 4/29/2013 04:35 AM Monday, Cognitology wrote: >Hi, >I have no idea why it fails to capture more than 4/5 responses, but in any >case, the easier way to get around it is not to use multiple answers. You >just set the audio running a time X, collect its onsettime, then start a >list with a single wait object which will then collect the RTTime. Go to >user script, declare >DIM mylong as long >Enter a single Inline thingy after your waitobject: >c.SetAttrib "ITI", wait.RTTime - mylong >mylong = wait.RTTime > >Voila. >Can be done a bit more elegantly, so you don't save the first ITI (given >that there's no previous one), but you could always filter these out later >on. >Best, >Michiel > >-----Original Message----- >From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf >Of Krishane Patel >Sent: 27. April 2013 10:07 >To: e-prime at googlegroups.com >Subject: Repeated key/mouse presses > >Hello > >I'm designing a perceptual experiment to test how accurate we are at >listening and remembering music. Participants will respond after listening >to music by tapping/clicking the mouse (whichever would be easier to run) to >resemble what they believed the rhythm of the music was and its tempo. > >So I would need multiple responses and would need to record the time between >presses. > >There is no "correct answer" as it's a judgment task, and wanted to compare >beginner and experts judgements. > >I have set the max count to the desired limit, but E-prime ends up only >recording 4/5 out of the 20 presses. > >Any ideas how to get around this? > >Thanks >Kris -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com. To post to this group, send email to e-prime at googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.