From batne at hotmail.com Mon Jul 2 21:56:52 2007 From: batne at hotmail.com (Tobias Johansson) Date: Mon, 2 Jul 2007 21:56:52 +0000 Subject: perceptual clarification In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From venug001 at bama.ua.edu Tue Jul 3 00:03:36 2007 From: venug001 at bama.ua.edu (Gopakumar Venugopalan) Date: Mon, 2 Jul 2007 19:03:36 -0500 Subject: Perceptual Clarification Message-ID: The simplest way I can think off is by presenting the de-graded stimuli incrementally, frame by frame, and allowing a mouse click or serial response box button click for each one of the individual frames, which will cause it to move to the next trial, or it will automatically move at the end of the last frame to the next trial. I am working on something similar and this is something I have tried and worked. Paul De Groot did clarify and help with some ideas when I posed similar questions regards gopa Quoting Tobias Johansson : > > > > > > > > Hi, does anyone know if, and how, it is possible to implement a > perceptual clarification procedure in E-prime? > That is, a procedure where items clarify gradually (with adjustable > speed) on the screen so that subjects can press a button and stop the > gradual clarification when they can identify the item? > > /Tobias Express yourself instantly with MSN Messenger! MSN Messenger > Download today it's FREE! > > From bianca.de-haan at klinikum.uni-tuebingen.de Mon Jul 16 09:55:40 2007 From: bianca.de-haan at klinikum.uni-tuebingen.de (B de Haan) Date: Mon, 16 Jul 2007 11:55:40 +0200 Subject: AW: AW: trigger TMS + collect responses during stimulus presentation In-Reply-To: Message-ID: Dear E-prime list, Almost a month has passed since my last e-mail and I am still having problems with the timing in my experiment, despite the excellent help from Paul Groot, and I am now pretty close to (if not already past) total desperation. I am sorry to have to keep bothering this list, but I am completely out of ideas regarding how to solve my problem. I am presenting a targetstimulus (mainstimulus) at a duration determined in a preceding titration block followed by a maskstimulus (mainmask2). I want to simultaneously repeatedly trigger a TMS stimulator via the parallel port. So trigger pulses are sent both during presentation of the targetstimulus and the maskstimulus, with subsequently 2 keyboard responses collected during the maskstimulus. How many trigger pulses are sent during the targetstimulus (and thereby how many during the maskstimulus) is determined by the stimulus duration. In total, 5 trigger pulses are sent, one every 40ms, starting at targetstimulus onset. The experiment (inline code attached at the end of this email, works together with stimdisplay objects for both targetstimulus and maskstimulus under unreferenced objects) is mostly working apart from one persistent problem that I cannot seem to get rid of; the maskstimulus onset is consistently delayed by approximately 2 screen refresh durations. The main problematic consequence of this delay is that TMS trigger pulses falling in this delay, are also delayed meaning the time between successive TMS pulses is no longer constant. I have tried both approaches suggested by Paul in his previous email; duration = pre-release = 0 and duration = pre-release = targetstimulus duration. Regardless of how I combine durations and pre-release, the onset of the maskstimulus (and thereby the offset of the targetstimulus) is consistently delayed by about 2 screen refresh durations. Unfortunately, in this experiment both the presentation duration of the targetstimulus and the timing of the TMS pulses are critical. As mentioned previously, the results from the clocktest show that my computer is capable of millisecond precision. Moreover, during the stimulus duration titration block (which is identical to the experimental block apart from the TMS pulses) I have millisecond timing precision. Does anybody have any idea of something else that I could try to get rid of the timing delay of the maskstimulus? Any help would, as always, be greatly appreciated. Many thanks in advance, Bianca de Haan ############################################################################ ################################ 'SCRIPT TO ENABLE TMS PULSES FROM TARGET STIMULUS ONSET 'create pulsecount to keep track of the amount of pulses fired PulseCount = 0 'Prepare things so that first TMS pulse is sent at stimulus onset mainstimulus.OnsetSignalEnabled = True mainstimulus.OnsetSignalPort = &H378 mainstimulus.OnsetSignalData = &HFF 'Prepare and run mainstimulus mainstimulus.Duration = StimDisplayDuration mainstimulus.PreRelease = mainstimulus.Duration mainstimulus.Filename = c.GetAttrib("mainstimulus") mainstimulus.Load mainstimulus.Run c.SetAttrib "mainstimulus.OnsetDelay", mainstimulus.OnsetDelay c.SetAttrib "mainstimulus.OnsetTime", mainstimulus.OnsetTime c.SetAttrib "mainstimulus.PreRelease", mainstimulus.PreRelease MainStimOnset = mainstimulus.OnsetTime PulseCount = PulseCount + 1 'make sure exact vertical refresh is hit sleep (0.5 * RefreshDuration) 'keep mainstimulus onscreen until stimdisplayduration has elapsed while clock.read() < MainStimOnset + StimDisplayDuration - (0.5 * RefreshDuration) 'as long as stimdisplayduration has not elapsed, trigger tms every 40ms PulseTime = MainStimOnset + ((5 * PulseCount) * RefreshDuration) PulseWait = PulseTime - clock.read() WritePort &H378,0 if PulseWait <= 0 then WritePort &H378,255 PulseCount = PulseCount + 1 c.SetAttrib "PulseTime" & PulseCount, clock.read() end if wend do loop until clock.read() >= MainStimOnset + StimDisplayDuration - (0.5 * RefreshDuration) 'Prepare and run mainmask2 mainmask2.InputMasks.Reset mainmask2EchoClients.RemoveAll mainmask2.InputMasks.Add Keyboard.CreateInputMask("{ANY}", "", CLng("-1"), CLng("2"), ebEndResponseActionNone, CLogical("Yes"), "", "", "ResponseMode:All ProcessBackspace:Yes") mainmask2.Duration = StimDisplayDuration mainmask2.PreRelease = mainmask2.Duration mainmask2.Run 'start loop that runs mainmask2 until 2 responses are collected while firing 'remaining tms pulses Dim StimDisplayMasks As InputMaskManager Set StimDisplayMasks = mainmask2.InputMasks while PulseCount < 5 And StimDisplayMasks.Item(1).Responses.Count < 2 PulseTime = MainStimOnset + ((5 * PulseCount) * RefreshDuration) PulseWait = PulseTime - clock.read() WritePort &H378,0 if PulseWait <= 0 then WritePort &H378,255 PulseCount = PulseCount + 1 c.SetAttrib "PulseTime" & PulseCount, clock.read() end if wend do loop until StimDisplayMasks.Item(1).Responses.Count = 2 'save attributes mainmask2 c.SetAttrib "resp1", StimDisplayMasks.Item(1).Responses(1).RESP c.SetAttrib "resp2", StimDisplayMasks.Item(1).Responses(2).RESP c.SetAttrib "mainmask2.OnsetDelay", mainmask2.OnsetDelay c.SetAttrib "mainmask2.OnsetTime", mainmask2.OnsetTime c.SetAttrib "mainmask2.RESP", mainmask2.RESP 'calculate real mainstimulus duration RealTargetDuration = mainmask2.Onsettime - mainstimulus.OnsetTime c.SetAttrib "RealTargetDuration", RealTargetDuration -------------- next part -------------- An HTML attachment was scrubbed... URL: From brandon_cernicky at yahoo.com Thu Jul 26 12:56:11 2007 From: brandon_cernicky at yahoo.com (Brandon Cernicky) Date: Thu, 26 Jul 2007 05:56:11 -0700 Subject: trigger TMS + collect responses during stimulus In-Reply-To: <66001.44854@mail.talkbank.org> Message-ID: Hi Bianca, Your design looks pretty close. I have a few suggestions. 1) Only call WritePort when needed ============================= You are calling WritePort &H378, 0 every time in the loop. Consider clearing out the port only when necessary as continually calling WritePort can introduce problems and reduce timing precision. You can setup a “clear time” variable that can be checked to do this. 2) Allow the runtime to absorb the time for you ====================================== Predict when the last pulse has been fired and then break out of the loop. Since you are setting up the Duration of the main object with a full PreRelease, the runtime will internally call SetNextTargetOnsetTime MainStimulus.OnsetTime + MainStimulus.Duration for you. Note that if you have the Duration set to zero then you will need to manually call SetNextTargetOnsetTime yourself. In short, each E-Prime object in its .Run call will spin in a loop similar to the following While Clock.Read < GetNextTargetOnsetTime() Wend Thus, you could setup two objects TextDisplay1 and TextDisplay2 in the GUI with duration of 1000. If you stick an InLine inbetween them with SetNextTargetOnsetTime TextDisplay1.OnsetTime + 5000, then TextDisplay2 won’t start 1000 after TextDisplay1, it will start 5000 later. Note that use of this command in script should be used with caution/care. In summary, the use of PreRelease on an object is used to give up time of the currently running object to allow the next object to prepare. Since you are using this PreRelease time to loop and port pulse, you may not be providing enough time for the mask stimulus to prepare. By calling .Run on the mask after the last pulse and well prior to when it needs to start will allow the mask to prepare. As your script was written, you were allowing for no more than 4ms (assuming the 8.333 ms refresh duration) to prepare and that may not have been enough time. For your specific edit, cut out your middle do loop that is "loop until clock.read() >= MainStimOnset + StimDisplayDuration - (0.5 * RefreshDuration)" and then add a calculation to see if the next PulseTime would occur >= the onset + duration and if so break out of the loop. Note that if your pulse count was not divisible by the time you wanted to start the next object, then this method would not work since the amount of time the mask would be absorbing would be out of the InLine when another pulse would have been necessary to be fired. 3) Reduce size of stimulus/mask =========================== If the mask or stimulus are not taking up the entire screen, consider reducing the frame size which will reduce how long it takes for the object to setup and draw. 4) Calculations ===================== For the loops, consider assigning the calculation to a variable. Continually doing the math could reduce some timing precision. That is, make a variable named “quit time” instead of doing the addition, subtraction, and multiplication as the exit condition in the loop. The same would apply consider a HalfDuration variable so that the multiplication is not needed each time. -Brandon ____________________________________________________________________________________ Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online. http://smallbusiness.yahoo.com/webhosting From pseudoverlighter at zonnet.nl Sun Jul 29 20:57:35 2007 From: pseudoverlighter at zonnet.nl (mich) Date: Sun, 29 Jul 2007 22:57:35 +0200 Subject: Overlapping events In-Reply-To: <8c863ac90707270639m266229ceo6cd62d05efe80b4d@mail.gmail.com> Message-ID: Hi Helen, Have you tried setting up multiple buffers in E-Prime and just playing them using inline statements? I don’t know if you can actually mix stimuli like that (that is, if two buffers can be played simultaneously), but it’s worth a try since the audio in an inline statement only waits as in your event example below when you actually ask E-Prime to wait for x ms. Consider: [soundbuff is a 100 ms tone of 1000 hz] Soundbuff.play() Debug.print “started at ” + clock.read Output: [Some_sound] Started at 12 [Some_sound continues] Vs Soundbuff.play() Sleep 100 Debug.print “started at ” + clock.read Output [Some_sound] Started at 112 [Some_sound continues] I don’t actually have E-Prime here, and neither do i have the code of previous experiments that illustrate it better, but there are a number of suggestions I should make in order for you to use sound via E-Prime scripts instead of objects: - Try multiple sound buffers - Make them as long as the maximum duration - Load them when the trial begins but when nothing crucial is happening (before the onset of a fixation cross, for example) - Play them only after you have loaded them Hope that helps, and let me know if you want specific scripts. Again, I’m not sure what exactly you want, nor whether this will help, but write to me at mspape at fsw.leidenuniv.nl if you need help. Cheers, Michiel Spapé Cognitive Psychology Unit Leiden University Netherlands From: eprime at mail.talkbank.org [mailto:eprime at mail.talkbank.org] On Behalf Of Helen Day Sent: vrijdag 27 juli 2007 15:40 To: EPRIME at mail.talkbank.org Subject: Overlapping events A trickier question this time, Because I want the subjects to be able to answer halfway through a stimulus and not before this halfway point but as soon as they can after, I'm trying to figure out how to overlap 3 events: a text event saying "Listen" that lasts for 7 seconds, an audio file that starts playing one second after the text event is presented, and a slide event that promts them for the answer that begins just as the "Listen" event ends (that is, exactly 6 seconds into the audio event). Because the audio event is transparent, I can simply set the "Listen" text to last for one second and then layer the audio over it. However, I can't see any way to get the slide prompt to begin while the audio is still playing, since even if the event is transparent it won't start until the event before it is finished. Shortening the duration of the audio event obviously isn't an option because I need all 10 seconds of the audio to be heard. Has anyone successfully layered stimuli like this before? Helen -------------- next part -------------- An HTML attachment was scrubbed... URL: From psp225 at bangor.ac.uk Mon Jul 30 11:32:04 2007 From: psp225 at bangor.ac.uk (Trefor Aspden) Date: Mon, 30 Jul 2007 12:32:04 +0100 Subject: Does anyone have an IAT script Message-ID: Hi. I have begun work in creating a script for the Implicit Association Test (IAT) in EPRIME, but am running into some problems along the way. I was wandering if anyone out there has a script for this measure that they are willing to share. Even if I do manage to finish the script I am working on, I would feel more comfortable with a working script to compare it with. I have located the demo IAT script at step.psy.cmu.edu/scripts-plus, however this is an old version of the IAT and as far as I can tell it will be simpler for me to generate the script from scratch than to try and modify this script. Thanks for your help in this matter, Trefor -- This mail sent through http://webmail.bangor.ac.uk -- Gall y neges e-bost hon, ac unrhyw atodiadau a anfonwyd gyda hi, gynnwys deunydd cyfrinachol ac wedi eu bwriadu i'w defnyddio'n unig gan y sawl y cawsant eu cyfeirio ato (atynt). Os ydych wedi derbyn y neges e-bost hon trwy gamgymeriad, rhowch wybod i'r anfonwr ar unwaith a dilëwch y neges. Os na fwriadwyd anfon y neges atoch chi, rhaid i chi beidio â defnyddio, cadw neu ddatgelu unrhyw wybodaeth a gynhwysir ynddi. Mae unrhyw farn neu safbwynt yn eiddo i'r sawl a'i hanfonodd yn unig ac nid yw o anghenraid yn cynrychioli barn Prifysgol Cymru, Bangor. Nid yw Prifysgol Cymru, Bangor yn gwarantu bod y neges e-bost hon neu unrhyw atodiadau yn rhydd rhag firysau neu 100% yn ddiogel. Oni bai fod hyn wedi ei ddatgan yn uniongyrchol yn nhestun yr e-bost, nid bwriad y neges e-bost hon yw ffurfio contract rhwymol - mae rhestr o lofnodwyr awdurdodedig ar gael o Swyddfa Cyllid Prifysgol Cymru, Bangor. www.bangor.ac.uk This email and any attachments may contain confidential material and is solely for the use of the intended recipient(s). If you have received this email in error, please notify the sender immediately and delete this email. If you are not the intended recipient(s), you must not use, retain or disclose any information contained in this email. Any views or opinions are solely those of the sender and do not necessarily represent those of the University of Wales, Bangor. The University of Wales, Bangor does not guarantee that this email or any attachments are free from viruses or 100% secure. Unless expressly stated in the body of the text of the email, this email is not intended to form a binding contract - a list of authorised signatories is available from the University of Wales, Bangor Finance Office. www.bangor.ac.uk From batne at hotmail.com Mon Jul 2 21:56:52 2007 From: batne at hotmail.com (Tobias Johansson) Date: Mon, 2 Jul 2007 21:56:52 +0000 Subject: perceptual clarification In-Reply-To: Message-ID: An HTML attachment was scrubbed... URL: From venug001 at bama.ua.edu Tue Jul 3 00:03:36 2007 From: venug001 at bama.ua.edu (Gopakumar Venugopalan) Date: Mon, 2 Jul 2007 19:03:36 -0500 Subject: Perceptual Clarification Message-ID: The simplest way I can think off is by presenting the de-graded stimuli incrementally, frame by frame, and allowing a mouse click or serial response box button click for each one of the individual frames, which will cause it to move to the next trial, or it will automatically move at the end of the last frame to the next trial. I am working on something similar and this is something I have tried and worked. Paul De Groot did clarify and help with some ideas when I posed similar questions regards gopa Quoting Tobias Johansson : > > > > > > > > Hi, does anyone know if, and how, it is possible to implement a > perceptual clarification procedure in E-prime? > That is, a procedure where items clarify gradually (with adjustable > speed) on the screen so that subjects can press a button and stop the > gradual clarification when they can identify the item? > > /Tobias Express yourself instantly with MSN Messenger! MSN Messenger > Download today it's FREE! > > From bianca.de-haan at klinikum.uni-tuebingen.de Mon Jul 16 09:55:40 2007 From: bianca.de-haan at klinikum.uni-tuebingen.de (B de Haan) Date: Mon, 16 Jul 2007 11:55:40 +0200 Subject: AW: AW: trigger TMS + collect responses during stimulus presentation In-Reply-To: Message-ID: Dear E-prime list, Almost a month has passed since my last e-mail and I am still having problems with the timing in my experiment, despite the excellent help from Paul Groot, and I am now pretty close to (if not already past) total desperation. I am sorry to have to keep bothering this list, but I am completely out of ideas regarding how to solve my problem. I am presenting a targetstimulus (mainstimulus) at a duration determined in a preceding titration block followed by a maskstimulus (mainmask2). I want to simultaneously repeatedly trigger a TMS stimulator via the parallel port. So trigger pulses are sent both during presentation of the targetstimulus and the maskstimulus, with subsequently 2 keyboard responses collected during the maskstimulus. How many trigger pulses are sent during the targetstimulus (and thereby how many during the maskstimulus) is determined by the stimulus duration. In total, 5 trigger pulses are sent, one every 40ms, starting at targetstimulus onset. The experiment (inline code attached at the end of this email, works together with stimdisplay objects for both targetstimulus and maskstimulus under unreferenced objects) is mostly working apart from one persistent problem that I cannot seem to get rid of; the maskstimulus onset is consistently delayed by approximately 2 screen refresh durations. The main problematic consequence of this delay is that TMS trigger pulses falling in this delay, are also delayed meaning the time between successive TMS pulses is no longer constant. I have tried both approaches suggested by Paul in his previous email; duration = pre-release = 0 and duration = pre-release = targetstimulus duration. Regardless of how I combine durations and pre-release, the onset of the maskstimulus (and thereby the offset of the targetstimulus) is consistently delayed by about 2 screen refresh durations. Unfortunately, in this experiment both the presentation duration of the targetstimulus and the timing of the TMS pulses are critical. As mentioned previously, the results from the clocktest show that my computer is capable of millisecond precision. Moreover, during the stimulus duration titration block (which is identical to the experimental block apart from the TMS pulses) I have millisecond timing precision. Does anybody have any idea of something else that I could try to get rid of the timing delay of the maskstimulus? Any help would, as always, be greatly appreciated. Many thanks in advance, Bianca de Haan ############################################################################ ################################ 'SCRIPT TO ENABLE TMS PULSES FROM TARGET STIMULUS ONSET 'create pulsecount to keep track of the amount of pulses fired PulseCount = 0 'Prepare things so that first TMS pulse is sent at stimulus onset mainstimulus.OnsetSignalEnabled = True mainstimulus.OnsetSignalPort = &H378 mainstimulus.OnsetSignalData = &HFF 'Prepare and run mainstimulus mainstimulus.Duration = StimDisplayDuration mainstimulus.PreRelease = mainstimulus.Duration mainstimulus.Filename = c.GetAttrib("mainstimulus") mainstimulus.Load mainstimulus.Run c.SetAttrib "mainstimulus.OnsetDelay", mainstimulus.OnsetDelay c.SetAttrib "mainstimulus.OnsetTime", mainstimulus.OnsetTime c.SetAttrib "mainstimulus.PreRelease", mainstimulus.PreRelease MainStimOnset = mainstimulus.OnsetTime PulseCount = PulseCount + 1 'make sure exact vertical refresh is hit sleep (0.5 * RefreshDuration) 'keep mainstimulus onscreen until stimdisplayduration has elapsed while clock.read() < MainStimOnset + StimDisplayDuration - (0.5 * RefreshDuration) 'as long as stimdisplayduration has not elapsed, trigger tms every 40ms PulseTime = MainStimOnset + ((5 * PulseCount) * RefreshDuration) PulseWait = PulseTime - clock.read() WritePort &H378,0 if PulseWait <= 0 then WritePort &H378,255 PulseCount = PulseCount + 1 c.SetAttrib "PulseTime" & PulseCount, clock.read() end if wend do loop until clock.read() >= MainStimOnset + StimDisplayDuration - (0.5 * RefreshDuration) 'Prepare and run mainmask2 mainmask2.InputMasks.Reset mainmask2EchoClients.RemoveAll mainmask2.InputMasks.Add Keyboard.CreateInputMask("{ANY}", "", CLng("-1"), CLng("2"), ebEndResponseActionNone, CLogical("Yes"), "", "", "ResponseMode:All ProcessBackspace:Yes") mainmask2.Duration = StimDisplayDuration mainmask2.PreRelease = mainmask2.Duration mainmask2.Run 'start loop that runs mainmask2 until 2 responses are collected while firing 'remaining tms pulses Dim StimDisplayMasks As InputMaskManager Set StimDisplayMasks = mainmask2.InputMasks while PulseCount < 5 And StimDisplayMasks.Item(1).Responses.Count < 2 PulseTime = MainStimOnset + ((5 * PulseCount) * RefreshDuration) PulseWait = PulseTime - clock.read() WritePort &H378,0 if PulseWait <= 0 then WritePort &H378,255 PulseCount = PulseCount + 1 c.SetAttrib "PulseTime" & PulseCount, clock.read() end if wend do loop until StimDisplayMasks.Item(1).Responses.Count = 2 'save attributes mainmask2 c.SetAttrib "resp1", StimDisplayMasks.Item(1).Responses(1).RESP c.SetAttrib "resp2", StimDisplayMasks.Item(1).Responses(2).RESP c.SetAttrib "mainmask2.OnsetDelay", mainmask2.OnsetDelay c.SetAttrib "mainmask2.OnsetTime", mainmask2.OnsetTime c.SetAttrib "mainmask2.RESP", mainmask2.RESP 'calculate real mainstimulus duration RealTargetDuration = mainmask2.Onsettime - mainstimulus.OnsetTime c.SetAttrib "RealTargetDuration", RealTargetDuration -------------- next part -------------- An HTML attachment was scrubbed... URL: From brandon_cernicky at yahoo.com Thu Jul 26 12:56:11 2007 From: brandon_cernicky at yahoo.com (Brandon Cernicky) Date: Thu, 26 Jul 2007 05:56:11 -0700 Subject: trigger TMS + collect responses during stimulus In-Reply-To: <66001.44854@mail.talkbank.org> Message-ID: Hi Bianca, Your design looks pretty close. I have a few suggestions. 1) Only call WritePort when needed ============================= You are calling WritePort &H378, 0 every time in the loop. Consider clearing out the port only when necessary as continually calling WritePort can introduce problems and reduce timing precision. You can setup a ?clear time? variable that can be checked to do this. 2) Allow the runtime to absorb the time for you ====================================== Predict when the last pulse has been fired and then break out of the loop. Since you are setting up the Duration of the main object with a full PreRelease, the runtime will internally call SetNextTargetOnsetTime MainStimulus.OnsetTime + MainStimulus.Duration for you. Note that if you have the Duration set to zero then you will need to manually call SetNextTargetOnsetTime yourself. In short, each E-Prime object in its .Run call will spin in a loop similar to the following While Clock.Read < GetNextTargetOnsetTime() Wend Thus, you could setup two objects TextDisplay1 and TextDisplay2 in the GUI with duration of 1000. If you stick an InLine inbetween them with SetNextTargetOnsetTime TextDisplay1.OnsetTime + 5000, then TextDisplay2 won?t start 1000 after TextDisplay1, it will start 5000 later. Note that use of this command in script should be used with caution/care. In summary, the use of PreRelease on an object is used to give up time of the currently running object to allow the next object to prepare. Since you are using this PreRelease time to loop and port pulse, you may not be providing enough time for the mask stimulus to prepare. By calling .Run on the mask after the last pulse and well prior to when it needs to start will allow the mask to prepare. As your script was written, you were allowing for no more than 4ms (assuming the 8.333 ms refresh duration) to prepare and that may not have been enough time. For your specific edit, cut out your middle do loop that is "loop until clock.read() >= MainStimOnset + StimDisplayDuration - (0.5 * RefreshDuration)" and then add a calculation to see if the next PulseTime would occur >= the onset + duration and if so break out of the loop. Note that if your pulse count was not divisible by the time you wanted to start the next object, then this method would not work since the amount of time the mask would be absorbing would be out of the InLine when another pulse would have been necessary to be fired. 3) Reduce size of stimulus/mask =========================== If the mask or stimulus are not taking up the entire screen, consider reducing the frame size which will reduce how long it takes for the object to setup and draw. 4) Calculations ===================== For the loops, consider assigning the calculation to a variable. Continually doing the math could reduce some timing precision. That is, make a variable named ?quit time? instead of doing the addition, subtraction, and multiplication as the exit condition in the loop. The same would apply consider a HalfDuration variable so that the multiplication is not needed each time. -Brandon ____________________________________________________________________________________ Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online. http://smallbusiness.yahoo.com/webhosting From pseudoverlighter at zonnet.nl Sun Jul 29 20:57:35 2007 From: pseudoverlighter at zonnet.nl (mich) Date: Sun, 29 Jul 2007 22:57:35 +0200 Subject: Overlapping events In-Reply-To: <8c863ac90707270639m266229ceo6cd62d05efe80b4d@mail.gmail.com> Message-ID: Hi Helen, Have you tried setting up multiple buffers in E-Prime and just playing them using inline statements? I don?t know if you can actually mix stimuli like that (that is, if two buffers can be played simultaneously), but it?s worth a try since the audio in an inline statement only waits as in your event example below when you actually ask E-Prime to wait for x ms. Consider: [soundbuff is a 100 ms tone of 1000 hz] Soundbuff.play() Debug.print ?started at ? + clock.read Output: [Some_sound] Started at 12 [Some_sound continues] Vs Soundbuff.play() Sleep 100 Debug.print ?started at ? + clock.read Output [Some_sound] Started at 112 [Some_sound continues] I don?t actually have E-Prime here, and neither do i have the code of previous experiments that illustrate it better, but there are a number of suggestions I should make in order for you to use sound via E-Prime scripts instead of objects: - Try multiple sound buffers - Make them as long as the maximum duration - Load them when the trial begins but when nothing crucial is happening (before the onset of a fixation cross, for example) - Play them only after you have loaded them Hope that helps, and let me know if you want specific scripts. Again, I?m not sure what exactly you want, nor whether this will help, but write to me at mspape at fsw.leidenuniv.nl if you need help. Cheers, Michiel Spap? Cognitive Psychology Unit Leiden University Netherlands From: eprime at mail.talkbank.org [mailto:eprime at mail.talkbank.org] On Behalf Of Helen Day Sent: vrijdag 27 juli 2007 15:40 To: EPRIME at mail.talkbank.org Subject: Overlapping events A trickier question this time, Because I want the subjects to be able to answer halfway through a stimulus and not before this halfway point but as soon as they can after, I'm trying to figure out how to overlap 3 events: a text event saying "Listen" that lasts for 7 seconds, an audio file that starts playing one second after the text event is presented, and a slide event that promts them for the answer that begins just as the "Listen" event ends (that is, exactly 6 seconds into the audio event). Because the audio event is transparent, I can simply set the "Listen" text to last for one second and then layer the audio over it. However, I can't see any way to get the slide prompt to begin while the audio is still playing, since even if the event is transparent it won't start until the event before it is finished. Shortening the duration of the audio event obviously isn't an option because I need all 10 seconds of the audio to be heard. Has anyone successfully layered stimuli like this before? Helen -------------- next part -------------- An HTML attachment was scrubbed... URL: From psp225 at bangor.ac.uk Mon Jul 30 11:32:04 2007 From: psp225 at bangor.ac.uk (Trefor Aspden) Date: Mon, 30 Jul 2007 12:32:04 +0100 Subject: Does anyone have an IAT script Message-ID: Hi. I have begun work in creating a script for the Implicit Association Test (IAT) in EPRIME, but am running into some problems along the way. I was wandering if anyone out there has a script for this measure that they are willing to share. Even if I do manage to finish the script I am working on, I would feel more comfortable with a working script to compare it with. I have located the demo IAT script at step.psy.cmu.edu/scripts-plus, however this is an old version of the IAT and as far as I can tell it will be simpler for me to generate the script from scratch than to try and modify this script. Thanks for your help in this matter, Trefor -- This mail sent through http://webmail.bangor.ac.uk -- Gall y neges e-bost hon, ac unrhyw atodiadau a anfonwyd gyda hi, gynnwys deunydd cyfrinachol ac wedi eu bwriadu i'w defnyddio'n unig gan y sawl y cawsant eu cyfeirio ato (atynt). Os ydych wedi derbyn y neges e-bost hon trwy gamgymeriad, rhowch wybod i'r anfonwr ar unwaith a dil?wch y neges. Os na fwriadwyd anfon y neges atoch chi, rhaid i chi beidio ? defnyddio, cadw neu ddatgelu unrhyw wybodaeth a gynhwysir ynddi. Mae unrhyw farn neu safbwynt yn eiddo i'r sawl a'i hanfonodd yn unig ac nid yw o anghenraid yn cynrychioli barn Prifysgol Cymru, Bangor. Nid yw Prifysgol Cymru, Bangor yn gwarantu bod y neges e-bost hon neu unrhyw atodiadau yn rhydd rhag firysau neu 100% yn ddiogel. Oni bai fod hyn wedi ei ddatgan yn uniongyrchol yn nhestun yr e-bost, nid bwriad y neges e-bost hon yw ffurfio contract rhwymol - mae rhestr o lofnodwyr awdurdodedig ar gael o Swyddfa Cyllid Prifysgol Cymru, Bangor. www.bangor.ac.uk This email and any attachments may contain confidential material and is solely for the use of the intended recipient(s). If you have received this email in error, please notify the sender immediately and delete this email. If you are not the intended recipient(s), you must not use, retain or disclose any information contained in this email. Any views or opinions are solely those of the sender and do not necessarily represent those of the University of Wales, Bangor. The University of Wales, Bangor does not guarantee that this email or any attachments are free from viruses or 100% secure. Unless expressly stated in the body of the text of the email, this email is not intended to form a binding contract - a list of authorised signatories is available from the University of Wales, Bangor Finance Office. www.bangor.ac.uk