From tobias.fw at gmail.com Mon May 3 15:04:14 2010 From: tobias.fw at gmail.com (Tobias) Date: Mon, 3 May 2010 08:04:14 -0700 Subject: Signal detection theory In-Reply-To: Message-ID: They don not only have higher hit rates but also the same false alarm rate. So they are not more often saying "yes" in blank trials but only in target trials. If they really had a bias shouldn't they also have a higher false alarm rate? On 21 Apr., 01:55, Robert Ariel wrote: > Well, if you buy the assumptions of SDT you can.  Remember, SDT makes > assumption about behavior.  Specifically that decisions are made by applying > a decision criterion to the evidence extracted from each trial.   So, you > could conclude that one condition has a higher hit rate because that > condition has a larger bias toward saying yes in your experiment.  I guess > the question is, does it make theoretical sense to do so? > > > > On Mon, Apr 19, 2010 at 7:33 AM, Tobias wrote: > > Thanks Robert, > > > if I am not getting you wrong, this means that C is independent of d' > > but not of the hit rate. > > The question occurs to me if you can really say that one condition is > > more liberal if they are just better obviously. > > > Cheers, > > Tobias > > > On 16 Apr., 21:25, Robert Ariel wrote: > > > Tobias, > > > > Computationally, C is the average of the your transformed hit and false > > > alarm rates.  You can see this in the equation you presented.  So, no > > doubt > > > if you have equal false alarm rates across conditions, differences in C > > are > > > resulting because of differences in hit rates. > > > > Basically with equal false alarm rates, the condition with a higher hit > > rate > > > will always be more liberal.  If hit rates are equal, the condition with > > > higher false alarm rate will be more liberal. > > > > Best, > > > > Robert > > > > On Fri, Apr 16, 2010 at 9:59 AM, Tobias wrote: > > > > Hi together, > > > > > this might be a bit off topic but as you are all very much into > > > > psychological experimental science you might be of great help for this > > > > issue. Besides, my topic is the outcome of an E-Prime experiment ;) > > > > > It is about the response bias in signal detection theory (SDT). I've > > > > heard that C is usually better than Beta as a measure of response bias > > > > as it is indpendent of d'. Now what I have in my experiment is a very > > > > high hit rate for condition A and a lower hit rate for condition B. > > > > False alarm rates are however the same for A and B. So what I get > > > > using the formula for C (C = -0.5*(z(false alarms) + z(hits)) is a > > > > liberal criterion C for A and a less liberal criterion for B. > > > > > So can I actually say that A is more liberal? Apparently this is only > > > > due to the fact that the hit rate is higher. I am quite puzzled by > > > > this... glad for any help! > > > > > Tobias > > > > > -- > > > > You received this message because you are subscribed to the Google > > Groups > > > > "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to > > > > e-prime+unsubscribe at googlegroups.com > > > > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/e-prime?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to > > e-prime+unsubscribe at googlegroups.com > > . > > > For more options, visit this group athttp:// > > groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to > > e-prime+unsubscribe at googlegroups.com > > . > > For more options, visit this group at > >http://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From plocasto at gmail.com Mon May 3 16:07:20 2010 From: plocasto at gmail.com (Paul) Date: Mon, 3 May 2010 12:07:20 -0400 Subject: Signal detection theory In-Reply-To: <01b4de97-5d71-4f77-a8f1-df08ec3cb095@b18g2000yqb.googlegroups.com> Message-ID: I definitely see your point. But I think that the distinction between where the positive responses are being made has no bearing here. The way I understand it, C is simply the propensity to offer a 'yes' response. So by definition, if either false alarm or hit rate increases, C must increase, since in either case the perceiver is offering more 'yes' responses. This is irregardless of the perceptual situation it is offered in. The fact that those 'yes' responses turn out to be 'hits' and not 'false alarms' is captured by the differences in dprime across the two conditions- which, in fact, tells you that Condition A has a higher sensitivity than Condition B. Paul On Mon, May 3, 2010 at 11:04 AM, Tobias wrote: > They don not only have higher hit rates but also the same false alarm > rate. So they are not more often saying "yes" in blank trials but only > in target trials. > If they really had a bias shouldn't they also have a higher false > alarm rate? > > On 21 Apr., 01:55, Robert Ariel wrote: > > Well, if you buy the assumptions of SDT you can. Remember, SDT makes > > assumption about behavior. Specifically that decisions are made by > applying > > a decision criterion to the evidence extracted from each trial. So, you > > could conclude that one condition has a higher hit rate because that > > condition has a larger bias toward saying yes in your experiment. I > guess > > the question is, does it make theoretical sense to do so? > > > > > > > > On Mon, Apr 19, 2010 at 7:33 AM, Tobias wrote: > > > Thanks Robert, > > > > > if I am not getting you wrong, this means that C is independent of d' > > > but not of the hit rate. > > > The question occurs to me if you can really say that one condition is > > > more liberal if they are just better obviously. > > > > > Cheers, > > > Tobias > > > > > On 16 Apr., 21:25, Robert Ariel wrote: > > > > Tobias, > > > > > > Computationally, C is the average of the your transformed hit and > false > > > > alarm rates. You can see this in the equation you presented. So, no > > > doubt > > > > if you have equal false alarm rates across conditions, differences in > C > > > are > > > > resulting because of differences in hit rates. > > > > > > Basically with equal false alarm rates, the condition with a higher > hit > > > rate > > > > will always be more liberal. If hit rates are equal, the condition > with > > > > higher false alarm rate will be more liberal. > > > > > > Best, > > > > > > Robert > > > > > > On Fri, Apr 16, 2010 at 9:59 AM, Tobias wrote: > > > > > Hi together, > > > > > > > this might be a bit off topic but as you are all very much into > > > > > psychological experimental science you might be of great help for > this > > > > > issue. Besides, my topic is the outcome of an E-Prime experiment ;) > > > > > > > It is about the response bias in signal detection theory (SDT). > I've > > > > > heard that C is usually better than Beta as a measure of response > bias > > > > > as it is indpendent of d'. Now what I have in my experiment is a > very > > > > > high hit rate for condition A and a lower hit rate for condition B. > > > > > False alarm rates are however the same for A and B. So what I get > > > > > using the formula for C (C = -0.5*(z(false alarms) + z(hits)) is a > > > > > liberal criterion C for A and a less liberal criterion for B. > > > > > > > So can I actually say that A is more liberal? Apparently this is > only > > > > > due to the fact that the hit rate is higher. I am quite puzzled by > > > > > this... glad for any help! > > > > > > > Tobias > > > > > > > -- > > > > > You received this message because you are subscribed to the Google > > > Groups > > > > > "E-Prime" group. > > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > > To unsubscribe from this group, send email to > > > > > e-prime+unsubscribe at googlegroups.com > > > > > > > > > > > > > > > > . > > > > > For more options, visit this group at > > > > >http://groups.google.com/group/e-prime?hl=en. > > > > > > -- > > > > You received this message because you are subscribed to the Google > Groups > > > "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to > > > e-prime+unsubscribe at googlegroups.com > > > > > > . > > > > For more options, visit this group athttp:// > > > groups.google.com/group/e-prime?hl=en. > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to > > > e-prime+unsubscribe at googlegroups.com > > > > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/e-prime?hl=en. > > > > -- > > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to > e-prime+unsubscribe at googlegroups.com > . > > For more options, visit this group athttp:// > groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to > e-prime+unsubscribe at googlegroups.com > . > For more options, visit this group at > http://groups.google.com/group/e-prime?hl=en. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -------------- next part -------------- An HTML attachment was scrubbed... URL: From h.nietnagel at googlemail.com Mon May 3 18:53:51 2010 From: h.nietnagel at googlemail.com (Hannes) Date: Mon, 3 May 2010 11:53:51 -0700 Subject: logging onset of TMS pulse? Message-ID: Hello, I would like to log the onset of the TMS pulse that is triggered by Eprime. But I do not know how to do that. I inserted a little InLine to trigger the TMS pulse, but how can I log the onset of the pulse? I started the script using the line: Dim TMS as Integer and ended the InLine with the line: c.SetAttrib "TMS", TMS I thought that this is the way to make an InLine an object? I wanted to record the onset of the TMS pulse using: c.SetAttrib TMS.Name & ".OnsetTime", TMS.OnsetTime Where did I make the mistake? Thank you very much in advance for your help! Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 3 19:04:38 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 3 May 2010 15:04:38 -0400 Subject: logging onset of TMS pulse? In-Reply-To: <626fe9ff-6504-47a9-8d74-961bbcbfe106@h9g2000yqm.googlegrou ps.com> Message-ID: Hannes, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... Instead of your current inline code, try the following single line: c.SetAttrib "TMS.OnsetTime", Clock.Read See if that does anything interesting for you, and then puzzle it out further from there. -- David McFarlane, Professional Faultfinder >I would like to log the onset of the TMS pulse that is triggered by >Eprime. But I do not know how to do that. I inserted a little InLine >to trigger the TMS pulse, but how can I log the onset of the pulse? >I started the script using the line: >Dim TMS as Integer >and ended the InLine with the line: >c.SetAttrib "TMS", TMS > >I thought that this is the way to make an InLine an object? > >I wanted to record the onset of the TMS pulse using: >c.SetAttrib TMS.Name & ".OnsetTime", TMS.OnsetTime > >Where did I make the mistake? > > >Thank you very much in advance for your help! > >Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From a.schueppert at rug.nl Tue May 4 07:34:55 2010 From: a.schueppert at rug.nl (anja) Date: Tue, 4 May 2010 00:34:55 -0700 Subject: change response language Message-ID: Hi, in a translation task, I echo the participants' typed responses to the screen. I want the participants to answer in Swedish and Danish (two different experiments, though). Does anybody know how to change the keyboard settings from English to another language? Thank you! Anja -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liwenna at gmail.com Tue May 4 11:02:09 2010 From: liwenna at gmail.com (liwenna) Date: Tue, 4 May 2010 04:02:09 -0700 Subject: change response language In-Reply-To: <4b6935e0-4822-4492-b74e-7d561b4a3089@a34g2000yqn.googlegroups.com> Message-ID: Hey Anja, What would be the point of that? Afaik Denmark and Sweden use a QWERTY- keyboard just like we do and e-prime still doesn't support spell checking... ;). Regardless of the keyboard language your participants will be able to enter their responses in danish or swedish. Or am I majorly overlooking some feature that would depend on keyboard language? Groet, Anne-Wil On May 4, 9:34 am, anja wrote: > Hi, > > in a translation task, I echo the participants' typed responses to the > screen. I want the participants to answer in Swedish and Danish (two > different experiments, though). > > Does anybody know how to change the keyboard settings from English to > another language? > > Thank you! > Anja > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From a.schueppert at rug.nl Tue May 4 11:34:35 2010 From: a.schueppert at rug.nl (anja) Date: Tue, 4 May 2010 04:34:35 -0700 Subject: change response language In-Reply-To: Message-ID: Hi, the point would be to get the letters ä, ö and å correctly displayed! Groet, Anja -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From adele.dimian at gmail.com Tue May 4 19:45:56 2010 From: adele.dimian at gmail.com (Adele) Date: Tue, 4 May 2010 12:45:56 -0700 Subject: Blackjack task in E-prime Message-ID: Hello all, We are currently trying to program a Blackjack task in e-prime and have been trying unsuccessfully for months now! The problem we are having has to do with how to calculate the value of each card so we can then calculate the total value of the dealer and participant's hands. We are trying to use an array to declare the value of the cards (bear with us this is our first time attempting to use an array). The cards are set up in a blocklist with card values. In theory we would like to draw from this list to declare the values, so that the values are consistent with the cards dealt. Once the card values are declared we then would like to use an equation to add the card values and compare the participant total card value to the dealer card value. We need the dealer card value to program when the dealer hits and stays. Please see below, can anyone point us in the right direction? We would appreciate it immensely! Thanks for your time and consideration. Kind regards, Adele and Brittany Please excuse our inexperience and disorganization, here are several different ways we were trying to get the card values: '******************> ' CalcNewTotalVal '******************> Dim value As Integer Dim total As Integer Dim CardCount As Integer Dim i As Integer Dim DealerCardCount As Integer Dim PlayerCardCount As Integer Dim Deck As clsDeck Dim hit as integer Dim stay as Integer Dim playercardtotal as integer Dim Dealercardtotal as integer Dim won as currency Dim lost as currency dim winnings as currency Dim arrValue (10) as integer For i = 0 'c.SetAttrib "Won", "Won" 'c.SetAttrib "Lost", "Lost" 'won = val(c.getattrib("Won")) 'lost = val(c.getattrib("Lost")) total = total + won - lost winnings = total - val(c.getattrib("borrowed")) 'c.SetAttrib "Hit", "Hit" 'c.SetAttrib "Stay", "Stay" 'Hit = val(c.getattrib("Hit")) 'Stay = val(c.getattrib("Stay")) 'c.getattrib("ValBC1") 'c.getattrib("ValSC") 'c.getattrib("ValHit1") 'c.getattrib("ValHit2") 'c.getattrib("ValDBC1") 'c.getattrib("ValDSC") 'c.getattrib("ValDHit1") 'c.getattrib("ValDHit2") Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" winnings = total - val(c.getattrib("borrowed")) If Playercardtotal > 21 Then MsgBox "You busted" goto EndlabelDealerif2 End If 'For DealerTotal = GetCardTotal(Dealer) If DealerCardTotal > 21 Then MsgBox "Dealer busts" ElseIf DealerCardTotal > 15 Then MsgBox "Dealer stays" ' EndGame 'Else ' DealerCardCount = DealerCardCount + 1 ' Deck.Deal 1, Dealer, _ ' DealerCardCount * 80 + 20, 60, 0, FaceUp End If 'total = 0 'CardCount = Choice1.NumCardsInHand(plyer) 'For i = 0 To CardCount - 1 ' value = Choice1.GetCardValue(plyer, i) Mod 13 ' total = total + value + 1 'Dim msg As String 'Deck.ShowHandCard Dealer, 0, FaceUp 'DealerCardTotal = GetCardTotal(Dealer) 'PlayerCardTotal = GetCardTotal(Player) Set Choice1 = Nothing 'msg = "Dealer: " + CStr(DealerCardTotal) + _ ' + "Player: " + CStr(PlayerCardTotal) If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And DealerCardTotal < 22) then MsgBox "You lose." Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And DealerCardTotal > 22) then msgBox "You win." End If debug.print "won " & c.getattrib("won") -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Tue May 4 19:13:39 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Tue, 4 May 2010 12:13:39 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph Message-ID: Hello, I’m trying to develop a behavioral choice task in which a participant will be able to increase or decrease a percentage of pie dependent upon the contingency of the experiment. I’ve attached the code that I was planning on using, which I took from the e-basic help file. There are a couple of lines that I plan on removing from the script such as the lines referencing “random” and “nCount”. However, overall this is aesthetically what I want the program to look like. My question is; I want the participant to be able to increase and decrease the percentage of pie using the 1 and 2 keys. I’m having trouble finding lines of script, or references pertaining to, what I’d like to achieve within the design. Does anyone have any suggestions? 'Create a Canvas Dim cnvs As Canvas 'Set cnvs as the current, onscreen canvas Set cnvs = Display.Canvas 'Declare variables used to set the size of the canvas Dim XRes As Integer, YRes As Integer 'Set the canvas size as the entire screen resolution XRes = Display.XRes YRes = Display.YRes 'Declare and initialize variables to be used when drawing the sections of the circle Const nRadius As Integer = 100 Dim nStartAngle As Integer, nEndAngle As Integer Dim nCount As Integer 'Initialize variables nStartAngle = 90 nEndAngle = 90 'Declare variables to be used to randomly select the delay value Dim nRandom As Integer Dim nDelay As Integer 'Select a random number to determine the value of the delay between the drawing of each section of the circle nRandom = Random (1, 2) 'If the random number chosen is 1, the nDelay value is set to 500 ms. 'Otherwise, the nDelay value is set to 1000 ms. If nRandom = 1 Then nDelay = 500 Else nDelay = 1000 End If 'Set color of pen for pie slice cnvs.PenColor = CColor("red") cnvs.FillColor = CColor("red") 'The For…Next statement repeats a block of statements a specified number of times 'incrementing a loop counter by a given increment each time through the loop 'In this sample, the nCount variable is incremented by one each time through the loop allowing ten pie slices to be drawn. For nCount = 1 to 10 'Adjust startAngle to specify where to start each section of the circle each time a pie slice is drawn nStartAngle = nStartAngle - 36 'Draw a pie slice with center point at x, y and radius r, starting at startAngle and drawing to endAngle. cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle 'Sleep before drawing next pie slice Sleep nDelay Next nCount 'Set fill color to white before clearing canvas cnvs.FillColor = CColor("white") 'Clear canvas cnvs.clear 'Set the value of the delay as an attribute in the data file Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From h.nietnagel at googlemail.com Wed May 5 07:31:42 2010 From: h.nietnagel at googlemail.com (Hannes) Date: Wed, 5 May 2010 00:31:42 -0700 Subject: logging onset of TMS pulse? In-Reply-To: <4bdf1e51.5344f10a.5f0d.ffffe25cSMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hello, thank you very much David, your suggestion > Instead of your current inline code, try the following single line: > > c.SetAttrib "TMS.OnsetTime", Clock.Read works. At least I can see the OnseTime. But there are still problems remaining: how can I precisely time the onset of the TMS trigger? Or to put it even more exactly: I would like to give the TMS pulse right at the end (= OffsetTime) of the preceding visual stimulus. Where can I set this timing? I did not find any hint in the manuals how I can set the timing of an InLine. Another problem is that there are certain delays in displaying the stimuli (as far as I can tell from the StartTime, FinishTime, OnsetTime, OffsetTime), even though I already set the timing to "cumulative" and put a prerelease... Is it possible at all to work very precisely in the millisecond range using Eprime? Thank you very much for your advice! Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liwenna at gmail.com Wed May 5 11:04:45 2010 From: liwenna at gmail.com (liwenna) Date: Wed, 5 May 2010 04:04:45 -0700 Subject: change response language In-Reply-To: <59fbde58-3ed5-42d5-b0d8-c303e13e00bb@24g2000yqy.googlegroups.com> Message-ID: ahh... so I was overlooking something ^.^ I suppose you have read this thread: http://www.pstnet.com/forum/Topic1578-8-1.aspx#bm2146 Which doesn't really help out in the end either. We had someone asking t about the use of hebrew in e-prime not too long ago (search function should bring you to this threads) but I think that in the end the conclusion was that it is not possible to use a non-english font for the echo-function (i.e. where subject type in their responses). This is the reply that Yoed (the person asking about hebrew fonts) got from PST: *********** Are you using E-Prime v1.x or E-Prime 2.0? While E-Prime 2.0 is supported by the English/Western European versions of Windows XP and Vista, this really only applies to text that is displayed by the objects. That is, while the "Text" property of a TextDisplay will accept foreign characters, the other properties (including .Input and its related echo properties) will not. All non-English characters or accents will go unrecognized by E-Prime in the responses and in the text that is echoed to the screen. E-Prime 2.0 has resolved this to some degree by allowing non-English fonts to appear as responses in the data file (i.e., UNICODE fonts are permitted). However, the echo client will still only display English and the responses themselves will still be based on the QWERTY keyboard. You could get around this by manually echoing the subject's responses to the screen. For example, you could take the subject's input and then convert it to Hebrew in script, and then display this on screen (e.g., if the semicolon key is pressed, convert this to a specific character and display it on screen, etc). However, this can be fairly script intensive and would require that the Hebrew characters appear correctly in TextDisplay objects and/or Slide objects and appear correctly in InLine objects. If you are interested, I would recommend taking a look at SAMPLE:Process Responses Templatefor an example of how to change what is displayed on screen based on the subject's responses. Please let me know if you have any further questions. *********** Your task is a translation task... does it require randomization or any special stuff regarding timing? Otherwise you might consider using, for instance, surveymonkey. Web based, designed for creating and filling out of surveys, it does allow text boxes where subjects type in their answer and, most importantly, it supports multiple languages (at least accordign to their FAQ). Best, AW -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Wed May 5 11:54:18 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 5 May 2010 12:54:18 +0100 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <740421fc-e2f7-4a4e-ad9b-1737f19d71b8@q30g2000yqd.googlegroups.com> Message-ID: Hi, A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: If mySlide.resp = 2 then If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 end if If mySlide.resp = 1 then If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 end if Should work. Any response other than 1 or 2 is taken as final answer. B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel Sent: 04 May 2010 20:14 To: E-Prime Subject: increasing/decreasing percentage - pie chart/ circular graph Hello, I'm trying to develop a behavioral choice task in which a participant will be able to increase or decrease a percentage of pie dependent upon the contingency of the experiment. I've attached the code that I was planning on using, which I took from the e-basic help file. There are a couple of lines that I plan on removing from the script such as the lines referencing "random" and "nCount". However, overall this is aesthetically what I want the program to look like. My question is; I want the participant to be able to increase and decrease the percentage of pie using the 1 and 2 keys. I'm having trouble finding lines of script, or references pertaining to, what I'd like to achieve within the design. Does anyone have any suggestions? 'Create a Canvas Dim cnvs As Canvas 'Set cnvs as the current, onscreen canvas Set cnvs = Display.Canvas 'Declare variables used to set the size of the canvas Dim XRes As Integer, YRes As Integer 'Set the canvas size as the entire screen resolution XRes = Display.XRes YRes = Display.YRes 'Declare and initialize variables to be used when drawing the sections of the circle Const nRadius As Integer = 100 Dim nStartAngle As Integer, nEndAngle As Integer Dim nCount As Integer 'Initialize variables nStartAngle = 90 nEndAngle = 90 'Declare variables to be used to randomly select the delay value Dim nRandom As Integer Dim nDelay As Integer 'Select a random number to determine the value of the delay between the drawing of each section of the circle nRandom = Random (1, 2) 'If the random number chosen is 1, the nDelay value is set to 500 ms. 'Otherwise, the nDelay value is set to 1000 ms. If nRandom = 1 Then nDelay = 500 Else nDelay = 1000 End If 'Set color of pen for pie slice cnvs.PenColor = CColor("red") cnvs.FillColor = CColor("red") 'The For...Next statement repeats a block of statements a specified number of times 'incrementing a loop counter by a given increment each time through the loop 'In this sample, the nCount variable is incremented by one each time through the loop allowing ten pie slices to be drawn. For nCount = 1 to 10 'Adjust startAngle to specify where to start each section of the circle each time a pie slice is drawn nStartAngle = nStartAngle - 36 'Draw a pie slice with center point at x, y and radius r, starting at startAngle and drawing to endAngle. cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle 'Sleep before drawing next pie slice Sleep nDelay Next nCount 'Set fill color to white before clearing canvas cnvs.FillColor = CColor("white") 'Clear canvas cnvs.clear 'Set the value of the delay as an attribute in the data file Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 5 14:13:56 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 5 May 2010 10:13:56 -0400 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EEC20@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive If...Thens stand (and while at it also added a couple comments, and used line continuation characters to break long lines): If mySlide.resp = 2 then ' increase pie slice If c.GetAttrib("CurrentPerc") < 100 then _ c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ c.GetAttrib("CurrentPerc") - 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 End If Might also use a variable instead of an attribute reference for CurrentPerc, thus, Dim currentPerc If mySlide.resp = 2 then ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End If And to complete the exercise, let's use Select...Case: Dim currentPerc Select Case mySlide.RESP Case 2 ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 Case 1 ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End Select -- David McFarlane, Professional Faultfinder On 5 May 2010 Michiel Spape wrote: > Hi, > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > If mySlide.resp = 2 then > If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > If mySlide.resp = 1 then > If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > > Should work. Any response other than 1 or 2 is taken as final answer. > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > Best, > Mich > > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > Sent: 04 May 2010 20:14 > To: E-Prime > Subject: increasing/decreasing percentage - pie chart/ circular graph > > Hello, > > I'm trying to develop a behavioral choice task in which a participant > will be able to increase or decrease a percentage of pie dependent > upon the contingency of the experiment. I've attached the code that I > was planning on using, which I took from the e-basic help file. There > are a couple of lines that I plan on removing from the script such as > the lines referencing "random" and "nCount". However, overall this is > aesthetically what I want the program to look like. My question is; I > want the participant to be able to increase and decrease the > percentage of pie using the 1 and 2 keys. I'm having trouble finding > lines of script, or references pertaining to, what I'd like to achieve > within the design. Does anyone have any suggestions? > > 'Create a Canvas > Dim cnvs As Canvas > 'Set cnvs as the current, onscreen canvas > Set cnvs = Display.Canvas > 'Declare variables used to set the size of the canvas > Dim XRes As Integer, YRes As Integer > 'Set the canvas size as the entire screen resolution > XRes = Display.XRes > YRes = Display.YRes > > 'Declare and initialize variables to be used when drawing the sections > of the circle > Const nRadius As Integer = 100 > Dim nStartAngle As Integer, nEndAngle As Integer > Dim nCount As Integer > > 'Initialize variables > nStartAngle = 90 > nEndAngle = 90 > > 'Declare variables to be used to randomly select the delay value > Dim nRandom As Integer > Dim nDelay As Integer > 'Select a random number to determine the value of the delay between > the drawing of each section of the circle > nRandom = Random (1, 2) > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > 'Otherwise, the nDelay value is set to 1000 ms. > If nRandom = 1 Then > nDelay = 500 > Else > nDelay = 1000 > End If > > 'Set color of pen for pie slice > cnvs.PenColor = CColor("red") > cnvs.FillColor = CColor("red") > 'The For...Next statement repeats a block of statements a specified > number of times > 'incrementing a loop counter by a given increment each time through > the loop > 'In this sample, the nCount variable is incremented by one each time > through the loop allowing ten pie slices to be drawn. > > For nCount = 1 to 10 > > > > 'Adjust startAngle to specify where to start each section of the > circle each time a pie slice is drawn > nStartAngle = nStartAngle - 36 > 'Draw a pie slice with center point at x, y and radius r, starting at > startAngle and drawing to endAngle. > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > 'Sleep before drawing next pie slice > Sleep nDelay > Next nCount > 'Set fill color to white before clearing canvas > cnvs.FillColor = CColor("white") > 'Clear canvas > cnvs.clear > 'Set the value of the delay as an attribute in the data file > > Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 5 14:33:11 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 5 May 2010 10:33:11 -0400 Subject: logging onset of TMS pulse? In-Reply-To: <51bf3c23-6d55-4533-8a0e-ee381bcfe3fe@o14g2000yqb.googlegroups.com> Message-ID: Hannes, Once again, I advise that you take this up directly with PST Web Support, even if only to get a second opinion -- let them do their job. Also, look at the .OffsetSignalData, .OffsetSignalEnabled, and .OffsetSignalPort properties of various stimuls objects in the online E-Basic Help. I have never used these myself, so I cannot provide any further help there. As to setting the timing of inline code, inline code starts running as soon as the previous object ends. If you want inline code to start at a specific time, just add a loop to provide a delay. E.g., if you want inline code to proceed no sooner than 100 ms after the offset time of object StimText, then do something like Dim codeStartTime as Long codeStartTime = StimText.OffsetTime + 100 Do Until (Clock.Read >= codeStartTime) Loop ' inline code continues here... As to delays in displaying visual stimuli, as explained in detail in Chapter 3 of the User's Guide that came with E-Prime, some delay is inevitable simply due to the nature of the display technology. Please go back and study Chapter 3 more thoroughly. Finally, when you do get this worked out please report back here, as I would like to know better how some of this works myself. -- David McFarlane, Professional Faultfinder On 5 May 2010 Hannes wrote: > thank you very much David, your suggestion >> Instead of your current inline code, try the following single line: >> >> c.SetAttrib "TMS.OnsetTime", Clock.Read > > works. At least I can see the OnseTime. > But there are still problems remaining: how can I precisely time the > onset of the TMS trigger? Or to put it even more exactly: I would like > to give the TMS pulse right at the end (= OffsetTime) of the preceding > visual stimulus. Where can I set this timing? I did not find any hint > in the manuals how I can set the timing of an InLine. > Another problem is that there are certain delays in displaying the > stimuli (as far as I can tell from the StartTime, FinishTime, > OnsetTime, OffsetTime), even though I already set the timing to > "cumulative" and put a prerelease... > Is it possible at all to work very precisely in the millisecond range > using Eprime? > > Thank you very much for your advice! > > Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Wed May 5 16:00:26 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 5 May 2010 17:00:26 +0100 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4BE17D24.6010802@msu.edu> Message-ID: Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: If IsNumeric(mySlide.RESP) then If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ currentPerc = currentPerc + cint(mySlide.RESP)-5 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End if ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 05 May 2010 15:14 To: e-prime at googlegroups.com Subject: Re: increasing/decreasing percentage - pie chart/ circular graph Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive If...Thens stand (and while at it also added a couple comments, and used line continuation characters to break long lines): If mySlide.resp = 2 then ' increase pie slice If c.GetAttrib("CurrentPerc") < 100 then _ c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ c.GetAttrib("CurrentPerc") - 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 End If Might also use a variable instead of an attribute reference for CurrentPerc, thus, Dim currentPerc If mySlide.resp = 2 then ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End If And to complete the exercise, let's use Select...Case: Dim currentPerc Select Case mySlide.RESP Case 2 ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 Case 1 ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End Select -- David McFarlane, Professional Faultfinder On 5 May 2010 Michiel Spape wrote: > Hi, > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > If mySlide.resp = 2 then > If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > If mySlide.resp = 1 then > If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > > Should work. Any response other than 1 or 2 is taken as final answer. > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > Best, > Mich > > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > Sent: 04 May 2010 20:14 > To: E-Prime > Subject: increasing/decreasing percentage - pie chart/ circular graph > > Hello, > > I'm trying to develop a behavioral choice task in which a participant > will be able to increase or decrease a percentage of pie dependent > upon the contingency of the experiment. I've attached the code that I > was planning on using, which I took from the e-basic help file. There > are a couple of lines that I plan on removing from the script such as > the lines referencing "random" and "nCount". However, overall this is > aesthetically what I want the program to look like. My question is; I > want the participant to be able to increase and decrease the > percentage of pie using the 1 and 2 keys. I'm having trouble finding > lines of script, or references pertaining to, what I'd like to achieve > within the design. Does anyone have any suggestions? > > 'Create a Canvas > Dim cnvs As Canvas > 'Set cnvs as the current, onscreen canvas > Set cnvs = Display.Canvas > 'Declare variables used to set the size of the canvas > Dim XRes As Integer, YRes As Integer > 'Set the canvas size as the entire screen resolution > XRes = Display.XRes > YRes = Display.YRes > > 'Declare and initialize variables to be used when drawing the sections > of the circle > Const nRadius As Integer = 100 > Dim nStartAngle As Integer, nEndAngle As Integer > Dim nCount As Integer > > 'Initialize variables > nStartAngle = 90 > nEndAngle = 90 > > 'Declare variables to be used to randomly select the delay value > Dim nRandom As Integer > Dim nDelay As Integer > 'Select a random number to determine the value of the delay between > the drawing of each section of the circle > nRandom = Random (1, 2) > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > 'Otherwise, the nDelay value is set to 1000 ms. > If nRandom = 1 Then > nDelay = 500 > Else > nDelay = 1000 > End If > > 'Set color of pen for pie slice > cnvs.PenColor = CColor("red") > cnvs.FillColor = CColor("red") > 'The For...Next statement repeats a block of statements a specified > number of times > 'incrementing a loop counter by a given increment each time through > the loop > 'In this sample, the nCount variable is incremented by one each time > through the loop allowing ten pie slices to be drawn. > > For nCount = 1 to 10 > > > > 'Adjust startAngle to specify where to start each section of the > circle each time a pie slice is drawn > nStartAngle = nStartAngle - 36 > 'Draw a pie slice with center point at x, y and radius r, starting at > startAngle and drawing to endAngle. > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > 'Sleep before drawing next pie slice > Sleep nDelay > Next nCount > 'Set fill color to white before clearing canvas > cnvs.FillColor = CColor("white") > 'Clear canvas > cnvs.clear > 'Set the value of the delay as an attribute in the data file > > Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 5 16:23:52 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 5 May 2010 09:23:52 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EED73@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: wow, thanks a lot to the both of you! what a nice bit of information to find upon arrivign to work thsi morning! On May 5, 11:00 am, Michiel Spape wrote: > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > If IsNumeric(mySlide.RESP) then >         If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ >         currentPerc = currentPerc + cint(mySlide.RESP)-5 >         c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" >         goto Label1 > End if > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > Best, > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > Sent: 05 May 2010 15:14 > To: e-prime at googlegroups.com > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > If...Thens stand (and while at it also added a couple comments, and used > line continuation characters to break long lines): > > If mySlide.resp = 2 then  ' increase pie slice >      If c.GetAttrib("CurrentPerc") < 100 then _ >          c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ >          & ".bmp" >      goto Label1 > ElseIf mySlide.resp = 1 then  ' decrease pie slice >      If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ >          c.GetAttrib("CurrentPerc") - 1 >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ >          & ".bmp" >      goto Label1 > End If > > Might also use a variable instead of an attribute reference for > CurrentPerc, thus, > > Dim  currentPerc > If mySlide.resp = 2 then  ' increase pie slice >      If (currentPerc < 100) then currentPerc = currentPerc + 1 >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > ElseIf mySlide.resp = 1 then  ' decrease pie slice >      If (currentPerc > 1) then currentPerc = currentPerc - 1 >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > End If > > And to complete the exercise, let's use Select...Case: > > Dim  currentPerc > Select Case mySlide.RESP >    Case 2  ' increase pie slice >      If (currentPerc < 100) then currentPerc = currentPerc + 1 >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 >    Case 1  ' decrease pie slice >      If (currentPerc > 1) then currentPerc = currentPerc - 1 >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > End Select > > -- David McFarlane, Professional Faultfinder > > On 5 May 2010 Michiel Spape wrote: > > Hi, > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > If mySlide.resp = 2 then > >    If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > >    goto Label1 > > end if > > If mySlide.resp = 1 then > >    If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > >    goto Label1 > > end if > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > Best, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > Sent: 04 May 2010 20:14 > > To: E-Prime > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > Hello, > > > I'm trying to develop a behavioral choice task in which a participant > > will be able to increase or decrease a percentage of pie dependent > > upon the contingency of the experiment. I've attached the code that I > > was planning on using, which I took from the e-basic help file. There > > are a couple of lines that I plan on removing from the script such as > > the lines referencing "random" and "nCount". However, overall this is > > aesthetically what I want the program to look like. My question is; I > > want the participant to be able to increase and decrease the > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > lines of script, or references pertaining to, what I'd like to achieve > > within the design. Does anyone have any suggestions? > > > 'Create a Canvas > > Dim cnvs As Canvas > > 'Set cnvs as the current, onscreen canvas > > Set cnvs = Display.Canvas > > 'Declare variables used to set the size of the canvas > > Dim XRes As Integer, YRes As Integer > > 'Set the canvas size as the entire screen resolution > > XRes = Display.XRes > > YRes = Display.YRes > > > 'Declare and initialize variables to be used when drawing the sections > > of the circle > > Const nRadius As Integer = 100 > > Dim nStartAngle As Integer, nEndAngle As Integer > > Dim nCount As Integer > > > 'Initialize variables > > nStartAngle = 90 > > nEndAngle = 90 > > > 'Declare variables to be used to randomly select the delay value > > Dim nRandom As Integer > > Dim nDelay As Integer > > 'Select a random number to determine the value of the delay between > > the drawing of each section of the circle > > nRandom = Random (1, 2) > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > 'Otherwise, the nDelay value is set to 1000 ms. > > If nRandom = 1 Then > > nDelay = 500 > > Else > > nDelay = 1000 > > End If > > > 'Set color of pen for pie slice > > cnvs.PenColor = CColor("red") > > cnvs.FillColor = CColor("red") > > 'The For...Next statement repeats a block of statements a specified > > number of times > > 'incrementing a loop counter by a given increment each time through > > the loop > > 'In this sample, the nCount variable is incremented by one each time > > through the loop allowing ten pie slices to be drawn. > > > For nCount = 1 to 10 > > > 'Adjust startAngle to specify where to start each section of the > > circle each time a pie slice is drawn > > nStartAngle = nStartAngle - 36 > > 'Draw a pie slice with center point at x, y and radius r, starting at > > startAngle and drawing to endAngle. > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > 'Sleep before drawing next pie slice > > Sleep nDelay > > Next nCount > > 'Set fill color to white before clearing canvas > > cnvs.FillColor = CColor("white") > > 'Clear canvas > > cnvs.clear > > 'Set the value of the delay as an attribute in the data file > > > Thank you. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 5 16:25:46 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 5 May 2010 09:25:46 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <6bc85dcc-13ea-4f45-bf06-2d8d8d0f40dd@x40g2000yqd.googlegroups.com> Message-ID: oops, should have spell checked. just got a little too excited to get to work. On May 5, 11:23 am, Matt Paffel wrote: > wow, thanks a lot to the both of you! what a nice bit of information > to find upon arrivign to work thsi morning! > > On May 5, 11:00 am, Michiel Spape > wrote: > > > > > > > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > > If IsNumeric(mySlide.RESP) then > >         If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > >         currentPerc = currentPerc + cint(mySlide.RESP)-5 > >         c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > >         goto Label1 > > End if > > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > > Best, > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > > Sent: 05 May 2010 15:14 > > To: e-prime at googlegroups.com > > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > > If...Thens stand (and while at it also added a couple comments, and used > > line continuation characters to break long lines): > > > If mySlide.resp = 2 then  ' increase pie slice > >      If c.GetAttrib("CurrentPerc") < 100 then _ > >          c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > >          & ".bmp" > >      goto Label1 > > ElseIf mySlide.resp = 1 then  ' decrease pie slice > >      If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > >          c.GetAttrib("CurrentPerc") - 1 > >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > >          & ".bmp" > >      goto Label1 > > End If > > > Might also use a variable instead of an attribute reference for > > CurrentPerc, thus, > > > Dim  currentPerc > > If mySlide.resp = 2 then  ' increase pie slice > >      If (currentPerc < 100) then currentPerc = currentPerc + 1 > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > >      goto Label1 > > ElseIf mySlide.resp = 1 then  ' decrease pie slice > >      If (currentPerc > 1) then currentPerc = currentPerc - 1 > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > >      goto Label1 > > End If > > > And to complete the exercise, let's use Select...Case: > > > Dim  currentPerc > > Select Case mySlide.RESP > >    Case 2  ' increase pie slice > >      If (currentPerc < 100) then currentPerc = currentPerc + 1 > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > >      goto Label1 > >    Case 1  ' decrease pie slice > >      If (currentPerc > 1) then currentPerc = currentPerc - 1 > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > >      goto Label1 > > End Select > > > -- David McFarlane, Professional Faultfinder > > > On 5 May 2010 Michiel Spape wrote: > > > Hi, > > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > > If mySlide.resp = 2 then > > >    If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > >    goto Label1 > > > end if > > > If mySlide.resp = 1 then > > >    If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > >    goto Label1 > > > end if > > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > > Best, > > > Mich > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychology > > > > -----Original Message----- > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > > Sent: 04 May 2010 20:14 > > > To: E-Prime > > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > > Hello, > > > > I'm trying to develop a behavioral choice task in which a participant > > > will be able to increase or decrease a percentage of pie dependent > > > upon the contingency of the experiment. I've attached the code that I > > > was planning on using, which I took from the e-basic help file. There > > > are a couple of lines that I plan on removing from the script such as > > > the lines referencing "random" and "nCount". However, overall this is > > > aesthetically what I want the program to look like. My question is; I > > > want the participant to be able to increase and decrease the > > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > > lines of script, or references pertaining to, what I'd like to achieve > > > within the design. Does anyone have any suggestions? > > > > 'Create a Canvas > > > Dim cnvs As Canvas > > > 'Set cnvs as the current, onscreen canvas > > > Set cnvs = Display.Canvas > > > 'Declare variables used to set the size of the canvas > > > Dim XRes As Integer, YRes As Integer > > > 'Set the canvas size as the entire screen resolution > > > XRes = Display.XRes > > > YRes = Display.YRes > > > > 'Declare and initialize variables to be used when drawing the sections > > > of the circle > > > Const nRadius As Integer = 100 > > > Dim nStartAngle As Integer, nEndAngle As Integer > > > Dim nCount As Integer > > > > 'Initialize variables > > > nStartAngle = 90 > > > nEndAngle = 90 > > > > 'Declare variables to be used to randomly select the delay value > > > Dim nRandom As Integer > > > Dim nDelay As Integer > > > 'Select a random number to determine the value of the delay between > > > the drawing of each section of the circle > > > nRandom = Random (1, 2) > > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > > 'Otherwise, the nDelay value is set to 1000 ms. > > > If nRandom = 1 Then > > > nDelay = 500 > > > Else > > > nDelay = 1000 > > > End If > > > > 'Set color of pen for pie slice > > > cnvs.PenColor = CColor("red") > > > cnvs.FillColor = CColor("red") > > > 'The For...Next statement repeats a block of statements a specified > > > number of times > > > 'incrementing a loop counter by a given increment each time through > > > the loop > > > 'In this sample, the nCount variable is incremented by one each time > > > through the loop allowing ten pie slices to be drawn. > > > > For nCount = 1 to 10 > > > > 'Adjust startAngle to specify where to start each section of the > > > circle each time a pie slice is drawn > > > nStartAngle = nStartAngle - 36 > > > 'Draw a pie slice with center point at x, y and radius r, starting at > > > startAngle and drawing to endAngle. > > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > > 'Sleep before drawing next pie slice > > > Sleep nDelay > > > Next nCount > > > 'Set fill color to white before clearing canvas > > > cnvs.FillColor = CColor("white") > > > 'Clear canvas > > > cnvs.clear > > > 'Set the value of the delay as an attribute in the data file > > > > Thank you. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message has been checked for viruses but the contents of an attachment > > may still contain software viruses which could damage your computer system: > > you are advised to perform your own checks. Email communications with the > > University of Nottingham may be monitored as permitted by UK legislation. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.-Hide quoted text - > > > - Show quoted text - > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Thu May 6 09:17:11 2010 From: vera.donk at googlemail.com (Vera) Date: Thu, 6 May 2010 02:17:11 -0700 Subject: Read out certain levels only Message-ID: Dear forum members, I already got some very useful help here and as I am now running into a new problem with E-Prime, I will see if you can help me out (again). I did all my homework: yes I looked at the reference guide, getting started guide, all other documents concerning E-Prime, yes I combed through this forum, yes I combed through the PST-forum. :-) So here's the problem: I created a list of conditions (and all that has been working fine until now) and as we are moving on to another experimental setup, it is now very important that half of the conditions appear on one type of stimulus and the other half of conditions appear on another type of stimulus. To be more clear: On Trigger1 I want only a certain type of the 18 conditions I have to be executed. On Trigger2 I want the other 18 conditions (another type) to be executed. I know I could be able to do this over nested lists (probably), but it would take a lot of time too, as then "big surgery" has to be done on my program. ;-) So I figured that there should be some way to add a few lines of code, which tell E-Prime that it should only use a certain level in a certain condition. I wrote: If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then c.getAttrib("TriggerPos") = 1 ElseIf NewTriggerValue = 0 Then c.getAttrib("TriggerPos") = 0 End If TriggerPos = the type of trigger (1 or 0) which I added as an attribute in my designlist. When I try to execute, Eprime tells me "Can't Assign to Constant" Ok. But what do I need to add then in order to make it work? Basically I want Eprime in certain conditions only to use the levels that have "1" in the attribute "TriggerPos". I know that I am not very far from a solution. Any help would be very much appreciated. :-) Vera -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Thu May 6 12:31:26 2010 From: vera.donk at googlemail.com (Vera) Date: Thu, 6 May 2010 05:31:26 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: Ok, got a bit further (but it's still not working fine): I added this inline: If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") ElseIf NewTriggerValue = 0 Then Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") End If It's based on something David once wrote concerning counterbalancing (it would have been so much easier if E-Prime could just counterbalance for any attribute and not just Group, Subject and Session). I am actually hoping to tell E-Prime with this, that it needs to take any of the 18 levels which has either 1 or 0 in the TriggerPos attribute. It doesn't seem to work though. :-( E-Prime now only runs 1 trials (instead of 36). Any hints on that? Grrr, I know I am not very far from a solution... Greetings, Vera On May 6, 11:17 am, Vera wrote: > Dear forum members, > > I already got some very useful help here and as I am now running into > a new problem with E-Prime, I will see if you can help me out (again). > I did all my homework: yes I looked at the reference guide, getting > started guide, all other documents concerning E-Prime, yes I combed > through this forum, yes I combed through the PST-forum. :-) > > So here's the problem: > > I created a list of conditions (and all that has been working fine > until now) and as we are moving on to another experimental setup, it > is now very important that half of the conditions appear on one type > of stimulus and the other half of conditions appear on another type of > stimulus. > > To be more clear: > > On Trigger1 I want only a certain type of the 18 conditions I have to > be executed. > On Trigger2 I want the other 18 conditions (another type) to be > executed. > > I know I could be able to do this over nested lists (probably), but it > would take a lot of time too, as then "big surgery" has to be done on > my program. ;-) > > So I figured that there should be some way to add a few lines of code, > which tell E-Prime that it should only use a certain level in a > certain condition. > > I wrote: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then >         c.getAttrib("TriggerPos") = 1 > ElseIf NewTriggerValue = 0 Then >         c.getAttrib("TriggerPos") = 0 > End If > > TriggerPos = the type of trigger (1 or 0) which I added as an > attribute in my designlist. > When I try to execute, Eprime tells me "Can't Assign to Constant" > > Ok. But what do I need to add then in order to make it work? Basically > I want Eprime in certain conditions only to use the levels that have > "1" in the attribute "TriggerPos". > > I know that I am not very far from a solution. Any help would be very > much appreciated. :-) > > Vera > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From jesslawlor at gmail.com Thu May 6 21:34:46 2010 From: jesslawlor at gmail.com (JL) Date: Thu, 6 May 2010 14:34:46 -0700 Subject: Fixed Order of Pictures Message-ID: Hi there, I'm new to E-Prime and finding it a little tricky. I'm wondering is it possible to make a level whereby four pictures are presented and they must be clicked on in a certain fixed order? So for example if the fixed order is pic1, pic 2, pic3, pic 4 and the subject clicks pic 1,3,2,4 then for the clicks that were correct a certain sound and animation will occur to let the person know and for the ones that were wrong another sound and animation will occur. And then I'd like to be able to compare what the subject clicked to what they were supposed to click? Sorry this is very long winded, any help would be much appreciated! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 07:24:03 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 00:24:03 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: Ok guys, just to let you know that I am really trying here, a small update: Yesterday I tried to solve this problem with nested lists (knowing that nested lists very quickly get very complicated and taking into account that Michiel pointed out in his E-Prime doc that the random doesn't seem to be completely "trustable") but the problem is that I get to the same thing: I would basically have two lines, 1 pointing to the condition for trigger 1 and another one pointing to trigger 2. But then, how to access this line?? I need to figure out some way to tell E-Prime: If trigger 1 then PLEASE take only line 1 (Or in the old solution, which I very much preferred, because it was much cleaner - nested lists do have a high "sudoku-effect"): If trigger 1 PLEASE take any of the lines for which attribute.trigger1 = 1 Down to the beginning again, I don't know how to solve this. :-( Any ideas are very welcome. :-) Greetings, Vera On May 6, 2:31 pm, Vera wrote: > Ok, got a bit further (but it's still not working fine): > > I added this inline: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > ElseIf NewTriggerValue = 0 Then >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > End If > > It's based on something David once wrote concerning counterbalancing > (it would have been so much easier if E-Prime could just > counterbalance for any attribute and not just Group, Subject and > Session). I am actually hoping to tell E-Prime with this, that it > needs to take any of the 18 levels which has either 1 or 0 in the > TriggerPos attribute. It doesn't seem to work though. :-( > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > Grrr, I know I am not very far from a solution... > > Greetings, Vera > > On May 6, 11:17 am, Vera wrote: > > > > > Dear forum members, > > > I already got some very useful help here and as I am now running into > > a new problem with E-Prime, I will see if you can help me out (again). > > I did all my homework: yes I looked at the reference guide, getting > > started guide, all other documents concerning E-Prime, yes I combed > > through this forum, yes I combed through the PST-forum. :-) > > > So here's the problem: > > > I created a list of conditions (and all that has been working fine > > until now) and as we are moving on to another experimental setup, it > > is now very important that half of the conditions appear on one type > > of stimulus and the other half of conditions appear on another type of > > stimulus. > > > To be more clear: > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > be executed. > > On Trigger2 I want the other 18 conditions (another type) to be > > executed. > > > I know I could be able to do this over nested lists (probably), but it > > would take a lot of time too, as then "big surgery" has to be done on > > my program. ;-) > > > So I figured that there should be some way to add a few lines of code, > > which tell E-Prime that it should only use a certain level in a > > certain condition. > > > I wrote: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > >         c.getAttrib("TriggerPos") = 1 > > ElseIf NewTriggerValue = 0 Then > >         c.getAttrib("TriggerPos") = 0 > > End If > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > attribute in my designlist. > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > Ok. But what do I need to add then in order to make it work? Basically > > I want Eprime in certain conditions only to use the levels that have > > "1" in the attribute "TriggerPos". > > > I know that I am not very far from a solution. Any help would be very > > much appreciated. :-) > > > Vera > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ll356 at medschl.cam.ac.uk Fri May 7 10:18:22 2010 From: ll356 at medschl.cam.ac.uk (River) Date: Fri, 7 May 2010 03:18:22 -0700 Subject: Multiple responses and Accuracy logging Message-ID: Hi all, I couldn't find any info about this anywhere (probably I've just missed it) but thought I'd put it out there in case anyone else was having the same problem. FYI when you set up your experiment to collect multiple responses (e.g. multiple key presses during a trial) the RT and RTTime are logged for the last response. HOWEVER this is not true for accuracy. If multiple responses have been made during a trial these will all be logged in the RESP column (e.g. 1134) and will be compared to what you list as the correct response to that trial. Typically the experimenter specified correct response is a single key press, therefore if multiple responses have been made, regardless of whether or not the last response made was the correct response, accuracy will be logged as 0. The script for collecting the individual details for multiple responses during a trial (RT, RTTime, accuracy) is on the PST site, under the samples tab. If you want EPrime to look at all the responses made during a trial and see if the correct answer was made at any point and what the RT, RTTime details were for it try using this script (i plugged it in at the end of the inline for the multiple response collection in my experiment and it seems to work like a charm)...obviously change the relevant bits: Dim CorBool as Boolean CorBool = False 'Set OverallAcc if any of the responses matches the correct response For nIndex2 = 1 to nPressCount2 If CorBool = True Then Exit For End If If c.GetAttrib("TrialPress" & nIndex2 & "RESP") = c.GetAttrib("CorrectAnswer") Then c.SetAttrib "OverallAcc", "1" If CorBool = False Then CorBool = True c.SetAttrib "CorrectAnswerRT", c.GetAttrib("TrialPress" & nIndex2 & "RT") c.SetAttrib "CorrectAnswerRTTime", c.GetAttrib("TrialPress" & nIndex2 & "RTTime") End If Else c.SetAttrib "OverallAcc", "0" End If Next nIndex2 You should have 3 new columns in your data file called 'OverallAcc', CorrectAnswerRT and CorrectAnswerRTTime. The script will have looked at all the responses made during a trial and decided in a correct answer was made and if so the RT and RTTime of the first occurrence of that correct answer. NB. TrialPress is an experimenter created variable that was created in the multiple response inline. Hope this is of use! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Fri May 7 10:25:10 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Fri, 7 May 2010 11:25:10 +0100 Subject: Read out certain levels only In-Reply-To: <19be108d-3ee7-4140-8cfc-2e0b677ceb92@24g2000yqy.googlegroups.com> Message-ID: Hi Vera & Group, I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? Lacking a clear idea on what exactly it is you want, I can help with certain specifics: "If trigger 1 then PLEASE take only line 1" ... You mean, of a list, right? This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? For nLevel = 1 To List1.Size If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 Next 'nLevel List1.Reset You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). Hope any of this helps (I might be way off in understanding your problem), Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera Sent: 07 May 2010 08:24 To: E-Prime Subject: Re: Read out certain levels only Ok guys, just to let you know that I am really trying here, a small update: Yesterday I tried to solve this problem with nested lists (knowing that nested lists very quickly get very complicated and taking into account that Michiel pointed out in his E-Prime doc that the random doesn't seem to be completely "trustable") but the problem is that I get to the same thing: I would basically have two lines, 1 pointing to the condition for trigger 1 and another one pointing to trigger 2. But then, how to access this line?? I need to figure out some way to tell E-Prime: If trigger 1 then PLEASE take only line 1 (Or in the old solution, which I very much preferred, because it was much cleaner - nested lists do have a high "sudoku-effect"): If trigger 1 PLEASE take any of the lines for which attribute.trigger1 = 1 Down to the beginning again, I don't know how to solve this. :-( Any ideas are very welcome. :-) Greetings, Vera On May 6, 2:31 pm, Vera wrote: > Ok, got a bit further (but it's still not working fine): > > I added this inline: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > ElseIf NewTriggerValue = 0 Then >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > End If > > It's based on something David once wrote concerning counterbalancing > (it would have been so much easier if E-Prime could just > counterbalance for any attribute and not just Group, Subject and > Session). I am actually hoping to tell E-Prime with this, that it > needs to take any of the 18 levels which has either 1 or 0 in the > TriggerPos attribute. It doesn't seem to work though. :-( > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > Grrr, I know I am not very far from a solution... > > Greetings, Vera > > On May 6, 11:17 am, Vera wrote: > > > > > Dear forum members, > > > I already got some very useful help here and as I am now running into > > a new problem with E-Prime, I will see if you can help me out (again). > > I did all my homework: yes I looked at the reference guide, getting > > started guide, all other documents concerning E-Prime, yes I combed > > through this forum, yes I combed through the PST-forum. :-) > > > So here's the problem: > > > I created a list of conditions (and all that has been working fine > > until now) and as we are moving on to another experimental setup, it > > is now very important that half of the conditions appear on one type > > of stimulus and the other half of conditions appear on another type of > > stimulus. > > > To be more clear: > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > be executed. > > On Trigger2 I want the other 18 conditions (another type) to be > > executed. > > > I know I could be able to do this over nested lists (probably), but it > > would take a lot of time too, as then "big surgery" has to be done on > > my program. ;-) > > > So I figured that there should be some way to add a few lines of code, > > which tell E-Prime that it should only use a certain level in a > > certain condition. > > > I wrote: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > >         c.getAttrib("TriggerPos") = 1 > > ElseIf NewTriggerValue = 0 Then > >         c.getAttrib("TriggerPos") = 0 > > End If > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > attribute in my designlist. > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > Ok. But what do I need to add then in order to make it work? Basically > > I want Eprime in certain conditions only to use the levels that have > > "1" in the attribute "TriggerPos". > > > I know that I am not very far from a solution. Any help would be very > > much appreciated. :-) > > > Vera > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Fri May 7 10:59:09 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Fri, 7 May 2010 11:59:09 +0100 Subject: Fixed Order of Pictures In-Reply-To: Message-ID: Hiya, Long-winded? How long do you suppose any answer would be to this question :) No, seriously, if you have gone through the tutorial, and maybe even our little guide, you might understand that what you are asking is indeed a little tricky on a number of levels: 1. Four pictures, dumped in a slide, but: clicking on them (oomph). There's an example in the e-prime online help thing where they have this hit-test for mouse-clicking operations. I'm sure it's here somewhere in this mailinglist as well, certainly discussed a few times. Just make sure you save the response. 2. Four clicks, not one, is most easily achieved (I say), by having four slides (with four hit-tests); just make copies of them by control+dragging them. 3. Four responses... If you have one attribute, say "CorrectResponse", and four responses to slides pic1 pic2 pic3 pic4, you could just do something like: c.SetAttrib "Y_Resp", pic1.Resp & pic2.Resp & pic3.Resp & pic4.Resp. if c.GetAttrib ("Y_Resp") = c.GetAttrib ("CorrectResponse") then c.SetAttrib "Y_ACC", 1 else c.SetAttrib "Y_ACC", 0 4. But of course, you want more than that, compare each response individually. Of course, you could just have four correct responses and 4 responses, so I suppose you'd end up with four "Y_resp"s (Y_resp1...4) and four "CorrResps" (CorrResp1..4). 5. Assuming you don't want to go for animations (in which case I'd suggest abandoning E-Prime altogether, because your whole thing is MUCH more easily achieved in Flash to begin with), you might do something like: Dim I as integer For I = 1 to 4 If c.GetAttrib ("Y_Resp" & cstr(i)) = c.GetAttrib("CorrResp" & cstr(i)) then SoundWRONG.play else SoundRIGHT.play Next I ... that is, assuming you have made two soundbuffers (SoundWrong and SoundRight), but this is pretty well documented in the ebasic help. Best, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of JL Sent: 06 May 2010 22:35 To: E-Prime Subject: Fixed Order of Pictures Hi there, I'm new to E-Prime and finding it a little tricky. I'm wondering is it possible to make a level whereby four pictures are presented and they must be clicked on in a certain fixed order? So for example if the fixed order is pic1, pic 2, pic3, pic 4 and the subject clicks pic 1,3,2,4 then for the clicks that were correct a certain sound and animation will occur to let the person know and for the ones that were wrong another sound and animation will occur. And then I'd like to be able to compare what the subject clicked to what they were supposed to click? Sorry this is very long winded, any help would be much appreciated! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From a.schueppert at rug.nl Fri May 7 11:05:59 2010 From: a.schueppert at rug.nl (anja) Date: Fri, 7 May 2010 04:05:59 -0700 Subject: change response language In-Reply-To: <130cbdf4-e6c4-400f-97e2-95ffed71d455@k41g2000yqb.googlegroups.com> Message-ID: Hi Anne, thanks for your answer. Yes, later on I found the thread opened by Yoed, so I started my ERP-recordings asking participants to replace ä, ö and å by other letters. This is definitely a shortcoming! And yes, I used surveymonkey for my participants - but to fill in their questionnaire in advance. I'm afraid that recording ERPs wouldn't work very well with surveymonkey ;) Best wishes, Anja > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 11:07:24 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 04:07:24 -0700 Subject: Read out certain levels only In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF170@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Michiel, I am going to see what your solution can do (it seems to be pointing in "some direction" at least, which is way better than the "no- direction" I am having right now. ;-) But for the moment, I just copy you what I wrote in the PSTNET-Forum this morning (and in which I maybe have been clearer): I am trying to read out an attribute (ok, GetAttrib solves this) but then I would like to tell E-Prime that in certain conditions, it should only use the levels (lines) in the list that correspond to certain values of this attribute. Let's say I have 20 lines in my list. 10 lines for which the attribute "Trigger" has the value 1 and 10 other lines for which the value of the attribute "Trigger" is 2. I would like to tell E-Prime that on a certain trigger (coming in over the Parallel Port) it should only use trials (lines) for which the Attribute "Trigger" corresponds to a certain value. So, something like: If Trigger 1, then only use any of the 10 lines for which Attribute.Trigger = 1 (I know this syntax is wrong, it's just to make you understand). If Trigger is 2, then only use any of the 10 lines for which Attribute.Trigger = 2. See what I mean? Greetings, Vera On May 7, 12:25 pm, Michiel Spape wrote: > Hi Vera & Group, > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > "If trigger 1 then PLEASE take only line 1" > ... > You mean, of a list, right? > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size >         If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > Hope any of this helps (I might be way off in understanding your problem), > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > Sent: 07 May 2010 08:24 > To: E-Prime > Subject: Re: Read out certain levels only > > Ok guys, just to let you know that I am really trying here, a small > update: > > Yesterday I tried to solve this problem with nested lists (knowing > that nested lists very quickly get very complicated and taking into > account that Michiel pointed out in his E-Prime doc that the random > doesn't seem to be completely "trustable") but the problem is that I > get to the same thing: I would basically have two lines, 1 pointing to > the condition for trigger 1 and another one pointing to trigger 2. But > then, how to access this line?? > I need to figure out some way to tell E-Prime: > > If trigger 1 then PLEASE take only line 1 > > (Or in the old solution, which I very much preferred, because it was > much cleaner - nested lists do have a high "sudoku-effect"): > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > = 1 > > Down to the beginning again, I don't know how to solve this. :-( Any > ideas are very welcome. :-) > > Greetings, Vera > > On May 6, 2:31 pm, Vera wrote: > > Ok, got a bit further (but it's still not working fine): > > > I added this inline: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > ElseIf NewTriggerValue = 0 Then > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > End If > > > It's based on something David once wrote concerning counterbalancing > > (it would have been so much easier if E-Prime could just > > counterbalance for any attribute and not just Group, Subject and > > Session). I am actually hoping to tell E-Prime with this, that it > > needs to take any of the 18 levels which has either 1 or 0 in the > > TriggerPos attribute. It doesn't seem to work though. :-( > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > Grrr, I know I am not very far from a solution... > > > Greetings, Vera > > > On May 6, 11:17 am, Vera wrote: > > > > Dear forum members, > > > > I already got some very useful help here and as I am now running into > > > a new problem with E-Prime, I will see if you can help me out (again). > > > I did all my homework: yes I looked at the reference guide, getting > > > started guide, all other documents concerning E-Prime, yes I combed > > > through this forum, yes I combed through the PST-forum. :-) > > > > So here's the problem: > > > > I created a list of conditions (and all that has been working fine > > > until now) and as we are moving on to another experimental setup, it > > > is now very important that half of the conditions appear on one type > > > of stimulus and the other half of conditions appear on another type of > > > stimulus. > > > > To be more clear: > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > be executed. > > > On Trigger2 I want the other 18 conditions (another type) to be > > > executed. > > > > I know I could be able to do this over nested lists (probably), but it > > > would take a lot of time too, as then "big surgery" has to be done on > > > my program. ;-) > > > > So I figured that there should be some way to add a few lines of code, > > > which tell E-Prime that it should only use a certain level in a > > > certain condition. > > > > I wrote: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > >         c.getAttrib("TriggerPos") = 1 > > > ElseIf NewTriggerValue = 0 Then > > >         c.getAttrib("TriggerPos") = 0 > > > End If > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > attribute in my designlist. > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > Ok. But what do I need to add then in order to make it work? Basically > > > I want Eprime in certain conditions only to use the levels that have > > > "1" in the attribute "TriggerPos". > > > > I know that I am not very far from a solution. Any help would be very > > > much appreciated. :-) > > > > Vera > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 11:42:14 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 04:42:14 -0700 Subject: Read out certain levels only In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF170@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Ok, I now had a closer look at your solution (I wasn't on the right PC before, with the USB-stick-licence it's kind of a hassle sometimes, making a lot of kms in the institute! ;-) ) and I think I might try something with your solution. So to get back at your question: "If trigger 1 then PLEASE take only line 1" ... "You mean, of a list, right?" Yes, I mean of a list (so a level of a list). Of course I simplified the whole a bit, pretending that I had only two levels in my list and two triggers. In reality I have 20 lines and two triggers (so the list kind of gets separated into two). :-) So basically what I want to do is "If trigger = 1 then take any of the lines for which attribute.trigger = 1" (any of 10 in a random manner) Oh and then don't worry about TMS, it's already all working fine. :-) I am getting the triggers and all, E-Prime just doesn't know what to do with them for the moment (ok if I am more precise: E-Prime knows what to do with the triggers, but I can't control the conditions, making sure that the design is completely perfectly counterbalanced over the two conditions). :-) I am going back to my experimental setup again, seeing what I can do with your solution in mind. I definitely should get internet there, but that's the hassle with experimental computers: you want to keep them clean from anything that might slow them such as anti-virus and stuff. :-| But feel free to reply if you came up with another idea, I will check for input anyway. :-) Greetings, Vera On May 7, 12:25 pm, Michiel Spape wrote: > Hi Vera & Group, > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > "If trigger 1 then PLEASE take only line 1" > ... > You mean, of a list, right? > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size >         If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > Hope any of this helps (I might be way off in understanding your problem), > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > Sent: 07 May 2010 08:24 > To: E-Prime > Subject: Re: Read out certain levels only > > Ok guys, just to let you know that I am really trying here, a small > update: > > Yesterday I tried to solve this problem with nested lists (knowing > that nested lists very quickly get very complicated and taking into > account that Michiel pointed out in his E-Prime doc that the random > doesn't seem to be completely "trustable") but the problem is that I > get to the same thing: I would basically have two lines, 1 pointing to > the condition for trigger 1 and another one pointing to trigger 2. But > then, how to access this line?? > I need to figure out some way to tell E-Prime: > > If trigger 1 then PLEASE take only line 1 > > (Or in the old solution, which I very much preferred, because it was > much cleaner - nested lists do have a high "sudoku-effect"): > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > = 1 > > Down to the beginning again, I don't know how to solve this. :-( Any > ideas are very welcome. :-) > > Greetings, Vera > > On May 6, 2:31 pm, Vera wrote: > > Ok, got a bit further (but it's still not working fine): > > > I added this inline: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > ElseIf NewTriggerValue = 0 Then > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > End If > > > It's based on something David once wrote concerning counterbalancing > > (it would have been so much easier if E-Prime could just > > counterbalance for any attribute and not just Group, Subject and > > Session). I am actually hoping to tell E-Prime with this, that it > > needs to take any of the 18 levels which has either 1 or 0 in the > > TriggerPos attribute. It doesn't seem to work though. :-( > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > Grrr, I know I am not very far from a solution... > > > Greetings, Vera > > > On May 6, 11:17 am, Vera wrote: > > > > Dear forum members, > > > > I already got some very useful help here and as I am now running into > > > a new problem with E-Prime, I will see if you can help me out (again). > > > I did all my homework: yes I looked at the reference guide, getting > > > started guide, all other documents concerning E-Prime, yes I combed > > > through this forum, yes I combed through the PST-forum. :-) > > > > So here's the problem: > > > > I created a list of conditions (and all that has been working fine > > > until now) and as we are moving on to another experimental setup, it > > > is now very important that half of the conditions appear on one type > > > of stimulus and the other half of conditions appear on another type of > > > stimulus. > > > > To be more clear: > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > be executed. > > > On Trigger2 I want the other 18 conditions (another type) to be > > > executed. > > > > I know I could be able to do this over nested lists (probably), but it > > > would take a lot of time too, as then "big surgery" has to be done on > > > my program. ;-) > > > > So I figured that there should be some way to add a few lines of code, > > > which tell E-Prime that it should only use a certain level in a > > > certain condition. > > > > I wrote: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > >         c.getAttrib("TriggerPos") = 1 > > > ElseIf NewTriggerValue = 0 Then > > >         c.getAttrib("TriggerPos") = 0 > > > End If > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > attribute in my designlist. > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > Ok. But what do I need to add then in order to make it work? Basically > > > I want Eprime in certain conditions only to use the levels that have > > > "1" in the attribute "TriggerPos". > > > > I know that I am not very far from a solution. Any help would be very > > > much appreciated. :-) > > > > Vera > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liwenna at gmail.com Fri May 7 12:18:28 2010 From: liwenna at gmail.com (liwenna) Date: Fri, 7 May 2010 05:18:28 -0700 Subject: change response language In-Reply-To: <2d15a5cf-28d5-4f60-89ac-68088ad02d4e@j33g2000yqn.googlegroups.com> Message-ID: *grin* No I suppose not ^.^ I agree that it is a shortcoming. You could consider filing your problem with PST so that at least they know that you've experienced this as a shortcoming. Best of luck of with your tests! Groet, AW On May 7, 1:05 pm, anja wrote: > Hi Anne, > > thanks for your answer. Yes, later on I found the thread opened by > Yoed, so I started my ERP-recordings asking participants to replace ä, > ö and å by other letters. This is definitely a shortcoming! > And yes, I used surveymonkey for my participants - but to fill in > their questionnaire in advance. I'm afraid that recording ERPs > wouldn't work very well with surveymonkey ;) > > Best wishes, > Anja > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Fri May 7 13:58:49 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Fri, 7 May 2010 14:58:49 +0100 Subject: Read out certain levels only In-Reply-To: Message-ID: Hi Vera & List, If I understand it correctly, you might be able to do something like this much the same way I explained earlier: I wrote earlier: > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size > If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset Now, let's say you want only Level X, based on an attribute which gives you X: > Dim nLevel As Integer > For nLevel = 1 To List1.Size > If nLevel = c.GetAttrib("YourXAttribute") then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset You could, of course, also speed through your trial (never showing anything by just skipping over the entire trial, if the current trial is not exactly what you want) - but perhaps that will be difficult to do in a controllable/balanced manner. "Let's say I have 20 lines in my list. 10 lines for which the attribute "Trigger" has the value 1 and 10 other lines for which the value of the attribute "Trigger" is 2. I would like to tell E-Prime that on a certain trigger (coming in over the Parallel Port) it should only use trials (lines) for which the Attribute "Trigger" corresponds to a certain value." ... to do that, you can simply add checks to see whether certain levels need to be set to 0 weight: (see help on Factor.GetAttrib level, AttributeName) Dim nLevel As Integer 'What trigger? If myTrigger = 1 then For nLevel = 1 To List1.Size If List1.GetAttrib(nLevel, "YourXAttribute") = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 Next 'nLevel else For nLevel = 1 To List1.Size If List1.GetAttrib(nLevel, "YourXAttribute") = 2 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 Next 'nLevel End if List1.Reset Hope that helps! And sorry in advance for any mistakes and/or sloppy programming advice (trying to finish stuff before weekend - I'm sure I'm not alone at that) Cheers, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera Sent: 07 May 2010 12:07 To: E-Prime Subject: Re: Read out certain levels only Michiel, I am going to see what your solution can do (it seems to be pointing in "some direction" at least, which is way better than the "no- direction" I am having right now. ;-) But for the moment, I just copy you what I wrote in the PSTNET-Forum this morning (and in which I maybe have been clearer): I am trying to read out an attribute (ok, GetAttrib solves this) but then I would like to tell E-Prime that in certain conditions, it should only use the levels (lines) in the list that correspond to certain values of this attribute. Let's say I have 20 lines in my list. 10 lines for which the attribute "Trigger" has the value 1 and 10 other lines for which the value of the attribute "Trigger" is 2. I would like to tell E-Prime that on a certain trigger (coming in over the Parallel Port) it should only use trials (lines) for which the Attribute "Trigger" corresponds to a certain value. So, something like: If Trigger 1, then only use any of the 10 lines for which Attribute.Trigger = 1 (I know this syntax is wrong, it's just to make you understand). If Trigger is 2, then only use any of the 10 lines for which Attribute.Trigger = 2. See what I mean? Greetings, Vera On May 7, 12:25 pm, Michiel Spape wrote: > Hi Vera & Group, > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > "If trigger 1 then PLEASE take only line 1" > ... > You mean, of a list, right? > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size >         If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > Hope any of this helps (I might be way off in understanding your problem), > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > Sent: 07 May 2010 08:24 > To: E-Prime > Subject: Re: Read out certain levels only > > Ok guys, just to let you know that I am really trying here, a small > update: > > Yesterday I tried to solve this problem with nested lists (knowing > that nested lists very quickly get very complicated and taking into > account that Michiel pointed out in his E-Prime doc that the random > doesn't seem to be completely "trustable") but the problem is that I > get to the same thing: I would basically have two lines, 1 pointing to > the condition for trigger 1 and another one pointing to trigger 2. But > then, how to access this line?? > I need to figure out some way to tell E-Prime: > > If trigger 1 then PLEASE take only line 1 > > (Or in the old solution, which I very much preferred, because it was > much cleaner - nested lists do have a high "sudoku-effect"): > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > = 1 > > Down to the beginning again, I don't know how to solve this. :-( Any > ideas are very welcome. :-) > > Greetings, Vera > > On May 6, 2:31 pm, Vera wrote: > > Ok, got a bit further (but it's still not working fine): > > > I added this inline: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > ElseIf NewTriggerValue = 0 Then > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > End If > > > It's based on something David once wrote concerning counterbalancing > > (it would have been so much easier if E-Prime could just > > counterbalance for any attribute and not just Group, Subject and > > Session). I am actually hoping to tell E-Prime with this, that it > > needs to take any of the 18 levels which has either 1 or 0 in the > > TriggerPos attribute. It doesn't seem to work though. :-( > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > Grrr, I know I am not very far from a solution... > > > Greetings, Vera > > > On May 6, 11:17 am, Vera wrote: > > > > Dear forum members, > > > > I already got some very useful help here and as I am now running into > > > a new problem with E-Prime, I will see if you can help me out (again). > > > I did all my homework: yes I looked at the reference guide, getting > > > started guide, all other documents concerning E-Prime, yes I combed > > > through this forum, yes I combed through the PST-forum. :-) > > > > So here's the problem: > > > > I created a list of conditions (and all that has been working fine > > > until now) and as we are moving on to another experimental setup, it > > > is now very important that half of the conditions appear on one type > > > of stimulus and the other half of conditions appear on another type of > > > stimulus. > > > > To be more clear: > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > be executed. > > > On Trigger2 I want the other 18 conditions (another type) to be > > > executed. > > > > I know I could be able to do this over nested lists (probably), but it > > > would take a lot of time too, as then "big surgery" has to be done on > > > my program. ;-) > > > > So I figured that there should be some way to add a few lines of code, > > > which tell E-Prime that it should only use a certain level in a > > > certain condition. > > > > I wrote: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > >         c.getAttrib("TriggerPos") = 1 > > > ElseIf NewTriggerValue = 0 Then > > >         c.getAttrib("TriggerPos") = 0 > > > End If > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > attribute in my designlist. > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > Ok. But what do I need to add then in order to make it work? Basically > > > I want Eprime in certain conditions only to use the levels that have > > > "1" in the attribute "TriggerPos". > > > > I know that I am not very far from a solution. Any help would be very > > > much appreciated. :-) > > > > Vera > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 15:05:00 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 08:05:00 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: Ok, found a way to be at the experimental setup AND have internet (whew!!!). ;-) So the thing I did was: If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then For nLevel = 1 to DesignList.Size If c.GetAttrib("Trigger") = "1" Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel ElseIf NewTriggerValue = 0 Then For nLevel = 1 to DesignList.Size If c.GetAttrib("Trigger") = "0" Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel End If And now that I could finally connect, I see that you proposed me the same thing. :-) And the best thing: it works!!!! Checked the database with E-DataAid and it's all perfectly balanced. :-) Thanks a lot for giving me the idea! Have a great weekend! Vera On 7 Mai, 13:42, Vera wrote: > Ok, I now had a closer look at your solution (I wasn't on the right PC > before, with the USB-stick-licence it's kind of a hassle sometimes, > making a lot of kms in the institute! ;-) ) and I think I might try > something with your solution. > > So to get back at your question: > > "If trigger 1 then PLEASE take only line 1" > ... > "You mean, of a list, right?" > > Yes, I mean of a list (so a level of a list). Of course I simplified > the whole a bit, pretending that I had only two levels in my list and > two triggers. In reality I have 20 lines and two triggers (so the list > kind of gets separated into two). :-) > > So basically what I want to do is > "If trigger = 1 then take any of the lines for which attribute.trigger > = 1" (any of 10 in a random manner) > > Oh and then don't worry about TMS, it's already all working fine. :-) > I am getting the triggers and all, E-Prime just doesn't know what to > do with them for the moment (ok if I am more precise: E-Prime knows > what to do with the triggers, but I can't control the conditions, > making sure that the design is completely perfectly counterbalanced > over the two conditions). :-) > > I am going back to my experimental setup again, seeing what I can do > with your solution in mind. I definitely should get internet there, > but that's the hassle with experimental computers: you want to keep > them clean from anything that might slow them such as anti-virus and > stuff. :-| But feel free to reply if you came up with another idea, I > will check for input anyway. :-) > > Greetings, Vera > > On May 7, 12:25 pm, Michiel Spape > wrote: > > > > > Hi Vera & Group, > > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > > "If trigger 1 then PLEASE take only line 1" > > ... > > You mean, of a list, right? > > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > > For nLevel = 1 To List1.Size > >         If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > Next 'nLevel > > List1.Reset > > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > > Hope any of this helps (I might be way off in understanding your problem), > > Mich > > > Michiel Spapé > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > > Sent: 07 May 2010 08:24 > > To: E-Prime > > Subject: Re: Read out certain levels only > > > Ok guys, just to let you know that I am really trying here, a small > > update: > > > Yesterday I tried to solve this problem with nested lists (knowing > > that nested lists very quickly get very complicated and taking into > > account that Michiel pointed out in his E-Prime doc that the random > > doesn't seem to be completely "trustable") but the problem is that I > > get to the same thing: I would basically have two lines, 1 pointing to > > the condition for trigger 1 and another one pointing to trigger 2. But > > then, how to access this line?? > > I need to figure out some way to tell E-Prime: > > > If trigger 1 then PLEASE take only line 1 > > > (Or in the old solution, which I very much preferred, because it was > > much cleaner - nested lists do have a high "sudoku-effect"): > > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > > = 1 > > > Down to the beginning again, I don't know how to solve this. :-( Any > > ideas are very welcome. :-) > > > Greetings, Vera > > > On May 6, 2:31 pm, Vera wrote: > > > Ok, got a bit further (but it's still not working fine): > > > > I added this inline: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > > ElseIf NewTriggerValue = 0 Then > > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > > End If > > > > It's based on something David once wrote concerning counterbalancing > > > (it would have been so much easier if E-Prime could just > > > counterbalance for any attribute and not just Group, Subject and > > > Session). I am actually hoping to tell E-Prime with this, that it > > > needs to take any of the 18 levels which has either 1 or 0 in the > > > TriggerPos attribute. It doesn't seem to work though. :-( > > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > > Grrr, I know I am not very far from a solution... > > > > Greetings, Vera > > > > On May 6, 11:17 am, Vera wrote: > > > > > Dear forum members, > > > > > I already got some very useful help here and as I am now running into > > > > a new problem with E-Prime, I will see if you can help me out (again). > > > > I did all my homework: yes I looked at the reference guide, getting > > > > started guide, all other documents concerning E-Prime, yes I combed > > > > through this forum, yes I combed through the PST-forum. :-) > > > > > So here's the problem: > > > > > I created a list of conditions (and all that has been working fine > > > > until now) and as we are moving on to another experimental setup, it > > > > is now very important that half of the conditions appear on one type > > > > of stimulus and the other half of conditions appear on another type of > > > > stimulus. > > > > > To be more clear: > > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > > be executed. > > > > On Trigger2 I want the other 18 conditions (another type) to be > > > > executed. > > > > > I know I could be able to do this over nested lists (probably), but it > > > > would take a lot of time too, as then "big surgery" has to be done on > > > > my program. ;-) > > > > > So I figured that there should be some way to add a few lines of code, > > > > which tell E-Prime that it should only use a certain level in a > > > > certain condition. > > > > > I wrote: > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > >         c.getAttrib("TriggerPos") = 1 > > > > ElseIf NewTriggerValue = 0 Then > > > >         c.getAttrib("TriggerPos") = 0 > > > > End If > > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > > attribute in my designlist. > > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > > Ok. But what do I need to add then in order to make it work? Basically > > > > I want Eprime in certain conditions only to use the levels that have > > > > "1" in the attribute "TriggerPos". > > > > > I know that I am not very far from a solution. Any help would be very > > > > much appreciated. :-) > > > > > Vera > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message has been checked for viruses but the contents of an attachment > > may still contain software viruses which could damage your computer system: > > you are advised to perform your own checks. Email communications with the > > University of Nottingham may be monitored as permitted by UK legislation. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From litlinglarc at gmail.com Fri May 7 15:48:06 2010 From: litlinglarc at gmail.com (litling) Date: Fri, 7 May 2010 08:48:06 -0700 Subject: Error Number: 101 Message-ID: While attempting to run our study today we received this message: Internal error buffer size issue. Error Number: 101 The error seems to be connected with this: SoundOut1SoundBuffer.Load (This was originally programmed in E-Prime 1 but converted to 2.) I've looked at the one posting that mentions this error and tried what was suggested but continued to have the problem. We are using E-Run 2.0 (Runtime 2.0.8.74). The program works fine on our computers that have only E-Run installed but we are trying to run a study off site using their computers. The computers on both sites are running Windows XP and have the same version of E-Run installed. Could their be a some configuration of the environment of the off site computers that is causing the problem? Some application that needs to be updated? Something in the E-Prime file that needs to be adjusted? Any suggestions would be great. Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Fri May 7 16:16:15 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 7 May 2010 12:16:15 -0400 Subject: Error Number: 101 In-Reply-To: <4aae3b84-a0c6-438a-8a8d-87ae68067474@q30g2000yqd.googlegro ups.com> Message-ID: We experienced the same error messsage in one lab here, diagnosed it, found a workaround for the lab, and reported this to PST Web Support. Following is that report, verbatim (and as mentioned there, if you had simply searched the Google Group or the PST Forum with a term like "buffer size" then you would have found where I already posted this at http://groups.google.com/group/e-prime/browse_thread/thread/6a8302d0bdf90dd1 ). You should add your own report to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp. /*** Our first lab updated to EP2.0.8.73 from EP2.9.8.22, and immediately ran into a problem, but it is not critical so I report this as "Info" rather than "Bug". In short, it seems that EP2.0.8.73 reduced the maximum limit on sound Buffer Size. Details... User had programs that ran fine in EP2.0.8.22, but at run time in EP2.9.8.73 got the error message, "Internal error buffer size issue", error #101. This occured in the InitObjects subroutine as it tried to execute Feedback.LoadProperties. For debugging, we deleted Feedback, and then the error just moved to SoundOut1.LoadProperties, etc. Turns out that Feedback also included a SoundOut sub-object. Looking further, these sound objects all had Buffer Size set to 50000 or 60000 (experiment program originally developed in EP1, as you have guessed by now). Setting Buffer Mode to Streaming and Buffer Size back to the default of 5000 cured the problem, which is how things should be set in EP2 anyway. The program had worked in EP2.0.8.22 and earlier because then the maximum limit on Buffer Size was 100000, apparently this changed in EP2.0.8.22. I did try doing a binary search to find the new limit in EP2.9.8.73, but the limit changed as I ran the search, I got it down to the order of 45000. With Streaming Mode in EP2, no one needs large Buffer Sizes anymore, so this is not a critical bug. However, we should post a notice for those few users who may run into this problem. I will place the appropriate posts on the Forum and E-Prime Google Group, please chime in when you can. ***/ -- David McFarlane, Professional Faultfinder >While attempting to run our study today we received this message: > >Internal error buffer size issue. >Error Number: 101 > >The error seems to be connected with this: SoundOut1SoundBuffer.Load >(This was originally programmed in E-Prime 1 but converted to 2.) > >I've looked at the one posting that mentions this error and tried what >was suggested but continued to have the problem. > >We are using E-Run 2.0 (Runtime 2.0.8.74). The program works fine on >our computers that have only E-Run installed but we are trying to run >a study off site using their computers. The computers on both sites >are running Windows XP and have the same version of E-Run installed. >Could their be a some configuration of the environment of the off site >computers that is causing the problem? Some application that needs to >be updated? Something in the E-Prime file that needs to be adjusted? >Any suggestions would be great. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From litlinglarc at gmail.com Fri May 7 16:46:56 2010 From: litlinglarc at gmail.com (litling) Date: Fri, 7 May 2010 09:46:56 -0700 Subject: Error Number: 101 In-Reply-To: <4be43cdc.0b0bca0a.26e3.4a86SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Thanks David. I was able to replicate the problem on a machine in our lab by downloading 2.0.8.74. We thought the computers in our lab had been updated to the new version which is where the confusion was stemming from. I DID look at your posting before hand but wasn't able to replicate the problem until just now in our lab (yours is the one posting I referenced). I definitely looked before I posted this. Making the changes you suggest appear to be working but I can't be sure until I get a chance to test at the other site. Thank you again. p.s. I sent a report to PST Web Support. On May 7, 12:16 pm, David McFarlane wrote: > We experienced the same error messsage in one lab here, diagnosed it, > found a workaround for the lab, and reported this to PST Web > Support.  Following is that report, verbatim (and as mentioned there, > if you had simply searched the Google Group or the PST Forum with a > term like "buffer size" then you would have found where I already > posted this athttp://groups.google.com/group/e-prime/browse_thread/thread/6a8302d0b... > ).  You should add your own report to PST Web Support athttp://support.pstnet.com/e%2Dprime/support/login.asp. > > /*** > Our first lab updated to EP2.0.8.73 from EP2.9.8.22, and immediately > ran into a problem, but it is not critical so I report this as "Info" > rather than "Bug". In short, it seems that EP2.0.8.73 reduced the > maximum limit on sound Buffer Size. Details... > > User had programs that ran fine in EP2.0.8.22, but at run time in > EP2.9.8.73 got the error message, "Internal error buffer size issue", > error #101. This occured in the InitObjects subroutine as it tried to > execute Feedback.LoadProperties. For debugging, we deleted Feedback, > and then the error just moved to SoundOut1.LoadProperties, etc. Turns > out that Feedback also included a SoundOut sub-object. Looking > further, these sound objects all had Buffer Size set to 50000 or > 60000 (experiment program originally developed in EP1, as you have > guessed by now). Setting Buffer Mode to Streaming and Buffer Size > back to the default of 5000 cured the problem, which is how things > should be set in EP2 anyway. > > The program had worked in EP2.0.8.22 and earlier because then the > maximum limit on Buffer Size was 100000, apparently this changed in > EP2.0.8.22. I did try doing a binary search to find the new limit in > EP2.9.8.73, but the limit changed as I ran the search, I got it down > to the order of 45000. > > With Streaming Mode in EP2, no one needs large Buffer Sizes anymore, > so this is not a critical bug. However, we should post a notice for > those few users who may run into this problem. I will place the > appropriate posts on the Forum and E-Prime Google Group, please chime > in when you can. > ***/ > > -- David McFarlane, Professional Faultfinder > > > > >While attempting to run our study today we received this message: > > >Internal error buffer size issue. > >Error Number: 101 > > >The error seems to be connected with this: SoundOut1SoundBuffer.Load > >(This was originally programmed in E-Prime 1 but converted to 2.) > > >I've looked at the one posting that mentions this error and tried what > >was suggested but continued to have the problem. > > >We are using E-Run 2.0 (Runtime 2.0.8.74). The program works fine on > >our computers that have only E-Run installed but we are trying to run > >a study off site using their computers. The computers on both sites > >are running Windows XP and have the same version of E-Run installed. > >Could their be a some configuration of the environment of the off site > >computers that is causing the problem? Some application that needs to > >be updated? Something in the E-Prime file that needs to be adjusted? > >Any suggestions would be great. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 17:11:48 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 10:11:48 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: :-( I seem to have cheered too early. :-( Some filteringin E-DataAid showed that E-Prime is still exactly doing as it likes. I also had some mistakes in the previous code, here it is again: Dim nLevel as Integer Dim TriggerValue as Integer If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = 1 Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel ' DesignList.Reset ElseIf NewTriggerValue = 0 Then For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = 0 Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel ' DesignList.Reset End If A few remarks to this code: 1. E-Prime is still doing what it likes, guaranteeing me no counterbalancing whatsoever. 2. I had to add: TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") - If TriggerValue = 0 Then and I know I could have been doing that more elegantly (like you did Michiel), but then E-Prime complains that there are "too many variables". 3. If I add this piece of code, not only will E-Prime still not do what I expect it to do, but it will also generate blocks as it likes. Sometimes 3, sometimes 4... But never 7 as it is supposed to do!! In my last test run it even stopped in the middle of a trial going immediately to the block feedback! Anybody any idea why that could be? It seems to me that this piece of script has nothing to do with the number of blocks or anything. 4. As you can see, DesignList.Reset has been commented out, because when I add this, E-Prime runs only one trials (instead of 36 in a normal block) and then goes immediately to the Block Feedback. I don't understand this program, it makes absolutely no sense to me. :- ( Greetings, Vera On 7 Mai, 17:05, Vera wrote: > Ok, found a way to be at the experimental setup AND have internet > (whew!!!). ;-) > > So the thing I did was: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then >    For nLevel = 1 to DesignList.Size >         If c.GetAttrib("Trigger") = "1" Then >                DesignList.SetWeight nLevel, 1 >         Else DesignList.SetWeight nLevel, 0 >         End If >    Next nLevel > ElseIf NewTriggerValue = 0 Then >    For nLevel = 1 to DesignList.Size >         If c.GetAttrib("Trigger") = "0" Then >                DesignList.SetWeight nLevel, 1 >         Else DesignList.SetWeight nLevel, 0 >         End If >    Next nLevel > End If > > And now that I could finally connect, I see that you proposed me the > same thing. :-) > And the best thing: it works!!!! Checked the database with E-DataAid > and it's all perfectly balanced. :-) > > Thanks a lot for giving me the idea! > > Have a great weekend! > > Vera > > On 7 Mai, 13:42, Vera wrote: > > > Ok, I now had a closer look at your solution (I wasn't on the right PC > > before, with the USB-stick-licence it's kind of a hassle sometimes, > > making a lot of kms in the institute! ;-) ) and I think I might try > > something with your solution. > > > So to get back at your question: > > > "If trigger 1 then PLEASE take only line 1" > > ... > > "You mean, of a list, right?" > > > Yes, I mean of a list (so a level of a list). Of course I simplified > > the whole a bit, pretending that I had only two levels in my list and > > two triggers. In reality I have 20 lines and two triggers (so the list > > kind of gets separated into two). :-) > > > So basically what I want to do is > > "If trigger = 1 then take any of the lines for which attribute.trigger > > = 1" (any of 10 in a random manner) > > > Oh and then don't worry about TMS, it's already all working fine. :-) > > I am getting the triggers and all, E-Prime just doesn't know what to > > do with them for the moment (ok if I am more precise: E-Prime knows > > what to do with the triggers, but I can't control the conditions, > > making sure that the design is completely perfectly counterbalanced > > over the two conditions). :-) > > > I am going back to my experimental setup again, seeing what I can do > > with your solution in mind. I definitely should get internet there, > > but that's the hassle with experimental computers: you want to keep > > them clean from anything that might slow them such as anti-virus and > > stuff. :-| But feel free to reply if you came up with another idea, I > > will check for input anyway. :-) > > > Greetings, Vera > > > On May 7, 12:25 pm, Michiel Spape > > wrote: > > > > Hi Vera & Group, > > > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > > > "If trigger 1 then PLEASE take only line 1" > > > ... > > > You mean, of a list, right? > > > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > > > For nLevel = 1 To List1.Size > > >         If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > > Next 'nLevel > > > List1.Reset > > > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > > > Hope any of this helps (I might be way off in understanding your problem), > > > Mich > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychology > > > > -----Original Message----- > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > > > Sent: 07 May 2010 08:24 > > > To: E-Prime > > > Subject: Re: Read out certain levels only > > > > Ok guys, just to let you know that I am really trying here, a small > > > update: > > > > Yesterday I tried to solve this problem with nested lists (knowing > > > that nested lists very quickly get very complicated and taking into > > > account that Michiel pointed out in his E-Prime doc that the random > > > doesn't seem to be completely "trustable") but the problem is that I > > > get to the same thing: I would basically have two lines, 1 pointing to > > > the condition for trigger 1 and another one pointing to trigger 2. But > > > then, how to access this line?? > > > I need to figure out some way to tell E-Prime: > > > > If trigger 1 then PLEASE take only line 1 > > > > (Or in the old solution, which I very much preferred, because it was > > > much cleaner - nested lists do have a high "sudoku-effect"): > > > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > > > = 1 > > > > Down to the beginning again, I don't know how to solve this. :-( Any > > > ideas are very welcome. :-) > > > > Greetings, Vera > > > > On May 6, 2:31 pm, Vera wrote: > > > > Ok, got a bit further (but it's still not working fine): > > > > > I added this inline: > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > > > ElseIf NewTriggerValue = 0 Then > > > >         Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > > > End If > > > > > It's based on something David once wrote concerning counterbalancing > > > > (it would have been so much easier if E-Prime could just > > > > counterbalance for any attribute and not just Group, Subject and > > > > Session). I am actually hoping to tell E-Prime with this, that it > > > > needs to take any of the 18 levels which has either 1 or 0 in the > > > > TriggerPos attribute. It doesn't seem to work though. :-( > > > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > > > Grrr, I know I am not very far from a solution... > > > > > Greetings, Vera > > > > > On May 6, 11:17 am, Vera wrote: > > > > > > Dear forum members, > > > > > > I already got some very useful help here and as I am now running into > > > > > a new problem with E-Prime, I will see if you can help me out (again). > > > > > I did all my homework: yes I looked at the reference guide, getting > > > > > started guide, all other documents concerning E-Prime, yes I combed > > > > > through this forum, yes I combed through the PST-forum. :-) > > > > > > So here's the problem: > > > > > > I created a list of conditions (and all that has been working fine > > > > > until now) and as we are moving on to another experimental setup, it > > > > > is now very important that half of the conditions appear on one type > > > > > of stimulus and the other half of conditions appear on another type of > > > > > stimulus. > > > > > > To be more clear: > > > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > > > be executed. > > > > > On Trigger2 I want the other 18 conditions (another type) to be > > > > > executed. > > > > > > I know I could be able to do this over nested lists (probably), but it > > > > > would take a lot of time too, as then "big surgery" has to be done on > > > > > my program. ;-) > > > > > > So I figured that there should be some way to add a few lines of code, > > > > > which tell E-Prime that it should only use a certain level in a > > > > > certain condition. > > > > > > I wrote: > > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > >         c.getAttrib("TriggerPos") = 1 > > > > > ElseIf NewTriggerValue = 0 Then > > > > >         c.getAttrib("TriggerPos") = 0 > > > > > End If > > > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > > > attribute in my designlist. > > > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > > > Ok. But what do I need to add then in order to make it work? Basically > > > > > I want Eprime in certain conditions only to use the levels that have > > > > > "1" in the attribute "TriggerPos". > > > > > > I know that I am not very far from a solution. Any help would be very > > > > > much appreciated. :-) > > > > > > Vera > > > > > > -- > > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > This message has been checked for viruses but the contents of an attachment > > > may still contain software > > ... > > Erfahren Sie mehr » -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Sun May 9 10:45:11 2010 From: giladsabo at gmail.com (gilis) Date: Sun, 9 May 2010 03:45:11 -0700 Subject: Avoid repeating similar trials Message-ID: Hi, I have tried to built an experiment in which the same trial don't repeat twice. That's what I did: First the experiment stracture goes like that: Instructions (text object) BlockList procedure (list object) within the blocklist procedure: Inline dubbed "first" in this inline I only dimmed x as integer triallist procedure (list object) within the trial list the order of the trial goes like this: inline which I dubbed "conditioncheck" and goes like that (pay attention please): 'defining first variable as integer to count the number of trials for each parmutations (as will be seen next) dim cr as integer cr=0+cr 'if this is the first trial you run set number attribute value as "d" if cr=0 then c.setattrib "number", "D" 'defining another variable to help counting the number of each permutation dim dummy as integer dummy=1 'defining initial value for each permutation saparetly dim o as integer o=o+0 dim t as integer t=t+0 dim th as integer th=th+0 'defining variable for randomization purpses dim x as integer 'updating the number of repitations was made dim counter as integer counter=0 cr=cr+dummy 'if the first permutation was already presented twice, don't run it again-if it didn't, you may choose it randomly if o<=2 then select case c.getattrib("number") case "d" x=random(1,3) select case x 'if you choosed the first/second or third permutation, update it to the number attribute and set text and correct attributes for the text object display and for the text object "correct" response option. case 1 'first permutation c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=0+1 'update the number of times this permutation was selected case 2 'second permutation c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 'update the number of times this permutation was selected case 3 'third permutation c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 'update the number of times this permutation was selected end select ' case "one" 'if the number attribute value is different than "d" randomize from the permutation were not chosen in the previous trial x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 t=t+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 th=th+1 end select end select counter=1 else counter=0 end if if t<=2 and counter=0 then select case c.getattrib("number") case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 th=th+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select counter=1 'update counter to 1 else ' if you didn't run any of it, counter remain 0 counter=0 end if if th<=2 and counter=0 then select case c.getattrib("number") ' if the number attribute value is "d" then you can randomize for each of the three permutatuions case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select end if 'case cr=1 and above, "d' is not relevant if cr<>0 then if o<=2 then select case c.getattrib("number") case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 t=t+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 th=th+1 end select end select counter=1 else counter=0 end if if t<=2 and counter=0 then select case c.getattrib("number") case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 th=th+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select counter=1 else counter=0 end if if th<=2 and counter=0 then select case c.getattrib("number") case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select end if end if after this inline comes text object with stimulus reciving its input from the text object The problem is that the program can't identify any "text" attribute, and if I define one at some higer level (e.g., c.setattrib "text", "text" just before the Trialist) then it will only run "text"as stimulus. I truely assume that my mistake is a very stupid one and I'm pretty green with EPrime programing, but if anyone can assist, or even suggest a better solution, it would be great. Regards Gilis -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Sun May 9 11:45:30 2010 From: giladsabo at gmail.com (gilis) Date: Sun, 9 May 2010 04:45:30 -0700 Subject: Avoid repeating similar trials In-Reply-To: <250ad081-df9c-4b37-9a1c-326ff99aba32@g21g2000yqk.googlegroups.com> Message-ID: Don't repeat twice=don't repeat twice in a raw... On May 9, 1:45 pm, gilis wrote: > Hi, > > I have tried to built an experiment in which the same trial don't > repeat twice. > > That's what I did: > > First the experiment stracture goes like that: > > Instructions (text object) > BlockList procedure (list object) > > within the blocklist procedure: > > Inline dubbed "first" > > in this inline I only dimmed x as integer > > triallist procedure (list object) > > within the trial list the order of the trial goes like this: > > inline which I dubbed "conditioncheck" and goes like that (pay > attention please): > > 'defining first variable as integer to count the number of trials for > each parmutations (as will be seen next) > dim cr as integer > cr=0+cr > > 'if this is the first trial you run set number attribute value as "d" > if cr=0 then c.setattrib "number", "D" > > 'defining another variable to help counting the number of each > permutation > dim dummy as integer > dummy=1 > > 'defining initial value for each permutation saparetly > > dim o as integer > o=o+0 > dim t as integer > t=t+0 > dim th as integer > th=th+0 > > 'defining variable for randomization purpses > dim x as integer > > 'updating the number of repitations was made > dim counter as integer > counter=0 > cr=cr+dummy > > 'if the first permutation was already presented twice, don't run it > again-if it didn't, you may choose it randomly > > if o<=2 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > > 'if you choosed the first/second or third permutation, update it to > the number attribute and set text and correct attributes for the text > object display and for the text object "correct" response option. > > case 1 'first permutation > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > > o=0+1 'update the number of times this permutation was selected > > case 2 'second permutation > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 'update the number of times this permutation was selected > > case 3 'third permutation > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 'update the number of times this permutation was selected > end select ' > case "one" 'if the number attribute value is different than "d" > randomize from the permutation were not chosen in the previous trial > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > t=t+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > th=th+1 > end select > end select > counter=1 > else > counter=0 > end if > if t<=2 and counter=0 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > th=th+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > counter=1 'update counter to 1 > else ' if you didn't run any of it, counter remain 0 > counter=0 > end if > > if th<=2 and counter=0 then > select case c.getattrib("number") > ' if the number attribute value is "d" then you can randomize for each > of the three permutatuions > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > end if > > 'case cr=1 and above, "d' is not relevant > > if cr<>0 then > > if o<=2 then > select case c.getattrib("number") > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > t=t+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > th=th+1 > end select > end select > counter=1 > else > counter=0 > end if > > if t<=2 and counter=0 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > th=th+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > counter=1 > else > counter=0 > end if > > if th<=2 and counter=0 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > end if > end if > > after this inline comes text object with stimulus reciving its input > from the text object > > The problem is that the program can't identify any "text" attribute, > and if I define one at some higer level (e.g., c.setattrib "text", > "text" just before the Trialist) then it will only run "text"as > stimulus.  I truely assume that my mistake is a very stupid one and > I'm pretty green with EPrime programing, but if anyone can assist, or > even suggest a better solution, it would be great. > > Regards > Gilis > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Sun May 9 11:49:22 2010 From: giladsabo at gmail.com (gilis) Date: Sun, 9 May 2010 04:49:22 -0700 Subject: Avoid repeating similar trials In-Reply-To: <6af2af5b-3edb-481c-b967-efc9694d1ebb@r34g2000yqj.googlegroups.com> Message-ID: And in any case don't repeat the same trial more than two times (in this example) On May 9, 2:45 pm, gilis wrote: > Don't repeat twice=don't repeat twice in a raw... > > On May 9, 1:45 pm, gilis wrote: > > > > > Hi, > > > I have tried to built an experiment in which the same trial don't > > repeat twice. > > > That's what I did: > > > First the experiment stracture goes like that: > > > Instructions (text object) > > BlockList procedure (list object) > > > within the blocklist procedure: > > > Inline dubbed "first" > > > in this inline I only dimmed x as integer > > > triallist procedure (list object) > > > within the trial list the order of the trial goes like this: > > > inline which I dubbed "conditioncheck" and goes like that (pay > > attention please): > > > 'defining first variable as integer to count the number of trials for > > each parmutations (as will be seen next) > > dim cr as integer > > cr=0+cr > > > 'if this is the first trial you run set number attribute value as "d" > > if cr=0 then c.setattrib "number", "D" > > > 'defining another variable to help counting the number of each > > permutation > > dim dummy as integer > > dummy=1 > > > 'defining initial value for each permutation saparetly > > > dim o as integer > > o=o+0 > > dim t as integer > > t=t+0 > > dim th as integer > > th=th+0 > > > 'defining variable for randomization purpses > > dim x as integer > > > 'updating the number of repitations was made > > dim counter as integer > > counter=0 > > cr=cr+dummy > > > 'if the first permutation was already presented twice, don't run it > > again-if it didn't, you may choose it randomly > > > if o<=2 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > > 'if you choosed the first/second or third permutation, update it to > > the number attribute and set text and correct attributes for the text > > object display and for the text object "correct" response option. > > > case 1 'first permutation > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > > o=0+1 'update the number of times this permutation was selected > > > case 2 'second permutation > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 'update the number of times this permutation was selected > > > case 3 'third permutation > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 'update the number of times this permutation was selected > > end select ' > > case "one" 'if the number attribute value is different than "d" > > randomize from the permutation were not chosen in the previous trial > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > t=t+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > th=th+1 > > end select > > end select > > counter=1 > > else > > counter=0 > > end if > > if t<=2 and counter=0 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > th=th+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > counter=1 'update counter to 1 > > else ' if you didn't run any of it, counter remain 0 > > counter=0 > > end if > > > if th<=2 and counter=0 then > > select case c.getattrib("number") > > ' if the number attribute value is "d" then you can randomize for each > > of the three permutatuions > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > end if > > > 'case cr=1 and above, "d' is not relevant > > > if cr<>0 then > > > if o<=2 then > > select case c.getattrib("number") > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > t=t+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > th=th+1 > > end select > > end select > > counter=1 > > else > > counter=0 > > end if > > > if t<=2 and counter=0 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > th=th+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > counter=1 > > else > > counter=0 > > end if > > > if th<=2 and counter=0 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > end if > > end if > > > after > > ... > > read more »- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Tue May 11 06:19:58 2010 From: giladsabo at gmail.com (gilis) Date: Mon, 10 May 2010 23:19:58 -0700 Subject: X position Message-ID: Hi All, In my Experiment the stimuli appear, technically, twice. The participant however is very desirably not to notice that. The issue is that I collect one vocal response and one manual response (with the mouse) so there are two following slide objects that present the same stimuli exactly. The problem I now facing goes like that: Most of the images I use are at the same size and I use flankers above and below them in part of the trials. The flankers should always appear above or below the center of the image. Two of the images are too large so I had to move the flankers to the left in oreder of these to appear above the center of it exactly. I did it by setting an attribute dubbed "Location" in the trial list- for all other images its value is "center" and for these two images I set the value to 55%. In the slide objects that contain the stimuli and the flankers I changed the flankers X position only (X and X align, in the sub object properties) by adding [location] to both X and X align. The problem is that the program automatically change it to [Location]:center. I have tried several times to delete the "center" but for vain because then it add it time and again. What I get in my experiment is that for these two images there is a movement and it can be noticed that I'm using to slide objects. The first object present the flankers at the [location] and the second at the center...Also, although the image is set to allways appear in the center from within the sub object properties, it seem to move the same way with the flankers. Does any one have anhy idea what may be causing it? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Tue May 11 11:09:23 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 11 May 2010 12:09:23 +0100 Subject: X position In-Reply-To: <0b9af4c3-c495-4090-9c6a-79fd4365a631@37g2000yqm.googlegroups.com> Message-ID: Hi Gilis, 1: delete the second stimuli and copy-drag the first stimulus on the procedure to make a copy. The error is, almost certainly, caused by sloppiness :) I have that all the time, anyway! There's many reasons that can cause your slides to be non-identical, and it makes little sense to try see which one. After copying, the two slides should not be noticeably different - just keep changing them and don't forget to debug often to see whether everything is still ok. 2: Leave the X-Align (do you really want to redefine what constitutes the location?) alone and set X to [Location]. 3: Make sure ALL locations are either defined with percentages or pixels (i.e. without %), but not both! E-Prime will add :center to your attribute - this should not affect it. Any luck with your other problem, by the way? I'm sorry, but found it too long to read (I imagine the E-Prime support unit wouldn't say such a thing!). Cheers, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of gilis Sent: 11 May 2010 07:20 To: E-Prime Subject: X position Hi All, In my Experiment the stimuli appear, technically, twice. The participant however is very desirably not to notice that. The issue is that I collect one vocal response and one manual response (with the mouse) so there are two following slide objects that present the same stimuli exactly. The problem I now facing goes like that: Most of the images I use are at the same size and I use flankers above and below them in part of the trials. The flankers should always appear above or below the center of the image. Two of the images are too large so I had to move the flankers to the left in oreder of these to appear above the center of it exactly. I did it by setting an attribute dubbed "Location" in the trial list- for all other images its value is "center" and for these two images I set the value to 55%. In the slide objects that contain the stimuli and the flankers I changed the flankers X position only (X and X align, in the sub object properties) by adding [location] to both X and X align. The problem is that the program automatically change it to [Location]:center. I have tried several times to delete the "center" but for vain because then it add it time and again. What I get in my experiment is that for these two images there is a movement and it can be noticed that I'm using to slide objects. The first object present the flankers at the [location] and the second at the center...Also, although the image is set to allways appear in the center from within the sub object properties, it seem to move the same way with the flankers. Does any one have anhy idea what may be causing it? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 12:46:08 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 08:46:08 -0400 Subject: Fixed Order of Pictures In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF19E@VUIEXCHC.ad.notti ngham.ac.uk> Message-ID: JL, Taking a break from my labors and catching up on a couple of Group threads... Just amplifying what Mich said... I assume that you mean a single visual stimulus display with four pictures. For this I would use a Slide with four SlideImages, one for each picture. Then I would use SlideState.HitTest to get mouse responses. For details, see the SlideState.HitTest topic in the online E-Basic Help, and the "Response Areas for Mouse Input" sample from the PST web site. You will have to extend their example to handle four valid mouse clicks [FN1]. I would then probably store the "hits" in an array, and then as Mich said use a loop to compare those hits, in order, against the answer key. This does all require a fair amount of inline code. As for the feedback display, I would use a single Slide with two states, one for the "correct" sound & visual, and another for the "incorrect" sound & visual, and then add a bit of code to select the appropriate Slide.ActiveState (see the online E-Basic Help). But that's just me, ordinary people would use a pair of Slides and then Labels and Gotos to select which one gets used. Finally, as Mich says E-Prime is not well suited to animations, unless you do not mind writing even more inline code to run it. Otherwise, if you have EP2 then you might run a SlideMovie within the feedback Slide, or in any case just skip the animation and stick with an informative static image or even good old text (I am rather a text snob myself). All in all, nothing that cannot be done in E-Prime without a little bit of ingenuity and general programming skills. -- David McFarlane, Professional Faultfinder FN1: I actually wrote a library of Functions & Subs to help with this sort of thing and would be happy to post that on the Group if someone would send me instructions on how to do that. At 5/7/2010 06:59 AM Friday, you wrote: >Hiya, >Long-winded? How long do you suppose any answer >would be to this question :) No, seriously, if >you have gone through the tutorial, and maybe >even our little guide, you might understand that >what you are asking is indeed a little tricky on a number of levels: >1. Four pictures, dumped in a slide, but: >clicking on them (oomph). There's an example in >the e-prime online help thing where they have >this hit-test for mouse-clicking operations. I'm >sure it's here somewhere in this mailinglist as >well, certainly discussed a few times. Just make sure you save the response. >2. Four clicks, not one, is most easily achieved >(I say), by having four slides (with four >hit-tests); just make copies of them by control+dragging them. >3. Four responses... If you have one attribute, >say "CorrectResponse", and four responses to >slides pic1 pic2 pic3 pic4, you could just do something like: >c.SetAttrib "Y_Resp", pic1.Resp & pic2.Resp & pic3.Resp & pic4.Resp. >if c.GetAttrib ("Y_Resp") = c.GetAttrib >("CorrectResponse") then c.SetAttrib "Y_ACC", 1 else c.SetAttrib "Y_ACC", 0 >4. But of course, you want more than that, >compare each response individually. Of course, >you could just have four correct responses and 4 >responses, so I suppose you'd end up with four >"Y_resp"s (Y_resp1...4) and four "CorrResps" (CorrResp1..4). >5. Assuming you don't want to go for animations >(in which case I'd suggest abandoning E-Prime >altogether, because your whole thing is MUCH >more easily achieved in Flash to begin with), you might do something like: >Dim I as integer >For I = 1 to 4 > If c.GetAttrib ("Y_Resp" & cstr(i)) = > c.GetAttrib("CorrResp" & cstr(i)) then SoundWRONG.play else SoundRIGHT.play >Next I >... that is, assuming you have made two >soundbuffers (SoundWrong and SoundRight), but >this is pretty well documented in the ebasic help. > >Best, >Mich > >Michiel Spapé >Research Fellow >Perception & Action group >University of Nottingham >School of Psychology > > >-----Original Message----- >From: e-prime at googlegroups.com >[mailto:e-prime at googlegroups.com] On Behalf Of JL >Sent: 06 May 2010 22:35 >To: E-Prime >Subject: Fixed Order of Pictures > >Hi there, > >I'm new to E-Prime and finding it a little tricky. I'm wondering is it >possible to make a level whereby four pictures are presented and they >must be clicked on in a certain fixed order? So for example if the >fixed order is pic1, pic 2, pic3, pic 4 and the subject clicks pic >1,3,2,4 then for the clicks that were correct a certain sound and >animation will occur to let the person know and for the ones that were >wrong another sound and animation will occur. And then I'd like to be >able to compare what the subject clicked to what they were supposed to >click? > >Sorry this is very long winded, any help would be much appreciated! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 13:41:13 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 09:41:13 -0400 Subject: Read out certain levels only In-Reply-To: Message-ID: Vera, [Took me awhile to get to this because I had other business to attend to and I wanted to write this up properly.] As to "counterbalancing" on attributes other than Group, Subject, and Session... As I hinted in the thread at http://groups.google.com/group/e-prime/browse_thread/thread/26d2e1e83c6a09bb , although the E-Studio GUI allows options only for Subject, Session, and Group, you may "counterbalance" on any other attribute simply through a proper application of inline code before the List runs, e.g., Set List.Deletion = PickOne(c.GetAttrib("AnyAttribYouLike")) In fact, List.Order does not have a "Counterbalance" option -- instead, Counterbalance in E-Studio just generates a combination of settings that makes EP pick a numbered row from the List at runtime and run just that, once. The best way to see this is to use Counterbalance in E-Studio and then look at the generated code (and IMO if you do not care to look at or understand generated E-Basic code, then you should leave this work to somebody else who does). For the record, and to spare you the trouble, here is an example of the relevant generated code from the InitObjects subroutine: Set List.Order = New SequentialOrder Set List.Deletion = PickOne(c.GetAttrib("Subject")) List.ResetEveryRun = True Set List.TerminateCondition = Samples(1) Set List.ResetCondition = Samples(1) -- David McFarlane, Professional Faultfinder At 5/6/2010 08:31 AM Thursday, you wrote: >Ok, got a bit further (but it's still not working fine): > >I added this inline: > >If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") >ElseIf NewTriggerValue = 0 Then > Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") >End If > >It's based on something David once wrote concerning counterbalancing >(it would have been so much easier if E-Prime could just >counterbalance for any attribute and not just Group, Subject and >Session). -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 14:33:51 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 10:33:51 -0400 Subject: Read out certain levels only In-Reply-To: Message-ID: Vera, Don't know why your code does not work, but just a couple comments on your code fragment here... First, almost every time we have resorted to using List.SetWeight it turned out that we had a poor design structure, and once we restructured the design it eliminated the need for List.SetWeight and solved a host of other lurking problems as well. So I urge you to first take a serious look at your design structure. Next, when we did use List.SetWeight, we absolutely had to execute a List.Reset, otherwise the List ignored our .SetWeight changes. So if your code does not work with the List.Reset command in place, then your code has other problems. And since you must do the List.Reset for either branch of the If...Then...ElseIf, then you may as well pull it out from within the branches and put it after the whole If...Then...ElseIf block. Finally, what happens if TriggerValue < 0 or TriggerValue >= 7? As it stands, in this case your code will simply leave the List intact. Is this what you meant? Perhaps you think it impossible for TriggerValue to ever take on values outside of 0-6, but good coding practice requires that you either include a final Else to handle outliers or at least add a comment to explain what you mean the code to do. So just as an exercise, here is your code fragement again (keeping your TriggerValue variable because I do not want to get into that issue, using "<=" instead of "<" just because I think that makes the intent clearer, and adding a Const to get rid of one "magic number"; hmm, on further thought I restructured this to pull the common inner loops out of the main loop, etc.): Const TriggerValueMax as Integer = 6 Dim nLevel as Integer Dim TriggerValue as Integer, TriggerValueToRun as Integer ' Assign TriggerValueToRun based on NewTriggerValue: If (NewTriggerValue = 0) Then TriggerValueToRun = 0 ElseIf ((1 <= NewTriggerValue) AND _ (NewTriggerValue <= TriggerValueMax)) Then TriggerValueToRun = 1 Else MsgBox "NewTriggerValue " & NewTriggerValue _ & "out of range! Please contact programmer." End If ' Now set List level weights according to match between TriggerValue & ' TriggerValueToRun: For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = TriggerValueToRun Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel DesignList.Reset Or just for fun, let's do this with a Select Case: Const TriggerValueMax as Integer = 6 Dim nLevel as Integer Dim TriggerValue as Integer, TriggerValueToRun as Integer ' Assign TriggerValueToRun based on NewTriggerValue: Select Case NewTriggerValue Case 0 TriggerValueToRun = 0 Case 1 to 6 TriggerValueToRun = 1 Case Else MsgBox "NewTriggerValue " & NewTriggerValue _ & "out of range! Please contact programmer." End Select ' Now set List level weights according to match between TriggerValue & ' TriggerValueToRun: For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = TriggerValueToRun Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel DesignList.Reset -- David McFarlane, Professional Faultfinder At 5/7/2010 01:11 PM Friday, you wrote: >:-( > >I seem to have cheered too early. :-( Some filteringin E-DataAid >showed that E-Prime is still exactly doing as it likes. > >I also had some mistakes in the previous code, here it is again: > >Dim nLevel as Integer >Dim TriggerValue as Integer > >If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > For nLevel = 1 to DesignList.Size > TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > If TriggerValue = 1 Then > DesignList.SetWeight nLevel, 1 > Else DesignList.SetWeight nLevel, 0 > End If > Next nLevel >' DesignList.Reset >ElseIf NewTriggerValue = 0 Then > For nLevel = 1 to DesignList.Size > TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > If TriggerValue = 0 Then > DesignList.SetWeight nLevel, 1 > Else DesignList.SetWeight nLevel, 0 > End If > Next nLevel >' DesignList.Reset >End If > >A few remarks to this code: > >1. E-Prime is still doing what it likes, guaranteeing me no >counterbalancing whatsoever. >2. I had to add: TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") >- If TriggerValue = 0 Then and I know I could have been doing that >more elegantly (like you did Michiel), but then E-Prime complains that >there are "too many variables". >3. If I add this piece of code, not only will E-Prime still not do >what I expect it to do, but it will also generate blocks as it likes. >Sometimes 3, sometimes 4... But never 7 as it is supposed to do!! In >my last test run it even stopped in the middle of a trial going >immediately to the block feedback! Anybody any idea why that could be? >It seems to me that this piece of script has nothing to do with the >number of blocks or anything. >4. As you can see, DesignList.Reset has been commented out, because >when I add this, E-Prime runs only one trials (instead of 36 in a >normal block) and then goes immediately to the Block Feedback. > >I don't understand this program, it makes absolutely no sense to me. :- >( > >Greetings, Vera > > > > >On 7 Mai, 17:05, Vera wrote: > > Ok, found a way to be at the experimental setup AND have internet > > (whew!!!). ;-) > > > > So the thing I did was: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > For nLevel = 1 to DesignList.Size > > If c.GetAttrib("Trigger") = "1" Then > > DesignList.SetWeight nLevel, 1 > > Else DesignList.SetWeight nLevel, 0 > > End If > > Next nLevel > > ElseIf NewTriggerValue = 0 Then > > For nLevel = 1 to DesignList.Size > > If c.GetAttrib("Trigger") = "0" Then > > DesignList.SetWeight nLevel, 1 > > Else DesignList.SetWeight nLevel, 0 > > End If > > Next nLevel > > End If > > > > And now that I could finally connect, I see that you proposed me the > > same thing. :-) > > And the best thing: it works!!!! Checked the database with E-DataAid > > and it's all perfectly balanced. :-) > > > > Thanks a lot for giving me the idea! > > > > Have a great weekend! > > > > Vera > > > > On 7 Mai, 13:42, Vera wrote: > > > > > Ok, I now had a closer look at your solution (I wasn't on the right PC > > > before, with the USB-stick-licence it's kind of a hassle sometimes, > > > making a lot of kms in the institute! ;-) ) and I think I might try > > > something with your solution. > > > > > So to get back at your question: > > > > > "If trigger 1 then PLEASE take only line 1" > > > ... > > > "You mean, of a list, right?" > > > > > Yes, I mean of a list (so a level of a list). Of course I simplified > > > the whole a bit, pretending that I had only two levels in my list and > > > two triggers. In reality I have 20 lines and two triggers (so the list > > > kind of gets separated into two). :-) > > > > > So basically what I want to do is > > > "If trigger = 1 then take any of the lines for which attribute.trigger > > > = 1" (any of 10 in a random manner) > > > > > Oh and then don't worry about TMS, it's already all working fine. :-) > > > I am getting the triggers and all, E-Prime just doesn't know what to > > > do with them for the moment (ok if I am more precise: E-Prime knows > > > what to do with the triggers, but I can't control the conditions, > > > making sure that the design is completely perfectly counterbalanced > > > over the two conditions). :-) > > > > > I am going back to my experimental setup again, seeing what I can do > > > with your solution in mind. I definitely should get internet there, > > > but that's the hassle with experimental computers: you want to keep > > > them clean from anything that might slow them such as anti-virus and > > > stuff. :-| But feel free to reply if you came up with another idea, I > > > will check for input anyway. :-) > > > > > Greetings, Vera > > > > > On May 7, 12:25 pm, Michiel Spape > > > wrote: > > > > > > Hi Vera & Group, > > > > I like that "Sudoku-effect"! In fact, I > think I might have misstated that nested-lists > are untrustworthy - in general, people are much > more prone to making errors than computers, and > indeed, this to me is the main problem of > nested lists. I do, however, use them all the > time, myself, but usually not for my main 'triallist'. > > > > > > Anyway, I'm sorry for the lack of help > I'm going to offer, I'm just not entirely clear > on what you want to achieve. Do you want to run > certain conditions based on a trigger readout > from TMS (err, I never worked with TMS)? Does > that mean certain stimuli? Certain different orderings? > > > > > > Lacking a clear idea on what exactly it > is you want, I can help with certain specifics: > > > > > > "If trigger 1 then PLEASE take only line 1" > > > > ... > > > > You mean, of a list, right? > > > > > > This can be achieved in a quick and dirty > way by adding a bit of inline that sets all > weights of a list to 0 except line 1. From E-basic help, and adjusted > > > > > > Dim nLevel As Integer 'originally Long, > but how many people really have lists that have more than 32768 levels? > > > > For nLevel = 1 To List1.Size > > > > If nLevel = 1 then > List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > > > Next 'nLevel > > > > List1.Reset > > > > > > You can even put this List1 in > unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > > > > Hope any of this helps (I might be way > off in understanding your problem), > > > > Mich > > > > > > Michiel Spapé > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychology > > > > > > -----Original Message----- > > > > From: e-prime at googlegroups.com > [mailto:e-prime at googlegroups.com] On Behalf Of Vera > > > > Sent: 07 May 2010 08:24 > > > > To: E-Prime > > > > Subject: Re: Read out certain levels only > > > > > > Ok guys, just to let you know that I am really trying here, a small > > > > update: > > > > > > Yesterday I tried to solve this problem with nested lists (knowing > > > > that nested lists very quickly get very complicated and taking into > > > > account that Michiel pointed out in his E-Prime doc that the random > > > > doesn't seem to be completely "trustable") but the problem is that I > > > > get to the same thing: I would basically have two lines, 1 pointing to > > > > the condition for trigger 1 and another one pointing to trigger 2. But > > > > then, how to access this line?? > > > > I need to figure out some way to tell E-Prime: > > > > > > If trigger 1 then PLEASE take only line 1 > > > > > > (Or in the old solution, which I very much preferred, because it was > > > > much cleaner - nested lists do have a high "sudoku-effect"): > > > > > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > > > > = 1 > > > > > > Down to the beginning again, I don't know how to solve this. :-( Any > > > > ideas are very welcome. :-) > > > > > > Greetings, Vera > > > > > > On May 6, 2:31 pm, Vera wrote: > > > > > Ok, got a bit further (but it's still not working fine): > > > > > > > I added this inline: > > > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > > Set DesignList.Deletion = > PickOne(c.GetAttrib("TriggerPos") = "1") > > > > > ElseIf NewTriggerValue = 0 Then > > > > > Set DesignList.Deletion = > PickOne(c.GetAttrib("TriggerPos") = "0") > > > > > End If > > > > > > > It's based on something David once wrote concerning counterbalancing > > > > > (it would have been so much easier if E-Prime could just > > > > > counterbalance for any attribute and not just Group, Subject and > > > > > Session). I am actually hoping to tell E-Prime with this, that it > > > > > needs to take any of the 18 levels which has either 1 or 0 in the > > > > > TriggerPos attribute. It doesn't seem to work though. :-( > > > > > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > > > > > Grrr, I know I am not very far from a solution... > > > > > > > Greetings, Vera > > > > > > > On May 6, 11:17 am, Vera wrote: > > > > > > > > Dear forum members, > > > > > > > > I already got some very useful help > here and as I am now running into > > > > > > a new problem with E-Prime, I will > see if you can help me out (again). > > > > > > I did all my homework: yes I looked at the reference guide, getting > > > > > > started guide, all other documents concerning E-Prime, yes I combed > > > > > > through this forum, yes I combed through the PST-forum. :-) > > > > > > > > So here's the problem: > > > > > > > > I created a list of conditions (and all that has been working fine > > > > > > until now) and as we are moving on to > another experimental setup, it > > > > > > is now very important that half of > the conditions appear on one type > > > > > > of stimulus and the other half of > conditions appear on another type of > > > > > > stimulus. > > > > > > > > To be more clear: > > > > > > > > On Trigger1 I want only a certain > type of the 18 conditions I have to > > > > > > be executed. > > > > > > On Trigger2 I want the other 18 conditions (another type) to be > > > > > > executed. > > > > > > > > I know I could be able to do this > over nested lists (probably), but it > > > > > > would take a lot of time too, as then > "big surgery" has to be done on > > > > > > my program. ;-) > > > > > > > > So I figured that there should be > some way to add a few lines of code, > > > > > > which tell E-Prime that it should only use a certain level in a > > > > > > certain condition. > > > > > > > > I wrote: > > > > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > > > c.getAttrib("TriggerPos") = 1 > > > > > > ElseIf NewTriggerValue = 0 Then > > > > > > c.getAttrib("TriggerPos") = 0 > > > > > > End If > > > > > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > > > > attribute in my designlist. > > > > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > > > > > Ok. But what do I need to add then in > order to make it work? Basically > > > > > > I want Eprime in certain conditions > only to use the levels that have > > > > > > "1" in the attribute "TriggerPos". > > > > > > > > I know that I am not very far from a > solution. Any help would be very > > > > > > much appreciated. :-) > > > > > > > > Vera -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From j.j.marshall at kent.ac.uk Tue May 11 14:51:46 2010 From: j.j.marshall at kent.ac.uk (Jason) Date: Tue, 11 May 2010 07:51:46 -0700 Subject: Pre-load movies in E-prime Message-ID: Hi, I am doing a study where we are showing multiple video stimuli in succession, Each movie is about 8 seconds long, and about 30Mb in size. My problem is that there is a long pause between each video (2-3 seconds), presumably as E-prime is trying to fully load the video before it starts playing it. Does anyone know if there is anyway of pre-loading the videos at the start of the experiment, so that there is a minimal delay between videos? Cheers Jason -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 14:56:04 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 10:56:04 -0400 Subject: X position In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF8DF@VUIEXCHC.ad.notti ngham.ac.uk> Message-ID: Gilis, Regarding the ":center" that E-Studio adds to your X property: Ignore it, it does not affect the actual position during the run. Long explanation: E-Studio adds this just to show where *E-Studio* will put the *placeholder* for the object when *designing* the program, *not* when running the program. Think about it -- You tell EP that you want something to appear at [Location]. OK, so where does E-Studio show the placeholder for that object? It has no idea what value [Location] will take at run time. So instead it assigns a separate value to use just during design time. And just to demonstrate this, try the following: Take your object with the [Location] and drag it anywhere you like on the screen, then look at the X property again -- you will see that it now says, e.g, [Location]:20% (if you dragged it leftward). So now you know how to put an object one place at run time, and show its placeholder whereever you like at design time. -- David McFarlane, Professional Faultfinder At 5/11/2010 07:09 AM Tuesday, you wrote: >Hi Gilis, >1: delete the second stimuli and copy-drag the >first stimulus on the procedure to make a copy. >The error is, almost certainly, caused by >sloppiness :) I have that all the time, anyway! >There's many reasons that can cause your slides >to be non-identical, and it makes little sense >to try see which one. After copying, the two >slides should not be noticeably different - just >keep changing them and don't forget to debug >often to see whether everything is still ok. >2: Leave the X-Align (do you really want to >redefine what constitutes the location?) alone and set X to [Location]. >3: Make sure ALL locations are either defined >with percentages or pixels (i.e. without %), but >not both! E-Prime will add :center to your >attribute - this should not affect it. > >Any luck with your other problem, by the way? >I'm sorry, but found it too long to read (I >imagine the E-Prime support unit wouldn't say such a thing!). >Cheers, >Mich > > >Michiel Spapé >Research Fellow >Perception & Action group >University of Nottingham >School of Psychology > >-----Original Message----- >From: e-prime at googlegroups.com >[mailto:e-prime at googlegroups.com] On Behalf Of gilis >Sent: 11 May 2010 07:20 >To: E-Prime >Subject: X position > >Hi All, > >In my Experiment the stimuli appear, technically, twice. The >participant however is very desirably not to notice that. The issue is >that I collect one vocal response and one manual response (with the >mouse) so there are two following slide objects that present the same >stimuli exactly. > >The problem I now facing goes like that: Most of the images I use are >at the same size and I use flankers above and below them in part of >the trials. The flankers should always appear above or below the >center of the image. > >Two of the images are too large so I had to move the flankers to the >left in oreder of these to appear above the center of it exactly. > >I did it by setting an attribute dubbed "Location" in the trial list- >for all other images its value is "center" and for these two images I >set the value to 55%. > >In the slide objects that contain the stimuli and the flankers I >changed the flankers X position only (X and X align, in the sub object >properties) by adding [location] to both X and X align. The problem >is that the program automatically change it to [Location]:center. I >have tried several times to delete the "center" but for vain because >then it add it time and again. > >What I get in my experiment is that for these two images there is a >movement and it can be noticed that I'm using to slide objects. The >first object present the flankers at the [location] and the second at >the center...Also, although the image is set to allways appear in the >center from within the sub object properties, it seem to move the same >way with the flankers. > > >Does any one have anhy idea what may be causing it? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 15:04:12 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 11:04:12 -0400 Subject: X position In-Reply-To: <4be97006.120bca0a.2b8a.ffffd5e3SMTPIN_ADDED@gmr-mx.google. com> Message-ID: Just to belabor the obvious, note that you can take control of the ":..." placeholder position and type in whatever value you like directly, you do not have to settle for just dragging placeholders around on the screen. -- David McFarlane, Professional Faultfinder At 5/11/2010 10:56 AM Tuesday, you wrote: >Gilis, > >Regarding the ":center" that E-Studio adds to >your X property: Ignore it, it does not affect >the actual position during the run. > >Long explanation: E-Studio adds this just to >show where *E-Studio* will put the *placeholder* >for the object when *designing* the program, >*not* when running the program. Think about it >-- You tell EP that you want something to appear >at [Location]. OK, so where does E-Studio show >the placeholder for that object? It has no idea >what value [Location] will take at run time. So >instead it assigns a separate value to use just >during design time. And just to demonstrate >this, try the following: Take your object with >the [Location] and drag it anywhere you like on >the screen, then look at the X property again -- >you will see that it now says, e.g, >[Location]:20% (if you dragged it leftward). So >now you know how to put an object one place at >run time, and show its placeholder whereever you like at design time. > >-- David McFarlane, Professional Faultfinder > > >At 5/11/2010 07:09 AM Tuesday, you wrote: >>Hi Gilis, >>1: delete the second stimuli and copy-drag the >>first stimulus on the procedure to make a copy. >>The error is, almost certainly, caused by >>sloppiness :) I have that all the time, anyway! >>There's many reasons that can cause your slides >>to be non-identical, and it makes little sense >>to try see which one. After copying, the two >>slides should not be noticeably different - >>just keep changing them and don't forget to >>debug often to see whether everything is still ok. >>2: Leave the X-Align (do you really want to >>redefine what constitutes the location?) alone and set X to [Location]. >>3: Make sure ALL locations are either defined >>with percentages or pixels (i.e. without %), >>but not both! E-Prime will add :center to your >>attribute - this should not affect it. >> >>Any luck with your other problem, by the way? >>I'm sorry, but found it too long to read (I >>imagine the E-Prime support unit wouldn't say such a thing!). >>Cheers, >>Mich >> >> >>Michiel Spapé >>Research Fellow >>Perception & Action group >>University of Nottingham >>School of Psychology >> >>-----Original Message----- >>From: e-prime at googlegroups.com >>[mailto:e-prime at googlegroups.com] On Behalf Of gilis >>Sent: 11 May 2010 07:20 >>To: E-Prime >>Subject: X position >> >>Hi All, >> >>In my Experiment the stimuli appear, technically, twice. The >>participant however is very desirably not to notice that. The issue is >>that I collect one vocal response and one manual response (with the >>mouse) so there are two following slide objects that present the same >>stimuli exactly. >> >>The problem I now facing goes like that: Most of the images I use are >>at the same size and I use flankers above and below them in part of >>the trials. The flankers should always appear above or below the >>center of the image. >> >>Two of the images are too large so I had to move the flankers to the >>left in oreder of these to appear above the center of it exactly. >> >>I did it by setting an attribute dubbed "Location" in the trial list- >>for all other images its value is "center" and for these two images I >>set the value to 55%. >> >>In the slide objects that contain the stimuli and the flankers I >>changed the flankers X position only (X and X align, in the sub object >>properties) by adding [location] to both X and X align. The problem >>is that the program automatically change it to [Location]:center. I >>have tried several times to delete the "center" but for vain because >>then it add it time and again. >> >>What I get in my experiment is that for these two images there is a >>movement and it can be noticed that I'm using to slide objects. The >>first object present the flankers at the [location] and the second at >>the center...Also, although the image is set to allways appear in the >>center from within the sub object properties, it seem to move the same >>way with the flankers. >> >> >>Does any one have anhy idea what may be causing it? > >-- >You received this message because you are >subscribed to the Google Groups "E-Prime" group. >To post to this group, send email to e-prime at googlegroups.com. >To unsubscribe from this group, send email to >e-prime+unsubscribe at googlegroups.com. >For more options, visit this group at >http://groups.google.com/group/e-prime?hl=en. > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 15:15:29 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 11:15:29 -0400 Subject: Pre-load movies in E-prime In-Reply-To: <341b3fb0-667c-4caa-96b2-9052648563c4@24g2000yqy.googlegrou ps.com> Message-ID: Jason, Hope somebody else has an answer here, but you should also take this right to PST's trained staff at http://support.pstnet.com/e%2Dprime/support/login.asp . They strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days), and this is pretty much their substitute for proper documentation, so make full use of it. And if you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the rest of us. That said, I really wonder if E-Prime (or any video-playing system) does fully load files before playing? I would think that they all stream from disk through some buffer, so EP may only be trying to load that buffer before starting playback of each file. So if you cannot fully pre-load (cache?) each file to a separate buffer (along with switching playback buffers on demand, which is what you would need to do), perhaps you could reduce the buffer so that it loads less at the start and starts streaming sooner? But I do not really know anything about video, just guessing here based on general knowledge of digital systems. Thanks, -- David McFarlane, Professional Faultfinder At 5/11/2010 10:51 AM Tuesday, you wrote: >I am doing a study where we are showing multiple video stimuli in >succession, Each movie is about 8 seconds long, and about 30Mb in >size. My problem is that there is a long pause between each video (2-3 >seconds), presumably as E-prime is trying to fully load the video >before it starts playing it. > >Does anyone know if there is anyway of pre-loading the videos at the >start of the experiment, so that there is a minimal delay between >videos? > >Cheers > >Jason -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From adele.dimian at gmail.com Tue May 11 16:15:02 2010 From: adele.dimian at gmail.com (Adele) Date: Tue, 11 May 2010 09:15:02 -0700 Subject: Blackjack task in E-prime In-Reply-To: <5d0d4966-3e05-4d7b-a612-bd558f7bb10a@k29g2000yqh.googlegroups.com> Message-ID: Hi all, We have been working more on our code and made some progress. Now we are having problems with the equation for adding the card values together so that we can use it to determine when the dealer/computer hits or stays. Any suggestions would be greatly appreciated! '******************> ' CalcNewTotalVal '******************> Dim value As Integer Dim total As Integer Dim winnings as currency Dim ValBC1 as Integer ValBC1 = val(c.getattrib("ValBC1")) Dim ValSC as Integer ValSC = val(c.getattrib("ValSC")) Dim ValHit1 as integer ValHit1 = val(c.getattrib("ValHit1")) Dim ValHit2 as integer ValHit2 = val(c.getattrib("ValHit2")) Dim ValDBC1 as Integer ValDBC1 = val(c.getattrib("ValDBC1")) Dim ValDSC as Integer ValDSC = val(c.getattrib("ValDSC")) Dim ValDHit1 as Integer ValDHit1 = val(c.getattrib("ValDHit1")) Dim ValDHit2 as Integer ValDHit2 = val(c.getattrib("ValDHit2")) debug.print "ValBC1" & c.getattrib ("ValBC1") debug.print "ValSC" & c.getattrib ("ValSC") debug.print "ValHit1" & c.getattrib ("ValHit1") debug.print "ValHit2" & c.getattrib ("ValHit2") debug.print "ValDBC1" & c.getattrib ("ValDBC1") debug.print "ValDSC" & c.getattrib ("ValDSC") debug.print "ValDHit1" & c.getattrib ("ValDHit1") debug.print "ValDHit2" & c.getattrib ("ValDHit2") playercardtotal = 0 dealercardtotal = 0 c.setattrib "playercardtotal", playercardtotal c.setattrib "dealercardtotal", dealercardtotal Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" <------------- This is where the code errors out, stating type mismatch error Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" winnings = total - val(c.getattrib("borrowed")) If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And DealerCardTotal < 22) then MsgBox "You lose." Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And DealerCardTotal > 22) then msgBox "You win." End If '******************< ' CalcNewTotalVal '******************< On May 4, 2:45 pm, Adele wrote: > Hello all, > > We are currently trying to program a Blackjack task in e-prime and > have been trying unsuccessfully for months now! The problem we are > having has to do with how to calculate the value of each card so we > can then calculate the total value of the dealer and participant's > hands. We are trying to use an array to declare the value of the cards > (bear with us this is our first time attempting to use an array). The > cards are set up in a blocklist with card values. In theory  we would > like to draw from this list to declare the values, so that the values > are consistent with the cards dealt. > > Once the card values are declared we then would like to use an > equation to add the card values and compare the participant total card > value to the dealer card value. We need the dealer card value to > program when the dealer hits and stays. > > Please see below, can anyone point us in the right direction? We would > appreciate it immensely! Thanks for your time and consideration. > > Kind regards, > Adele and Brittany > > Please excuse our inexperience and disorganization, here are several > different ways we were trying to get the card values: > > '******************> > ' CalcNewTotalVal > '******************> > Dim value As Integer > Dim total As Integer > Dim CardCount As Integer > Dim i As Integer > Dim DealerCardCount As Integer > Dim PlayerCardCount As Integer > Dim Deck As clsDeck > Dim hit as integer > Dim stay as Integer > Dim playercardtotal as integer > Dim Dealercardtotal as integer > Dim won as currency > Dim lost as currency > dim winnings as currency > > Dim arrValue (10) as integer > > For i = 0 > 'c.SetAttrib "Won", "Won" > 'c.SetAttrib "Lost", "Lost" > 'won = val(c.getattrib("Won")) > 'lost = val(c.getattrib("Lost")) > total = total + won - lost > winnings = total - val(c.getattrib("borrowed")) > > 'c.SetAttrib "Hit", "Hit" > 'c.SetAttrib "Stay", "Stay" > 'Hit = val(c.getattrib("Hit")) > 'Stay = val(c.getattrib("Stay")) > 'c.getattrib("ValBC1") > 'c.getattrib("ValSC") > 'c.getattrib("ValHit1") > 'c.getattrib("ValHit2") > 'c.getattrib("ValDBC1") > 'c.getattrib("ValDSC") > 'c.getattrib("ValDHit1") > 'c.getattrib("ValDHit2") > Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" > Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" > winnings = total - val(c.getattrib("borrowed")) > > If Playercardtotal > 21 Then >    MsgBox "You busted" >    goto EndlabelDealerif2 > End If > > 'For DealerTotal = GetCardTotal(Dealer) > If DealerCardTotal > 21 Then >    MsgBox "Dealer busts" > ElseIf DealerCardTotal > 15 Then >    MsgBox "Dealer stays" > '   EndGame > 'Else >  '  DealerCardCount = DealerCardCount + 1 >   ' Deck.Deal 1, Dealer, _ >    '  DealerCardCount * 80 + 20, 60, 0, FaceUp > End If > > 'total = 0 > 'CardCount = Choice1.NumCardsInHand(plyer) > 'For i = 0 To CardCount - 1 > '       value = Choice1.GetCardValue(plyer, i) Mod 13 > '       total = total + value + 1 > > 'Dim msg As String > > 'Deck.ShowHandCard Dealer, 0, FaceUp > 'DealerCardTotal = GetCardTotal(Dealer) > 'PlayerCardTotal = GetCardTotal(Player) > Set Choice1 = Nothing > > 'msg = "Dealer: " + CStr(DealerCardTotal) + _ > '        + "Player: " + CStr(PlayerCardTotal) > If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And > DealerCardTotal < 22) then > MsgBox "You lose." > Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And > DealerCardTotal > 22) then > msgBox "You win." > End If > > debug.print "won " & c.getattrib("won") > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 17:02:09 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 13:02:09 -0400 Subject: Blackjack task in E-prime In-Reply-To: <6e2339dd-d28d-4a0a-b376-5a20cf058ef0@k2g2000yqe.googlegrou ps.com> Message-ID: Adele, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... According to your earlier code, you declared Playercardtotal (or PlayerCardTotal, which reads better) as type Integer. Your troublesome line Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" Constructs the string ""ValBC1ValSCValHit1ValHit2" and then tries to assign that to the Integer variable Playercardtotal, which of course makes no sense. You could check the result of "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" yourself just by doing MsgBox "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" Perhaps you meant to do Playercardtotal = ValBC1 + ValSC + ValHit1 + ValHit2 Remember, quotes enclose literal text values, whereas variable names are never quoted (although, to confuse matters slightly, it may look like you enclose variable names in quotes when they indicate items in a Collection object (e.g., SlideState.Objects("subObjectName")), but even here the name is strictly speaking a key value associated with the Collection item). Really, this is elementary programming stuff. Perhaps you and colleagues need to take a time out and take an introduction to computer programming class, just as I did long ago. -- David McFarlane, Professional Faultfinder "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." (Richard Feynman, Nobel prize-winning physicist) >We have been working more on our code and made some progress. Now we >are having problems with the equation for adding the card values >together so that we can use it to determine when the dealer/computer >hits or stays. Any suggestions would be greatly appreciated! > >'******************> >' CalcNewTotalVal >'******************> >Dim value As Integer >Dim total As Integer >Dim winnings as currency > >Dim ValBC1 as Integer >ValBC1 = val(c.getattrib("ValBC1")) >Dim ValSC as Integer >ValSC = val(c.getattrib("ValSC")) >Dim ValHit1 as integer >ValHit1 = val(c.getattrib("ValHit1")) >Dim ValHit2 as integer >ValHit2 = val(c.getattrib("ValHit2")) >Dim ValDBC1 as Integer >ValDBC1 = val(c.getattrib("ValDBC1")) >Dim ValDSC as Integer >ValDSC = val(c.getattrib("ValDSC")) >Dim ValDHit1 as Integer >ValDHit1 = val(c.getattrib("ValDHit1")) >Dim ValDHit2 as Integer >ValDHit2 = val(c.getattrib("ValDHit2")) >debug.print "ValBC1" & c.getattrib ("ValBC1") >debug.print "ValSC" & c.getattrib ("ValSC") >debug.print "ValHit1" & c.getattrib ("ValHit1") >debug.print "ValHit2" & c.getattrib ("ValHit2") >debug.print "ValDBC1" & c.getattrib ("ValDBC1") >debug.print "ValDSC" & c.getattrib ("ValDSC") >debug.print "ValDHit1" & c.getattrib ("ValDHit1") >debug.print "ValDHit2" & c.getattrib ("ValDHit2") > > > >playercardtotal = 0 >dealercardtotal = 0 > >c.setattrib "playercardtotal", playercardtotal >c.setattrib "dealercardtotal", dealercardtotal >Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" ><------------- This is where the code errors out, stating type >mismatch error >Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" >winnings = total - val(c.getattrib("borrowed")) > > >If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And >DealerCardTotal < 22) then >MsgBox "You lose." >Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And >DealerCardTotal > 22) then >msgBox "You win." >End If > > > > >'******************< >' CalcNewTotalVal >'******************< > > > > >On May 4, 2:45 pm, Adele wrote: > > Hello all, > > > > We are currently trying to program a Blackjack task in e-prime and > > have been trying unsuccessfully for months now! The problem we are > > having has to do with how to calculate the value of each card so we > > can then calculate the total value of the dealer and participant's > > hands. We are trying to use an array to declare the value of the cards > > (bear with us this is our first time attempting to use an array). The > > cards are set up in a blocklist with card values. In theory we would > > like to draw from this list to declare the values, so that the values > > are consistent with the cards dealt. > > > > Once the card values are declared we then would like to use an > > equation to add the card values and compare the participant total card > > value to the dealer card value. We need the dealer card value to > > program when the dealer hits and stays. > > > > Please see below, can anyone point us in the right direction? We would > > appreciate it immensely! Thanks for your time and consideration. > > > > Kind regards, > > Adele and Brittany > > > > Please excuse our inexperience and disorganization, here are several > > different ways we were trying to get the card values: > > > > '******************> > > ' CalcNewTotalVal > > '******************> > > Dim value As Integer > > Dim total As Integer > > Dim CardCount As Integer > > Dim i As Integer > > Dim DealerCardCount As Integer > > Dim PlayerCardCount As Integer > > Dim Deck As clsDeck > > Dim hit as integer > > Dim stay as Integer > > Dim playercardtotal as integer > > Dim Dealercardtotal as integer > > Dim won as currency > > Dim lost as currency > > dim winnings as currency > > > > Dim arrValue (10) as integer > > > > For i = 0 > > 'c.SetAttrib "Won", "Won" > > 'c.SetAttrib "Lost", "Lost" > > 'won = val(c.getattrib("Won")) > > 'lost = val(c.getattrib("Lost")) > > total = total + won - lost > > winnings = total - val(c.getattrib("borrowed")) > > > > 'c.SetAttrib "Hit", "Hit" > > 'c.SetAttrib "Stay", "Stay" > > 'Hit = val(c.getattrib("Hit")) > > 'Stay = val(c.getattrib("Stay")) > > 'c.getattrib("ValBC1") > > 'c.getattrib("ValSC") > > 'c.getattrib("ValHit1") > > 'c.getattrib("ValHit2") > > 'c.getattrib("ValDBC1") > > 'c.getattrib("ValDSC") > > 'c.getattrib("ValDHit1") > > 'c.getattrib("ValDHit2") > > Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" > > Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" > > winnings = total - val(c.getattrib("borrowed")) > > > > If Playercardtotal > 21 Then > > MsgBox "You busted" > > goto EndlabelDealerif2 > > End If > > > > 'For DealerTotal = GetCardTotal(Dealer) > > If DealerCardTotal > 21 Then > > MsgBox "Dealer busts" > > ElseIf DealerCardTotal > 15 Then > > MsgBox "Dealer stays" > > ' EndGame > > 'Else > > ' DealerCardCount = DealerCardCount + 1 > > ' Deck.Deal 1, Dealer, _ > > ' DealerCardCount * 80 + 20, 60, 0, FaceUp > > End If > > > > 'total = 0 > > 'CardCount = Choice1.NumCardsInHand(plyer) > > 'For i = 0 To CardCount - 1 > > ' value = Choice1.GetCardValue(plyer, i) Mod 13 > > ' total = total + value + 1 > > > > 'Dim msg As String > > > > 'Deck.ShowHandCard Dealer, 0, FaceUp > > 'DealerCardTotal = GetCardTotal(Dealer) > > 'PlayerCardTotal = GetCardTotal(Player) > > Set Choice1 = Nothing > > > > 'msg = "Dealer: " + CStr(DealerCardTotal) + _ > > ' + "Player: " + CStr(PlayerCardTotal) > > If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And > > DealerCardTotal < 22) then > > MsgBox "You lose." > > Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And > > DealerCardTotal > 22) then > > msgBox "You win." > > End If > > > > debug.print "won " & c.getattrib("won") -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From j.j.marshall at kent.ac.uk Wed May 12 07:57:29 2010 From: j.j.marshall at kent.ac.uk (Jason) Date: Wed, 12 May 2010 00:57:29 -0700 Subject: Pre-load movies in E-prime In-Reply-To: <4be97494.0b0bca0a.2dfe.ffffe099SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Thanks David, I have forwarded my query to PST tech support, and will of course re- post as ansd when I recieve a response! Good point about the buffering. Cheers Jason -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 12 16:37:52 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 12 May 2010 09:37:52 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: Message-ID: Arrrgggh!!! So I've spent the last couple of days trying to place the various code within the experiment. every time i try to do so i get the error messages "SetAttrib is not a property of the object" when i put any of the above script in or "CurrentPerc is not an assignable property of the object" when i try to set CurrentPerc as an attribute, any suggestions? On May 5, 11:25 am, Matt Paffel wrote: > oops, should have spell checked. just got a little too excited to get > to work. > > On May 5, 11:23 am, Matt Paffel wrote: > > > > > > > wow, thanks a lot to the both of you! what a nice bit of information > > to find upon arrivign to work thsi morning! > > > On May 5, 11:00 am, Michiel Spape > > wrote: > > > > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > > > If IsNumeric(mySlide.RESP) then > > >         If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > > >         currentPerc = currentPerc + cint(mySlide.RESP)-5 > > >         c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > >         goto Label1 > > > End if > > > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > > > Best, > > > Mich > > > > Michiel Spapé > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychology > > > > -----Original Message----- > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > > > Sent: 05 May 2010 15:14 > > > To: e-prime at googlegroups.com > > > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > > > If...Thens stand (and while at it also added a couple comments, and used > > > line continuation characters to break long lines): > > > > If mySlide.resp = 2 then  ' increase pie slice > > >      If c.GetAttrib("CurrentPerc") < 100 then _ > > >          c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > >          & ".bmp" > > >      goto Label1 > > > ElseIf mySlide.resp = 1 then  ' decrease pie slice > > >      If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > > >          c.GetAttrib("CurrentPerc") - 1 > > >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > >          & ".bmp" > > >      goto Label1 > > > End If > > > > Might also use a variable instead of an attribute reference for > > > CurrentPerc, thus, > > > > Dim  currentPerc > > > If mySlide.resp = 2 then  ' increase pie slice > > >      If (currentPerc < 100) then currentPerc = currentPerc + 1 > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > >      goto Label1 > > > ElseIf mySlide.resp = 1 then  ' decrease pie slice > > >      If (currentPerc > 1) then currentPerc = currentPerc - 1 > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > >      goto Label1 > > > End If > > > > And to complete the exercise, let's use Select...Case: > > > > Dim  currentPerc > > > Select Case mySlide.RESP > > >    Case 2  ' increase pie slice > > >      If (currentPerc < 100) then currentPerc = currentPerc + 1 > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > >      goto Label1 > > >    Case 1  ' decrease pie slice > > >      If (currentPerc > 1) then currentPerc = currentPerc - 1 > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > >      goto Label1 > > > End Select > > > > -- David McFarlane, Professional Faultfinder > > > > On 5 May 2010 Michiel Spape wrote: > > > > Hi, > > > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > > > If mySlide.resp = 2 then > > > >    If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > >    goto Label1 > > > > end if > > > > If mySlide.resp = 1 then > > > >    If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > >    goto Label1 > > > > end if > > > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > > > Best, > > > > Mich > > > > > Michiel Spapé > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychology > > > > > -----Original Message----- > > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > > > Sent: 04 May 2010 20:14 > > > > To: E-Prime > > > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > > > Hello, > > > > > I'm trying to develop a behavioral choice task in which a participant > > > > will be able to increase or decrease a percentage of pie dependent > > > > upon the contingency of the experiment. I've attached the code that I > > > > was planning on using, which I took from the e-basic help file. There > > > > are a couple of lines that I plan on removing from the script such as > > > > the lines referencing "random" and "nCount". However, overall this is > > > > aesthetically what I want the program to look like. My question is; I > > > > want the participant to be able to increase and decrease the > > > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > > > lines of script, or references pertaining to, what I'd like to achieve > > > > within the design. Does anyone have any suggestions? > > > > > 'Create a Canvas > > > > Dim cnvs As Canvas > > > > 'Set cnvs as the current, onscreen canvas > > > > Set cnvs = Display.Canvas > > > > 'Declare variables used to set the size of the canvas > > > > Dim XRes As Integer, YRes As Integer > > > > 'Set the canvas size as the entire screen resolution > > > > XRes = Display.XRes > > > > YRes = Display.YRes > > > > > 'Declare and initialize variables to be used when drawing the sections > > > > of the circle > > > > Const nRadius As Integer = 100 > > > > Dim nStartAngle As Integer, nEndAngle As Integer > > > > Dim nCount As Integer > > > > > 'Initialize variables > > > > nStartAngle = 90 > > > > nEndAngle = 90 > > > > > 'Declare variables to be used to randomly select the delay value > > > > Dim nRandom As Integer > > > > Dim nDelay As Integer > > > > 'Select a random number to determine the value of the delay between > > > > the drawing of each section of the circle > > > > nRandom = Random (1, 2) > > > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > > > 'Otherwise, the nDelay value is set to 1000 ms. > > > > If nRandom = 1 Then > > > > nDelay = 500 > > > > Else > > > > nDelay = 1000 > > > > End If > > > > > 'Set color of pen for pie slice > > > > cnvs.PenColor = CColor("red") > > > > cnvs.FillColor = CColor("red") > > > > 'The For...Next statement repeats a block of statements a specified > > > > number of times > > > > 'incrementing a loop counter by a given increment each time through > > > > the loop > > > > 'In this sample, the nCount variable is incremented by one each time > > > > through the loop allowing ten pie slices to be drawn. > > > > > For nCount = 1 to 10 > > > > > 'Adjust startAngle to specify where to start each section of the > > > > circle each time a pie slice is drawn > > > > nStartAngle = nStartAngle - 36 > > > > 'Draw a pie slice with center point at x, y and radius r, starting at > > > > startAngle and drawing to endAngle. > > > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > > > 'Sleep before drawing next pie slice > > > > Sleep nDelay > > > > Next nCount > > > > 'Set fill color to white before clearing canvas > > > > cnvs.FillColor = CColor("white") > > > > 'Clear canvas > > > > cnvs.clear > > > > 'Set the value of the delay as an attribute in the data file > > > > > Thank you. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > This message has been checked for viruses but the contents of an attachment > > > may still contain software viruses which could damage your computer system: > > > you are advised to perform your own checks. Email communications with the > > > University of Nottingham may be monitored as permitted by UK legislation. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.-Hidequoted text - > > > > - Show quoted text - > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.-Hide quoted text - > > > - Show quoted text - > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To- Hide quoted text - > > - Show quoted text -... > > read more » -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From susangc7 at gmail.com Wed May 12 17:00:53 2010 From: susangc7 at gmail.com (Susan) Date: Wed, 12 May 2010 10:00:53 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <53ab7479-68f2-4f97-8fed-000fd97cf0fb@37g2000yqm.googlegroups.com> Message-ID: Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does not; I believe the general form should be: c.SetAttrib "CurrentPerc", "12" or whatever. That should fix that particular error. You may also have a problem because all attributes are strings, so conversion to integer may be necessary in some places. HTH, Susan On May 12, 12:37 pm, Matt Paffel wrote: > Arrrgggh!!! > > So I've spent the last couple of days trying to place the various code > within the experiment. every time i try to do so i get the error > messages "SetAttrib is not a property of the object" when i put any of > the above script in or "CurrentPerc is not an assignable property of > the object" when i try to set CurrentPerc as an attribute, any > suggestions? > > On May 5, 11:25 am, Matt Paffel wrote: > > > oops, should have spell checked. just got a little too excited to get > > to work. > > > On May 5, 11:23 am, Matt Paffel wrote: > > > > wow, thanks a lot to the both of you! what a nice bit of information > > > to find upon arrivign to work thsi morning! > > > > On May 5, 11:00 am, Michiel Spape > > > wrote: > > > > > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > > > > If IsNumeric(mySlide.RESP) then > > > >         If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > > > >         currentPerc = currentPerc + cint(mySlide.RESP)-5 > > > >         c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > >         goto Label1 > > > > End if > > > > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > > > > Best, > > > > Mich > > > > > Michiel Spapé > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychology > > > > > -----Original Message----- > > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > > > > Sent: 05 May 2010 15:14 > > > > To: e-prime at googlegroups.com > > > > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > > > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > > > > If...Thens stand (and while at it also added a couple comments, and used > > > > line continuation characters to break long lines): > > > > > If mySlide.resp = 2 then  ' increase pie slice > > > >      If c.GetAttrib("CurrentPerc") < 100 then _ > > > >          c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > > >          & ".bmp" > > > >      goto Label1 > > > > ElseIf mySlide.resp = 1 then  ' decrease pie slice > > > >      If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > > > >          c.GetAttrib("CurrentPerc") - 1 > > > >      c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > > >          & ".bmp" > > > >      goto Label1 > > > > End If > > > > > Might also use a variable instead of an attribute reference for > > > > CurrentPerc, thus, > > > > > Dim  currentPerc > > > > If mySlide.resp = 2 then  ' increase pie slice > > > >      If (currentPerc < 100) then currentPerc = currentPerc + 1 > > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > >      goto Label1 > > > > ElseIf mySlide.resp = 1 then  ' decrease pie slice > > > >      If (currentPerc > 1) then currentPerc = currentPerc - 1 > > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > >      goto Label1 > > > > End If > > > > > And to complete the exercise, let's use Select...Case: > > > > > Dim  currentPerc > > > > Select Case mySlide.RESP > > > >    Case 2  ' increase pie slice > > > >      If (currentPerc < 100) then currentPerc = currentPerc + 1 > > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > >      goto Label1 > > > >    Case 1  ' decrease pie slice > > > >      If (currentPerc > 1) then currentPerc = currentPerc - 1 > > > >      c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > >      goto Label1 > > > > End Select > > > > > -- David McFarlane, Professional Faultfinder > > > > > On 5 May 2010 Michiel Spape wrote: > > > > > Hi, > > > > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > > > > If mySlide.resp = 2 then > > > > >    If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > > >    goto Label1 > > > > > end if > > > > > If mySlide.resp = 1 then > > > > >    If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > > > >    c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > > >    goto Label1 > > > > > end if > > > > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > > > > Best, > > > > > Mich > > > > > > Michiel Spapé > > > > > Research Fellow > > > > > Perception & Action group > > > > > University of Nottingham > > > > > School of Psychology > > > > > > -----Original Message----- > > > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > > > > Sent: 04 May 2010 20:14 > > > > > To: E-Prime > > > > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > > > > Hello, > > > > > > I'm trying to develop a behavioral choice task in which a participant > > > > > will be able to increase or decrease a percentage of pie dependent > > > > > upon the contingency of the experiment. I've attached the code that I > > > > > was planning on using, which I took from the e-basic help file. There > > > > > are a couple of lines that I plan on removing from the script such as > > > > > the lines referencing "random" and "nCount". However, overall this is > > > > > aesthetically what I want the program to look like. My question is; I > > > > > want the participant to be able to increase and decrease the > > > > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > > > > lines of script, or references pertaining to, what I'd like to achieve > > > > > within the design. Does anyone have any suggestions? > > > > > > 'Create a Canvas > > > > > Dim cnvs As Canvas > > > > > 'Set cnvs as the current, onscreen canvas > > > > > Set cnvs = Display.Canvas > > > > > 'Declare variables used to set the size of the canvas > > > > > Dim XRes As Integer, YRes As Integer > > > > > 'Set the canvas size as the entire screen resolution > > > > > XRes = Display.XRes > > > > > YRes = Display.YRes > > > > > > 'Declare and initialize variables to be used when drawing the sections > > > > > of the circle > > > > > Const nRadius As Integer = 100 > > > > > Dim nStartAngle As Integer, nEndAngle As Integer > > > > > Dim nCount As Integer > > > > > > 'Initialize variables > > > > > nStartAngle = 90 > > > > > nEndAngle = 90 > > > > > > 'Declare variables to be used to randomly select the delay value > > > > > Dim nRandom As Integer > > > > > Dim nDelay As Integer > > > > > 'Select a random number to determine the value of the delay between > > > > > the drawing of each section of the circle > > > > > nRandom = Random (1, 2) > > > > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > > > > 'Otherwise, the nDelay value is set to 1000 ms. > > > > > If nRandom = 1 Then > > > > > nDelay = 500 > > > > > Else > > > > > nDelay = 1000 > > > > > End If > > > > > > 'Set color of pen for pie slice > > > > > cnvs.PenColor = CColor("red") > > > > > cnvs.FillColor = CColor("red") > > > > > 'The For...Next statement repeats a block of statements a specified > > > > > number of times > > > > > 'incrementing a loop counter by a given increment each time through > > > > > the loop > > > > > 'In this sample, the nCount variable is incremented by one each time > > > > > through the loop allowing ten pie slices to be drawn. > > > > > > For nCount = 1 to 10 > > > > > > 'Adjust startAngle to specify where to start each section of the > > > > > circle each time a pie slice is drawn > > > > > nStartAngle = nStartAngle - 36 > > > > > 'Draw a pie slice with center point at x, y and radius r, starting at > > > > > startAngle and drawing to endAngle. > > > > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > > > > 'Sleep before drawing next pie slice > > > > > Sleep nDelay > > > > > Next nCount > > > > > 'Set fill color to white before clearing canvas > > > > > cnvs.FillColor = CColor("white") > > > > > 'Clear canvas > > > > > cnvs.clear > > > > > 'Set the value of the delay as an attribute in the data file > > > > > > Thank you. > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > > This message has been checked for viruses but the contents of an attachment > > > > may still contain software viruses which could damage your computer system: > > > > you are advised to perform your own checks. Email communications with the > > > > University of Nottingham may be monitored as permitted by UK legislation. > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 12 19:35:10 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 12 May 2010 15:35:10 -0400 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <9f00dc43-8309-4c03-9444-2674676fcaff@q30g2000yqd.googlegroups.com> Message-ID: Susan, Good catch, I obviously missed that when I made & posted my revisions! Just for the record (and because I am such a pedant) here are all the code samples again with corrections made. AFAIK E-Basic/Visual Basic is the only language that has this silly rule about parentheses around Function arguments but not Sub arguments, which causes much pain for no useful purpose. (For that matter, more rational languages such as C do away with the useless distinction between functions and subroutines altogether.) First, my base revision of Mich's code (also adding more parentheses around conditional clauses, and putting tests into numerical order just because I think it reads better) (and please pay attention to the underscore "_" that I use at the end of some lines, yet another silly affectation of Basic)... If (mySlide.resp = 1) then ' decrease pie slice If c.GetAttrib("CurrentPerc") > 1 then _ c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 c.SetAttrib "myPicture", _ "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 ElseIf (mySlide.resp = 2) then ' increase pie slice If c.GetAttrib("CurrentPerc") < 100 then _ c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 c.SetAttrib "myPicture", _ "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 End If Then, my revision using a variable instead of an attribute reference for CurrentPerc (and this time giving a type to the variable)... Dim currentPerc as Integer ' Single would allow fractional changes If (mySlide.resp = 1) then ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 ElseIf (mySlide.resp = 2) then ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 End If Then my exercise using Select...Case... Dim currentPerc as Integer Select Case mySlide.RESP Case 1 ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 Case 2 ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 End Select And finally, Mich reduced it all to (with me now adding the Dim, and making a correction to his literal constant value)... ' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise ' algorithm will fail. Dim currentPerc as Integer If IsNumeric(mySlide.RESP) then If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ currentPerc = currentPerc + cint(mySlide.RESP)- 2 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 End if Note that this all assumes that the Procedure runs until we are done with pie slices, otherwise we would have to work with a global variable. -- David McFarlane, Professional Faultfinder > Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does > not; I believe the general form should be: > > c.SetAttrib "CurrentPerc", "12" > > or whatever. That should fix that particular error. You may also have > a problem because all attributes are strings, so conversion to integer > may be necessary in some places. > > HTH, > Susan > > On May 12, 12:37 pm, Matt Paffel wrote: >> Arrrgggh!!! >> >> So I've spent the last couple of days trying to place the various code >> within the experiment. every time i try to do so i get the error >> messages "SetAttrib is not a property of the object" when i put any of >> the above script in or "CurrentPerc is not an assignable property of >> the object" when i try to set CurrentPerc as an attribute, any >> suggestions? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 12 21:45:42 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 12 May 2010 14:45:42 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4BEB02EE.9050604@msu.edu> Message-ID: Thank you guys, I wont be able to check the variations until tomorrow afternoon. I'll let you know how it works out. On May 12, 2:35 pm, David McFarlane wrote: > Susan, > > Good catch, I obviously missed that when I made & posted my revisions! > Just for the record (and because I am such a pedant) here are all the > code samples again with corrections made.  AFAIK > E-Basic/Visual Basic is the only language that has this silly rule about > parentheses around Function arguments but not Sub arguments, which > causes much pain for no useful purpose.  (For that matter, more rational > languages such as C do away with the useless distinction between > functions and subroutines altogether.) > > First, my base revision of Mich's code (also adding more parentheses > around conditional clauses, and putting tests into numerical order just > because I think it reads better) (and please pay attention to the > underscore "_" that I use at the end of some lines, yet another silly > affectation of Basic)... > > If (mySlide.resp = 1) then  ' decrease pie slice >      If c.GetAttrib("CurrentPerc") > 1 then _ >          c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 >      c.SetAttrib "myPicture", _ >          "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" >      goto Label1 > ElseIf (mySlide.resp = 2) then  ' increase pie slice >      If c.GetAttrib("CurrentPerc") < 100 then _ >          c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 >      c.SetAttrib "myPicture", _ >          "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" >      goto Label1 > End If > > Then, my revision using a variable instead of an attribute reference for > CurrentPerc (and this time giving a type to the variable)... > > Dim  currentPerc as Integer  ' Single would allow fractional changes > If (mySlide.resp = 1) then  ' decrease pie slice >      If (currentPerc > 1) then currentPerc = currentPerc - 1 >      c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > ElseIf (mySlide.resp = 2) then  ' increase pie slice >      If (currentPerc < 100) then currentPerc = currentPerc + 1 >      c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > End If > > Then my exercise using Select...Case... > > Dim  currentPerc as Integer > Select Case mySlide.RESP > Case 1  ' decrease pie slice >      If (currentPerc > 1) then currentPerc = currentPerc - 1 >      c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > Case 2  ' increase pie slice >      If (currentPerc < 100) then currentPerc = currentPerc + 1 >      c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > End Select > > And finally, Mich reduced it all to (with me now adding the Dim, and > making a correction to his literal constant value)... > > ' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise > ' algorithm will fail. > Dim  currentPerc as Integer > If IsNumeric(mySlide.RESP) then >      If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ >          ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ >          currentPerc = currentPerc + cint(mySlide.RESP)- 2 >      c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" >      goto Label1 > End if > > Note that this all assumes that the Procedure runs until we are done > with pie slices, otherwise we would have to work with a global variable. > > -- David McFarlane, Professional Faultfinder > > > > > Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does > > not; I believe the general form should be: > > > c.SetAttrib "CurrentPerc", "12" > > > or whatever. That should fix that particular error. You may also have > > a problem because all attributes are strings, so conversion to integer > > may be necessary in some places. > > > HTH, > > Susan > > > On May 12, 12:37 pm, Matt Paffel wrote: > >> Arrrgggh!!! > > >> So I've spent the last couple of days trying to place the various code > >> within the experiment. every time i try to do so i get the error > >> messages "SetAttrib is not a property of the object" when i put any of > >> the above script in or "CurrentPerc is not an assignable property of > >> the object" when i try to set CurrentPerc as an attribute, any > >> suggestions? > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ekoren2 at gmail.com Thu May 13 05:04:17 2010 From: ekoren2 at gmail.com (Eli Koren) Date: Thu, 13 May 2010 08:04:17 +0300 Subject: pause with image Message-ID: Hi there! I need 2 pause2 after 150 trials 1 with text and the other text with image. this is the first pause acript: If trial1= 150 Then ' Must set input properties manually if running from Unreferenced E-Objects Pause2.InputMasks.Add Keyboard.CreateInputMask("{SPACE}", "", CLng(Pause2.Duration), CLng("1"), ebEndResponseActionTerminate, CLogical("Yes"), "", "", "ResponseMode:All ProcessBackspace:Yes") Pause2.Run End If How can i write the second pause text with image? (not possible to insert image to pause ) I dont want script with goto label just another pause which include image. thanks Eli Koren -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Thu May 13 19:04:37 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 13 May 2010 15:04:37 -0400 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4BEB02EE.9050604@msu.edu> Message-ID: OK, by now you are all sick of this, but I couldn't let that last sample code sit, so as yet another exercise I revised it so that it will use .RESP = 1 for decrease and .RESP = 2 for increase (but as a further exercise, think through what happens if .RESP goes outside that range; of course one could prevent that by proper use of Allowable). Note the use of CSng(). Remember, you are responsible for catching typos and making your own corrections in any of the free and hastily-produced sample code posted here. Dim currentPerc as Integer, newPerc as Integer If IsNumeric(mySlide.RESP) Then newPerc = currentPerc + (2 * ( CSng(mySlide.RESP) - 1.5 )) If (0 <= newPerc) and (newPerc <= 100) Then currentPerc = newPerc c.SetAttrib "myPicture", "pie" & Cstr(newPerc) & ".bmp" End If goto Label1 End if -- David McFarlane, Professional Faultfinder At 5/12/2010 03:35 PM Wednesday, David McFarlane wrote: >Susan, > >Good catch, I obviously missed that when I made & posted my >revisions! Just for the record (and because I am such a pedant) here >are all the code samples again with corrections >made. AFAIK E-Basic/Visual Basic is the only language >that has this silly rule about parentheses around Function arguments >but not Sub arguments, which causes much pain for no useful >purpose. (For that matter, more rational languages such as C do >away with the useless distinction between functions and subroutines >altogether.) > > >First, my base revision of Mich's code (also adding more parentheses >around conditional clauses, and putting tests into numerical order >just because I think it reads better) (and please pay attention to >the underscore "_" that I use at the end of some lines, yet another >silly affectation of Basic)... > >If (mySlide.resp = 1) then ' decrease pie slice > If c.GetAttrib("CurrentPerc") > 1 then _ > c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 > c.SetAttrib "myPicture", _ > "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 >ElseIf (mySlide.resp = 2) then ' increase pie slice > If c.GetAttrib("CurrentPerc") < 100 then _ > c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 > c.SetAttrib "myPicture", _ > "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 >End If > >Then, my revision using a variable instead of an attribute reference for >CurrentPerc (and this time giving a type to the variable)... > >Dim currentPerc as Integer ' Single would allow fractional changes >If (mySlide.resp = 1) then ' decrease pie slice > If (currentPerc > 1) then currentPerc = currentPerc - 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >ElseIf (mySlide.resp = 2) then ' increase pie slice > If (currentPerc < 100) then currentPerc = currentPerc + 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >End If > >Then my exercise using Select...Case... > >Dim currentPerc as Integer >Select Case mySlide.RESP >Case 1 ' decrease pie slice > If (currentPerc > 1) then currentPerc = currentPerc - 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >Case 2 ' increase pie slice > If (currentPerc < 100) then currentPerc = currentPerc + 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >End Select > >And finally, Mich reduced it all to (with me now adding the Dim, and >making a correction to his literal constant value)... > >' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise >' algorithm will fail. >Dim currentPerc as Integer >If IsNumeric(mySlide.RESP) then > If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ > ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ > currentPerc = currentPerc + cint(mySlide.RESP)- 2 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >End if > >Note that this all assumes that the Procedure runs until we are done >with pie slices, otherwise we would have to work with a global variable. > >-- David McFarlane, Professional Faultfinder > > >>Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does >>not; I believe the general form should be: >>c.SetAttrib "CurrentPerc", "12" >>or whatever. That should fix that particular error. You may also have >>a problem because all attributes are strings, so conversion to integer >>may be necessary in some places. >>HTH, >>Susan >>On May 12, 12:37 pm, Matt Paffel wrote: >>>Arrrgggh!!! >>> >>>So I've spent the last couple of days trying to place the various code >>>within the experiment. every time i try to do so i get the error >>>messages "SetAttrib is not a property of the object" when i put any of >>>the above script in or "CurrentPerc is not an assignable property of >>>the object" when i try to set CurrentPerc as an attribute, any >>>suggestions? > >-- >You received this message because you are subscribed to the Google >Groups "E-Prime" group. >To post to this group, send email to e-prime at googlegroups.com. >To unsubscribe from this group, send email to >e-prime+unsubscribe at googlegroups.com. >For more options, visit this group at >http://groups.google.com/group/e-prime?hl=en. > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Thu May 13 21:43:37 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Thu, 13 May 2010 14:43:37 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4bec4d49.0b0bca0a.0567.5981SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hello...again. Sorry for taking up so much time with this but I’ve entered the code and when I generate it, there seems to be no problem, the code generates just fine. However, when I try to run the program, I keep getting the error message 13, “type mismatch”. I then put all the various 1’s and 2’s in quotation marks which allow me to not only generate the code, but also run the program. However, the program does not respond to any of the keys pressed, which inevitably leads me to have to ctrl, alt, shift out of the program. After looking at it, one of my colleagues suggested I place the entire code online for whomever to look at and see if they can make it work. I’m not sure of the etiquette of this and have opted against doing so but if anyone would be willing to take a shot at it I can certainly do so. Does anyone have a suggestion of where to go from here? On May 13, 2:04 pm, David McFarlane wrote: > OK, by now you are all sick of this, but I couldn't let that last > sample code sit, so as yet another exercise I revised it so that it > will use .RESP = 1 for decrease and .RESP = 2 for increase (but as a > further exercise, think through what happens if .RESP goes outside > that range; of course one could prevent that by proper use of > Allowable).  Note the use of CSng().  Remember, you are responsible > for catching typos and making your own corrections in any of the free > and hastily-produced sample code posted here. > > Dim  currentPerc as Integer, newPerc as Integer > If IsNumeric(mySlide.RESP) Then >      newPerc = currentPerc + (2 * ( CSng(mySlide.RESP) - 1.5 )) >      If (0 <= newPerc) and (newPerc <= 100) Then >          currentPerc = newPerc >          c.SetAttrib "myPicture", "pie" & Cstr(newPerc) & ".bmp" >      End If >      goto Label1 > End if > > -- David McFarlane, Professional Faultfinder > > At 5/12/2010 03:35 PM Wednesday, David McFarlane wrote: > > > > > > >Susan, > > >Good catch, I obviously missed that when I made & posted my > >revisions! Just for the record (and because I am such a pedant) here > >are all the code samples again with corrections > >made.  AFAIK E-Basic/Visual Basic is the only language > >that has this silly rule about parentheses around Function arguments > >but not Sub arguments, which causes much pain for no useful > >purpose.  (For that matter, more rational languages such as C do > >away with the useless distinction between functions and subroutines > >altogether.) > > >First, my base revision of Mich's code (also adding more parentheses > >around conditional clauses, and putting tests into numerical order > >just because I think it reads better) (and please pay attention to > >the underscore "_" that I use at the end of some lines, yet another > >silly affectation of Basic)... > > >If (mySlide.resp = 1) then  ' decrease pie slice > >     If c.GetAttrib("CurrentPerc") > 1 then _ > >         c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 > >     c.SetAttrib "myPicture", _ > >         "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > >     goto Label1 > >ElseIf (mySlide.resp = 2) then  ' increase pie slice > >     If c.GetAttrib("CurrentPerc") < 100 then _ > >         c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 > >     c.SetAttrib "myPicture", _ > >         "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > >     goto Label1 > >End If > > >Then, my revision using a variable instead of an attribute reference for > >CurrentPerc (and this time giving a type to the variable)... > > >Dim  currentPerc as Integer  ' Single would allow fractional changes > >If (mySlide.resp = 1) then  ' decrease pie slice > >     If (currentPerc > 1) then currentPerc = currentPerc - 1 > >     c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > >     goto Label1 > >ElseIf (mySlide.resp = 2) then  ' increase pie slice > >     If (currentPerc < 100) then currentPerc = currentPerc + 1 > >     c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > >     goto Label1 > >End If > > >Then my exercise using Select...Case... > > >Dim  currentPerc as Integer > >Select Case mySlide.RESP > >Case 1  ' decrease pie slice > >     If (currentPerc > 1) then currentPerc = currentPerc - 1 > >     c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > >     goto Label1 > >Case 2  ' increase pie slice > >     If (currentPerc < 100) then currentPerc = currentPerc + 1 > >     c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > >     goto Label1 > >End Select > > >And finally, Mich reduced it all to (with me now adding the Dim, and > >making a correction to his literal constant value)... > > >' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise > >' algorithm will fail. > >Dim  currentPerc as Integer > >If IsNumeric(mySlide.RESP) then > >     If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ > >         ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ > >         currentPerc = currentPerc + cint(mySlide.RESP)- 2 > >     c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > >     goto Label1 > >End if > > >Note that this all assumes that the Procedure runs until we are done > >with pie slices, otherwise we would have to work with a global variable. > > >-- David McFarlane, Professional Faultfinder > > >>Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does > >>not; I believe the general form should be: > >>c.SetAttrib "CurrentPerc", "12" > >>or whatever. That should fix that particular error. You may also have > >>a problem because all attributes are strings, so conversion to integer > >>may be necessary in some places. > >>HTH, > >>Susan > >>On May 12, 12:37 pm, Matt Paffel wrote: > >>>Arrrgggh!!! > > >>>So I've spent the last couple of days trying to place the various code > >>>within the experiment. every time i try to do so i get the error > >>>messages "SetAttrib is not a property of the object" when i put any of > >>>the above script in or "CurrentPerc is not an assignable property of > >>>the object" when i try to set CurrentPerc as an attribute, any > >>>suggestions? > > >-- > >You received this message because you are subscribed to the Google > >Groups "E-Prime" group. > >To post to this group, send email to e-prime at googlegroups.com. > >To unsubscribe from this group, send email to > >e-prime+unsubscribe at googlegroups.com. > >For more options, visit this group at > >http://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From chloebooth86 at googlemail.com Thu May 13 22:05:02 2010 From: chloebooth86 at googlemail.com (Chloe) Date: Thu, 13 May 2010 15:05:02 -0700 Subject: Tidying an if.. then statement in E-Prime script for attention capture paradigm Message-ID: Hi there, I’m having some problems with scripting an If, then clause in my program. I’ve edited an emotional capture paradigm in which people view 3 faces on the screen, one face has blue eyes (the target) and the other two faces have brown eye (the distractors). When participants find the blue eyed face, they must respond with what direction the face is tilted in (left or right). On 2/3 trials, all faces have a neutral emo expression. However, on 1/3 trials, one face will show a discrepant emotion (either happy or sad) and this discrepant emotion can appear on either the target face or on the distractor faces. The emotion is always irrelevant to the task (find blue eyes). I use four face identities in this task, and the pictures are edited so each face has blue eyes and brown eyes. So, for example, I have a picture of ID1 with blue eyes and a picture of ID1 with brown eyes. Also, the faces can appear in Left or Right orientation. So, the picture files I have are listed in program as thus: LBluNeut(1) = "M1_Bl_L_Neut.bmp" LBluNeut(2) = "M2_Bl_L_Neut.bmp" LBluNeut(3) = "F1_Bl_L_Neut.bmp" LBluNeut(4) = "f2_Bl_L_Neut.bmp" RBluNeut(1) = "M1_Bl_R_Neut.bmp" RBluNeut(2) = "M2_Bl_R_Neut.bmp" RBluNeut(3) = "F1_Bl_R_Neut.bmp" RBluNeut(4) = "F2_Bl_R_Neut.bmp" LBluHap(1) = "M1_Bl_L_Hap.bmp" LBluHap(2) = "M2_Bl_L_Hap.bmp" LBluHap(3) = "F1_Bl_L_Hap.bmp" LBluHap(4) = "F2_Bl_L_Hap.bmp" RBluHap(1) = "M1_Bl_R_Hap.bmp" RBluHap(2) = "M2_Bl_R_Hap.bmp" RBluHap(3) = "F1_Bl_R_Hap.bmp" RBluHap(4) = "F2_Bl_R_Hap.bmp" LBluSad(1) = "M1_Bl_L_Sad.bmp" LBluSad(2) = "M2_Bl_L_Sad.bmp" LBluSad(3) = "F1_Bl_L_Sad.bmp" LBluSad(4) = "F2_Bl_L_Sad.bmp" Etc… and repeated for all the brown eyes. I then have this code: 'position objects 'dim nIndex as integer for fill_loop = 1 to 3 ‘POSITION OF DISPLAY ITEMS pos(fill_loop) = fill_loop next fill_loop for fill_loop = 1 to 4 'WHICH BROWN EYE (DISTRACTOR) FACE bro_eye(fill_loop) = fill_loop next fill_loop 'MAKE TARGET NOT SAME AS TARGET ON TRIAL n - 1 do curr_tar = random(1,4) loop while (curr_tar = prev_tar) ‘MAKE DISTRACTOR NOT SAME AS DISTRACTOR ON TRIAL n - 1 do RandomizeArray bro_eye, 1, 4 loop while (bro_eye(1) = prev_dis) prev_tar = curr_tar prev_dis = bro_eye(1) / *========================================================================= ''''Choose target face (blue eyes) as first item in list face =========================================================================*/ select case c.getattrib("Target_Emotion") case "neutral" select case c.getattrib("T_Orient") 'READ TARGET FROM TABLE case "left" c.setattrib"rc","m" 'SET RESPONSE stim(1) = LBluNeut(curr_tar) case "right" c.setattrib"rc","k" 'SET RESPONSE stim(1) = RBluNeut(curr_tar) end select case "happy" select case c.getattrib("T_Orient") case "left" c.setattrib"rc","m" stim(1) = LBluHap(curr_tar) case "right" c.setattrib"rc","k" stim(1) = RBluHap(curr_tar) end select case "sad" select case c.getattrib("T_Orient") case "left" c.setattrib"rc","m" stim(1) = LBluSad(curr_tar) case "right" c.setattrib"rc","k" stim(1) = RBluSad(curr_tar) end select end select / *============================================================================*/ / *========================================================================= ''''Choose brown eyes face for 2nd item in list - CAN be emotional =========================================================================*/ select case c.getattrib("Distractor_Emotion") case "neutral" select case c.getattrib("D1_Orient") 'READ DISTRACTOR 1 ORIENTATION CONDITION FROM TABLE case "left" stim(2) = LBroNeut(bro_eye(1)) case "right" stim(2) = RBroNeut(bro_eye(1)) end select case "happy" select case c.getattrib("D1_Orient") case "left" stim(2) = LBroHap(bro_eye(1)) case "right" stim(2) = RBroHap(bro_eye(1)) end select case "sad" select case c.getattrib("D1_Orient") case "left" stim(2) = LBroSad(bro_eye(1)) case "right" stim(2) = RBroSad(bro_eye(1)) end select end select / *============================================================================== ''''Choose second brown eye face as distractor item - never the emotional one. ===============================================================================*/ select case c.getattrib("D2_Orient") case "left" stim(3) = LBroNeut(bro_eye(2)) case "right" stim(3) = RBroNeut(bro_eye(2)) end select / *============================================================================*/ RandomizeArray pos, 1, 3 /*Assign filenames to locations in slide*/ c.setattrib "e1", stim(pos(1)) c.setattrib "e2", stim(pos(2)) c.setattrib "e3", stim(pos(3)) strImageFile = c.GetAttrib("e1") LoadSlideImageFile search.States(search.ActiveState), "image1", strImageFile strImageFile = c.GetAttrib("e2") LoadSlideImageFile search.States(search.ActiveState), "image2", strImageFile strImageFile = c.GetAttrib("e3") LoadSlideImageFile search.States(search.ActiveState), "image3", strImageFile Okay, so the problem is, I need to insert a clause so that if the target being shown is a picture of person1/ID1 with blue eyes, then none of the distractors show ID1 with brown eyes. So something like: If curr_tarr = LBluNeut(1) or RBluNeut(1) or LBluSad(1) or RBluSad(1) or LBluHap(1) or RBluHap(1) then distractors can’t be LBroNeut(1) or RBroNeut(1) or LBroSad(1) or RBroSad(1) or LBroHap(1) or RBroHap(1) or if curr_tar = LBluNeut(2) or RBluNeut(2) or LBluSad(2) or RBluSad(2) or LBluHap(2) or RBluHap(2) then distractors can’t be LBroNeut(2) or RBroNeut(2) or LBroSad(2) or RBroSad(2) or LBroHap(2) or RBroHap(2) etc. for all four IDs. But 1) this doesn’t work! And 2) there must be a simpler way of doing this?! Please help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From sophie.jarlier at gmail.com Fri May 14 06:51:40 2010 From: sophie.jarlier at gmail.com (soeursourire) Date: Thu, 13 May 2010 23:51:40 -0700 Subject: Play movie in Eprime2 Message-ID: Hi, I have this error when I try to simply read an avi file in Eprime2: Run-time Error (Line 99) 11053: An error occurred while attempting to load the movie Marker: 223 Error: -2147220877 (0x80040273) I do not understand why, as the first image of the video is visible in Eprime when elaborating the experiment. I can read the video on the PC into Windows Media Player so it should not be a problem of codec. So why eprime cannot load the video although I selected directly the file to play? Thanks for your help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Fri May 14 13:50:30 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 14 May 2010 09:50:30 -0400 Subject: Play movie in Eprime2 In-Reply-To: <69321b58-b615-4d9a-a4ac-ffebdc703cba@k42g2000yqb.googlegro ups.com> Message-ID: This has been discussed in several threads both here and on the PST Forum, as well as in the PST Knowledge Base. As I recall, seeing a movie work in Windows Media Player provides no guarantee that codecs and other things are configured correctly to work with E-Prime, if I am wrong then someone please correct me. We could really use a full explanation of the technical matters involved in playing digital movies. In the meantime, please contact PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp , they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. And if you learn anything useful then please post back here. -- David McFarlane, Professional Faultfinder >I have this error when I try to simply read an avi file in Eprime2: > >Run-time Error (Line 99) 11053: An error occurred while attempting to >load the movie >Marker: 223 >Error: -2147220877 (0x80040273) > >I do not understand why, as the first image of the video is visible in >Eprime when elaborating the experiment. >I can read the video on the PC into Windows Media Player so it should >not be a problem of codec. > >So why eprime cannot load the video although I selected directly the >file to play? > >Thanks for your help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From d.vinson at ucl.ac.uk Fri May 14 15:54:18 2010 From: d.vinson at ucl.ac.uk (David Vinson) Date: Fri, 14 May 2010 16:54:18 +0100 Subject: Play movie in Eprime2 In-Reply-To: <69321b58-b615-4d9a-a4ac-ffebdc703cba@k42g2000yqb.googlegroups.com> Message-ID: Hi, David M. is right - the fact that a movie works in Windows Media Player is no guarantee that it will work in E-Prime 2.0. If you have not successfully displayed a movie in E-Prime before, the first troubleshooting step is to check is whether the sample experiment "MovieRT" works. If this doesn't work, this tells you there's a more general problem than just something to do with the specific avi video you're trying to load. If MovieRT works, then you know it's something specific to do with your video encoding and can proceed accordingly. Good luck! another David soeursourire wrote: > I have this error when I try to simply read an avi file in Eprime2: > > Run-time Error (Line 99) 11053: An error occurred while attempting to > load the movie > Marker: 223 > Error: -2147220877 (0x80040273) > > I do not understand why, as the first image of the video is visible in > Eprime when elaborating the experiment. > I can read the video on the PC into Windows Media Player so it should > not be a problem of codec. -- David Vinson, Ph.D. Senior Postdoctoral Researcher 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 post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Fri May 14 20:43:28 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 14 May 2010 16:43:28 -0400 Subject: Tidying an if.. then statement in E-Prime script for attention capture paradigm In-Reply-To: <4d592f3a-d530-4edf-bb97-7006ce7290b6@k42g2000yqb.googlegro ups.com> Message-ID: Chloe, Wow. I would like to know how others here feel, but when I see someone post more than about a dozen lines of code I get the feeling that they are so hopelessly lost that they are beyond any help that I can offer. Still, I will hazard a couple of thoughts on this situation. If I were to use arrays for this (instead of Lists, which I will come back to), then I would put everything into one array instead of separated into so many arrays as you have done. Using all those separate arrays just complicates matters and wastes the power of arrays. With all the file names in one array, I could then use Mid() or InStr() to inspect any string for the presence of tags like "Neut" or "Hap", and I would need only one array name to use in my conditional expressions for the If...Thens. Sticking with arrays, I might go a step further and put all this into one mult-dimensional array. I could use one dimension for eye color, another for orientation, etc. Now, by a suitable choice of index values, I could immediately single out ranges from any dimensions I like. But I would probably not use arrays anyway. More likely I would put all this into a List. After all, if you are not going to use the specialized features of E-Prime, why use it at all? -- You could just as well use any general-purpose programming platform, which would both cost less and make more portable programs. Anyway, my List could contain a column or "attribute" for each, well, attribute, e.g., ID, EyeColor, Orientation, Emotion. I could then generate my file names simply by concatenating attribute references in my Image or Slide objects, thus: [ID]-[EyeColor]-[Orientation]-[Emotion].bmp (note that I do not have to include the ".bmp" in any of the strings of either arrays or Lists). I might even go a bit further and use nested Lists to indicate which files may be used with each other file. With enough care, I might do everything with Lists and not need any If...Thens at all! In any case, I think this could all be cleared up with a little more study into elementary computer programming combined with a little more exercise in the specifics of E-Prime. So I will close with a bit of more general advice that others here are sick of seeing from me: 1) First, decide whether you want to be a researcher who dabbles in computer programming, or a computer programmer who dabbles in psychology research. 2) If the former, then hire this out to someone who actually enjoys this sort of work and is good at it, while you do something else that you enjoy and are good at. That's what the division of labor is all about, learn to use it. 3) In any case, do take an Introduction to Computer Programming class, if not to make you into a programmer then to help you communicate and collaborate better with any programmer that you hire to shore up the technical needs of your research. And if you haven't even done the tutorials that come with E-Prime, then you should really start there. -- David McFarlane, Professional Faultfinder "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." (Richard Feynman, Nobel prize-winning physicist) At 5/13/2010 06:05 PM Thursday, you wrote: >I’m having some problems with scripting an If, then clause in my >program. I’ve edited an emotional capture paradigm in which people >view 3 faces on the screen, one face has blue eyes (the target) and >the other two faces have brown eye (the distractors). When >participants find the blue eyed face, they must respond with what >direction the face is tilted in (left or right). On 2/3 trials, all >faces have a neutral emo expression. However, on 1/3 trials, one face >will show a discrepant emotion (either happy or sad) and this >discrepant emotion can appear on either the target face or on the >distractor faces. The emotion is always irrelevant to the task (find >blue eyes). > >I use four face identities in this task, and the pictures are edited >so each face has blue eyes and brown eyes. So, for example, I have a >picture of ID1 with blue eyes and a picture of ID1 with brown eyes. >Also, the faces can appear in Left or Right orientation. So, the >picture files I have are listed in program as thus: >LBluNeut(1) = "M1_Bl_L_Neut.bmp" >LBluNeut(2) = "M2_Bl_L_Neut.bmp" >LBluNeut(3) = "F1_Bl_L_Neut.bmp" >LBluNeut(4) = "f2_Bl_L_Neut.bmp" > >RBluNeut(1) = "M1_Bl_R_Neut.bmp" >RBluNeut(2) = "M2_Bl_R_Neut.bmp" >RBluNeut(3) = "F1_Bl_R_Neut.bmp" >RBluNeut(4) = "F2_Bl_R_Neut.bmp" > >LBluHap(1) = "M1_Bl_L_Hap.bmp" >LBluHap(2) = "M2_Bl_L_Hap.bmp" >LBluHap(3) = "F1_Bl_L_Hap.bmp" >LBluHap(4) = "F2_Bl_L_Hap.bmp" > >RBluHap(1) = "M1_Bl_R_Hap.bmp" >RBluHap(2) = "M2_Bl_R_Hap.bmp" >RBluHap(3) = "F1_Bl_R_Hap.bmp" >RBluHap(4) = "F2_Bl_R_Hap.bmp" > >LBluSad(1) = "M1_Bl_L_Sad.bmp" >LBluSad(2) = "M2_Bl_L_Sad.bmp" >LBluSad(3) = "F1_Bl_L_Sad.bmp" >LBluSad(4) = "F2_Bl_L_Sad.bmp" > >Etc… and repeated for all the brown eyes. > >I then have this code: > >'position objects >'dim nIndex as integer > >for fill_loop = 1 to 3 ‘POSITION OF DISPLAY ITEMS > pos(fill_loop) = fill_loop >next fill_loop > >for fill_loop = 1 to 4 'WHICH BROWN EYE (DISTRACTOR) FACE > bro_eye(fill_loop) = fill_loop >next fill_loop > > >'MAKE TARGET NOT SAME AS TARGET ON TRIAL n - 1 >do > curr_tar = random(1,4) >loop while (curr_tar = prev_tar) >‘MAKE DISTRACTOR NOT SAME AS DISTRACTOR ON TRIAL n - 1 >do > RandomizeArray bro_eye, 1, 4 >loop while (bro_eye(1) = prev_dis) >prev_tar = curr_tar >prev_dis = bro_eye(1) > >/ >*========================================================================= >''''Choose target face (blue eyes) as first item in list face >=========================================================================*/ > >select case c.getattrib("Target_Emotion") >case "neutral" > > select case c.getattrib("T_Orient") 'READ TARGET FROM TABLE > case "left" > c.setattrib"rc","m" 'SET RESPONSE > stim(1) = LBluNeut(curr_tar) > case "right" > c.setattrib"rc","k" 'SET RESPONSE > stim(1) = RBluNeut(curr_tar) > end select > >case "happy" > select case c.getattrib("T_Orient") > case "left" > c.setattrib"rc","m" > stim(1) = LBluHap(curr_tar) > case "right" > c.setattrib"rc","k" > stim(1) = RBluHap(curr_tar) > end select > > >case "sad" > select case c.getattrib("T_Orient") > case "left" > c.setattrib"rc","m" > stim(1) = LBluSad(curr_tar) > case "right" > c.setattrib"rc","k" > stim(1) = RBluSad(curr_tar) > end select >end select > >/ >*============================================================================*/ >/ >*========================================================================= >''''Choose brown eyes face for 2nd item in list - CAN be emotional >=========================================================================*/ > >select case c.getattrib("Distractor_Emotion") >case "neutral" > > select case c.getattrib("D1_Orient") 'READ DISTRACTOR 1 >ORIENTATION CONDITION FROM TABLE > case "left" > stim(2) = LBroNeut(bro_eye(1)) > case "right" > stim(2) = RBroNeut(bro_eye(1)) > end select > >case "happy" > select case c.getattrib("D1_Orient") > case "left" > stim(2) = LBroHap(bro_eye(1)) > case "right" > stim(2) = RBroHap(bro_eye(1)) > end select > > >case "sad" > select case c.getattrib("D1_Orient") > case "left" > stim(2) = LBroSad(bro_eye(1)) > case "right" > stim(2) = RBroSad(bro_eye(1)) > end select >end select > >/ >*============================================================================== >''''Choose second brown eye face as distractor item - never the >emotional one. >===============================================================================*/ > >select case c.getattrib("D2_Orient") > case "left" > stim(3) = LBroNeut(bro_eye(2)) > case "right" > stim(3) = RBroNeut(bro_eye(2)) > end select > >/ >*============================================================================*/ > >RandomizeArray pos, 1, 3 > > >/*Assign filenames to locations in slide*/ > >c.setattrib "e1", stim(pos(1)) >c.setattrib "e2", stim(pos(2)) >c.setattrib "e3", stim(pos(3)) > > >strImageFile = c.GetAttrib("e1") > LoadSlideImageFile search.States(search.ActiveState), "image1", >strImageFile > strImageFile = c.GetAttrib("e2") > LoadSlideImageFile search.States(search.ActiveState), "image2", >strImageFile > strImageFile = c.GetAttrib("e3") > LoadSlideImageFile search.States(search.ActiveState), "image3", >strImageFile > > >Okay, so the problem is, I need to insert a clause so that if the >target being shown is a picture of person1/ID1 with blue eyes, then >none of the distractors show ID1 with brown eyes. So something like: > >If curr_tarr = LBluNeut(1) or RBluNeut(1) or LBluSad(1) or RBluSad(1) >or LBluHap(1) or RBluHap(1) >then distractors can’t be LBroNeut(1) or RBroNeut(1) or LBroSad(1) or >RBroSad(1) or LBroHap(1) or RBroHap(1) >or if curr_tar = LBluNeut(2) or RBluNeut(2) or LBluSad(2) or >RBluSad(2) or LBluHap(2) or RBluHap(2) >then distractors can’t be LBroNeut(2) or RBroNeut(2) or LBroSad(2) or >RBroSad(2) or LBroHap(2) or RBroHap(2) > >etc. for all four IDs. But 1) this doesn’t work! And 2) there must be >a simpler way of doing this?! > >Please help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Sun May 16 22:23:39 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Sun, 16 May 2010 18:23:39 -0400 Subject: Tidying an if.. then statement in E-Prime script for attention capture paradigm In-Reply-To: <4bedb615.0b0bca0a.0567.ffff8df7SMTPIN_ADDED@gmr-mx.google.com> Message-ID: On further thought, I don't think I would put everything into one array or List. I was on a better track with my notion of constructing file names from the desired image attributes. So instead, I might make a separate List or array for each attribute, and then pick a sample from each List or array to construct a file name. E.g., with a List for EyeColor and another List for Orientation, I could again construct a file name in inline code with c.SetAttrib "ImageFile", c.GetAttrib("EyeColor") & "-" _ & c.GetAttrib("Orientation") & ".bmp" or as before directly in the File Name property of the appropriate object with [EyeColor]-[Orientation].bmp In fact, if I drew samples without replacement, and my Lists (or arrays) contained only one sample of each value, then the next sample drawn from each attribute is guaranteed to differ from the first value drawn, and once again I would not need any If...Then. This still fits my broader theme that many times, when we find ourselves in a deep tangle of code, the answer lies not in finding yet another knot to add to the tangle, but instead in restructuring the problem in such away that the tangle never occurs in the first place. This sort of judgment comes from education in, dedication to, and experience with the grand art of computer programming. -- David McFarlane, Professional Faultfinder On 14 May 2010 David McFarlane wrote: > Chloe, > > Wow. I would like to know how others here feel, but when I see someone > post more than about a dozen lines of code I get the feeling that they > are so hopelessly lost that they are beyond any help that I can offer. > Still, I will hazard a couple of thoughts on this situation. > > If I were to use arrays for this (instead of Lists, which I will come > back to), then I would put everything into one array instead of > separated into so many arrays as you have done. Using all those > separate arrays just complicates matters and wastes the power of > arrays. With all the file names in one array, I could then use Mid() or > InStr() to inspect any string for the presence of tags like "Neut" or > "Hap", and I would need only one array name to use in my conditional > expressions for the If...Thens. > > Sticking with arrays, I might go a step further and put all this into > one mult-dimensional array. I could use one dimension for eye color, > another for orientation, etc. Now, by a suitable choice of index > values, I could immediately single out ranges from any dimensions I like. > > But I would probably not use arrays anyway. More likely I would put all > this into a List. After all, if you are not going to use the > specialized features of E-Prime, why use it at all? -- You could just as > well use any general-purpose programming platform, which would both cost > less and make more portable programs. Anyway, my List could contain a > column or "attribute" for each, well, attribute, e.g., ID, EyeColor, > Orientation, Emotion. I could then generate my file names simply by > concatenating attribute references in my Image or Slide objects, thus: > [ID]-[EyeColor]-[Orientation]-[Emotion].bmp (note that I do not have to > include the ".bmp" in any of the strings of either arrays or Lists). I > might even go a bit further and use nested Lists to indicate which files > may be used with each other file. With enough care, I might do > everything with Lists and not need any If...Thens at all! > > In any case, I think this could all be cleared up with a little more > study into elementary computer programming combined with a little more > exercise in the specifics of E-Prime. So I will close with a bit of > more general advice that others here are sick of seeing from me: > > 1) First, decide whether you want to be a researcher who dabbles in > computer programming, or a computer programmer who dabbles in psychology > research. > > 2) If the former, then hire this out to someone who actually enjoys this > sort of work and is good at it, while you do something else that you > enjoy and are good at. That's what the division of labor is all about, > learn to use it. > > 3) In any case, do take an Introduction to Computer Programming class, > if not to make you into a programmer then to help you communicate and > collaborate better with any programmer that you hire to shore up the > technical needs of your research. > > And if you haven't even done the tutorials that come with E-Prime, then > you should really start there. > > -- David McFarlane, Professional Faultfinder > "For a successful technology, reality must take precedence over public > relations, for nature cannot be fooled." (Richard Feynman, Nobel > prize-winning physicist) > > > At 5/13/2010 06:05 PM Thursday, you wrote: >> I’m having some problems with scripting an If, then clause in my >> program. I’ve edited an emotional capture paradigm in which people >> view 3 faces on the screen, one face has blue eyes (the target) and >> the other two faces have brown eye (the distractors). When >> participants find the blue eyed face, they must respond with what >> direction the face is tilted in (left or right). On 2/3 trials, all >> faces have a neutral emo expression. However, on 1/3 trials, one face >> will show a discrepant emotion (either happy or sad) and this >> discrepant emotion can appear on either the target face or on the >> distractor faces. The emotion is always irrelevant to the task (find >> blue eyes). >> >> I use four face identities in this task, and the pictures are edited >> so each face has blue eyes and brown eyes. So, for example, I have a >> picture of ID1 with blue eyes and a picture of ID1 with brown eyes. >> Also, the faces can appear in Left or Right orientation. So, the >> picture files I have are listed in program as thus: >> LBluNeut(1) = "M1_Bl_L_Neut.bmp" >> LBluNeut(2) = "M2_Bl_L_Neut.bmp" >> LBluNeut(3) = "F1_Bl_L_Neut.bmp" >> LBluNeut(4) = "f2_Bl_L_Neut.bmp" >> >> RBluNeut(1) = "M1_Bl_R_Neut.bmp" >> RBluNeut(2) = "M2_Bl_R_Neut.bmp" >> RBluNeut(3) = "F1_Bl_R_Neut.bmp" >> RBluNeut(4) = "F2_Bl_R_Neut.bmp" >> >> LBluHap(1) = "M1_Bl_L_Hap.bmp" >> LBluHap(2) = "M2_Bl_L_Hap.bmp" >> LBluHap(3) = "F1_Bl_L_Hap.bmp" >> LBluHap(4) = "F2_Bl_L_Hap.bmp" >> >> RBluHap(1) = "M1_Bl_R_Hap.bmp" >> RBluHap(2) = "M2_Bl_R_Hap.bmp" >> RBluHap(3) = "F1_Bl_R_Hap.bmp" >> RBluHap(4) = "F2_Bl_R_Hap.bmp" >> >> LBluSad(1) = "M1_Bl_L_Sad.bmp" >> LBluSad(2) = "M2_Bl_L_Sad.bmp" >> LBluSad(3) = "F1_Bl_L_Sad.bmp" >> LBluSad(4) = "F2_Bl_L_Sad.bmp" >> >> Etc… and repeated for all the brown eyes. >> >> I then have this code: >> >> 'position objects >> 'dim nIndex as integer >> >> for fill_loop = 1 to 3 ‘POSITION OF DISPLAY ITEMS >> pos(fill_loop) = fill_loop >> next fill_loop >> >> for fill_loop = 1 to 4 'WHICH BROWN EYE (DISTRACTOR) FACE >> bro_eye(fill_loop) = fill_loop >> next fill_loop >> >> >> 'MAKE TARGET NOT SAME AS TARGET ON TRIAL n - 1 >> do >> curr_tar = random(1,4) >> loop while (curr_tar = prev_tar) >> ‘MAKE DISTRACTOR NOT SAME AS DISTRACTOR ON TRIAL n - 1 >> do >> RandomizeArray bro_eye, 1, 4 >> loop while (bro_eye(1) = prev_dis) >> prev_tar = curr_tar >> prev_dis = bro_eye(1) >> >> / >> *========================================================================= >> >> ''''Choose target face (blue eyes) as first item in list face >> =========================================================================*/ >> >> >> select case c.getattrib("Target_Emotion") >> case "neutral" >> >> select case c.getattrib("T_Orient") 'READ TARGET FROM TABLE >> case "left" >> c.setattrib"rc","m" 'SET RESPONSE >> stim(1) = LBluNeut(curr_tar) >> case "right" >> c.setattrib"rc","k" 'SET RESPONSE >> stim(1) = RBluNeut(curr_tar) >> end select >> >> case "happy" >> select case c.getattrib("T_Orient") >> case "left" >> c.setattrib"rc","m" >> stim(1) = LBluHap(curr_tar) >> case "right" >> c.setattrib"rc","k" >> stim(1) = RBluHap(curr_tar) >> end select >> >> >> case "sad" >> select case c.getattrib("T_Orient") >> case "left" >> c.setattrib"rc","m" >> stim(1) = LBluSad(curr_tar) >> case "right" >> c.setattrib"rc","k" >> stim(1) = RBluSad(curr_tar) >> end select >> end select >> >> / >> *============================================================================*/ >> >> / >> *========================================================================= >> >> ''''Choose brown eyes face for 2nd item in list - CAN be emotional >> =========================================================================*/ >> >> >> select case c.getattrib("Distractor_Emotion") >> case "neutral" >> >> select case c.getattrib("D1_Orient") 'READ DISTRACTOR 1 >> ORIENTATION CONDITION FROM TABLE >> case "left" >> stim(2) = LBroNeut(bro_eye(1)) >> case "right" >> stim(2) = RBroNeut(bro_eye(1)) >> end select >> >> case "happy" >> select case c.getattrib("D1_Orient") >> case "left" >> stim(2) = LBroHap(bro_eye(1)) >> case "right" >> stim(2) = RBroHap(bro_eye(1)) >> end select >> >> >> case "sad" >> select case c.getattrib("D1_Orient") >> case "left" >> stim(2) = LBroSad(bro_eye(1)) >> case "right" >> stim(2) = RBroSad(bro_eye(1)) >> end select >> end select >> >> / >> *============================================================================== >> >> ''''Choose second brown eye face as distractor item - never the >> emotional one. >> ===============================================================================*/ >> >> >> select case c.getattrib("D2_Orient") >> case "left" >> stim(3) = LBroNeut(bro_eye(2)) >> case "right" >> stim(3) = RBroNeut(bro_eye(2)) >> end select >> >> / >> *============================================================================*/ >> >> >> RandomizeArray pos, 1, 3 >> >> >> /*Assign filenames to locations in slide*/ >> >> c.setattrib "e1", stim(pos(1)) >> c.setattrib "e2", stim(pos(2)) >> c.setattrib "e3", stim(pos(3)) >> >> >> strImageFile = c.GetAttrib("e1") >> LoadSlideImageFile search.States(search.ActiveState), "image1", >> strImageFile >> strImageFile = c.GetAttrib("e2") >> LoadSlideImageFile search.States(search.ActiveState), "image2", >> strImageFile >> strImageFile = c.GetAttrib("e3") >> LoadSlideImageFile search.States(search.ActiveState), "image3", >> strImageFile >> >> >> Okay, so the problem is, I need to insert a clause so that if the >> target being shown is a picture of person1/ID1 with blue eyes, then >> none of the distractors show ID1 with brown eyes. So something like: >> >> If curr_tarr = LBluNeut(1) or RBluNeut(1) or LBluSad(1) or RBluSad(1) >> or LBluHap(1) or RBluHap(1) >> then distractors can’t be LBroNeut(1) or RBroNeut(1) or LBroSad(1) or >> RBroSad(1) or LBroHap(1) or RBroHap(1) >> or if curr_tar = LBluNeut(2) or RBluNeut(2) or LBluSad(2) or >> RBluSad(2) or LBluHap(2) or RBluHap(2) >> then distractors can’t be LBroNeut(2) or RBroNeut(2) or LBroSad(2) or >> RBroSad(2) or LBroHap(2) or RBroHap(2) >> >> etc. for all four IDs. But 1) this doesn’t work! And 2) there must be >> a simpler way of doing this?! >> >> Please help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From sophie.jarlier at gmail.com Mon May 17 07:23:56 2010 From: sophie.jarlier at gmail.com (soeursourire) Date: Mon, 17 May 2010 00:23:56 -0700 Subject: Play movie in Eprime2 In-Reply-To: <4BED722A.9040604@ucl.ac.uk> Message-ID: Hello Davids :-) Thanks for your answer. Actually I first explained my problem on the PST forum but they told me to ask my question here to your group. I tried to run MovieRT but that does not work neither. I got this error: An error occurs whole attempting to load the movie marker So what does that mean? That Eprime is not correctly installed? Thanks Soph. On May 14, 5:54 pm, David Vinson wrote: > Hi, > > David M. is right - the fact that a movie works in Windows Media Player > is no guarantee that it will work in E-Prime 2.0. If you have not > successfully displayed a movie in E-Prime before, the first > troubleshooting step is to check is whether the sample experiment > "MovieRT" works.  If this doesn't work, this tells you there's a more > general problem than just something to do with the specific avi video > you're trying to load. > > If MovieRT works, then you know it's something specific to do with your > video encoding and can proceed accordingly. > > Good luck! > another David > > soeursourire wrote: > > I have this error when I try to simply read an avi file in Eprime2: > > > Run-time Error (Line 99) 11053: An error occurred while attempting to > > load the movie > > Marker: 223 > > Error: -2147220877 (0x80040273) > > > I do not understand why, as the first image of the video is visible in > > Eprime when elaborating the experiment. > > I can read the video on the PC into Windows Media Player so it should > > not be a problem of codec. > > -- > David Vinson, Ph.D. > Senior Postdoctoral Researcher > 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 post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 17 15:06:03 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 17 May 2010 11:06:03 -0400 Subject: Play movie in Eprime2 In-Reply-To: <925d4c9f-232e-439b-9428-fbe9639e8318@f14g2000vbn.googlegroups.com> Message-ID: Good, you ran the basic test and now you know to set aside looking for a problem in your movie file and instead look for a more general problem in your system setup (or understanding of MovieRT). If it were me I would next try doing all this on a different machine to see if the problem lies with the one machine or is something even more general. Also, please do contact PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp . Reminder: the PST Forum is *not* Web Support, and PST Staff rarely provide any help through their Forum. In general, if you want help then either contact PST Web Support or post here to the E-Prime Google Group, best to ignore the PST Forum (except for searching the archives) as it regularly gets confused with Web Support and beyond that offers nothing that you cannot get more readily here on the Google Group. -- David McFarlane, Professional Faultfinder soeursourire wrote: > Hello Davids :-) > > Thanks for your answer. Actually I first explained my problem on the > PST forum but they told me to ask my question here to your group. > I tried to run MovieRT but that does not work neither. I got this > error: > An error occurs whole attempting to load the movie marker > > So what does that mean? That Eprime is not correctly installed? > Thanks > Soph. > > On May 14, 5:54 pm, David Vinson wrote: >> Hi, >> >> David M. is right - the fact that a movie works in Windows Media Player >> is no guarantee that it will work in E-Prime 2.0. If you have not >> successfully displayed a movie in E-Prime before, the first >> troubleshooting step is to check is whether the sample experiment >> "MovieRT" works. If this doesn't work, this tells you there's a more >> general problem than just something to do with the specific avi video >> you're trying to load. >> >> If MovieRT works, then you know it's something specific to do with your >> video encoding and can proceed accordingly. >> >> Good luck! >> another David >> >> soeursourire wrote: >>> I have this error when I try to simply read an avi file in Eprime2: >>> Run-time Error (Line 99) 11053: An error occurred while attempting to >>> load the movie >>> Marker: 223 >>> Error: -2147220877 (0x80040273) >>> I do not understand why, as the first image of the video is visible in >>> Eprime when elaborating the experiment. >>> I can read the video on the PC into Windows Media Player so it should >>> not be a problem of codec. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From melissadawn.stockbridge at gmail.com Tue May 18 18:49:21 2010 From: melissadawn.stockbridge at gmail.com (Melissa) Date: Tue, 18 May 2010 11:49:21 -0700 Subject: Button press during sound play Message-ID: I am currently designing an experiment in which children are presented with sentences that are read as they appear on screen. Then, a question appears and is read in a sound file, with two options of answers, and a key press to designate the chosen answer. However, I am having trouble allowing the children to press a key (for my reaction time measure) while the sound file plays (if they have decided on the answer prior to the reading ending). It seems to only permit an answer input after the sound file is complete, which isn't terribly helpful for reaction time data. I have Eprime 1 now, though I am in the process of getting Eprime 2. I know this seems painfully simple, but I have read all of the information I have found online in attempting to solve it. So far, I have had no luck. Any advice would be very appreciated. Thank you all! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Tue May 18 19:46:25 2010 From: cblaison at gmail.com (ccbaye) Date: Tue, 18 May 2010 12:46:25 -0700 Subject: Complex (for me) randomization Message-ID: Hi, Thank you for your help! I didn't figure out the problem by myself. I have a problem with a complex randomization. I would like my prog to pick out randomly without replacement a stim from a list of different male faces or different female faces at the block level, and than conserve this chosen stim all along the individual trials bound to this block. And so on for the successive blocks. Ultimately for each block, participants would have to rate a face (the chosen stim) on different scales (random presentation order without replacement); before pursuing to the next block: rating of another face with the same scales; etc. I used some nested lists, But, until now, my prog selects another stim from the female or male faces list for each new trial. This is not what I want: I want that the stim chosen once at the block level, is used again and again for all the trials bound to this block. When this block of trials is over, the prog should start the second block and choose another face from the remaining stim of the face list, and this face should again be used again and again for all block trials, and so on. I can't attach the prog and the stims, but if someone was to help me, I could send it. Best, Christophe -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 18 22:49:56 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 18 May 2010 18:49:56 -0400 Subject: Complex (for me) randomization In-Reply-To: Message-ID: Christophe, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... This all seems rather simple to me, but perhaps I am missing something. So before I expend any more effort, I need your solemn word that you have already worked completely through *all* of the exercises in *both* the Getting Started Guide and the User's Guide that came with E-Prime. Or just wait a bit and some more understanding soul here may just jump in and answer you. -- David McFarlane, Professional Faultfinder "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." (Richard Feynman, Nobel prize-winning physicist) >Thank you for your help! I didn't figure out the problem by myself. > >I have a problem with a complex randomization. I would like my prog to >pick out randomly without replacement a stim from a list of different >male faces or different female faces at the block level, and than >conserve this chosen stim all along the individual trials bound to >this block. And so on for the successive blocks. Ultimately for each >block, participants would have to rate a face (the chosen stim) on >different scales (random presentation order without replacement); >before pursuing to the next block: rating of another face with the >same scales; etc. > >I used some nested lists, But, until now, my prog selects another >stim from the female or male faces list for each new trial. This is >not what I want: I want that the stim chosen once at the block level, >is used again and again for all the trials bound to this block. When >this block of trials is over, the prog should start the second block >and choose another face from the remaining stim of the face list, and >this face should again be used again and again for all block trials, >and so on. I can't attach the prog and the stims, but if someone was >to help me, I could send it. > >Best, >Christophe -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 18 22:42:57 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 18 May 2010 18:42:57 -0400 Subject: Button press during sound play In-Reply-To: Message-ID: Melissa, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... I don't see why you are having trouble with this, and I thought this had been answered in other threads. Nevertheless, it seems to me that if you set the input mask of your SoundOut or Slide object to the appropriate value (usually "(same as duration)", but perhaps a value longer than Duration if using "extended input") and End Action to (none) then all should work in either EP1 or EP2 (I still find EP1 a generally superior platform unless I really need Movies, etc.). -- David McFarlane, Professional Faultfinder >I am currently designing an experiment in which children are presented >with sentences that are read as they appear on screen. Then, a >question appears and is read in a sound file, with two options of >answers, and a key press to designate the chosen answer. However, I >am having trouble allowing the children to press a key (for my >reaction time measure) while the sound file plays (if they have >decided on the answer prior to the reading ending). It seems to only >permit an answer input after the sound file is complete, which isn't >terribly helpful for reaction time data. I have Eprime 1 now, though >I am in the process of getting Eprime 2. > >I know this seems painfully simple, but I have read all of the >information I have found online in attempting to solve it. So far, I >have had no luck. Any advice would be very appreciated. Thank you >all! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 06:32:24 2010 From: cblaison at gmail.com (ccbaye) Date: Tue, 18 May 2010 23:32:24 -0700 Subject: Complex (for me) randomization In-Reply-To: <4bf31999.120bca0a.575e.734dSMTPIN_ADDED@gmr-mx.google.com> Message-ID: Dear David, Thank you for your effort. Now I can give you my solemn word that I have been through all the exercices :). I had the idea to change the weights in the male face and female faces lists, in hoping that the chosen stim would be repeated the number of time I set the weight..but it did not work either. I hope that it is easy and that I am just too dumb to figure it out. I sent the problem also to the PST staff, but I would need an answer quickly, and I was terrified at the idea to wait up to 10 days to get an answer..So..please, as you think it is so simple, I would be very grateful to you if you could provide me with a hint. Best, Christophe. On May 19, 12:49 am, David McFarlane wrote: > Christophe, > > Stock reminder:  1) I do not work for PST.  2) PST's trained staff > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > strive to respond to all requests in 24-48 hours (although latest > reports indicate more like 10 days) -- this is pretty much their > substitute for proper documentation, so make full use of it.  3) If > you do get an answer from PST Web Support, please extend the courtesy > of posting their reply back here for the sake of others. > > That said, here is my take ... > > This all seems rather simple to me, but perhaps I am missing > something.  So before I expend any more effort, I need your solemn > word that you have already worked completely through *all* of the > exercises in *both* the Getting Started Guide and the User's Guide > that came with E-Prime.  Or just wait a bit and some more > understanding soul here may just jump in and answer you. > > -- David McFarlane, Professional Faultfinder > "For a successful technology, reality must take precedence over > public relations, for nature cannot be fooled."  (Richard Feynman, > Nobel prize-winning physicist) > > > > >Thank you for your help! I didn't figure out the problem by myself. > > >I have a problem with a complex randomization. I would like my prog to > >pick out randomly without replacement a stim from a list of different > >male faces or different female faces at the block level, and than > >conserve this chosen stim all along the individual trials bound to > >this block. And so on for the successive blocks. Ultimately for each > >block, participants would have to rate a face (the chosen stim) on > >different scales (random presentation order without replacement); > >before pursuing to the next block: rating of another face with the > >same scales; etc. > > >I used some nested lists,  But, until now, my prog selects another > >stim from the female or male faces list for each new trial. This is > >not what I want: I want that the stim chosen once at the block level, > >is used again and again for all the trials bound to this block. When > >this block of trials is over, the prog should start the second block > >and choose another face from the remaining stim of the face list, and > >this face should again be used again and again for all block trials, > >and so on. I can't attach the prog and the stims, but if someone was > >to help me, I could send it. > > >Best, > >Christophe > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liza.mccarron at uwe.ac.uk Wed May 19 08:40:03 2010 From: liza.mccarron at uwe.ac.uk (LizaM) Date: Wed, 19 May 2010 01:40:03 -0700 Subject: How to install EPrime Standard (or Professional) Silently under XP Message-ID: According to PST you can only do a silent install with EPrime Professional. (A silent install is one where the installer just gets on with installing and asks no questions!) As I wanted to install EPrime standard via our SMS server (used to deliver the same build to all PCs with the same functionality - a great time saver!) I decided to play around and see if it would work - the blanket install is so that we can use our copies of EPrime Run Time in our 23 PC student lab, the dongled installs for academics and technical staff are still done manually and I haven't tested whether the silent install installs the hasp drivers correctly - It doesn't install the SRbox etc but these can be done manually. Please note that this installs a full copy of EPrime - to use the run time part (which you have 25 licences for with each full dongled copy of EPrime) just ignore the EStudio part and just use RunTime. If you don't have a centrally managed installation system then the same principle could be used with a bit of Dos based scripting to deliver the install files to multiple machines and then to do a local install from a remote location thus saving having to log on and off multiple machines to do the installs and select the various options! Firstly use Winzip or Winrar or similar to unzip the installation .exe file to a folder (The version I used was 2.0.8.22 Standard). In the folder you will then have several files, including E-Prime 2.0.msi and Data1.cab - from testing it would seems these are the only file needed for the silent install. PortdriverInstaller.exe and SRBoxDriverinstaller.exe install the port and SR Box drivers and can be installed afterwards if needed. Select Start and choose run in the run box type: msiexec /i "D:\eprime 2.0.msi" /qb (where location of the .msi and the .cab file is D:\) and EPrime will install silently without any prompts and a few moments later will appear on the start menu!. Worth playing around with if you just want an install for run time etc. Hope this proves useful. Cheers Liza -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 09:06:32 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 02:06:32 -0700 Subject: How to install EPrime Standard (or Professional) Silently under XP In-Reply-To: Message-ID: wow thank you Liza, very useful! Cheers, Christophe. On May 19, 10:40 am, LizaM wrote: > According to PST you can only do a silent install with EPrime > Professional. (A silent install is one where the installer just gets > on with installing and asks no questions!) > > As I wanted to install EPrime standard via our SMS server (used to > deliver the same build to all PCs with the same functionality - a > great time saver!) I decided to play around and see if it would work - > the blanket install is so that we can use our copies of EPrime Run > Time in our 23 PC student lab, the dongled installs for academics and > technical staff are still done manually and I haven't tested whether > the silent install installs the hasp drivers correctly - It doesn't > install the SRbox etc but these can be done manually.  Please note > that this installs a full copy of EPrime - to use the run time part > (which you have 25 licences for with each full dongled copy of > EPrime)  just ignore the EStudio part and just use RunTime.  If you > don't have a centrally managed installation system then the same > principle could be used with a bit of Dos based scripting to deliver > the install files to multiple machines and then to do a local install > from a remote location thus saving having to log on and off multiple > machines to do the installs and select the various options! > > Firstly use Winzip or Winrar or similar to unzip the installation .exe > file to a folder (The version I used was 2.0.8.22 Standard). > > In the folder you will then have several files, including E-Prime > 2.0.msi and Data1.cab - from testing it would seems these are the only > file needed for the silent install.  PortdriverInstaller.exe and > SRBoxDriverinstaller.exe install the port and SR Box drivers and can > be installed afterwards if needed. > > Select Start and choose run in the run box type: > > msiexec /i "D:\eprime 2.0.msi" /qb > > (where location of the .msi and the .cab file is D:\) > > and EPrime will install silently without any prompts and a few moments > later will appear on the start menu!. > > Worth playing around with if you just want an install for run time > etc.  Hope this proves useful. > > Cheers > > Liza > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 10:01:23 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 03:01:23 -0700 Subject: Complex (for me) randomization In-Reply-To: <92459d2b-09f3-471c-a8df-5e1ce696b81d@a16g2000vbr.googlegroups.com> Message-ID: Ok..I finally managed to have the prog selecting one face and holding it for the rest of the block trials. yeepee. The problem now is that for each new block, the prog select a face at random in the corresponding face list, including the face that has been presented in the preceding block..So I can't yet manage to have a randomized selection of faces without replacement through the different blocks of my task..I am trying harder, but if someone (david?) has an idea, he/ she is very very welcome! Best, Christophe. On May 19, 8:32 am, ccbaye wrote: > Dear David, > > Thank you for your effort. Now I can give you my solemn word that I > have been through all the exercices :). I had the idea to change the > weights in the male face and female faces lists, in hoping that the > chosen stim would be repeated the number of time I set the weight..but > it did not work either. I hope that it is easy and that I am just too > dumb to figure it out. I sent the problem also to the PST staff, but I > would need an answer quickly, and I was terrified at the idea to wait > up to 10 days to get an answer..So..please, as you think it is so > simple, I would be very grateful to you if you could provide me with a > hint. > > Best, > Christophe. > > On May 19, 12:49 am, David McFarlane wrote: > > > > > Christophe, > > > Stock reminder:  1) I do not work for PST.  2) PST's trained staff > > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > > strive to respond to all requests in 24-48 hours (although latest > > reports indicate more like 10 days) -- this is pretty much their > > substitute for proper documentation, so make full use of it.  3) If > > you do get an answer from PST Web Support, please extend the courtesy > > of posting their reply back here for the sake of others. > > > That said, here is my take ... > > > This all seems rather simple to me, but perhaps I am missing > > something.  So before I expend any more effort, I need your solemn > > word that you have already worked completely through *all* of the > > exercises in *both* the Getting Started Guide and the User's Guide > > that came with E-Prime.  Or just wait a bit and some more > > understanding soul here may just jump in and answer you. > > > -- David McFarlane, Professional Faultfinder > > "For a successful technology, reality must take precedence over > > public relations, for nature cannot be fooled."  (Richard Feynman, > > Nobel prize-winning physicist) > > > >Thank you for your help! I didn't figure out the problem by myself. > > > >I have a problem with a complex randomization. I would like my prog to > > >pick out randomly without replacement a stim from a list of different > > >male faces or different female faces at the block level, and than > > >conserve this chosen stim all along the individual trials bound to > > >this block. And so on for the successive blocks. Ultimately for each > > >block, participants would have to rate a face (the chosen stim) on > > >different scales (random presentation order without replacement); > > >before pursuing to the next block: rating of another face with the > > >same scales; etc. > > > >I used some nested lists,  But, until now, my prog selects another > > >stim from the female or male faces list for each new trial. This is > > >not what I want: I want that the stim chosen once at the block level, > > >is used again and again for all the trials bound to this block. When > > >this block of trials is over, the prog should start the second block > > >and choose another face from the remaining stim of the face list, and > > >this face should again be used again and again for all block trials, > > >and so on. I can't attach the prog and the stims, but if someone was > > >to help me, I could send it. > > > >Best, > > >Christophe > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 11:18:26 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 04:18:26 -0700 Subject: Complex (for me) randomization In-Reply-To: <26882bd5-4c1f-4317-8561-c7a273d0cd99@c11g2000vbe.googlegroups.com> Message-ID: I don't understand it: When the selection is sequential in the faces list, e-prime keeps the info about the face already presented through the block (he does't start again the selection from scratch because then I would have the same face presented again and again through the blocks). BUT when I use random, he doesn't! He then cheerfully replaces already presented faces..the same result as random with replacement. Would someone be so kind to put me in the picture? Best, Christophe. On May 19, 12:01 pm, ccbaye wrote: > Ok..I finally managed to have the prog selecting one face and holding > it for the rest of the block trials. yeepee. The problem now is that > for each new block, the prog select a face at random in the > corresponding face list, including the face that has been presented in > the preceding block..So I can't yet manage to have a randomized > selection of faces without replacement through the different blocks of > my task..I am trying harder, but if someone (david?) has an idea, he/ > she is very very welcome! > > Best, > Christophe. > > On May 19, 8:32 am, ccbaye wrote: > > > > > Dear David, > > > Thank you for your effort. Now I can give you my solemn word that I > > have been through all the exercices :). I had the idea to change the > > weights in the male face and female faces lists, in hoping that the > > chosen stim would be repeated the number of time I set the weight..but > > it did not work either. I hope that it is easy and that I am just too > > dumb to figure it out. I sent the problem also to the PST staff, but I > > would need an answer quickly, and I was terrified at the idea to wait > > up to 10 days to get an answer..So..please, as you think it is so > > simple, I would be very grateful to you if you could provide me with a > > hint. > > > Best, > > Christophe. > > > On May 19, 12:49 am, David McFarlane wrote: > > > > Christophe, > > > > Stock reminder:  1) I do not work for PST.  2) PST's trained staff > > > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > > > strive to respond to all requests in 24-48 hours (although latest > > > reports indicate more like 10 days) -- this is pretty much their > > > substitute for proper documentation, so make full use of it.  3) If > > > you do get an answer from PST Web Support, please extend the courtesy > > > of posting their reply back here for the sake of others. > > > > That said, here is my take ... > > > > This all seems rather simple to me, but perhaps I am missing > > > something.  So before I expend any more effort, I need your solemn > > > word that you have already worked completely through *all* of the > > > exercises in *both* the Getting Started Guide and the User's Guide > > > that came with E-Prime.  Or just wait a bit and some more > > > understanding soul here may just jump in and answer you. > > > > -- David McFarlane, Professional Faultfinder > > > "For a successful technology, reality must take precedence over > > > public relations, for nature cannot be fooled."  (Richard Feynman, > > > Nobel prize-winning physicist) > > > > >Thank you for your help! I didn't figure out the problem by myself. > > > > >I have a problem with a complex randomization. I would like my prog to > > > >pick out randomly without replacement a stim from a list of different > > > >male faces or different female faces at the block level, and than > > > >conserve this chosen stim all along the individual trials bound to > > > >this block. And so on for the successive blocks. Ultimately for each > > > >block, participants would have to rate a face (the chosen stim) on > > > >different scales (random presentation order without replacement); > > > >before pursuing to the next block: rating of another face with the > > > >same scales; etc. > > > > >I used some nested lists,  But, until now, my prog selects another > > > >stim from the female or male faces list for each new trial. This is > > > >not what I want: I want that the stim chosen once at the block level, > > > >is used again and again for all the trials bound to this block. When > > > >this block of trials is over, the prog should start the second block > > > >and choose another face from the remaining stim of the face list, and > > > >this face should again be used again and again for all block trials, > > > >and so on. I can't attach the prog and the stims, but if someone was > > > >to help me, I could send it. > > > > >Best, > > > >Christophe > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Wed May 19 11:42:34 2010 From: vera.donk at googlemail.com (Vera) Date: Wed, 19 May 2010 04:42:34 -0700 Subject: Read out certain levels only In-Reply-To: <4be96ad2.0c0bca0a.3f1b.ffffd661SMTPIN_ADDED@gmr-mx.google.com> Message-ID: David, thanks for the reply. I had already been trying to have a look at the code generated by E-Prime (and I already tried to do what you did with the Set List.Deletion = PickOne(c.GetAttrib("AnyAttribYouLike")) , but it generated another number of errors). Anyway, we found a solution now (we just have two different lists (which is not the solution I prefer, because it gets incredibly messy with Labels and Gotos in all directions, but hey, it's working, and that was the goal...)). I think that you are right that the weight level solution isn't the best one. We tried to apply another one, working with two arrays, which I think is the perfect, cleanest solution (unfortunately I am not a programming hero and so I got it almost to working, but I am still convinced to get it working someday). As time was running out, we took the "E-Prime solution" (mentionned above, including two designlists and a lot of Labels and Gotos) which as I said is working. To the trigger value question, you are probably right that I should foresee what happens is the trigger is < 0 or > 7. But in practice this will just not happen, as we are using the first 4 bits of a parallelport only (0, 1, 2, 4). :-) Thanks for the general programming tip though. So thanks to you and Michiel for trying to help me out! Greetings, Vera On May 11, 4:33 pm, David McFarlane wrote: > Vera, > > Don't know why your code does not work, but just > a couple comments on your code fragment here... > > First, almost every time we have resorted to > using List.SetWeight it turned out that we had a > poor design structure, and once we restructured > the design it eliminated the need for > List.SetWeight and solved a host of other lurking > problems as well.  So I urge you to first take a > serious look at your design structure. > > Next, when we did use List.SetWeight, we > absolutely had to execute a List.Reset, otherwise > the List ignored our .SetWeight changes.  So if > your code does not work with the List.Reset > command in place, then your code has other problems. > > And since you must do the List.Reset for either > branch of the If...Then...ElseIf, then you may as > well pull it out from within the branches and put > it after the whole If...Then...ElseIf block. > > Finally, what happens if TriggerValue < 0 or > TriggerValue >= 7?  As it stands, in this case > your code will simply leave the List intact.  Is > this what you meant?  Perhaps you think it > impossible for TriggerValue to ever take on > values outside of 0-6, but good coding practice > requires that you either include a final Else to > handle outliers or at least add a comment to > explain what you mean the code to do. > > So just as an exercise, here is your code > fragement again (keeping your TriggerValue > variable because I do not want to get into that > issue, using "<=" instead of "<" just because I > think that makes the intent clearer, and adding a > Const to get rid of one "magic number"; hmm, on > further thought I restructured this to pull the > common inner loops out of the main loop, etc.): > > Const TriggerValueMax as Integer = 6 > Dim nLevel as Integer > Dim TriggerValue as Integer, TriggerValueToRun as Integer > ' Assign TriggerValueToRun based on NewTriggerValue: > If (NewTriggerValue = 0) Then >      TriggerValueToRun = 0 > ElseIf ((1 <= NewTriggerValue) AND _ >      (NewTriggerValue <= TriggerValueMax)) Then >      TriggerValueToRun = 1 > Else MsgBox "NewTriggerValue " & NewTriggerValue _ >          & "out of range!  Please contact programmer." > End If > ' Now set List level weights according to match between TriggerValue & > ' TriggerValueToRun: > For nLevel = 1 to DesignList.Size >      TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") >      If TriggerValue = TriggerValueToRun Then >          DesignList.SetWeight nLevel, 1 >      Else DesignList.SetWeight nLevel, 0 >      End If > Next nLevel > DesignList.Reset > > Or just for fun, let's do this with a Select Case: > > Const TriggerValueMax as Integer = 6 > Dim nLevel as Integer > Dim TriggerValue as Integer, TriggerValueToRun as Integer > ' Assign TriggerValueToRun based on NewTriggerValue: > Select Case NewTriggerValue > Case 0 >      TriggerValueToRun = 0 > Case 1 to 6 >      TriggerValueToRun = 1 > Case Else >      MsgBox "NewTriggerValue " & NewTriggerValue _ >          & "out of range!  Please contact programmer." > End Select > ' Now set List level weights according to match between TriggerValue & > ' TriggerValueToRun: > For nLevel = 1 to DesignList.Size >      TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") >      If TriggerValue = TriggerValueToRun Then >          DesignList.SetWeight nLevel, 1 >      Else DesignList.SetWeight nLevel, 0 >      End If > Next nLevel > DesignList.Reset > > -- David McFarlane, Professional Faultfinder > > At 5/7/2010 01:11 PM Friday, you wrote: > > >:-( > > >I seem to have cheered too early. :-( Some filteringin E-DataAid > >showed that E-Prime is still exactly doing as it likes. > > >I also had some mistakes in the previous code, here it is again: > > >Dim nLevel as Integer > >Dim TriggerValue as Integer > > >If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > >         For nLevel = 1 to DesignList.Size > >         TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > >                 If TriggerValue = 1 Then > >                         DesignList.SetWeight nLevel, 1 > >                 Else DesignList.SetWeight nLevel, 0 > >                 End If > >         Next nLevel > >'       DesignList.Reset > >ElseIf NewTriggerValue = 0 Then > >         For nLevel = 1 to DesignList.Size > >         TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > >                 If TriggerValue = 0 Then > >                         DesignList.SetWeight nLevel, 1 > >                 Else DesignList.SetWeight nLevel, 0 > >                 End If > >         Next nLevel > >'       DesignList.Reset > >End If > > >A few remarks to this code: > > >1. E-Prime is still doing what it likes, guaranteeing me no > >counterbalancing whatsoever. > >2. I had to add: TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > >- If TriggerValue = 0 Then and I know I could have been doing that > >more elegantly (like you did Michiel), but then E-Prime complains that > >there are "too many variables". > >3. If I add this piece of code, not only will E-Prime still not do > >what I expect it to do, but it will also generate blocks as it likes. > >Sometimes 3, sometimes 4... But never 7 as it is supposed to do!! In > >my last test run it even stopped in the middle of a trial going > >immediately to the block feedback! Anybody any idea why that could be? > >It seems to me that this piece of script has nothing to do with the > >number of blocks or anything. > >4. As you can see, DesignList.Reset has been commented out, because > >when I add this, E-Prime runs only one trials (instead of 36 in a > >normal block) and then goes immediately to the Block Feedback. > > >I don't understand this program, it makes absolutely no sense to me. :- > >( > > >Greetings, Vera > > >On 7 Mai, 17:05, Vera wrote: > > > Ok, found a way to be at the experimental setup AND have internet > > > (whew!!!). ;-) > > > > So the thing I did was: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > >    For nLevel = 1 to DesignList.Size > > >         If c.GetAttrib("Trigger") = "1" Then > > >                DesignList.SetWeight nLevel, 1 > > >         Else DesignList.SetWeight nLevel, 0 > > >         End If > > >    Next nLevel > > > ElseIf NewTriggerValue = 0 Then > > >    For nLevel = 1 to DesignList.Size > > >         If c.GetAttrib("Trigger") = "0" Then > > >                DesignList.SetWeight nLevel, 1 > > >         Else DesignList.SetWeight nLevel, 0 > > >         End If > > >    Next nLevel > > > End If > > > > And now that I could finally connect, I see that you proposed me the > > > same thing. :-) > > > And the best thing: it works!!!! Checked the database with E-DataAid > > > and it's all perfectly balanced. :-) > > > > Thanks a lot for giving me the idea! > > > > Have a great weekend! > > > > Vera > > > > On 7 Mai, 13:42, Vera wrote: > > > > > Ok, I now had a closer look at your solution (I wasn't on the right PC > > > > before, with the USB-stick-licence it's kind of a hassle sometimes, > > > > making a lot of kms in the institute! ;-) ) and I think I might try > > > > something with your solution. > > > > > So to get back at your question: > > > > > "If trigger 1 then PLEASE take only line 1" > > > > ... > > > > "You mean, of a list, right?" > > > > > Yes, I mean of a list (so a level of a list). Of course I simplified > > > > the whole a bit, pretending that I had only two levels in my list and > > > > two triggers. In reality I have 20 lines and two triggers (so the list > > > > kind of gets separated into two). :-) > > > > > So basically what I want to do is > > > > "If trigger = 1 then take any of the lines for which attribute.trigger > > > > = 1" (any of 10 in a random manner) > > > > > Oh and then don't worry about TMS, it's already all working fine. :-) > > > > I am getting the triggers and all, E-Prime just doesn't know what to > > > > do with them for the moment (ok if I am more precise: E-Prime knows > > > > what to do with the triggers, but I can't control the conditions, > > > > making sure that the design is completely perfectly counterbalanced > > > > over the two conditions). :-) > > > > > I am going back to my experimental setup again, seeing what I can do > > > > with your solution in mind. I definitely should get internet there, > > > > but that's the hassle with experimental computers: you want to keep > > > > them clean from anything that might slow them such as anti-virus and > > > > stuff. :-| But feel free to reply if you came up with another idea, I > > > > will check for input anyway. :-) > > > > > Greetings, Vera > > > > > On May 7, 12:25 pm, Michiel Spape > > > > wrote: > > > > > > Hi Vera & Group, > > > > > I like that "Sudoku-effect"! In fact, I > > think I might have misstated that nested-lists > > are untrustworthy - in general, people are much > > more prone to making errors than computers, and > > indeed, this to me is the main problem of > > nested lists. I do, however, use them all the > > time, myself, but usually not for my main 'triallist'. > > > > > > Anyway, I'm sorry for the lack of help > > I'm going to offer, I'm just not entirely clear > > on what you want to achieve. Do you want to run > > certain conditions based on a trigger readout > > from TMS (err, I never worked with TMS)? Does > > that mean certain stimuli? Certain different orderings? > > > > > > Lacking a clear idea on what exactly it > > is you want, I can help with certain specifics: > > > > > > "If trigger 1 then PLEASE take only line 1" > > > > > ... > > > > > You mean, of a list, right? > > > > > > This can be achieved in a quick and dirty > > way by adding a bit of inline that sets all > > weights of a list to 0 except line 1. From E-basic help, and adjusted > > > > > > Dim nLevel As Integer 'originally Long, > > but how many people really have lists that have more than 32768 levels? > > > > > For nLevel = 1 To List1.Size > > > > >         If nLevel = 1 then > > List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 19 14:16:55 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 19 May 2010 10:16:55 -0400 Subject: Complex (for me) randomization In-Reply-To: <26882bd5-4c1f-4317-8561-c7a273d0cd99@c11g2000vbe.googlegroups.com> Message-ID: Christophe, > Ok..I finally managed to have the prog selecting one face and holding > it for the rest of the block trials. yeepee. You did not say how you did this, that would help us. Just to make sure we are all talking about the same thing, let me lay out what I had in mind. First, the general rule, as explained in some detail in Chapter 4 of the User's Guide (and I will try to word this very carefully): The current value of any attribute set at one level is available to each successively activated lower level. So, suppose you have a structure like - BlockList - BlockProc - TrialList - TrialProc And suppose in BlockList you have an attribute (i.e., column) named "Face", and that has two levels (i.e., rows) with Face set to "Bob" on level 1, and "Alice" for level 2. Now, when your BlockList runs level (row) 1, all the trials in TrialList will use the face "Bob", and when your BlockList runs level 2 all the trials in TrialList will use the face "Alice". So you see it really is quite simple, as you originally posed the problem. And the rule applies whether you run BlockList sequentially, randomly, randomly with replacement, or any other way. The key is to understand the use of blocks vs. trials, etc., and how attribute values propogate. > The problem now is that > for each new block, the prog select a face at random in the > corresponding face list, including the face that has been presented in > the preceding block..So I can't yet manage to have a randomized > selection of faces without replacement through the different blocks of > my task. But now you add a complication. Now you want each block to use both a randomly selected new face, *plus* reuse the face from the previous block. Well, in general E-Prime is just not very good at remembering the past unless you help it along with some inline code. The only way I know how to do what you now ask is to define some global variables or arrays and then to manage these in inline code within the program. I cannot give you any more detail than that. If you are not already a competent computer programmer then I advise that you now either take some time out to learn some real computer programming skills, or hire someone else for this work. -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 16:22:13 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 09:22:13 -0700 Subject: Complex (for me) randomization In-Reply-To: <4BF3F2D7.5090400@msu.edu> Message-ID: Ok David, thank you for the time you took for me. I think I will use a fixed random order for the problem. This order will be same across experimental conditions, so it will not have a large influence I guess. > Ok..I finally managed to have the prog selecting one face and holding > it for the rest of the block trials. yeepee. >You did not say how you did this, that would help us. You are right, so...for beginners who get the same problem. I simply present the face picture with an imagedisplay object at the Blockprocess level, with a "0" in duration (position centered). Then I put my Triallist on its right, on the blockprocess line. From there I start a new Trialprocess, and put the second picture (bottom position) with Background set to "transparency". As the second picture is smaller than the face picture, they fit both nicely simultaneously on the screen. Now as I go through the block trials, only the second picture changes, not the face picture. When the block is over, a new face is selected, and the trials with the second pictures go on again, and so on for the other blocks. I really thank you for your advice David. Cheers, Christophe. On May 19, 4:16 pm, David McFarlane wrote: > Christophe, > > > Ok..I finally managed to have the prog selecting one face and holding > > it for the rest of the block trials. yeepee. > > You did not say how you did this, that would help us.  Just to make sure > we are all talking about the same thing, let me lay out what I had in mind. > > First, the general rule, as explained in some detail in Chapter 4 of the > User's Guide (and I will try to word this very carefully):  The current > value of any attribute set at one level is available to each > successively activated lower level. > > So, suppose you have a structure like > > - BlockList >      - BlockProc >          - TrialList >              - TrialProc > > And suppose in BlockList you have an attribute (i.e., column) named > "Face", and that has two levels (i.e., rows) with Face set to "Bob" on > level 1, and "Alice" for level 2. > > Now, when your BlockList runs level (row) 1, all the trials in TrialList > will use the face "Bob", and when your BlockList runs level 2 all the > trials in TrialList will use the face "Alice".  So you see it really is > quite simple, as you originally posed the problem.  And the rule applies > whether you run BlockList sequentially, randomly, randomly with > replacement, or any other way.  The key is to understand the use of > blocks vs. trials, etc., and how attribute values propogate. > > > The problem now is that > > for each new block, the prog select a face at random in the > > corresponding face list, including the face that has been presented in > > the preceding block..So I can't yet manage to have a randomized > > selection of faces without replacement through the different blocks of > > my task. > > But now you add a complication.  Now you want each block to use both a > randomly selected new face, *plus* reuse the face from the previous > block.  Well, in general E-Prime is just not very good at remembering > the past unless you help it along with some inline code.  The only way I > know how to do what you now ask is to define some global variables or > arrays and then to manage these in inline code within the program.  I > cannot give you any more detail than that.  If you are not already a > competent computer programmer then I advise that you now either take > some time out to learn some real computer programming skills, or hire > someone else for this work. > > -- David McFarlane, Professional Faultfinder > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 19 17:11:22 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 19 May 2010 13:11:22 -0400 Subject: Complex (for me) randomization In-Reply-To: <213538f8-d830-4569-84f0-328263263207@q13g2000vbm.googlegroups.com> Message-ID: Christophe, Thanks for posting that. I am glad that you were clever enough to cobble together a solution. But if you take another look at the Slide exercise in the User's Guide, you might see that Slides offer a more general and flexible solution. So here is another approach. As before, in BlockList create an attribute called, say, BlockFace. Have your BlockProc do nothing more than call TrialList (do *not* have it present any Image or stimulus) Then in your TrialList create an attribute called, say, TrialFace. Now put a Slide into the TrialProc, let's call that StimSlide. Add two SlideImage sub-objects in the appropriate places on the StimSlide. In one SlideImage sub-object use "[BlockFace]" (without the quotes) for the File Name, in the other SlideImage use (you guessed it) "[TrialFace]". And Bob's your uncle! That may at first glance look like a more involved process, but as many others here may attest, if you take the time to learn how to use Slides you will find that it pays great dividends. Regards, -- David McFarlane, Professional Faultfinder >> Ok..I finally managed to have the prog selecting one face and holding >> it for the rest of the block trials. yeepee. > >> You did not say how you did this, that would help us. > > You are right, so...for beginners who get the same problem. I simply > present the face picture with an imagedisplay object at the > Blockprocess level, with a "0" in duration (position centered). Then I > put my Triallist on its right, on the blockprocess line. From there I > start a new Trialprocess, and put the second picture (bottom position) > with Background set to "transparency". As the second picture is > smaller than the face picture, they fit both nicely simultaneously on > the screen. Now as I go through the block trials, only the second > picture changes, not the face picture. When the block is over, a new > face is selected, and the trials with the second pictures go on again, > and so on for the other blocks. > > I really thank you for your advice David. > > Cheers, > Christophe. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Thu May 20 16:35:09 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 20 May 2010 17:35:09 +0100 Subject: Button press during sound play In-Reply-To: <4bf31809.0c0bca0a.72c1.5dd2SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hi Melissa, David &al., Is this solved yet? As I just happen to have an experiment open which does this sort of stuff, I was just thinking that in situations where you would like a sound to stop playing, the easiest way, by far, seems to be mySoundBuffer.Stop ... That's one serious bit of code, hmm? Of course, that is given that you have pre-programmed this SoundBuffer, for example: 1. put this in the User Script (alt+5, tab user) Dim GenericSoundBufferInfo As SoundBufferInfo 2. And put this in a little inline at the beginning of your experiment GenericSoundBufferInfo.MaxLength = 100 'where 100 is the maximum duration your sample could possibly be... in my case 100 ms (my samples are 30 ms, actually) GenericSoundBufferInfo.VolumeControl = CLogical("No") GenericSoundBufferInfo.PanControl = CLogical("No") Set mySoundBuffer = Sound.CreateBuffer(GenericSoundBufferInfo) mySoundBuffer.Filename ="tap30ms.wav" 'where tap30ms.wav is actually my 30 ms sound file of a... tap mySoundBuffer.Load 3. Put the following inline anywhere you'd like to play the sound mySoundBuffer.Play 4. Or if you want to play the sound and stop it after 300 ms (in my case, you should hear something for 30 ms, and there's 270 ms of silence): mySoundBuffer.Play Sleep 300 mySoundBuffer.Stop Hatchekeeday! (for English people who like to learn the epitome of Dutch non-words) Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 18 May 2010 23:43 To: e-prime at googlegroups.com Subject: Re: Button press during sound play Melissa, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... I don't see why you are having trouble with this, and I thought this had been answered in other threads. Nevertheless, it seems to me that if you set the input mask of your SoundOut or Slide object to the appropriate value (usually "(same as duration)", but perhaps a value longer than Duration if using "extended input") and End Action to (none) then all should work in either EP1 or EP2 (I still find EP1 a generally superior platform unless I really need Movies, etc.). -- David McFarlane, Professional Faultfinder >I am currently designing an experiment in which children are presented >with sentences that are read as they appear on screen. Then, a >question appears and is read in a sound file, with two options of >answers, and a key press to designate the chosen answer. However, I >am having trouble allowing the children to press a key (for my >reaction time measure) while the sound file plays (if they have >decided on the answer prior to the reading ending). It seems to only >permit an answer input after the sound file is complete, which isn't >terribly helpful for reaction time data. I have Eprime 1 now, though >I am in the process of getting Eprime 2. > >I know this seems painfully simple, but I have read all of the >information I have found online in attempting to solve it. So far, I >have had no luck. Any advice would be very appreciated. Thank you >all! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ryansouthgate8806 at googlemail.com Thu May 20 18:04:35 2010 From: ryansouthgate8806 at googlemail.com (ryan8806) Date: Thu, 20 May 2010 11:04:35 -0700 Subject: DoHitTest - Multiple Mouse Clicks and feedback In-Reply-To: <3761af24-0b70-4612-b674-7854f39ae5bf@b21g2000vbh.googlegroups.com> Message-ID: sorry i was unable to post the link to the image of my slide: img375(dot)imageshack(dot)us/img375/9820/slide(dot)jpg ryan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ryansouthgate8806 at googlemail.com Thu May 20 18:02:29 2010 From: ryansouthgate8806 at googlemail.com (ryan8806) Date: Thu, 20 May 2010 11:02:29 -0700 Subject: DoHitTest - Multiple Mouse Clicks and feedback Message-ID: hello guys, i'm new to e-prime, but not new to programming. i've got a slight problem, i've read the following post about multiple mouse clicks however i've become a bit unsure about the whole "slide states" scenario. for my experiment i'm having the following screen: on this screen i want to be able to detect 4 mouse clicks in total, each mouse click will be assigned to any box, but not the same box twice. i was wondering if there is an easily programmable way to change the colour of each selected box once it has been clicked, i've currently only been able to do this with only one box. in the boxes i would also like the numbers 1-4 displayed according to which one was clicked 1st, 2nd, 3rd etc. i am more than happy with the underlying code about setting up the arrays and checking those as i have had years of experience in that, however it is the detecting and displaying i'm unsure about. another question is am i able to do this all from the e-prime user interface using the "slides" and "inline" functions or would i have to do it entirely from the script editor? here is my current code if this helps: [code]'Designate "theState" as the Default Slide State, which is the 'current ActiveState on the Slide object "PRACquestion". Dim theState As SlideState Dim theState2 As SlideState Set theState = PRACquestion.States("Default") Set theState2 = PRACquestion.States("Default") Dim theSlideText As SlideText Dim theSlideText2 As SlideText Dim strHit As String Dim strHit2 As String Dim intRating As Integer Dim intRating2 As Integer Dim i as Integer '0 is correct 1 is incorrect Dim inputArray (3) as Integer Dim arrayCount as Integer Dim numberCorrect as Integer Dim loopCount as Integer loopCount = 1 arrayCount = 0 Loop_Start: 'Was there a response? If PRACquestion.InputMasks.Responses.Count > 0 Then Dim theMouseResponseData As MouseResponseData 'Get the mouse response. Set theMouseResponseData = CMouseResponseData(PRACquestion.InputMasks.Responses(1)) 'Determine string name of SlideText object at 'mouse click coordinates. Assign that value to strHit strHit = theState.HitTest(theMouseResponseData.CursorX, theMouseResponseData.CursorY) 'Did the subject click one of the SlideText sub-objects? If strHit <> "" And strHit <> "Question" Then 'Gain access to the SlideText sub-object selected 'Change appearance of selected sub-object to provide feedback to the subject. Set theSlideText = CSlideText(PRACquestion.States.Item("Default").Objects(strHit)) theSlideText.BackColor = CColor("red") theSlideText.Text = 1 'Redraw the Slide to present changes PRACquestion.Draw 'Each SlideText is named "Text" followed by a single digit. The Mid function is 'instructed to return the 5th character (i.e. the digit) of strHit for logging purposes. intRating = CInt(Mid(strHit, 5, 1)) if intRating = 1 then inputArray(0) = 0 else inputArray(0) = 1 end if 'Log rating in the data file under the attribute "Rating" 'c.SetAttrib "Rating", intRating Sleep 1000 theSlideText.BackColor = CColor("green") 'The subject did not click a valid sub-object. Else 'c.SetAttrib "Rating", "nothing" 'MsgBox "Please Select a Valid Option", ,"ATTENTION!" 'set theMouseResponseData = nothing 'goTo Loop_Start End If 'The subject did not respond. Else 'c.SetAttrib "Rating", "nothing" End If 'Was there a response? 'If PRACquestion.InputMasks.Responses.Count > 2 Then Dim theMouseResponseData2 As MouseResponseData 'Get the mouse response. Set theMouseResponseData2 = CMouseResponseData(PRACquestion.InputMasks.Responses(1)) 'Determine string name of SlideText object at 'mouse click coordinates. Assign that value to strHit strHit2 = theState2.HitTest(theMouseResponseData2.CursorX, theMouseResponseData2.CursorY) 'Did the subject click one of the SlideText sub-objects? If strHit2 <> "" And strHit2 <> "Question" Then 'Gain access to the SlideText sub-object selected 'Change appearance of selected sub-object to provide feedback to the subject. Set theSlideText2 = CSlideText(PRACquestion.States.Item("Default").Objects(strHit2)) theSlideText2.BackColor = CColor("red") theSlideText2.Text = 2 'Redraw the Slide to present changes PRACquestion.Draw 'Each SlideText is named "Text" followed by a single digit. The Mid function is 'instructed to return the 5th character (i.e. the digit) of strHit for logging purposes. intRating2 = CInt(Mid(strHit2, 5, 1)) if intRating2 = 2 then inputArray(1) = 0 else inputArray(1) = 1 end if 'Log rating in the data file under the attribute "Rating" 'c.SetAttrib "Rating", intRating Sleep 1000 theSlideText2.BackColor = CColor("green") 'The subject did not click a valid sub-object. 'Else 'c.SetAttrib "Rating", "nothing" 'MsgBox "Please Select a Valid Option", ,"ATTENTION!" 'set theMouseResponseData = nothing 'goTo Loop_Start 'End If 'The subject did not respond. 'Else 'goTo Loop_Start 'c.SetAttrib "Rating", "nothing" End If numberCorrect = 0 for i = 0 to 3 if inputArray(i) = 0 then numberCorrect = numberCorrect + 1 end if next i c.SetAttrib "numberCorrect", numberCorrect Set theMouseResponseData = Nothing Mouse.ShowCursor FALSE[/code] thanks in advance ryan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Thu May 20 18:39:53 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 20 May 2010 14:39:53 -0400 Subject: Read out certain levels only In-Reply-To: Message-ID: Vera, Thanks for writing back with the update... At 5/19/2010 07:42 AM Wednesday, you wrote: >To the trigger value question, you are probably right that I should >foresee what happens is the trigger is < 0 or > 7. But in practice >this will just not happen, as we are using the first 4 bits of a >parallelport only (0, 1, 2, 4). :-) Just on that point, 4 bits still allows values from 0 all the way to decimal 15, so you should still think about what happens with responses > 6. Three bits, OTOH, would indeed restrict values to <= 7, but even then courtesy dictates a comment to that effect. (Also, if it were me, I would still apply a mask to absolutely eliminate mistakes from stray signals, e.g., Const WireMask as Integer = &H0F ' lower 4 bits, decimal 15 NewTriggerValue = NewTriggerValue or WireMask ' do bitwise Or .) Ever harping on minutiae, -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From masteringminds at gmail.com Thu May 20 20:30:19 2010 From: masteringminds at gmail.com (Nawar) Date: Thu, 20 May 2010 13:30:19 -0700 Subject: Random with Constraint Message-ID: Hi, I am facing a randomization problem here. I am creating an experiment which have a list with 6 nested lists to choose from. The experiment is designed to break into 2 parts but still using the same lists. I need to randomize the selection process so that I don't choose more than half of any of the sublists in the first half of the experiment. Any ideas? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Thu May 20 20:43:14 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 20 May 2010 16:43:14 -0400 Subject: DoHitTest - Multiple Mouse Clicks and feedback In-Reply-To: <3761af24-0b70-4612-b674-7854f39ae5bf@b21g2000vbh.googlegro ups.com> Message-ID: Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take... >i'm new to e-prime, but not new to programming. Good to have an actual programmer on board, though as a real programmer you will will E-Prime deficient in many respects. But forging ahead... >i've got a slight problem, i've read the following post about multiple >mouse clicks >however i've become a bit unsure about the whole "slide states" >scenario. for my experiment i'm having the following screen: > >on this screen i want to be able to detect 4 mouse clicks in total, >each mouse click will be assigned to any box, but not the same box >twice. i was wondering if there is an easily programmable way to >change the colour of each selected box once it has been clicked, i've >currently only been able to do this with only one box. I just programmed something like this a week or so ago. In short, you can make use of the the .Draw method of any object, in this case either the entire Slide object or at a finer grain each individual SlideText or SlideImage sub-object (see the appropriate topics in the online E-Basic Help, which comprises the real technical documentation). In our case for each selection we wanted to restore the previous selection to its previous state, and then color the border or background of the new selection. (That means keeping track of a little more history than in your case, which I could have done with variable but instead did by restoring color properties immediately after each .Draw so that the next .Draw would automatically restore the original color.) I decided to wrap this work into a couple of Subs for more general use. So I now offer here my two Subs, plus a little example inline code using these. I provide these with no offer of any further support, and it is up to you to extract what you may from these: '/==========================\ Function SlideState_TextAltBorderColor( slState as SlideState, _ slTextName as String, altColor as Long ) as SlideText ' Draws alternate color on border of named SlideText object of the ' SlideState, and then restores the .BorderColor property for the next ' .Draw of the SlideText. ' Returns named SlideText object. Dim color0 as Long Dim slText as SlideText Set slText = CSlideText( slState.Objects( slTextName ) ) color0 = slText.BorderColor ' preserve color setting ' set & sraw alternat color... slText.BorderColor = altColor slText.Draw ' restore original color setting for next .Draw: slText.BorderColor = color0 Set SlideState_TextAltBorderColor = slText ' return value End Function ' SlideState_TextAltBorderColor() Sub SlideText_AltBackColor( slText as SlideText, altColor as Long ) ' Draws alternate color to background of specified SlideText object, ' and then restores the .BackColor property for the next .Draw of the ' SlideText. Dim color0 as Long color0 = slText.BackColor ' preserve color setting ' set & sraw alternat color... slText.BackColor = altColor slText.Draw ' restore original color setting for next .Draw: slText.BackColor = color0 End Sub ' SlideText_AltBackColor() Some inline code fragments... ' RatingSlide must use a SlideText object for each rating item, ' and the object name must take the form of ScaleStub#LevelStub#, ' e.g., "Scale1L1"... Const ScaleStub as String = "Scale" ' precedes scale # Const LevelStub as String = "L" ' precedes level # ' Alternate colors for rating items... Const AltBorderColorStr as String = "red" Const AltBackColorStr as String = "red" ' Working variables... Dim scaleN as Integer, levelSelect as Integer Dim slideTextName as String Dim RatingSlideText as SlideText ' Some variables for convenience & clarity... Dim altBorderColor as Long, altBackColor as Long ' Assign "constant" variables for notational convenience below... altBorderColor = CColor( AltBorderColorStr ) altBackColor = CColor( AltBackColorStr ) Set RatingSlideState = RatingSlide.States(RatingSlide.ActiveState) ' Initialize scales & display... slideTextName = CStr(ScaleStub & scaleN & LevelStub & levelSelect) Set RatingSlideText = SlideState_TextAltBorderColor( RatingSlideState, _ slideTextName, altBorderColor ) ' [... other stuff happens, then later...] ' Draw alternate color & restore color property for next .Draw: SlideText_AltBackColor RatingSlideText, altBackColor ' [... even more stuff happens, and later still...] ' Restore color of previously selected rating item, alter color of ' newly selected rating item... RatingSlideText.Draw ' restore previous color slideTextName = CStr(ScaleStub & scaleN & LevelStub & levelSelect) Set RatingSlideText = SlideState_TextAltBorderColor( RatingSlideState, _ slideTextName, altBorderColor ) ' [... clean up before we leave...] ' Close out object variables: Set RatingSlideState = Nothing Set RatingSlideText = Nothing '\==========================/ > in the boxes i >would also like the numbers 1-4 displayed according to which one was >clicked 1st, 2nd, 3rd etc. i am more than happy with the underlying >code about setting up the arrays and checking those as i have had >years of experience in that, however it is the detecting and >displaying i'm unsure about. I will have to leave you to work that one out. >another question is am i able to do this all from the e-prime user >interface using the "slides" and "inline" functions or would i have to >do it entirely from the script editor? Hmm, I don't know what you mean by the distintion between inline code and a "script editor". >here is my current code if this helps: I cannot speak for others, but generally when I see more than about a dozen lines of code in someone's question then I just tune out. (Yes, I did just post more than a dozen lines of code myself, but I provided that as an answer, not as a question :) .) All the double-spacing does not help matters, nor does the lack of indentation. Regards, -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From dpschpak at gmail.com Fri May 21 18:29:42 2010 From: dpschpak at gmail.com (dpschpak) Date: Fri, 21 May 2010 11:29:42 -0700 Subject: How to construct an experiment following the PQ-Likert Message-ID: I am an RA and neither myself, nor my boss have used E-Prime before. She wants me to try to design an experiment using the PQ-Lickert scale. This will require that the subject can select 1 OR 2 choices per question. Any help anyone can offer would be GREATLY appreciated. Thanks! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From wangshusandra at gmail.com Fri May 21 18:53:32 2010 From: wangshusandra at gmail.com (Sandra Wang) Date: Fri, 21 May 2010 11:53:32 -0700 Subject: How to construct an experiment following the PQ-Likert In-Reply-To: Message-ID: Check the link below. Hope it will help. http://www.pstnet.com/forum/Topic435-5-1.aspx Sandra On May 21, 1:29 pm, dpschpak wrote: > I am an RA and neither myself, nor my boss have used E-Prime before. > She wants me to try to design an experiment using the PQ-Lickert > scale. This will require that the subject can select 1 OR 2 choices > per question. Any help anyone can offer would be GREATLY appreciated. > Thanks! > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From melissadawn.stockbridge at gmail.com Sat May 22 10:34:27 2010 From: melissadawn.stockbridge at gmail.com (Melissa) Date: Sat, 22 May 2010 03:34:27 -0700 Subject: Button press during sound play In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF034F16B6@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Yes, thank you. I FINALLY got Eprime 2 installed by finding another whole copy. That upgrade cost a fortune and was literally completely useless. Upon getting Eprime 2's slide feature, everything appears to have worked very well. The problem was that I couldn't get sounds to play without sleeping the program, but it seems sorted now. Now I just need to find a few more kids! On May 20, 5:35 pm, Michiel Spape wrote: > Hi Melissa, David &al., > > Is this solved yet? As I just happen to have an experiment open which does this sort of stuff, I was just thinking that in situations where you would like a sound to stop playing, the easiest way, by far, seems to be > mySoundBuffer.Stop > ... > > That's one serious bit of code, hmm? Of course, that is given that you have pre-programmed this SoundBuffer, for example: > 1. put this in the User Script (alt+5, tab user) > Dim GenericSoundBufferInfo As SoundBufferInfo > 2. And put this in a little inline at the beginning of your experiment > GenericSoundBufferInfo.MaxLength = 100   'where 100 is the maximum duration your sample could possibly be... in my case 100 ms (my samples are 30 ms, actually) > GenericSoundBufferInfo.VolumeControl = CLogical("No") > GenericSoundBufferInfo.PanControl = CLogical("No") > Set mySoundBuffer = Sound.CreateBuffer(GenericSoundBufferInfo) > mySoundBuffer.Filename ="tap30ms.wav"    'where tap30ms.wav is actually my 30 ms sound file of a... tap > mySoundBuffer.Load > > 3. Put the following inline anywhere you'd like to play the sound > mySoundBuffer.Play > 4. Or if you want to play the sound and stop it after 300 ms (in my case, you should hear something for 30 ms, and there's 270 ms of silence): > mySoundBuffer.Play > Sleep 300 > mySoundBuffer.Stop > > Hatchekeeday! (for English people who like to learn the epitome of Dutch non-words) > Mich > > Michiel Spapé > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > Sent: 18 May 2010 23:43 > To: e-prime at googlegroups.com > Subject: Re: Button press during sound play > > Melissa, > > Stock reminder:  1) I do not work for PST.  2) PST's trained staff > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > strive to respond to all requests in 24-48 hours (although latest > reports indicate more like 10 days) -- this is pretty much their > substitute for proper documentation, so make full use of it.  3) If > you do get an answer from PST Web Support, please extend the courtesy > of posting their reply back here for the sake of others. > > That said, here is my take ... > > I don't see why you are having trouble with this, and I thought this > had been answered in other threads.  Nevertheless, it seems to me > that if you set the input mask of your SoundOut or Slide object to > the appropriate value (usually "(same as duration)", but perhaps a > value longer than Duration if using "extended input") and End Action > to (none) then all should work in either EP1 or EP2 (I still find EP1 > a generally superior platform unless I really need Movies, etc.). > > -- David McFarlane, Professional Faultfinder > > >I am currently designing an experiment in which children are presented > >with sentences that are read as they appear on screen.  Then, a > >question appears and is read in a sound file, with two options of > >answers, and a key press to designate the chosen answer.  However, I > >am having trouble allowing the children to press a key (for my > >reaction time measure) while the sound file plays (if they have > >decided on the answer prior to the reading ending).  It seems to only > >permit an answer input after the sound file is complete, which isn't > >terribly helpful for reaction time data.  I have Eprime 1 now, though > >I am in the process of getting Eprime 2. > > >I know this seems painfully simple, but I have read all of the > >information I have found online in attempting to solve it.  So far, I > >have had no luck.  Any advice would be very appreciated.  Thank you > >all! > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From rbscullin at gmail.com Mon May 24 14:24:26 2010 From: rbscullin at gmail.com (Rachel S.) Date: Mon, 24 May 2010 07:24:26 -0700 Subject: Improving Picture Resolution Message-ID: I am currently working on a program that uses the dot-probe task. A fixation cross "+", followed by 2 faces, and a probe (E or F) appears. The faces I am presenting are from .png files. Using Microsoft Office Picture Manager, I edit the .png files to make the faces smaller. The resolution of the faces looks fine until I run the e-prime program. Any suggestions how I can improve the resolution of the faces without affecting the refresh rate of the computer? I have already tried changing the file type and that doesn't seem to help. Thanks in advance. Rachel -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Liza.Mccarron at uwe.ac.uk Mon May 24 15:07:08 2010 From: Liza.Mccarron at uwe.ac.uk (Liza Mccarron) Date: Mon, 24 May 2010 16:07:08 +0100 Subject: Improving Picture Resolution In-Reply-To: <2981c58c-08f2-4553-996b-ef5d39037199@j27g2000vbp.googlegroups.com> Message-ID: Ok.. in EPrime how have you set up the picture display? It is possible that you may have made the images too small via picture manager and then may be trying to display them at a higher screen resolution through EPrime (there are lots of variables that could be coming into play here including graphics drivers, display resolution etc etc) Generally I tend to make my images 1024 x 768 @ 72dpi for use in Eprime as that is the resolution I have found best works with our range of monitors (I tend to use Photoshop or Photoshop elements to edit and save images as that seems to give most control - a free program called "The Gimp" is widely used too - I know a couple of members here use it. As you say changing the file format makes no difference I'm wondering if picture manager (I am not really familiar with it) is doing something odd in the save which is then not liked by EPrime. It would be helpful if you could e-mail me a copy of your original picture and a copy of the saved picture and then I can probably work out what is going on! It would also be worth you checking the display size that your eprime experiment is set to use (If you haven't already) - - Open Experiment - Choose "Edit" "Experiment" - Select "Devices" tab - Choose "Display" and "Edit" - Check that you either have "Match desktop setting at runtime" as "yes" or that you have the height/width setting you require specified below. To find your desktop resolution right click on the desktop and select "Properties" and then "Settings" You may need to play around with these settings in EPrime to get the results you want. Hope this is of some use - feel free to mail me back if you need any more suggestions! Best Regards Liza McCarron Senior Technician Department of Psychology Room 0H17A/0J12 University of the West Of England Frenchay Campus Coldharbour Lane BS16 1QY Tel: 0117 328 3253 -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Rachel S. Sent: 24 May 2010 15:24 To: E-Prime Subject: Improving Picture Resolution I am currently working on a program that uses the dot-probe task. A fixation cross "+", followed by 2 faces, and a probe (E or F) appears. The faces I am presenting are from .png files. Using Microsoft Office Picture Manager, I edit the .png files to make the faces smaller. The resolution of the faces looks fine until I run the e-prime program. Any suggestions how I can improve the resolution of the faces without affecting the refresh rate of the computer? I have already tried changing the file type and that doesn't seem to help. Thanks in advance. Rachel -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From rbscullin at gmail.com Mon May 24 15:57:10 2010 From: rbscullin at gmail.com (Rachel S.) Date: Mon, 24 May 2010 08:57:10 -0700 Subject: Improving Picture Resolution In-Reply-To: <20010E745C50274D93A655F97E2815973047439F8A@EGEN-MBX02.campus.ads.uwe.ac.uk> Message-ID: Thank you. I needed to match the desktop setting at runtime to fix it. I appreciate your help. Best, Rachel On May 24, 10:07 am, Liza Mccarron wrote: > Ok.. in EPrime how have you set up the picture display?  It is possible that you may have made the images too small via picture manager and then may be trying to display them at a higher screen resolution through EPrime (there are lots of variables that could be coming into play here including graphics drivers, display resolution etc etc) > > Generally I tend to make my images 1024 x 768 @ 72dpi for use in Eprime as that is the resolution I have found best works with our range of monitors (I tend to use Photoshop or Photoshop elements to edit and save images as that seems to give most control - a free program called "The Gimp" is widely used too - I know a couple of members here use it.  As you say changing the file format makes no difference I'm wondering if picture manager (I am not really familiar with it) is doing something odd in the save which is then not liked by EPrime. > > It would be helpful if you could e-mail me a copy of your original picture and a copy of the saved picture and then I can probably work out what is going on! > > It would also be worth you checking the display size that your eprime experiment is set to use (If you haven't already) - > > - Open Experiment > - Choose "Edit"  "Experiment"   > - Select "Devices" tab > - Choose "Display" and "Edit" > - Check that you either have "Match desktop setting at runtime" as "yes" or that you have the height/width setting you require specified below. > > To find your desktop resolution right click on the desktop and select "Properties" and then "Settings" > > You may need to play around with these settings in EPrime to get the results you want. > > Hope this is of some use - feel free to mail me back if you need any more suggestions! > > Best Regards > > Liza McCarron > Senior Technician > Department of Psychology > Room 0H17A/0J12 > University of the West Of England > Frenchay Campus > Coldharbour Lane > BS16 1QY > Tel: 0117 328 3253 > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Rachel S. > Sent: 24 May 2010 15:24 > To: E-Prime > Subject: Improving Picture Resolution > > I am currently working on a program that uses the dot-probe task. A > fixation cross "+", followed by 2 faces, and a probe (E or F) appears. > The faces I am presenting are from .png files. Using Microsoft Office > Picture Manager, I edit the .png files to make the faces smaller. The > resolution of the faces looks fine until I run the e-prime program. > Any suggestions how I can improve the resolution of the faces without > affecting the refresh rate of the computer? > > I have already tried changing the file type and that doesn't seem to > help. > > Thanks in advance. > > Rachel > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From david.r.allen1 at gmail.com Tue May 25 00:30:26 2010 From: david.r.allen1 at gmail.com (David Allen) Date: Mon, 24 May 2010 17:30:26 -0700 Subject: Helper functions and global variables Message-ID: Hello, I'm new to e-prime and the last time I did visual basic was 7 years ago. I am, however, an experienced programmer. Unfortunately I'm stuck using e-prime on a vista machine, which breaks the help (where I'm certain I could find the answers to my questions). How does one go about defining helper functions (functions in an inline script that can be referred to anywhere in the project) and global variables (the same but in variable form)? I found the visual basic syntax for each and tried to just use it inside an inline script but the compiler threw errors like "Found: Function Expected: " for function foo as integer return 1 end function Any help or pointers to good resources besides the help file will be much appreciated. Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Tue May 25 11:51:56 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 25 May 2010 12:51:56 +0100 Subject: Helper functions and global variables In-Reply-To: <9ed64419-e573-4ed2-92f8-a9a370b1af79@j36g2000prj.googlegroups.com> Message-ID: Hiya, Here's one from me: Function TekenCirkel(xloc, yloc, size as integer, colour as string) as boolean cnvsnext.FillColor = CColor(colour) cnvsnext.PenColor = CColor(colour) cnvsnext.Circle xloc, yloc, size TekenCirkel = true end Function 'canvasnext is my buffered canvas, by the way, so at some point you can swap that one for the front one and everything is drawn at once. ... You get the idea - Function FunctionName (inputvars) as returnvariable-type Then assign to the functionname. All of that you can put in the user area (Alt+5), which is also where all your variables declared are global. I can't generally be bothered to find out how E-Prime does this sort of thing, so it's quite possible this is not the best way at all. Also, for your convenience, Subs (functions without returns, i.e. voids): Sub ClrScrNext() cnvsnext.FillColor = CColor(BGColour) cnvsnext.clear End Sub Cheers, Mich Michiel Spapé Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David Allen Sent: 25 May 2010 01:30 To: E-Prime Subject: Helper functions and global variables Hello, I'm new to e-prime and the last time I did visual basic was 7 years ago. I am, however, an experienced programmer. Unfortunately I'm stuck using e-prime on a vista machine, which breaks the help (where I'm certain I could find the answers to my questions). How does one go about defining helper functions (functions in an inline script that can be referred to anywhere in the project) and global variables (the same but in variable form)? I found the visual basic syntax for each and tried to just use it inside an inline script but the compiler threw errors like "Found: Function Expected: " for function foo as integer return 1 end function Any help or pointers to good resources besides the help file will be much appreciated. Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 25 12:37:26 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 25 May 2010 08:37:26 -0400 Subject: Helper functions and global variables In-Reply-To: <9ed64419-e573-4ed2-92f8-a9a370b1af79@j36g2000prj.googlegroups.com> Message-ID: David, Stock reminder: 1) I do not work for PST. 2) PST's trained staff really does like to 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 -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... 1) Study Chapter 4, "E-Basic", of the User's Guide that came with E-Prime. (Beyond that, do yourself a favor and work through all of the Getting Started Guide and User's Guide; you may leave the Reference Guide for later.) 2) The online E-Basic Help may not work because Vista removed support for the older (and long deprecated) .hlp format. To enable the online E-Basic Help, you must either download and install the .hlp reader for Vista from Microsoft, or install a newer version of EP2, which comes with online E-Basic Help in the newer .chm format (which has its own problems). 3) Although the online E-Basic Help is indeed the closest we get to actual technical documentation, it will not answer all your questions as it is incomplete and in several places just plain wrong. So beware, you still have to user your own wits when figuring out E-Prime. -- David McFarlane, Professional Faultfinder On Monday 24 May 2010 David Allen wrote: > Hello, > I'm new to e-prime and the last time I did visual basic was 7 years > ago. I am, however, an experienced programmer. Unfortunately I'm stuck > using e-prime on a vista machine, which breaks the help (where I'm > certain I could find the answers to my questions). > > How does one go about defining helper functions (functions in an > inline script that can be referred to anywhere in the project) and > global variables (the same but in variable form)? I found the visual > basic syntax for each and tried to just use it inside an inline script > but the compiler threw errors like "Found: Function Expected: > " for > > function foo as integer > return 1 > end function > > Any help or pointers to good resources besides the help file will be > much appreciated. > > Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 25 17:45:31 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 25 May 2010 13:45:31 -0400 Subject: Helper functions and global variables In-Reply-To: <4BFBC486.6080600@msu.edu> Message-ID: David, Just a couple more hints for writing functions, subs, & EP code in general: - Unlike a rational language such as C or even JavaScript, E-Basic requires parantheses around the argument list in any call to a Function, but forbids parentheses around the argument list in any call to a Sub. When writing & using Subs, eventually you will run across a runtime error such as, --------------------------- The following error was found while attempting to compile the E-Basic script: Encountered: ',' Expecting: , ')' --------------------------- This just means that, out of long habit with other languages (and in keeping with the syntax in the *definition* of the Sub), you made the mistake of using a Sub and enclosing its argument list in parantheses, and now you need to remove those parentheses. Sigh. - Read through the full code that E-Studio generates from any .es file. With prior experience in VBA you should be able to learn a lot just from poring over the generated code. -- David McFarlane, Professional Faultfinder At 5/25/2010 08:37 AM Tuesday, you wrote: >David, > >Stock reminder: 1) I do not work for PST. 2) PST's trained staff >really does like to 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 -- this is pretty >much their substitute for proper documentation, so make full use of >it. 3) If you do get an answer from PST Web Support, please extend >the courtesy of posting their reply back here for the sake of others. > >That said, here is my take ... > >1) Study Chapter 4, "E-Basic", of the User's Guide that came with >E-Prime. (Beyond that, do yourself a favor and work through all of >the Getting Started Guide and User's Guide; you may leave the >Reference Guide for later.) > >2) The online E-Basic Help may not work because Vista removed >support for the older (and long deprecated) .hlp format. To enable >the online E-Basic Help, you must either download and install the >.hlp reader for Vista from Microsoft, or install a newer version of >EP2, which comes with online E-Basic Help in the newer .chm format >(which has its own problems). > >3) Although the online E-Basic Help is indeed the closest we get to >actual technical documentation, it will not answer all your >questions as it is incomplete and in several places just plain >wrong. So beware, you still have to user your own wits when >figuring out E-Prime. > >-- David McFarlane, Professional Faultfinder > > >On Monday 24 May 2010 David Allen wrote: >>Hello, >>I'm new to e-prime and the last time I did visual basic was 7 years >>ago. I am, however, an experienced programmer. Unfortunately I'm stuck >>using e-prime on a vista machine, which breaks the help (where I'm >>certain I could find the answers to my questions). >>How does one go about defining helper functions (functions in an >>inline script that can be referred to anywhere in the project) and >>global variables (the same but in variable form)? I found the visual >>basic syntax for each and tried to just use it inside an inline script >>but the compiler threw errors like "Found: Function Expected: >>" for >>function foo as integer >>return 1 >>end function >>Any help or pointers to good resources besides the help file will be >>much appreciated. >>Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From susangc7 at gmail.com Wed May 26 16:51:26 2010 From: susangc7 at gmail.com (Susan) Date: Wed, 26 May 2010 09:51:26 -0700 Subject: Helper functions and global variables In-Reply-To: <9ed64419-e573-4ed2-92f8-a9a370b1af79@j36g2000prj.googlegroups.com> Message-ID: Maybe I'm missing the point of your question, but you say you're defining functions and global variables in inline code. I don't think they work there because of the limited scope; have you tried putting them in the User script tab instead (View: Script: User tab)? Your functions may be fine, but misplaced. HTH, Susan On May 24, 8:30 pm, David Allen wrote: > Hello, > I'm new to e-prime and the last time I did visual basic was 7 years > ago. I am, however, an experienced programmer. Unfortunately I'm stuck > using e-prime on a vista machine, which breaks the help (where I'm > certain I could find the answers to my questions). > > How does one go about defining helper functions (functions in an > inline script that can be referred to anywhere in the project) and > global variables (the same but in variable form)? I found the visual > basic syntax for each and tried to just use it inside an inline script > but the compiler threw errors like "Found: Function Expected: > " for > > function foo as integer > return 1 > end function > > Any help or pointers to good resources besides the help file will be > much appreciated. > > Thanks, David > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From dpschpak at gmail.com Fri May 28 13:49:33 2010 From: dpschpak at gmail.com (dpschpak) Date: Fri, 28 May 2010 06:49:33 -0700 Subject: I need help writing an If...Then InLine Message-ID: My experiment follows a Likert-scale with options from 0-4. What I would like to do is if the subject selects an option 1-4 on the question slide, then a slide requiring a Y or N answer will display. I've never written script before, and this is my first experiment on E- Prime, so if you can help me please dumb it down a bit for me. Thanks! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From estelle.breton at gmail.com Fri May 28 16:41:20 2010 From: estelle.breton at gmail.com (Estelle_Thought_Technology) Date: Fri, 28 May 2010 09:41:20 -0700 Subject: send event related signal to serial/parallel ports Message-ID: Hi, I am new to this group, and a new e-prime user too. I will be working as an intern for the summer for a company named 'Thought Technology' . They develop hardware and software for biofeedback use and they want to make the interface between e-prime and their hardware possible so that users can use their technology to acquire physiological data during an e-prime protocol. The first goal will be to send event-related signals from e-prime to a port so it can be recieved and handled by a software that will be developped for this use. Reading the documentation, I realized that event-related signals are usually sent through the parallel port. Is there a reason to use the parallel port instead of the serial port ? I saw that SerialDevice objects exist and that there is a method to write to the serial port, but is it possible to notify external equipment the exact time that an event occurs in E-Prime using the serial port ? I know it coul be done with the parallel port using the onset and offset signal properties of objects...I wonder if the same could be done through the serail port since it is more commonly used than the parallel port these days... Thank you for your help, it will be really appreciated ! Estelle -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Sat May 29 01:20:17 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 28 May 2010 21:20:17 -0400 Subject: I need help writing an If...Then InLine In-Reply-To: Message-ID: Well, before anyone does their first experiment with E-Prime, they should at the very least work through the Getting Started Guide and the User's Guide that came with E-Prime. In particular, before doing your first inline code, work through Chapter 4 of the User's Guide. -- David McFarlane, Professional Faultfinder dpschpak wrote: > My experiment follows a Likert-scale with options from 0-4. What I > would like to do is if the subject selects an option 1-4 on the > question slide, then a slide requiring a Y or N answer will display. > I've never written script before, and this is my first experiment on E- > Prime, so if you can help me please dumb it down a bit for me. Thanks! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Sat May 29 01:24:35 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 28 May 2010 21:24:35 -0400 Subject: send event related signal to serial/parallel ports In-Reply-To: <6724fa9b-8230-4768-b8f9-2e756634e0e2@o12g2000vba.googlegroups.com> Message-ID: Estelle, > Reading the documentation, I realized that event-related signals are > usually sent through the parallel port. Is there a reason to use the > parallel port instead of the serial port ? Yes, and if you consult any standard reference on parallel ports and serial ports then the answer will become obvious. Or just use Google. In fact, if you do a proper search of either this Google Group or the PST Forum you should find where I have already discussed this at length. -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From estelle.breton at gmail.com Mon May 31 13:23:44 2010 From: estelle.breton at gmail.com (Estelle Breton) Date: Mon, 31 May 2010 09:23:44 -0400 Subject: send event related signal to serial/parallel ports In-Reply-To: <4C006CD3.80405@msu.edu> Message-ID: Ok, thank you, I understand the parallel port communication is faster than the serial port communication. I guess I will have to find a computer with a parallel port since mine only has serial. Thanks again ! On Fri, May 28, 2010 at 9:24 PM, David McFarlane wrote: > Estelle, > > > Reading the documentation, I realized that event-related signals are >> usually sent through the parallel port. Is there a reason to use the >> parallel port instead of the serial port ? >> > > Yes, and if you consult any standard reference on parallel ports and serial > ports then the answer will become obvious. Or just use Google. In fact, if > you do a proper search of either this Google Group or the PST Forum you > should find where I have already discussed this at length. > > -- David McFarlane, Professional Faultfinder > > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to > e-prime+unsubscribe at googlegroups.com > . > For more options, visit this group at > http://groups.google.com/group/e-prime?hl=en. > > -- Estelle -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sara.agosta at gmail.com Mon May 31 14:25:09 2010 From: sara.agosta at gmail.com (saraag) Date: Mon, 31 May 2010 07:25:09 -0700 Subject: USB port TMS Message-ID: Hello everyone, does anyone knows the scropt to open the USB port in order to trigger a TMS? please, let me know I have to send a trigger though the USB port, because the parallel port is used to trigger another device. thank you very much Sara -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 31 18:26:53 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 31 May 2010 14:26:53 -0400 Subject: USB port TMS In-Reply-To: <92c6ae5b-4d01-42bd-9f16-76b96bfae601@l6g2000vbo.googlegroups.com> Message-ID: Sara, Stock reminder: 1) I do not work for PST. 2) PST's trained staff really does like to 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 -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... Unless PST has added something new to the latest release of EP2, E-Prime simply has no facility for sending or receiving data through a USB port, so you are just out of luck there. But do not take my word for this, please contact PST Web Support yourself and then report back here. Say, why not just install another parallel port? Or, does your other device need all 8 outputs from the parallel port? If not, why not just build a cable to send different wires to your different devices? Just take a look at the book "Parallel Port Complete" by Jan Axelson to get some idea of how to make full use of the parallel port. Or, skip the parallel port and just install a real digital I/O card (e.g., from http://www.mccdaq.com ). -- David McFarlane, Professional Faultfinder > does anyone knows the scropt to open the USB port in order to trigger > a TMS? > > please, let me know > I have to send a trigger though the USB port, because the parallel > port is used to trigger another device. > > thank you very much > Sara -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 31 22:20:18 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 31 May 2010 18:20:18 -0400 Subject: USB port TMS In-Reply-To: <4C03FF6D.606@msu.edu> Message-ID: Sara, Come to think of it, there is a way to send & receive data through USB using E-Prime, in fact I am doing that for a project now. First go to Measurement Computing (referred to earlier) and get whatever I/O board suits your fancy, e.g., their USB-1024 ($100). When that arrives, install the Universal Libray software that comes with it. Then add the appropriate Declare statements in the User Script area of your EP program (see instructions that come with the MCC UL). Now you can use MCC UL function calls from EP inline code to send & receive data through the USB port. Recognizing that the MCC UL essentially just adds a DLL to provide the USB support, with enough ingenuity you could take this even further by writing your own DLL to use from EP. For that, you might want to take a look at "USB Complete" by Jan Axelson. Mind you, I am not advising you do any of this. Just being an academic and pointing out the full range of possibilities. -- David McFarlane, Professional Faultfinder David McFarlane wrote: > Sara, > > Stock reminder: 1) I do not work for PST. 2) PST's trained staff > really does like to 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 -- this is pretty much their > substitute for proper documentation, so make full use of it. 3) If you > do get an answer from PST Web Support, please extend the courtesy of > posting their reply back here for the sake of others. > > That said, here is my take ... > > Unless PST has added something new to the latest release of EP2, E-Prime > simply has no facility for sending or receiving data through a USB port, > so you are just out of luck there. But do not take my word for this, > please contact PST Web Support yourself and then report back here. > > Say, why not just install another parallel port? Or, does your other > device need all 8 outputs from the parallel port? If not, why not just > build a cable to send different wires to your different devices? Just > take a look at the book "Parallel Port Complete" by Jan Axelson to get > some idea of how to make full use of the parallel port. Or, skip the > parallel port and just install a real digital I/O card (e.g., from > http://www.mccdaq.com ). > > -- David McFarlane, Professional Faultfinder > > >> does anyone knows the scropt to open the USB port in order to trigger >> a TMS? >> >> please, let me know >> I have to send a trigger though the USB port, because the parallel >> port is used to trigger another device. >> >> thank you very much >> Sara -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From pquain at une.edu.au Mon May 31 22:18:24 2010 From: pquain at une.edu.au (Peter Quain) Date: Tue, 1 Jun 2010 08:18:24 +1000 Subject: USB port TMS In-Reply-To: <4C043622.2060402@msu.edu> Message-ID: what about timing issues David - anything to be aware of? At 08:20 AM 1/06/2010, you wrote: >Sara, > >Come to think of it, there is a way to send & receive data through >USB using E-Prime, in fact I am doing that for a project now. First >go to Measurement Computing (referred to earlier) and get whatever >I/O board suits your fancy, e.g., their USB-1024 ($100). When that >arrives, install the Universal Libray software that comes with >it. Then add the appropriate Declare statements in the User Script >area of your EP program (see instructions that come with the MCC >UL). Now you can use MCC UL function calls from EP inline code to >send & receive data through the USB port. > >Recognizing that the MCC UL essentially just adds a DLL to provide >the USB support, with enough ingenuity you could take this even >further by writing your own DLL to use from EP. For that, you might >want to take a look at "USB Complete" by Jan Axelson. > >Mind you, I am not advising you do any of this. Just being an >academic and pointing out the full range of possibilities. > >-- David McFarlane, Professional Faultfinder > > >David McFarlane wrote: >>Sara, >>Stock reminder: 1) I do not work for PST. 2) PST's trained staff >>really does like to 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 -- this is pretty >>much their substitute for proper documentation, so make full use of >>it. 3) If you do get an answer from PST Web Support, please extend >>the courtesy of posting their reply back here for the sake of others. >>That said, here is my take ... >>Unless PST has added something new to the latest release of EP2, >>E-Prime simply has no facility for sending or receiving data >>through a USB port, so you are just out of luck there. But do not >>take my word for this, please contact PST Web Support yourself and >>then report back here. >>Say, why not just install another parallel port? Or, does your >>other device need all 8 outputs from the parallel port? If not, >>why not just build a cable to send different wires to your >>different devices? Just take a look at the book "Parallel Port >>Complete" by Jan Axelson to get some idea of how to make full use >>of the parallel port. Or, skip the parallel port and just install >>a real digital I/O card (e.g., from http://www.mccdaq.com ). >>-- David McFarlane, Professional Faultfinder >> >>>does anyone knows the scropt to open the USB port in order to trigger >>>a TMS? >>> >>>please, let me know >>>I have to send a trigger though the USB port, because the parallel >>>port is used to trigger another device. >>> >>>thank you very much >>>Sara > >-- >You received this message because you are subscribed to the Google >Groups "E-Prime" group. >To post to this group, send email to e-prime at googlegroups.com. >To unsubscribe from this group, send email to >e-prime+unsubscribe at googlegroups.com. >For more options, visit this group at >http://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From tobias.fw at gmail.com Mon May 3 15:04:14 2010 From: tobias.fw at gmail.com (Tobias) Date: Mon, 3 May 2010 08:04:14 -0700 Subject: Signal detection theory In-Reply-To: Message-ID: They don not only have higher hit rates but also the same false alarm rate. So they are not more often saying "yes" in blank trials but only in target trials. If they really had a bias shouldn't they also have a higher false alarm rate? On 21 Apr., 01:55, Robert Ariel wrote: > Well, if you buy the assumptions of SDT you can. ?Remember, SDT makes > assumption about behavior. ?Specifically that decisions are made by applying > a decision criterion to the evidence extracted from each trial. ? So, you > could conclude that one condition has a higher hit rate because that > condition has a larger bias toward saying yes in your experiment. ?I guess > the question is, does it make theoretical sense to do so? > > > > On Mon, Apr 19, 2010 at 7:33 AM, Tobias wrote: > > Thanks Robert, > > > if I am not getting you wrong, this means that C is independent of d' > > but not of the hit rate. > > The question occurs to me if you can really say that one condition is > > more liberal if they are just better obviously. > > > Cheers, > > Tobias > > > On 16 Apr., 21:25, Robert Ariel wrote: > > > Tobias, > > > > Computationally, C is the average of the your transformed hit and false > > > alarm rates. ?You can see this in the equation you presented. ?So, no > > doubt > > > if you have equal false alarm rates across conditions, differences in C > > are > > > resulting because of differences in hit rates. > > > > Basically with equal false alarm rates, the condition with a higher hit > > rate > > > will always be more liberal. ?If hit rates are equal, the condition with > > > higher false alarm rate will be more liberal. > > > > Best, > > > > Robert > > > > On Fri, Apr 16, 2010 at 9:59 AM, Tobias wrote: > > > > Hi together, > > > > > this might be a bit off topic but as you are all very much into > > > > psychological experimental science you might be of great help for this > > > > issue. Besides, my topic is the outcome of an E-Prime experiment ;) > > > > > It is about the response bias in signal detection theory (SDT). I've > > > > heard that C is usually better than Beta as a measure of response bias > > > > as it is indpendent of d'. Now what I have in my experiment is a very > > > > high hit rate for condition A and a lower hit rate for condition B. > > > > False alarm rates are however the same for A and B. So what I get > > > > using the formula for C (C = -0.5*(z(false alarms) + z(hits)) is a > > > > liberal criterion C for A and a less liberal criterion for B. > > > > > So can I actually say that A is more liberal? Apparently this is only > > > > due to the fact that the hit rate is higher. I am quite puzzled by > > > > this... glad for any help! > > > > > Tobias > > > > > -- > > > > You received this message because you are subscribed to the Google > > Groups > > > > "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to > > > > e-prime+unsubscribe at googlegroups.com > > > > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/e-prime?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to > > e-prime+unsubscribe at googlegroups.com > > . > > > For more options, visit this group athttp:// > > groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to > > e-prime+unsubscribe at googlegroups.com > > . > > For more options, visit this group at > >http://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From plocasto at gmail.com Mon May 3 16:07:20 2010 From: plocasto at gmail.com (Paul) Date: Mon, 3 May 2010 12:07:20 -0400 Subject: Signal detection theory In-Reply-To: <01b4de97-5d71-4f77-a8f1-df08ec3cb095@b18g2000yqb.googlegroups.com> Message-ID: I definitely see your point. But I think that the distinction between where the positive responses are being made has no bearing here. The way I understand it, C is simply the propensity to offer a 'yes' response. So by definition, if either false alarm or hit rate increases, C must increase, since in either case the perceiver is offering more 'yes' responses. This is irregardless of the perceptual situation it is offered in. The fact that those 'yes' responses turn out to be 'hits' and not 'false alarms' is captured by the differences in dprime across the two conditions- which, in fact, tells you that Condition A has a higher sensitivity than Condition B. Paul On Mon, May 3, 2010 at 11:04 AM, Tobias wrote: > They don not only have higher hit rates but also the same false alarm > rate. So they are not more often saying "yes" in blank trials but only > in target trials. > If they really had a bias shouldn't they also have a higher false > alarm rate? > > On 21 Apr., 01:55, Robert Ariel wrote: > > Well, if you buy the assumptions of SDT you can. Remember, SDT makes > > assumption about behavior. Specifically that decisions are made by > applying > > a decision criterion to the evidence extracted from each trial. So, you > > could conclude that one condition has a higher hit rate because that > > condition has a larger bias toward saying yes in your experiment. I > guess > > the question is, does it make theoretical sense to do so? > > > > > > > > On Mon, Apr 19, 2010 at 7:33 AM, Tobias wrote: > > > Thanks Robert, > > > > > if I am not getting you wrong, this means that C is independent of d' > > > but not of the hit rate. > > > The question occurs to me if you can really say that one condition is > > > more liberal if they are just better obviously. > > > > > Cheers, > > > Tobias > > > > > On 16 Apr., 21:25, Robert Ariel wrote: > > > > Tobias, > > > > > > Computationally, C is the average of the your transformed hit and > false > > > > alarm rates. You can see this in the equation you presented. So, no > > > doubt > > > > if you have equal false alarm rates across conditions, differences in > C > > > are > > > > resulting because of differences in hit rates. > > > > > > Basically with equal false alarm rates, the condition with a higher > hit > > > rate > > > > will always be more liberal. If hit rates are equal, the condition > with > > > > higher false alarm rate will be more liberal. > > > > > > Best, > > > > > > Robert > > > > > > On Fri, Apr 16, 2010 at 9:59 AM, Tobias wrote: > > > > > Hi together, > > > > > > > this might be a bit off topic but as you are all very much into > > > > > psychological experimental science you might be of great help for > this > > > > > issue. Besides, my topic is the outcome of an E-Prime experiment ;) > > > > > > > It is about the response bias in signal detection theory (SDT). > I've > > > > > heard that C is usually better than Beta as a measure of response > bias > > > > > as it is indpendent of d'. Now what I have in my experiment is a > very > > > > > high hit rate for condition A and a lower hit rate for condition B. > > > > > False alarm rates are however the same for A and B. So what I get > > > > > using the formula for C (C = -0.5*(z(false alarms) + z(hits)) is a > > > > > liberal criterion C for A and a less liberal criterion for B. > > > > > > > So can I actually say that A is more liberal? Apparently this is > only > > > > > due to the fact that the hit rate is higher. I am quite puzzled by > > > > > this... glad for any help! > > > > > > > Tobias > > > > > > > -- > > > > > You received this message because you are subscribed to the Google > > > Groups > > > > > "E-Prime" group. > > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > > To unsubscribe from this group, send email to > > > > > e-prime+unsubscribe at googlegroups.com > > > > > > > > > > > > > > > > . > > > > > For more options, visit this group at > > > > >http://groups.google.com/group/e-prime?hl=en. > > > > > > -- > > > > You received this message because you are subscribed to the Google > Groups > > > "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to > > > e-prime+unsubscribe at googlegroups.com > > > > > > . > > > > For more options, visit this group athttp:// > > > groups.google.com/group/e-prime?hl=en. > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to > > > e-prime+unsubscribe at googlegroups.com > > > > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/e-prime?hl=en. > > > > -- > > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to > e-prime+unsubscribe at googlegroups.com > . > > For more options, visit this group athttp:// > groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to > e-prime+unsubscribe at googlegroups.com > . > For more options, visit this group at > http://groups.google.com/group/e-prime?hl=en. > > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -------------- next part -------------- An HTML attachment was scrubbed... URL: From h.nietnagel at googlemail.com Mon May 3 18:53:51 2010 From: h.nietnagel at googlemail.com (Hannes) Date: Mon, 3 May 2010 11:53:51 -0700 Subject: logging onset of TMS pulse? Message-ID: Hello, I would like to log the onset of the TMS pulse that is triggered by Eprime. But I do not know how to do that. I inserted a little InLine to trigger the TMS pulse, but how can I log the onset of the pulse? I started the script using the line: Dim TMS as Integer and ended the InLine with the line: c.SetAttrib "TMS", TMS I thought that this is the way to make an InLine an object? I wanted to record the onset of the TMS pulse using: c.SetAttrib TMS.Name & ".OnsetTime", TMS.OnsetTime Where did I make the mistake? Thank you very much in advance for your help! Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 3 19:04:38 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 3 May 2010 15:04:38 -0400 Subject: logging onset of TMS pulse? In-Reply-To: <626fe9ff-6504-47a9-8d74-961bbcbfe106@h9g2000yqm.googlegrou ps.com> Message-ID: Hannes, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... Instead of your current inline code, try the following single line: c.SetAttrib "TMS.OnsetTime", Clock.Read See if that does anything interesting for you, and then puzzle it out further from there. -- David McFarlane, Professional Faultfinder >I would like to log the onset of the TMS pulse that is triggered by >Eprime. But I do not know how to do that. I inserted a little InLine >to trigger the TMS pulse, but how can I log the onset of the pulse? >I started the script using the line: >Dim TMS as Integer >and ended the InLine with the line: >c.SetAttrib "TMS", TMS > >I thought that this is the way to make an InLine an object? > >I wanted to record the onset of the TMS pulse using: >c.SetAttrib TMS.Name & ".OnsetTime", TMS.OnsetTime > >Where did I make the mistake? > > >Thank you very much in advance for your help! > >Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From a.schueppert at rug.nl Tue May 4 07:34:55 2010 From: a.schueppert at rug.nl (anja) Date: Tue, 4 May 2010 00:34:55 -0700 Subject: change response language Message-ID: Hi, in a translation task, I echo the participants' typed responses to the screen. I want the participants to answer in Swedish and Danish (two different experiments, though). Does anybody know how to change the keyboard settings from English to another language? Thank you! Anja -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liwenna at gmail.com Tue May 4 11:02:09 2010 From: liwenna at gmail.com (liwenna) Date: Tue, 4 May 2010 04:02:09 -0700 Subject: change response language In-Reply-To: <4b6935e0-4822-4492-b74e-7d561b4a3089@a34g2000yqn.googlegroups.com> Message-ID: Hey Anja, What would be the point of that? Afaik Denmark and Sweden use a QWERTY- keyboard just like we do and e-prime still doesn't support spell checking... ;). Regardless of the keyboard language your participants will be able to enter their responses in danish or swedish. Or am I majorly overlooking some feature that would depend on keyboard language? Groet, Anne-Wil On May 4, 9:34 am, anja wrote: > Hi, > > in a translation task, I echo the participants' typed responses to the > screen. I want the participants to answer in Swedish and Danish (two > different experiments, though). > > Does anybody know how to change the keyboard settings from English to > another language? > > Thank you! > Anja > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From a.schueppert at rug.nl Tue May 4 11:34:35 2010 From: a.schueppert at rug.nl (anja) Date: Tue, 4 May 2010 04:34:35 -0700 Subject: change response language In-Reply-To: Message-ID: Hi, the point would be to get the letters ?, ? and ? correctly displayed! Groet, Anja -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From adele.dimian at gmail.com Tue May 4 19:45:56 2010 From: adele.dimian at gmail.com (Adele) Date: Tue, 4 May 2010 12:45:56 -0700 Subject: Blackjack task in E-prime Message-ID: Hello all, We are currently trying to program a Blackjack task in e-prime and have been trying unsuccessfully for months now! The problem we are having has to do with how to calculate the value of each card so we can then calculate the total value of the dealer and participant's hands. We are trying to use an array to declare the value of the cards (bear with us this is our first time attempting to use an array). The cards are set up in a blocklist with card values. In theory we would like to draw from this list to declare the values, so that the values are consistent with the cards dealt. Once the card values are declared we then would like to use an equation to add the card values and compare the participant total card value to the dealer card value. We need the dealer card value to program when the dealer hits and stays. Please see below, can anyone point us in the right direction? We would appreciate it immensely! Thanks for your time and consideration. Kind regards, Adele and Brittany Please excuse our inexperience and disorganization, here are several different ways we were trying to get the card values: '******************> ' CalcNewTotalVal '******************> Dim value As Integer Dim total As Integer Dim CardCount As Integer Dim i As Integer Dim DealerCardCount As Integer Dim PlayerCardCount As Integer Dim Deck As clsDeck Dim hit as integer Dim stay as Integer Dim playercardtotal as integer Dim Dealercardtotal as integer Dim won as currency Dim lost as currency dim winnings as currency Dim arrValue (10) as integer For i = 0 'c.SetAttrib "Won", "Won" 'c.SetAttrib "Lost", "Lost" 'won = val(c.getattrib("Won")) 'lost = val(c.getattrib("Lost")) total = total + won - lost winnings = total - val(c.getattrib("borrowed")) 'c.SetAttrib "Hit", "Hit" 'c.SetAttrib "Stay", "Stay" 'Hit = val(c.getattrib("Hit")) 'Stay = val(c.getattrib("Stay")) 'c.getattrib("ValBC1") 'c.getattrib("ValSC") 'c.getattrib("ValHit1") 'c.getattrib("ValHit2") 'c.getattrib("ValDBC1") 'c.getattrib("ValDSC") 'c.getattrib("ValDHit1") 'c.getattrib("ValDHit2") Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" winnings = total - val(c.getattrib("borrowed")) If Playercardtotal > 21 Then MsgBox "You busted" goto EndlabelDealerif2 End If 'For DealerTotal = GetCardTotal(Dealer) If DealerCardTotal > 21 Then MsgBox "Dealer busts" ElseIf DealerCardTotal > 15 Then MsgBox "Dealer stays" ' EndGame 'Else ' DealerCardCount = DealerCardCount + 1 ' Deck.Deal 1, Dealer, _ ' DealerCardCount * 80 + 20, 60, 0, FaceUp End If 'total = 0 'CardCount = Choice1.NumCardsInHand(plyer) 'For i = 0 To CardCount - 1 ' value = Choice1.GetCardValue(plyer, i) Mod 13 ' total = total + value + 1 'Dim msg As String 'Deck.ShowHandCard Dealer, 0, FaceUp 'DealerCardTotal = GetCardTotal(Dealer) 'PlayerCardTotal = GetCardTotal(Player) Set Choice1 = Nothing 'msg = "Dealer: " + CStr(DealerCardTotal) + _ ' + "Player: " + CStr(PlayerCardTotal) If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And DealerCardTotal < 22) then MsgBox "You lose." Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And DealerCardTotal > 22) then msgBox "You win." End If debug.print "won " & c.getattrib("won") -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Tue May 4 19:13:39 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Tue, 4 May 2010 12:13:39 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph Message-ID: Hello, I?m trying to develop a behavioral choice task in which a participant will be able to increase or decrease a percentage of pie dependent upon the contingency of the experiment. I?ve attached the code that I was planning on using, which I took from the e-basic help file. There are a couple of lines that I plan on removing from the script such as the lines referencing ?random? and ?nCount?. However, overall this is aesthetically what I want the program to look like. My question is; I want the participant to be able to increase and decrease the percentage of pie using the 1 and 2 keys. I?m having trouble finding lines of script, or references pertaining to, what I?d like to achieve within the design. Does anyone have any suggestions? 'Create a Canvas Dim cnvs As Canvas 'Set cnvs as the current, onscreen canvas Set cnvs = Display.Canvas 'Declare variables used to set the size of the canvas Dim XRes As Integer, YRes As Integer 'Set the canvas size as the entire screen resolution XRes = Display.XRes YRes = Display.YRes 'Declare and initialize variables to be used when drawing the sections of the circle Const nRadius As Integer = 100 Dim nStartAngle As Integer, nEndAngle As Integer Dim nCount As Integer 'Initialize variables nStartAngle = 90 nEndAngle = 90 'Declare variables to be used to randomly select the delay value Dim nRandom As Integer Dim nDelay As Integer 'Select a random number to determine the value of the delay between the drawing of each section of the circle nRandom = Random (1, 2) 'If the random number chosen is 1, the nDelay value is set to 500 ms. 'Otherwise, the nDelay value is set to 1000 ms. If nRandom = 1 Then nDelay = 500 Else nDelay = 1000 End If 'Set color of pen for pie slice cnvs.PenColor = CColor("red") cnvs.FillColor = CColor("red") 'The For?Next statement repeats a block of statements a specified number of times 'incrementing a loop counter by a given increment each time through the loop 'In this sample, the nCount variable is incremented by one each time through the loop allowing ten pie slices to be drawn. For nCount = 1 to 10 'Adjust startAngle to specify where to start each section of the circle each time a pie slice is drawn nStartAngle = nStartAngle - 36 'Draw a pie slice with center point at x, y and radius r, starting at startAngle and drawing to endAngle. cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle 'Sleep before drawing next pie slice Sleep nDelay Next nCount 'Set fill color to white before clearing canvas cnvs.FillColor = CColor("white") 'Clear canvas cnvs.clear 'Set the value of the delay as an attribute in the data file Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From h.nietnagel at googlemail.com Wed May 5 07:31:42 2010 From: h.nietnagel at googlemail.com (Hannes) Date: Wed, 5 May 2010 00:31:42 -0700 Subject: logging onset of TMS pulse? In-Reply-To: <4bdf1e51.5344f10a.5f0d.ffffe25cSMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hello, thank you very much David, your suggestion > Instead of your current inline code, try the following single line: > > c.SetAttrib "TMS.OnsetTime", Clock.Read works. At least I can see the OnseTime. But there are still problems remaining: how can I precisely time the onset of the TMS trigger? Or to put it even more exactly: I would like to give the TMS pulse right at the end (= OffsetTime) of the preceding visual stimulus. Where can I set this timing? I did not find any hint in the manuals how I can set the timing of an InLine. Another problem is that there are certain delays in displaying the stimuli (as far as I can tell from the StartTime, FinishTime, OnsetTime, OffsetTime), even though I already set the timing to "cumulative" and put a prerelease... Is it possible at all to work very precisely in the millisecond range using Eprime? Thank you very much for your advice! Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liwenna at gmail.com Wed May 5 11:04:45 2010 From: liwenna at gmail.com (liwenna) Date: Wed, 5 May 2010 04:04:45 -0700 Subject: change response language In-Reply-To: <59fbde58-3ed5-42d5-b0d8-c303e13e00bb@24g2000yqy.googlegroups.com> Message-ID: ahh... so I was overlooking something ^.^ I suppose you have read this thread: http://www.pstnet.com/forum/Topic1578-8-1.aspx#bm2146 Which doesn't really help out in the end either. We had someone asking t about the use of hebrew in e-prime not too long ago (search function should bring you to this threads) but I think that in the end the conclusion was that it is not possible to use a non-english font for the echo-function (i.e. where subject type in their responses). This is the reply that Yoed (the person asking about hebrew fonts) got from PST: *********** Are you using E-Prime v1.x or E-Prime 2.0? While E-Prime 2.0 is supported by the English/Western European versions of Windows XP and Vista, this really only applies to text that is displayed by the objects. That is, while the "Text" property of a TextDisplay will accept foreign characters, the other properties (including .Input and its related echo properties) will not. All non-English characters or accents will go unrecognized by E-Prime in the responses and in the text that is echoed to the screen. E-Prime 2.0 has resolved this to some degree by allowing non-English fonts to appear as responses in the data file (i.e., UNICODE fonts are permitted). However, the echo client will still only display English and the responses themselves will still be based on the QWERTY keyboard. You could get around this by manually echoing the subject's responses to the screen. For example, you could take the subject's input and then convert it to Hebrew in script, and then display this on screen (e.g., if the semicolon key is pressed, convert this to a specific character and display it on screen, etc). However, this can be fairly script intensive and would require that the Hebrew characters appear correctly in TextDisplay objects and/or Slide objects and appear correctly in InLine objects. If you are interested, I would recommend taking a look at SAMPLE:Process Responses Templatefor an example of how to change what is displayed on screen based on the subject's responses. Please let me know if you have any further questions. *********** Your task is a translation task... does it require randomization or any special stuff regarding timing? Otherwise you might consider using, for instance, surveymonkey. Web based, designed for creating and filling out of surveys, it does allow text boxes where subjects type in their answer and, most importantly, it supports multiple languages (at least accordign to their FAQ). Best, AW -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Wed May 5 11:54:18 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 5 May 2010 12:54:18 +0100 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <740421fc-e2f7-4a4e-ad9b-1737f19d71b8@q30g2000yqd.googlegroups.com> Message-ID: Hi, A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: If mySlide.resp = 2 then If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 end if If mySlide.resp = 1 then If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 end if Should work. Any response other than 1 or 2 is taken as final answer. B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel Sent: 04 May 2010 20:14 To: E-Prime Subject: increasing/decreasing percentage - pie chart/ circular graph Hello, I'm trying to develop a behavioral choice task in which a participant will be able to increase or decrease a percentage of pie dependent upon the contingency of the experiment. I've attached the code that I was planning on using, which I took from the e-basic help file. There are a couple of lines that I plan on removing from the script such as the lines referencing "random" and "nCount". However, overall this is aesthetically what I want the program to look like. My question is; I want the participant to be able to increase and decrease the percentage of pie using the 1 and 2 keys. I'm having trouble finding lines of script, or references pertaining to, what I'd like to achieve within the design. Does anyone have any suggestions? 'Create a Canvas Dim cnvs As Canvas 'Set cnvs as the current, onscreen canvas Set cnvs = Display.Canvas 'Declare variables used to set the size of the canvas Dim XRes As Integer, YRes As Integer 'Set the canvas size as the entire screen resolution XRes = Display.XRes YRes = Display.YRes 'Declare and initialize variables to be used when drawing the sections of the circle Const nRadius As Integer = 100 Dim nStartAngle As Integer, nEndAngle As Integer Dim nCount As Integer 'Initialize variables nStartAngle = 90 nEndAngle = 90 'Declare variables to be used to randomly select the delay value Dim nRandom As Integer Dim nDelay As Integer 'Select a random number to determine the value of the delay between the drawing of each section of the circle nRandom = Random (1, 2) 'If the random number chosen is 1, the nDelay value is set to 500 ms. 'Otherwise, the nDelay value is set to 1000 ms. If nRandom = 1 Then nDelay = 500 Else nDelay = 1000 End If 'Set color of pen for pie slice cnvs.PenColor = CColor("red") cnvs.FillColor = CColor("red") 'The For...Next statement repeats a block of statements a specified number of times 'incrementing a loop counter by a given increment each time through the loop 'In this sample, the nCount variable is incremented by one each time through the loop allowing ten pie slices to be drawn. For nCount = 1 to 10 'Adjust startAngle to specify where to start each section of the circle each time a pie slice is drawn nStartAngle = nStartAngle - 36 'Draw a pie slice with center point at x, y and radius r, starting at startAngle and drawing to endAngle. cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle 'Sleep before drawing next pie slice Sleep nDelay Next nCount 'Set fill color to white before clearing canvas cnvs.FillColor = CColor("white") 'Clear canvas cnvs.clear 'Set the value of the delay as an attribute in the data file Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 5 14:13:56 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 5 May 2010 10:13:56 -0400 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EEC20@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive If...Thens stand (and while at it also added a couple comments, and used line continuation characters to break long lines): If mySlide.resp = 2 then ' increase pie slice If c.GetAttrib("CurrentPerc") < 100 then _ c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ c.GetAttrib("CurrentPerc") - 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 End If Might also use a variable instead of an attribute reference for CurrentPerc, thus, Dim currentPerc If mySlide.resp = 2 then ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End If And to complete the exercise, let's use Select...Case: Dim currentPerc Select Case mySlide.RESP Case 2 ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 Case 1 ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End Select -- David McFarlane, Professional Faultfinder On 5 May 2010 Michiel Spape wrote: > Hi, > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > If mySlide.resp = 2 then > If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > If mySlide.resp = 1 then > If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > > Should work. Any response other than 1 or 2 is taken as final answer. > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > Best, > Mich > > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > Sent: 04 May 2010 20:14 > To: E-Prime > Subject: increasing/decreasing percentage - pie chart/ circular graph > > Hello, > > I'm trying to develop a behavioral choice task in which a participant > will be able to increase or decrease a percentage of pie dependent > upon the contingency of the experiment. I've attached the code that I > was planning on using, which I took from the e-basic help file. There > are a couple of lines that I plan on removing from the script such as > the lines referencing "random" and "nCount". However, overall this is > aesthetically what I want the program to look like. My question is; I > want the participant to be able to increase and decrease the > percentage of pie using the 1 and 2 keys. I'm having trouble finding > lines of script, or references pertaining to, what I'd like to achieve > within the design. Does anyone have any suggestions? > > 'Create a Canvas > Dim cnvs As Canvas > 'Set cnvs as the current, onscreen canvas > Set cnvs = Display.Canvas > 'Declare variables used to set the size of the canvas > Dim XRes As Integer, YRes As Integer > 'Set the canvas size as the entire screen resolution > XRes = Display.XRes > YRes = Display.YRes > > 'Declare and initialize variables to be used when drawing the sections > of the circle > Const nRadius As Integer = 100 > Dim nStartAngle As Integer, nEndAngle As Integer > Dim nCount As Integer > > 'Initialize variables > nStartAngle = 90 > nEndAngle = 90 > > 'Declare variables to be used to randomly select the delay value > Dim nRandom As Integer > Dim nDelay As Integer > 'Select a random number to determine the value of the delay between > the drawing of each section of the circle > nRandom = Random (1, 2) > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > 'Otherwise, the nDelay value is set to 1000 ms. > If nRandom = 1 Then > nDelay = 500 > Else > nDelay = 1000 > End If > > 'Set color of pen for pie slice > cnvs.PenColor = CColor("red") > cnvs.FillColor = CColor("red") > 'The For...Next statement repeats a block of statements a specified > number of times > 'incrementing a loop counter by a given increment each time through > the loop > 'In this sample, the nCount variable is incremented by one each time > through the loop allowing ten pie slices to be drawn. > > For nCount = 1 to 10 > > > > 'Adjust startAngle to specify where to start each section of the > circle each time a pie slice is drawn > nStartAngle = nStartAngle - 36 > 'Draw a pie slice with center point at x, y and radius r, starting at > startAngle and drawing to endAngle. > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > 'Sleep before drawing next pie slice > Sleep nDelay > Next nCount > 'Set fill color to white before clearing canvas > cnvs.FillColor = CColor("white") > 'Clear canvas > cnvs.clear > 'Set the value of the delay as an attribute in the data file > > Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 5 14:33:11 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 5 May 2010 10:33:11 -0400 Subject: logging onset of TMS pulse? In-Reply-To: <51bf3c23-6d55-4533-8a0e-ee381bcfe3fe@o14g2000yqb.googlegroups.com> Message-ID: Hannes, Once again, I advise that you take this up directly with PST Web Support, even if only to get a second opinion -- let them do their job. Also, look at the .OffsetSignalData, .OffsetSignalEnabled, and .OffsetSignalPort properties of various stimuls objects in the online E-Basic Help. I have never used these myself, so I cannot provide any further help there. As to setting the timing of inline code, inline code starts running as soon as the previous object ends. If you want inline code to start at a specific time, just add a loop to provide a delay. E.g., if you want inline code to proceed no sooner than 100 ms after the offset time of object StimText, then do something like Dim codeStartTime as Long codeStartTime = StimText.OffsetTime + 100 Do Until (Clock.Read >= codeStartTime) Loop ' inline code continues here... As to delays in displaying visual stimuli, as explained in detail in Chapter 3 of the User's Guide that came with E-Prime, some delay is inevitable simply due to the nature of the display technology. Please go back and study Chapter 3 more thoroughly. Finally, when you do get this worked out please report back here, as I would like to know better how some of this works myself. -- David McFarlane, Professional Faultfinder On 5 May 2010 Hannes wrote: > thank you very much David, your suggestion >> Instead of your current inline code, try the following single line: >> >> c.SetAttrib "TMS.OnsetTime", Clock.Read > > works. At least I can see the OnseTime. > But there are still problems remaining: how can I precisely time the > onset of the TMS trigger? Or to put it even more exactly: I would like > to give the TMS pulse right at the end (= OffsetTime) of the preceding > visual stimulus. Where can I set this timing? I did not find any hint > in the manuals how I can set the timing of an InLine. > Another problem is that there are certain delays in displaying the > stimuli (as far as I can tell from the StartTime, FinishTime, > OnsetTime, OffsetTime), even though I already set the timing to > "cumulative" and put a prerelease... > Is it possible at all to work very precisely in the millisecond range > using Eprime? > > Thank you very much for your advice! > > Hannes -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Wed May 5 16:00:26 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Wed, 5 May 2010 17:00:26 +0100 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4BE17D24.6010802@msu.edu> Message-ID: Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: If IsNumeric(mySlide.RESP) then If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ currentPerc = currentPerc + cint(mySlide.RESP)-5 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End if ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 05 May 2010 15:14 To: e-prime at googlegroups.com Subject: Re: increasing/decreasing percentage - pie chart/ circular graph Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive If...Thens stand (and while at it also added a couple comments, and used line continuation characters to break long lines): If mySlide.resp = 2 then ' increase pie slice If c.GetAttrib("CurrentPerc") < 100 then _ c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ c.GetAttrib("CurrentPerc") - 1 c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ & ".bmp" goto Label1 End If Might also use a variable instead of an attribute reference for CurrentPerc, thus, Dim currentPerc If mySlide.resp = 2 then ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 ElseIf mySlide.resp = 1 then ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End If And to complete the exercise, let's use Select...Case: Dim currentPerc Select Case mySlide.RESP Case 2 ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 Case 1 ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" goto Label1 End Select -- David McFarlane, Professional Faultfinder On 5 May 2010 Michiel Spape wrote: > Hi, > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > If mySlide.resp = 2 then > If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > If mySlide.resp = 1 then > If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 > end if > > Should work. Any response other than 1 or 2 is taken as final answer. > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > Best, > Mich > > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > Sent: 04 May 2010 20:14 > To: E-Prime > Subject: increasing/decreasing percentage - pie chart/ circular graph > > Hello, > > I'm trying to develop a behavioral choice task in which a participant > will be able to increase or decrease a percentage of pie dependent > upon the contingency of the experiment. I've attached the code that I > was planning on using, which I took from the e-basic help file. There > are a couple of lines that I plan on removing from the script such as > the lines referencing "random" and "nCount". However, overall this is > aesthetically what I want the program to look like. My question is; I > want the participant to be able to increase and decrease the > percentage of pie using the 1 and 2 keys. I'm having trouble finding > lines of script, or references pertaining to, what I'd like to achieve > within the design. Does anyone have any suggestions? > > 'Create a Canvas > Dim cnvs As Canvas > 'Set cnvs as the current, onscreen canvas > Set cnvs = Display.Canvas > 'Declare variables used to set the size of the canvas > Dim XRes As Integer, YRes As Integer > 'Set the canvas size as the entire screen resolution > XRes = Display.XRes > YRes = Display.YRes > > 'Declare and initialize variables to be used when drawing the sections > of the circle > Const nRadius As Integer = 100 > Dim nStartAngle As Integer, nEndAngle As Integer > Dim nCount As Integer > > 'Initialize variables > nStartAngle = 90 > nEndAngle = 90 > > 'Declare variables to be used to randomly select the delay value > Dim nRandom As Integer > Dim nDelay As Integer > 'Select a random number to determine the value of the delay between > the drawing of each section of the circle > nRandom = Random (1, 2) > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > 'Otherwise, the nDelay value is set to 1000 ms. > If nRandom = 1 Then > nDelay = 500 > Else > nDelay = 1000 > End If > > 'Set color of pen for pie slice > cnvs.PenColor = CColor("red") > cnvs.FillColor = CColor("red") > 'The For...Next statement repeats a block of statements a specified > number of times > 'incrementing a loop counter by a given increment each time through > the loop > 'In this sample, the nCount variable is incremented by one each time > through the loop allowing ten pie slices to be drawn. > > For nCount = 1 to 10 > > > > 'Adjust startAngle to specify where to start each section of the > circle each time a pie slice is drawn > nStartAngle = nStartAngle - 36 > 'Draw a pie slice with center point at x, y and radius r, starting at > startAngle and drawing to endAngle. > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > 'Sleep before drawing next pie slice > Sleep nDelay > Next nCount > 'Set fill color to white before clearing canvas > cnvs.FillColor = CColor("white") > 'Clear canvas > cnvs.clear > 'Set the value of the delay as an attribute in the data file > > Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 5 16:23:52 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 5 May 2010 09:23:52 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EED73@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: wow, thanks a lot to the both of you! what a nice bit of information to find upon arrivign to work thsi morning! On May 5, 11:00?am, Michiel Spape wrote: > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > If IsNumeric(mySlide.RESP) then > ? ? ? ? If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > ? ? ? ? currentPerc = currentPerc + cint(mySlide.RESP)-5 > ? ? ? ? c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > ? ? ? ? goto Label1 > End if > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > Best, > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > Sent: 05 May 2010 15:14 > To: e-prime at googlegroups.com > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > If...Thens stand (and while at it also added a couple comments, and used > line continuation characters to break long lines): > > If mySlide.resp = 2 then ?' increase pie slice > ? ? ?If c.GetAttrib("CurrentPerc") < 100 then _ > ? ? ? ? ?c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > ? ? ? ? ?& ".bmp" > ? ? ?goto Label1 > ElseIf mySlide.resp = 1 then ?' decrease pie slice > ? ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > ? ? ? ? ?c.GetAttrib("CurrentPerc") - 1 > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > ? ? ? ? ?& ".bmp" > ? ? ?goto Label1 > End If > > Might also use a variable instead of an attribute reference for > CurrentPerc, thus, > > Dim ?currentPerc > If mySlide.resp = 2 then ?' increase pie slice > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > ElseIf mySlide.resp = 1 then ?' decrease pie slice > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > End If > > And to complete the exercise, let's use Select...Case: > > Dim ?currentPerc > Select Case mySlide.RESP > ? ?Case 2 ?' increase pie slice > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > ? ?Case 1 ?' decrease pie slice > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > End Select > > -- David McFarlane, Professional Faultfinder > > On 5 May 2010 Michiel Spape wrote: > > Hi, > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > If mySlide.resp = 2 then > > ? ?If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > ? ?goto Label1 > > end if > > If mySlide.resp = 1 then > > ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > ? ?goto Label1 > > end if > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > Best, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > Sent: 04 May 2010 20:14 > > To: E-Prime > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > Hello, > > > I'm trying to develop a behavioral choice task in which a participant > > will be able to increase or decrease a percentage of pie dependent > > upon the contingency of the experiment. I've attached the code that I > > was planning on using, which I took from the e-basic help file. There > > are a couple of lines that I plan on removing from the script such as > > the lines referencing "random" and "nCount". However, overall this is > > aesthetically what I want the program to look like. My question is; I > > want the participant to be able to increase and decrease the > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > lines of script, or references pertaining to, what I'd like to achieve > > within the design. Does anyone have any suggestions? > > > 'Create a Canvas > > Dim cnvs As Canvas > > 'Set cnvs as the current, onscreen canvas > > Set cnvs = Display.Canvas > > 'Declare variables used to set the size of the canvas > > Dim XRes As Integer, YRes As Integer > > 'Set the canvas size as the entire screen resolution > > XRes = Display.XRes > > YRes = Display.YRes > > > 'Declare and initialize variables to be used when drawing the sections > > of the circle > > Const nRadius As Integer = 100 > > Dim nStartAngle As Integer, nEndAngle As Integer > > Dim nCount As Integer > > > 'Initialize variables > > nStartAngle = 90 > > nEndAngle = 90 > > > 'Declare variables to be used to randomly select the delay value > > Dim nRandom As Integer > > Dim nDelay As Integer > > 'Select a random number to determine the value of the delay between > > the drawing of each section of the circle > > nRandom = Random (1, 2) > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > 'Otherwise, the nDelay value is set to 1000 ms. > > If nRandom = 1 Then > > nDelay = 500 > > Else > > nDelay = 1000 > > End If > > > 'Set color of pen for pie slice > > cnvs.PenColor = CColor("red") > > cnvs.FillColor = CColor("red") > > 'The For...Next statement repeats a block of statements a specified > > number of times > > 'incrementing a loop counter by a given increment each time through > > the loop > > 'In this sample, the nCount variable is incremented by one each time > > through the loop allowing ten pie slices to be drawn. > > > For nCount = 1 to 10 > > > 'Adjust startAngle to specify where to start each section of the > > circle each time a pie slice is drawn > > nStartAngle = nStartAngle - 36 > > 'Draw a pie slice with center point at x, y and radius r, starting at > > startAngle and drawing to endAngle. > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > 'Sleep before drawing next pie slice > > Sleep nDelay > > Next nCount > > 'Set fill color to white before clearing canvas > > cnvs.FillColor = CColor("white") > > 'Clear canvas > > cnvs.clear > > 'Set the value of the delay as an attribute in the data file > > > Thank you. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 5 16:25:46 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 5 May 2010 09:25:46 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <6bc85dcc-13ea-4f45-bf06-2d8d8d0f40dd@x40g2000yqd.googlegroups.com> Message-ID: oops, should have spell checked. just got a little too excited to get to work. On May 5, 11:23?am, Matt Paffel wrote: > wow, thanks a lot to the both of you! what a nice bit of information > to find upon arrivign to work thsi morning! > > On May 5, 11:00?am, Michiel Spape > wrote: > > > > > > > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > > If IsNumeric(mySlide.RESP) then > > ? ? ? ? If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > > ? ? ? ? currentPerc = currentPerc + cint(mySlide.RESP)-5 > > ? ? ? ? c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > ? ? ? ? goto Label1 > > End if > > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > > Best, > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > > Sent: 05 May 2010 15:14 > > To: e-prime at googlegroups.com > > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > > If...Thens stand (and while at it also added a couple comments, and used > > line continuation characters to break long lines): > > > If mySlide.resp = 2 then ?' increase pie slice > > ? ? ?If c.GetAttrib("CurrentPerc") < 100 then _ > > ? ? ? ? ?c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > ? ? ? ? ?& ".bmp" > > ? ? ?goto Label1 > > ElseIf mySlide.resp = 1 then ?' decrease pie slice > > ? ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > > ? ? ? ? ?c.GetAttrib("CurrentPerc") - 1 > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > ? ? ? ? ?& ".bmp" > > ? ? ?goto Label1 > > End If > > > Might also use a variable instead of an attribute reference for > > CurrentPerc, thus, > > > Dim ?currentPerc > > If mySlide.resp = 2 then ?' increase pie slice > > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > ? ? ?goto Label1 > > ElseIf mySlide.resp = 1 then ?' decrease pie slice > > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > ? ? ?goto Label1 > > End If > > > And to complete the exercise, let's use Select...Case: > > > Dim ?currentPerc > > Select Case mySlide.RESP > > ? ?Case 2 ?' increase pie slice > > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > ? ? ?goto Label1 > > ? ?Case 1 ?' decrease pie slice > > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > ? ? ?goto Label1 > > End Select > > > -- David McFarlane, Professional Faultfinder > > > On 5 May 2010 Michiel Spape wrote: > > > Hi, > > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > > If mySlide.resp = 2 then > > > ? ?If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > ? ?goto Label1 > > > end if > > > If mySlide.resp = 1 then > > > ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > ? ?goto Label1 > > > end if > > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > > Best, > > > Mich > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychology > > > > -----Original Message----- > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > > Sent: 04 May 2010 20:14 > > > To: E-Prime > > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > > Hello, > > > > I'm trying to develop a behavioral choice task in which a participant > > > will be able to increase or decrease a percentage of pie dependent > > > upon the contingency of the experiment. I've attached the code that I > > > was planning on using, which I took from the e-basic help file. There > > > are a couple of lines that I plan on removing from the script such as > > > the lines referencing "random" and "nCount". However, overall this is > > > aesthetically what I want the program to look like. My question is; I > > > want the participant to be able to increase and decrease the > > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > > lines of script, or references pertaining to, what I'd like to achieve > > > within the design. Does anyone have any suggestions? > > > > 'Create a Canvas > > > Dim cnvs As Canvas > > > 'Set cnvs as the current, onscreen canvas > > > Set cnvs = Display.Canvas > > > 'Declare variables used to set the size of the canvas > > > Dim XRes As Integer, YRes As Integer > > > 'Set the canvas size as the entire screen resolution > > > XRes = Display.XRes > > > YRes = Display.YRes > > > > 'Declare and initialize variables to be used when drawing the sections > > > of the circle > > > Const nRadius As Integer = 100 > > > Dim nStartAngle As Integer, nEndAngle As Integer > > > Dim nCount As Integer > > > > 'Initialize variables > > > nStartAngle = 90 > > > nEndAngle = 90 > > > > 'Declare variables to be used to randomly select the delay value > > > Dim nRandom As Integer > > > Dim nDelay As Integer > > > 'Select a random number to determine the value of the delay between > > > the drawing of each section of the circle > > > nRandom = Random (1, 2) > > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > > 'Otherwise, the nDelay value is set to 1000 ms. > > > If nRandom = 1 Then > > > nDelay = 500 > > > Else > > > nDelay = 1000 > > > End If > > > > 'Set color of pen for pie slice > > > cnvs.PenColor = CColor("red") > > > cnvs.FillColor = CColor("red") > > > 'The For...Next statement repeats a block of statements a specified > > > number of times > > > 'incrementing a loop counter by a given increment each time through > > > the loop > > > 'In this sample, the nCount variable is incremented by one each time > > > through the loop allowing ten pie slices to be drawn. > > > > For nCount = 1 to 10 > > > > 'Adjust startAngle to specify where to start each section of the > > > circle each time a pie slice is drawn > > > nStartAngle = nStartAngle - 36 > > > 'Draw a pie slice with center point at x, y and radius r, starting at > > > startAngle and drawing to endAngle. > > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > > 'Sleep before drawing next pie slice > > > Sleep nDelay > > > Next nCount > > > 'Set fill color to white before clearing canvas > > > cnvs.FillColor = CColor("white") > > > 'Clear canvas > > > cnvs.clear > > > 'Set the value of the delay as an attribute in the data file > > > > Thank you. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message has been checked for viruses but the contents of an attachment > > may still contain software viruses which could damage your computer system: > > you are advised to perform your own checks. Email communications with the > > University of Nottingham may be monitored as permitted by UK legislation. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.-Hide quoted text - > > > - Show quoted text - > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Thu May 6 09:17:11 2010 From: vera.donk at googlemail.com (Vera) Date: Thu, 6 May 2010 02:17:11 -0700 Subject: Read out certain levels only Message-ID: Dear forum members, I already got some very useful help here and as I am now running into a new problem with E-Prime, I will see if you can help me out (again). I did all my homework: yes I looked at the reference guide, getting started guide, all other documents concerning E-Prime, yes I combed through this forum, yes I combed through the PST-forum. :-) So here's the problem: I created a list of conditions (and all that has been working fine until now) and as we are moving on to another experimental setup, it is now very important that half of the conditions appear on one type of stimulus and the other half of conditions appear on another type of stimulus. To be more clear: On Trigger1 I want only a certain type of the 18 conditions I have to be executed. On Trigger2 I want the other 18 conditions (another type) to be executed. I know I could be able to do this over nested lists (probably), but it would take a lot of time too, as then "big surgery" has to be done on my program. ;-) So I figured that there should be some way to add a few lines of code, which tell E-Prime that it should only use a certain level in a certain condition. I wrote: If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then c.getAttrib("TriggerPos") = 1 ElseIf NewTriggerValue = 0 Then c.getAttrib("TriggerPos") = 0 End If TriggerPos = the type of trigger (1 or 0) which I added as an attribute in my designlist. When I try to execute, Eprime tells me "Can't Assign to Constant" Ok. But what do I need to add then in order to make it work? Basically I want Eprime in certain conditions only to use the levels that have "1" in the attribute "TriggerPos". I know that I am not very far from a solution. Any help would be very much appreciated. :-) Vera -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Thu May 6 12:31:26 2010 From: vera.donk at googlemail.com (Vera) Date: Thu, 6 May 2010 05:31:26 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: Ok, got a bit further (but it's still not working fine): I added this inline: If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") ElseIf NewTriggerValue = 0 Then Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") End If It's based on something David once wrote concerning counterbalancing (it would have been so much easier if E-Prime could just counterbalance for any attribute and not just Group, Subject and Session). I am actually hoping to tell E-Prime with this, that it needs to take any of the 18 levels which has either 1 or 0 in the TriggerPos attribute. It doesn't seem to work though. :-( E-Prime now only runs 1 trials (instead of 36). Any hints on that? Grrr, I know I am not very far from a solution... Greetings, Vera On May 6, 11:17?am, Vera wrote: > Dear forum members, > > I already got some very useful help here and as I am now running into > a new problem with E-Prime, I will see if you can help me out (again). > I did all my homework: yes I looked at the reference guide, getting > started guide, all other documents concerning E-Prime, yes I combed > through this forum, yes I combed through the PST-forum. :-) > > So here's the problem: > > I created a list of conditions (and all that has been working fine > until now) and as we are moving on to another experimental setup, it > is now very important that half of the conditions appear on one type > of stimulus and the other half of conditions appear on another type of > stimulus. > > To be more clear: > > On Trigger1 I want only a certain type of the 18 conditions I have to > be executed. > On Trigger2 I want the other 18 conditions (another type) to be > executed. > > I know I could be able to do this over nested lists (probably), but it > would take a lot of time too, as then "big surgery" has to be done on > my program. ;-) > > So I figured that there should be some way to add a few lines of code, > which tell E-Prime that it should only use a certain level in a > certain condition. > > I wrote: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > ? ? ? ? c.getAttrib("TriggerPos") = 1 > ElseIf NewTriggerValue = 0 Then > ? ? ? ? c.getAttrib("TriggerPos") = 0 > End If > > TriggerPos = the type of trigger (1 or 0) which I added as an > attribute in my designlist. > When I try to execute, Eprime tells me "Can't Assign to Constant" > > Ok. But what do I need to add then in order to make it work? Basically > I want Eprime in certain conditions only to use the levels that have > "1" in the attribute "TriggerPos". > > I know that I am not very far from a solution. Any help would be very > much appreciated. :-) > > Vera > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From jesslawlor at gmail.com Thu May 6 21:34:46 2010 From: jesslawlor at gmail.com (JL) Date: Thu, 6 May 2010 14:34:46 -0700 Subject: Fixed Order of Pictures Message-ID: Hi there, I'm new to E-Prime and finding it a little tricky. I'm wondering is it possible to make a level whereby four pictures are presented and they must be clicked on in a certain fixed order? So for example if the fixed order is pic1, pic 2, pic3, pic 4 and the subject clicks pic 1,3,2,4 then for the clicks that were correct a certain sound and animation will occur to let the person know and for the ones that were wrong another sound and animation will occur. And then I'd like to be able to compare what the subject clicked to what they were supposed to click? Sorry this is very long winded, any help would be much appreciated! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 07:24:03 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 00:24:03 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: Ok guys, just to let you know that I am really trying here, a small update: Yesterday I tried to solve this problem with nested lists (knowing that nested lists very quickly get very complicated and taking into account that Michiel pointed out in his E-Prime doc that the random doesn't seem to be completely "trustable") but the problem is that I get to the same thing: I would basically have two lines, 1 pointing to the condition for trigger 1 and another one pointing to trigger 2. But then, how to access this line?? I need to figure out some way to tell E-Prime: If trigger 1 then PLEASE take only line 1 (Or in the old solution, which I very much preferred, because it was much cleaner - nested lists do have a high "sudoku-effect"): If trigger 1 PLEASE take any of the lines for which attribute.trigger1 = 1 Down to the beginning again, I don't know how to solve this. :-( Any ideas are very welcome. :-) Greetings, Vera On May 6, 2:31?pm, Vera wrote: > Ok, got a bit further (but it's still not working fine): > > I added this inline: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > ElseIf NewTriggerValue = 0 Then > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > End If > > It's based on something David once wrote concerning counterbalancing > (it would have been so much easier if E-Prime could just > counterbalance for any attribute and not just Group, Subject and > Session). I am actually hoping to tell E-Prime with this, that it > needs to take any of the 18 levels which has either 1 or 0 in the > TriggerPos attribute. It doesn't seem to work though. :-( > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > Grrr, I know I am not very far from a solution... > > Greetings, Vera > > On May 6, 11:17?am, Vera wrote: > > > > > Dear forum members, > > > I already got some very useful help here and as I am now running into > > a new problem with E-Prime, I will see if you can help me out (again). > > I did all my homework: yes I looked at the reference guide, getting > > started guide, all other documents concerning E-Prime, yes I combed > > through this forum, yes I combed through the PST-forum. :-) > > > So here's the problem: > > > I created a list of conditions (and all that has been working fine > > until now) and as we are moving on to another experimental setup, it > > is now very important that half of the conditions appear on one type > > of stimulus and the other half of conditions appear on another type of > > stimulus. > > > To be more clear: > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > be executed. > > On Trigger2 I want the other 18 conditions (another type) to be > > executed. > > > I know I could be able to do this over nested lists (probably), but it > > would take a lot of time too, as then "big surgery" has to be done on > > my program. ;-) > > > So I figured that there should be some way to add a few lines of code, > > which tell E-Prime that it should only use a certain level in a > > certain condition. > > > I wrote: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > ElseIf NewTriggerValue = 0 Then > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > End If > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > attribute in my designlist. > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > Ok. But what do I need to add then in order to make it work? Basically > > I want Eprime in certain conditions only to use the levels that have > > "1" in the attribute "TriggerPos". > > > I know that I am not very far from a solution. Any help would be very > > much appreciated. :-) > > > Vera > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ll356 at medschl.cam.ac.uk Fri May 7 10:18:22 2010 From: ll356 at medschl.cam.ac.uk (River) Date: Fri, 7 May 2010 03:18:22 -0700 Subject: Multiple responses and Accuracy logging Message-ID: Hi all, I couldn't find any info about this anywhere (probably I've just missed it) but thought I'd put it out there in case anyone else was having the same problem. FYI when you set up your experiment to collect multiple responses (e.g. multiple key presses during a trial) the RT and RTTime are logged for the last response. HOWEVER this is not true for accuracy. If multiple responses have been made during a trial these will all be logged in the RESP column (e.g. 1134) and will be compared to what you list as the correct response to that trial. Typically the experimenter specified correct response is a single key press, therefore if multiple responses have been made, regardless of whether or not the last response made was the correct response, accuracy will be logged as 0. The script for collecting the individual details for multiple responses during a trial (RT, RTTime, accuracy) is on the PST site, under the samples tab. If you want EPrime to look at all the responses made during a trial and see if the correct answer was made at any point and what the RT, RTTime details were for it try using this script (i plugged it in at the end of the inline for the multiple response collection in my experiment and it seems to work like a charm)...obviously change the relevant bits: Dim CorBool as Boolean CorBool = False 'Set OverallAcc if any of the responses matches the correct response For nIndex2 = 1 to nPressCount2 If CorBool = True Then Exit For End If If c.GetAttrib("TrialPress" & nIndex2 & "RESP") = c.GetAttrib("CorrectAnswer") Then c.SetAttrib "OverallAcc", "1" If CorBool = False Then CorBool = True c.SetAttrib "CorrectAnswerRT", c.GetAttrib("TrialPress" & nIndex2 & "RT") c.SetAttrib "CorrectAnswerRTTime", c.GetAttrib("TrialPress" & nIndex2 & "RTTime") End If Else c.SetAttrib "OverallAcc", "0" End If Next nIndex2 You should have 3 new columns in your data file called 'OverallAcc', CorrectAnswerRT and CorrectAnswerRTTime. The script will have looked at all the responses made during a trial and decided in a correct answer was made and if so the RT and RTTime of the first occurrence of that correct answer. NB. TrialPress is an experimenter created variable that was created in the multiple response inline. Hope this is of use! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Fri May 7 10:25:10 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Fri, 7 May 2010 11:25:10 +0100 Subject: Read out certain levels only In-Reply-To: <19be108d-3ee7-4140-8cfc-2e0b677ceb92@24g2000yqy.googlegroups.com> Message-ID: Hi Vera & Group, I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? Lacking a clear idea on what exactly it is you want, I can help with certain specifics: "If trigger 1 then PLEASE take only line 1" ... You mean, of a list, right? This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? For nLevel = 1 To List1.Size If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 Next 'nLevel List1.Reset You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). Hope any of this helps (I might be way off in understanding your problem), Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera Sent: 07 May 2010 08:24 To: E-Prime Subject: Re: Read out certain levels only Ok guys, just to let you know that I am really trying here, a small update: Yesterday I tried to solve this problem with nested lists (knowing that nested lists very quickly get very complicated and taking into account that Michiel pointed out in his E-Prime doc that the random doesn't seem to be completely "trustable") but the problem is that I get to the same thing: I would basically have two lines, 1 pointing to the condition for trigger 1 and another one pointing to trigger 2. But then, how to access this line?? I need to figure out some way to tell E-Prime: If trigger 1 then PLEASE take only line 1 (Or in the old solution, which I very much preferred, because it was much cleaner - nested lists do have a high "sudoku-effect"): If trigger 1 PLEASE take any of the lines for which attribute.trigger1 = 1 Down to the beginning again, I don't know how to solve this. :-( Any ideas are very welcome. :-) Greetings, Vera On May 6, 2:31?pm, Vera wrote: > Ok, got a bit further (but it's still not working fine): > > I added this inline: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > ElseIf NewTriggerValue = 0 Then > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > End If > > It's based on something David once wrote concerning counterbalancing > (it would have been so much easier if E-Prime could just > counterbalance for any attribute and not just Group, Subject and > Session). I am actually hoping to tell E-Prime with this, that it > needs to take any of the 18 levels which has either 1 or 0 in the > TriggerPos attribute. It doesn't seem to work though. :-( > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > Grrr, I know I am not very far from a solution... > > Greetings, Vera > > On May 6, 11:17?am, Vera wrote: > > > > > Dear forum members, > > > I already got some very useful help here and as I am now running into > > a new problem with E-Prime, I will see if you can help me out (again). > > I did all my homework: yes I looked at the reference guide, getting > > started guide, all other documents concerning E-Prime, yes I combed > > through this forum, yes I combed through the PST-forum. :-) > > > So here's the problem: > > > I created a list of conditions (and all that has been working fine > > until now) and as we are moving on to another experimental setup, it > > is now very important that half of the conditions appear on one type > > of stimulus and the other half of conditions appear on another type of > > stimulus. > > > To be more clear: > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > be executed. > > On Trigger2 I want the other 18 conditions (another type) to be > > executed. > > > I know I could be able to do this over nested lists (probably), but it > > would take a lot of time too, as then "big surgery" has to be done on > > my program. ;-) > > > So I figured that there should be some way to add a few lines of code, > > which tell E-Prime that it should only use a certain level in a > > certain condition. > > > I wrote: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > ElseIf NewTriggerValue = 0 Then > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > End If > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > attribute in my designlist. > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > Ok. But what do I need to add then in order to make it work? Basically > > I want Eprime in certain conditions only to use the levels that have > > "1" in the attribute "TriggerPos". > > > I know that I am not very far from a solution. Any help would be very > > much appreciated. :-) > > > Vera > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Fri May 7 10:59:09 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Fri, 7 May 2010 11:59:09 +0100 Subject: Fixed Order of Pictures In-Reply-To: Message-ID: Hiya, Long-winded? How long do you suppose any answer would be to this question :) No, seriously, if you have gone through the tutorial, and maybe even our little guide, you might understand that what you are asking is indeed a little tricky on a number of levels: 1. Four pictures, dumped in a slide, but: clicking on them (oomph). There's an example in the e-prime online help thing where they have this hit-test for mouse-clicking operations. I'm sure it's here somewhere in this mailinglist as well, certainly discussed a few times. Just make sure you save the response. 2. Four clicks, not one, is most easily achieved (I say), by having four slides (with four hit-tests); just make copies of them by control+dragging them. 3. Four responses... If you have one attribute, say "CorrectResponse", and four responses to slides pic1 pic2 pic3 pic4, you could just do something like: c.SetAttrib "Y_Resp", pic1.Resp & pic2.Resp & pic3.Resp & pic4.Resp. if c.GetAttrib ("Y_Resp") = c.GetAttrib ("CorrectResponse") then c.SetAttrib "Y_ACC", 1 else c.SetAttrib "Y_ACC", 0 4. But of course, you want more than that, compare each response individually. Of course, you could just have four correct responses and 4 responses, so I suppose you'd end up with four "Y_resp"s (Y_resp1...4) and four "CorrResps" (CorrResp1..4). 5. Assuming you don't want to go for animations (in which case I'd suggest abandoning E-Prime altogether, because your whole thing is MUCH more easily achieved in Flash to begin with), you might do something like: Dim I as integer For I = 1 to 4 If c.GetAttrib ("Y_Resp" & cstr(i)) = c.GetAttrib("CorrResp" & cstr(i)) then SoundWRONG.play else SoundRIGHT.play Next I ... that is, assuming you have made two soundbuffers (SoundWrong and SoundRight), but this is pretty well documented in the ebasic help. Best, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of JL Sent: 06 May 2010 22:35 To: E-Prime Subject: Fixed Order of Pictures Hi there, I'm new to E-Prime and finding it a little tricky. I'm wondering is it possible to make a level whereby four pictures are presented and they must be clicked on in a certain fixed order? So for example if the fixed order is pic1, pic 2, pic3, pic 4 and the subject clicks pic 1,3,2,4 then for the clicks that were correct a certain sound and animation will occur to let the person know and for the ones that were wrong another sound and animation will occur. And then I'd like to be able to compare what the subject clicked to what they were supposed to click? Sorry this is very long winded, any help would be much appreciated! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From a.schueppert at rug.nl Fri May 7 11:05:59 2010 From: a.schueppert at rug.nl (anja) Date: Fri, 7 May 2010 04:05:59 -0700 Subject: change response language In-Reply-To: <130cbdf4-e6c4-400f-97e2-95ffed71d455@k41g2000yqb.googlegroups.com> Message-ID: Hi Anne, thanks for your answer. Yes, later on I found the thread opened by Yoed, so I started my ERP-recordings asking participants to replace ?, ? and ? by other letters. This is definitely a shortcoming! And yes, I used surveymonkey for my participants - but to fill in their questionnaire in advance. I'm afraid that recording ERPs wouldn't work very well with surveymonkey ;) Best wishes, Anja > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 11:07:24 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 04:07:24 -0700 Subject: Read out certain levels only In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF170@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Michiel, I am going to see what your solution can do (it seems to be pointing in "some direction" at least, which is way better than the "no- direction" I am having right now. ;-) But for the moment, I just copy you what I wrote in the PSTNET-Forum this morning (and in which I maybe have been clearer): I am trying to read out an attribute (ok, GetAttrib solves this) but then I would like to tell E-Prime that in certain conditions, it should only use the levels (lines) in the list that correspond to certain values of this attribute. Let's say I have 20 lines in my list. 10 lines for which the attribute "Trigger" has the value 1 and 10 other lines for which the value of the attribute "Trigger" is 2. I would like to tell E-Prime that on a certain trigger (coming in over the Parallel Port) it should only use trials (lines) for which the Attribute "Trigger" corresponds to a certain value. So, something like: If Trigger 1, then only use any of the 10 lines for which Attribute.Trigger = 1 (I know this syntax is wrong, it's just to make you understand). If Trigger is 2, then only use any of the 10 lines for which Attribute.Trigger = 2. See what I mean? Greetings, Vera On May 7, 12:25?pm, Michiel Spape wrote: > Hi Vera & Group, > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > "If trigger 1 then PLEASE take only line 1" > ... > You mean, of a list, right? > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size > ? ? ? ? If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > Hope any of this helps (I might be way off in understanding your problem), > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > Sent: 07 May 2010 08:24 > To: E-Prime > Subject: Re: Read out certain levels only > > Ok guys, just to let you know that I am really trying here, a small > update: > > Yesterday I tried to solve this problem with nested lists (knowing > that nested lists very quickly get very complicated and taking into > account that Michiel pointed out in his E-Prime doc that the random > doesn't seem to be completely "trustable") but the problem is that I > get to the same thing: I would basically have two lines, 1 pointing to > the condition for trigger 1 and another one pointing to trigger 2. But > then, how to access this line?? > I need to figure out some way to tell E-Prime: > > If trigger 1 then PLEASE take only line 1 > > (Or in the old solution, which I very much preferred, because it was > much cleaner - nested lists do have a high "sudoku-effect"): > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > = 1 > > Down to the beginning again, I don't know how to solve this. :-( Any > ideas are very welcome. :-) > > Greetings, Vera > > On May 6, 2:31?pm, Vera wrote: > > Ok, got a bit further (but it's still not working fine): > > > I added this inline: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > ElseIf NewTriggerValue = 0 Then > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > End If > > > It's based on something David once wrote concerning counterbalancing > > (it would have been so much easier if E-Prime could just > > counterbalance for any attribute and not just Group, Subject and > > Session). I am actually hoping to tell E-Prime with this, that it > > needs to take any of the 18 levels which has either 1 or 0 in the > > TriggerPos attribute. It doesn't seem to work though. :-( > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > Grrr, I know I am not very far from a solution... > > > Greetings, Vera > > > On May 6, 11:17?am, Vera wrote: > > > > Dear forum members, > > > > I already got some very useful help here and as I am now running into > > > a new problem with E-Prime, I will see if you can help me out (again). > > > I did all my homework: yes I looked at the reference guide, getting > > > started guide, all other documents concerning E-Prime, yes I combed > > > through this forum, yes I combed through the PST-forum. :-) > > > > So here's the problem: > > > > I created a list of conditions (and all that has been working fine > > > until now) and as we are moving on to another experimental setup, it > > > is now very important that half of the conditions appear on one type > > > of stimulus and the other half of conditions appear on another type of > > > stimulus. > > > > To be more clear: > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > be executed. > > > On Trigger2 I want the other 18 conditions (another type) to be > > > executed. > > > > I know I could be able to do this over nested lists (probably), but it > > > would take a lot of time too, as then "big surgery" has to be done on > > > my program. ;-) > > > > So I figured that there should be some way to add a few lines of code, > > > which tell E-Prime that it should only use a certain level in a > > > certain condition. > > > > I wrote: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > > ElseIf NewTriggerValue = 0 Then > > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > > End If > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > attribute in my designlist. > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > Ok. But what do I need to add then in order to make it work? Basically > > > I want Eprime in certain conditions only to use the levels that have > > > "1" in the attribute "TriggerPos". > > > > I know that I am not very far from a solution. Any help would be very > > > much appreciated. :-) > > > > Vera > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 11:42:14 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 04:42:14 -0700 Subject: Read out certain levels only In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF170@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Ok, I now had a closer look at your solution (I wasn't on the right PC before, with the USB-stick-licence it's kind of a hassle sometimes, making a lot of kms in the institute! ;-) ) and I think I might try something with your solution. So to get back at your question: "If trigger 1 then PLEASE take only line 1" ... "You mean, of a list, right?" Yes, I mean of a list (so a level of a list). Of course I simplified the whole a bit, pretending that I had only two levels in my list and two triggers. In reality I have 20 lines and two triggers (so the list kind of gets separated into two). :-) So basically what I want to do is "If trigger = 1 then take any of the lines for which attribute.trigger = 1" (any of 10 in a random manner) Oh and then don't worry about TMS, it's already all working fine. :-) I am getting the triggers and all, E-Prime just doesn't know what to do with them for the moment (ok if I am more precise: E-Prime knows what to do with the triggers, but I can't control the conditions, making sure that the design is completely perfectly counterbalanced over the two conditions). :-) I am going back to my experimental setup again, seeing what I can do with your solution in mind. I definitely should get internet there, but that's the hassle with experimental computers: you want to keep them clean from anything that might slow them such as anti-virus and stuff. :-| But feel free to reply if you came up with another idea, I will check for input anyway. :-) Greetings, Vera On May 7, 12:25?pm, Michiel Spape wrote: > Hi Vera & Group, > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > "If trigger 1 then PLEASE take only line 1" > ... > You mean, of a list, right? > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size > ? ? ? ? If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > Hope any of this helps (I might be way off in understanding your problem), > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > Sent: 07 May 2010 08:24 > To: E-Prime > Subject: Re: Read out certain levels only > > Ok guys, just to let you know that I am really trying here, a small > update: > > Yesterday I tried to solve this problem with nested lists (knowing > that nested lists very quickly get very complicated and taking into > account that Michiel pointed out in his E-Prime doc that the random > doesn't seem to be completely "trustable") but the problem is that I > get to the same thing: I would basically have two lines, 1 pointing to > the condition for trigger 1 and another one pointing to trigger 2. But > then, how to access this line?? > I need to figure out some way to tell E-Prime: > > If trigger 1 then PLEASE take only line 1 > > (Or in the old solution, which I very much preferred, because it was > much cleaner - nested lists do have a high "sudoku-effect"): > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > = 1 > > Down to the beginning again, I don't know how to solve this. :-( Any > ideas are very welcome. :-) > > Greetings, Vera > > On May 6, 2:31?pm, Vera wrote: > > Ok, got a bit further (but it's still not working fine): > > > I added this inline: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > ElseIf NewTriggerValue = 0 Then > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > End If > > > It's based on something David once wrote concerning counterbalancing > > (it would have been so much easier if E-Prime could just > > counterbalance for any attribute and not just Group, Subject and > > Session). I am actually hoping to tell E-Prime with this, that it > > needs to take any of the 18 levels which has either 1 or 0 in the > > TriggerPos attribute. It doesn't seem to work though. :-( > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > Grrr, I know I am not very far from a solution... > > > Greetings, Vera > > > On May 6, 11:17?am, Vera wrote: > > > > Dear forum members, > > > > I already got some very useful help here and as I am now running into > > > a new problem with E-Prime, I will see if you can help me out (again). > > > I did all my homework: yes I looked at the reference guide, getting > > > started guide, all other documents concerning E-Prime, yes I combed > > > through this forum, yes I combed through the PST-forum. :-) > > > > So here's the problem: > > > > I created a list of conditions (and all that has been working fine > > > until now) and as we are moving on to another experimental setup, it > > > is now very important that half of the conditions appear on one type > > > of stimulus and the other half of conditions appear on another type of > > > stimulus. > > > > To be more clear: > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > be executed. > > > On Trigger2 I want the other 18 conditions (another type) to be > > > executed. > > > > I know I could be able to do this over nested lists (probably), but it > > > would take a lot of time too, as then "big surgery" has to be done on > > > my program. ;-) > > > > So I figured that there should be some way to add a few lines of code, > > > which tell E-Prime that it should only use a certain level in a > > > certain condition. > > > > I wrote: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > > ElseIf NewTriggerValue = 0 Then > > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > > End If > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > attribute in my designlist. > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > Ok. But what do I need to add then in order to make it work? Basically > > > I want Eprime in certain conditions only to use the levels that have > > > "1" in the attribute "TriggerPos". > > > > I know that I am not very far from a solution. Any help would be very > > > much appreciated. :-) > > > > Vera > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liwenna at gmail.com Fri May 7 12:18:28 2010 From: liwenna at gmail.com (liwenna) Date: Fri, 7 May 2010 05:18:28 -0700 Subject: change response language In-Reply-To: <2d15a5cf-28d5-4f60-89ac-68088ad02d4e@j33g2000yqn.googlegroups.com> Message-ID: *grin* No I suppose not ^.^ I agree that it is a shortcoming. You could consider filing your problem with PST so that at least they know that you've experienced this as a shortcoming. Best of luck of with your tests! Groet, AW On May 7, 1:05 pm, anja wrote: > Hi Anne, > > thanks for your answer. Yes, later on I found the thread opened by > Yoed, so I started my ERP-recordings asking participants to replace ?, > ? and ? by other letters. This is definitely a shortcoming! > And yes, I used surveymonkey for my participants - but to fill in > their questionnaire in advance. I'm afraid that recording ERPs > wouldn't work very well with surveymonkey ;) > > Best wishes, > Anja > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Fri May 7 13:58:49 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Fri, 7 May 2010 14:58:49 +0100 Subject: Read out certain levels only In-Reply-To: Message-ID: Hi Vera & List, If I understand it correctly, you might be able to do something like this much the same way I explained earlier: I wrote earlier: > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size > If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset Now, let's say you want only Level X, based on an attribute which gives you X: > Dim nLevel As Integer > For nLevel = 1 To List1.Size > If nLevel = c.GetAttrib("YourXAttribute") then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset You could, of course, also speed through your trial (never showing anything by just skipping over the entire trial, if the current trial is not exactly what you want) - but perhaps that will be difficult to do in a controllable/balanced manner. "Let's say I have 20 lines in my list. 10 lines for which the attribute "Trigger" has the value 1 and 10 other lines for which the value of the attribute "Trigger" is 2. I would like to tell E-Prime that on a certain trigger (coming in over the Parallel Port) it should only use trials (lines) for which the Attribute "Trigger" corresponds to a certain value." ... to do that, you can simply add checks to see whether certain levels need to be set to 0 weight: (see help on Factor.GetAttrib level, AttributeName) Dim nLevel As Integer 'What trigger? If myTrigger = 1 then For nLevel = 1 To List1.Size If List1.GetAttrib(nLevel, "YourXAttribute") = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 Next 'nLevel else For nLevel = 1 To List1.Size If List1.GetAttrib(nLevel, "YourXAttribute") = 2 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 Next 'nLevel End if List1.Reset Hope that helps! And sorry in advance for any mistakes and/or sloppy programming advice (trying to finish stuff before weekend - I'm sure I'm not alone at that) Cheers, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera Sent: 07 May 2010 12:07 To: E-Prime Subject: Re: Read out certain levels only Michiel, I am going to see what your solution can do (it seems to be pointing in "some direction" at least, which is way better than the "no- direction" I am having right now. ;-) But for the moment, I just copy you what I wrote in the PSTNET-Forum this morning (and in which I maybe have been clearer): I am trying to read out an attribute (ok, GetAttrib solves this) but then I would like to tell E-Prime that in certain conditions, it should only use the levels (lines) in the list that correspond to certain values of this attribute. Let's say I have 20 lines in my list. 10 lines for which the attribute "Trigger" has the value 1 and 10 other lines for which the value of the attribute "Trigger" is 2. I would like to tell E-Prime that on a certain trigger (coming in over the Parallel Port) it should only use trials (lines) for which the Attribute "Trigger" corresponds to a certain value. So, something like: If Trigger 1, then only use any of the 10 lines for which Attribute.Trigger = 1 (I know this syntax is wrong, it's just to make you understand). If Trigger is 2, then only use any of the 10 lines for which Attribute.Trigger = 2. See what I mean? Greetings, Vera On May 7, 12:25?pm, Michiel Spape wrote: > Hi Vera & Group, > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > "If trigger 1 then PLEASE take only line 1" > ... > You mean, of a list, right? > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > For nLevel = 1 To List1.Size > ? ? ? ? If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > Next 'nLevel > List1.Reset > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > Hope any of this helps (I might be way off in understanding your problem), > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > Sent: 07 May 2010 08:24 > To: E-Prime > Subject: Re: Read out certain levels only > > Ok guys, just to let you know that I am really trying here, a small > update: > > Yesterday I tried to solve this problem with nested lists (knowing > that nested lists very quickly get very complicated and taking into > account that Michiel pointed out in his E-Prime doc that the random > doesn't seem to be completely "trustable") but the problem is that I > get to the same thing: I would basically have two lines, 1 pointing to > the condition for trigger 1 and another one pointing to trigger 2. But > then, how to access this line?? > I need to figure out some way to tell E-Prime: > > If trigger 1 then PLEASE take only line 1 > > (Or in the old solution, which I very much preferred, because it was > much cleaner - nested lists do have a high "sudoku-effect"): > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > = 1 > > Down to the beginning again, I don't know how to solve this. :-( Any > ideas are very welcome. :-) > > Greetings, Vera > > On May 6, 2:31?pm, Vera wrote: > > Ok, got a bit further (but it's still not working fine): > > > I added this inline: > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > ElseIf NewTriggerValue = 0 Then > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > End If > > > It's based on something David once wrote concerning counterbalancing > > (it would have been so much easier if E-Prime could just > > counterbalance for any attribute and not just Group, Subject and > > Session). I am actually hoping to tell E-Prime with this, that it > > needs to take any of the 18 levels which has either 1 or 0 in the > > TriggerPos attribute. It doesn't seem to work though. :-( > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > Grrr, I know I am not very far from a solution... > > > Greetings, Vera > > > On May 6, 11:17?am, Vera wrote: > > > > Dear forum members, > > > > I already got some very useful help here and as I am now running into > > > a new problem with E-Prime, I will see if you can help me out (again). > > > I did all my homework: yes I looked at the reference guide, getting > > > started guide, all other documents concerning E-Prime, yes I combed > > > through this forum, yes I combed through the PST-forum. :-) > > > > So here's the problem: > > > > I created a list of conditions (and all that has been working fine > > > until now) and as we are moving on to another experimental setup, it > > > is now very important that half of the conditions appear on one type > > > of stimulus and the other half of conditions appear on another type of > > > stimulus. > > > > To be more clear: > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > be executed. > > > On Trigger2 I want the other 18 conditions (another type) to be > > > executed. > > > > I know I could be able to do this over nested lists (probably), but it > > > would take a lot of time too, as then "big surgery" has to be done on > > > my program. ;-) > > > > So I figured that there should be some way to add a few lines of code, > > > which tell E-Prime that it should only use a certain level in a > > > certain condition. > > > > I wrote: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > > ElseIf NewTriggerValue = 0 Then > > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > > End If > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > attribute in my designlist. > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > Ok. But what do I need to add then in order to make it work? Basically > > > I want Eprime in certain conditions only to use the levels that have > > > "1" in the attribute "TriggerPos". > > > > I know that I am not very far from a solution. Any help would be very > > > much appreciated. :-) > > > > Vera > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 15:05:00 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 08:05:00 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: Ok, found a way to be at the experimental setup AND have internet (whew!!!). ;-) So the thing I did was: If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then For nLevel = 1 to DesignList.Size If c.GetAttrib("Trigger") = "1" Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel ElseIf NewTriggerValue = 0 Then For nLevel = 1 to DesignList.Size If c.GetAttrib("Trigger") = "0" Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel End If And now that I could finally connect, I see that you proposed me the same thing. :-) And the best thing: it works!!!! Checked the database with E-DataAid and it's all perfectly balanced. :-) Thanks a lot for giving me the idea! Have a great weekend! Vera On 7 Mai, 13:42, Vera wrote: > Ok, I now had a closer look at your solution (I wasn't on the right PC > before, with the USB-stick-licence it's kind of a hassle sometimes, > making a lot of kms in the institute! ;-) ) and I think I might try > something with your solution. > > So to get back at your question: > > "If trigger 1 then PLEASE take only line 1" > ... > "You mean, of a list, right?" > > Yes, I mean of a list (so a level of a list). Of course I simplified > the whole a bit, pretending that I had only two levels in my list and > two triggers. In reality I have 20 lines and two triggers (so the list > kind of gets separated into two). :-) > > So basically what I want to do is > "If trigger = 1 then take any of the lines for which attribute.trigger > = 1" (any of 10 in a random manner) > > Oh and then don't worry about TMS, it's already all working fine. :-) > I am getting the triggers and all, E-Prime just doesn't know what to > do with them for the moment (ok if I am more precise: E-Prime knows > what to do with the triggers, but I can't control the conditions, > making sure that the design is completely perfectly counterbalanced > over the two conditions). :-) > > I am going back to my experimental setup again, seeing what I can do > with your solution in mind. I definitely should get internet there, > but that's the hassle with experimental computers: you want to keep > them clean from anything that might slow them such as anti-virus and > stuff. :-| But feel free to reply if you came up with another idea, I > will check for input anyway. :-) > > Greetings, Vera > > On May 7, 12:25?pm, Michiel Spape > wrote: > > > > > Hi Vera & Group, > > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > > "If trigger 1 then PLEASE take only line 1" > > ... > > You mean, of a list, right? > > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > > For nLevel = 1 To List1.Size > > ? ? ? ? If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > Next 'nLevel > > List1.Reset > > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > > Hope any of this helps (I might be way off in understanding your problem), > > Mich > > > Michiel Spap? > > Research Fellow > > Perception & Action group > > University of Nottingham > > School of Psychology > > > -----Original Message----- > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > > Sent: 07 May 2010 08:24 > > To: E-Prime > > Subject: Re: Read out certain levels only > > > Ok guys, just to let you know that I am really trying here, a small > > update: > > > Yesterday I tried to solve this problem with nested lists (knowing > > that nested lists very quickly get very complicated and taking into > > account that Michiel pointed out in his E-Prime doc that the random > > doesn't seem to be completely "trustable") but the problem is that I > > get to the same thing: I would basically have two lines, 1 pointing to > > the condition for trigger 1 and another one pointing to trigger 2. But > > then, how to access this line?? > > I need to figure out some way to tell E-Prime: > > > If trigger 1 then PLEASE take only line 1 > > > (Or in the old solution, which I very much preferred, because it was > > much cleaner - nested lists do have a high "sudoku-effect"): > > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > > = 1 > > > Down to the beginning again, I don't know how to solve this. :-( Any > > ideas are very welcome. :-) > > > Greetings, Vera > > > On May 6, 2:31?pm, Vera wrote: > > > Ok, got a bit further (but it's still not working fine): > > > > I added this inline: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > > ElseIf NewTriggerValue = 0 Then > > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > > End If > > > > It's based on something David once wrote concerning counterbalancing > > > (it would have been so much easier if E-Prime could just > > > counterbalance for any attribute and not just Group, Subject and > > > Session). I am actually hoping to tell E-Prime with this, that it > > > needs to take any of the 18 levels which has either 1 or 0 in the > > > TriggerPos attribute. It doesn't seem to work though. :-( > > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > > Grrr, I know I am not very far from a solution... > > > > Greetings, Vera > > > > On May 6, 11:17?am, Vera wrote: > > > > > Dear forum members, > > > > > I already got some very useful help here and as I am now running into > > > > a new problem with E-Prime, I will see if you can help me out (again). > > > > I did all my homework: yes I looked at the reference guide, getting > > > > started guide, all other documents concerning E-Prime, yes I combed > > > > through this forum, yes I combed through the PST-forum. :-) > > > > > So here's the problem: > > > > > I created a list of conditions (and all that has been working fine > > > > until now) and as we are moving on to another experimental setup, it > > > > is now very important that half of the conditions appear on one type > > > > of stimulus and the other half of conditions appear on another type of > > > > stimulus. > > > > > To be more clear: > > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > > be executed. > > > > On Trigger2 I want the other 18 conditions (another type) to be > > > > executed. > > > > > I know I could be able to do this over nested lists (probably), but it > > > > would take a lot of time too, as then "big surgery" has to be done on > > > > my program. ;-) > > > > > So I figured that there should be some way to add a few lines of code, > > > > which tell E-Prime that it should only use a certain level in a > > > > certain condition. > > > > > I wrote: > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > > > ElseIf NewTriggerValue = 0 Then > > > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > > > End If > > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > > attribute in my designlist. > > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > > Ok. But what do I need to add then in order to make it work? Basically > > > > I want Eprime in certain conditions only to use the levels that have > > > > "1" in the attribute "TriggerPos". > > > > > I know that I am not very far from a solution. Any help would be very > > > > much appreciated. :-) > > > > > Vera > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > This message has been checked for viruses but the contents of an attachment > > may still contain software viruses which could damage your computer system: > > you are advised to perform your own checks. Email communications with the > > University of Nottingham may be monitored as permitted by UK legislation. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From litlinglarc at gmail.com Fri May 7 15:48:06 2010 From: litlinglarc at gmail.com (litling) Date: Fri, 7 May 2010 08:48:06 -0700 Subject: Error Number: 101 Message-ID: While attempting to run our study today we received this message: Internal error buffer size issue. Error Number: 101 The error seems to be connected with this: SoundOut1SoundBuffer.Load (This was originally programmed in E-Prime 1 but converted to 2.) I've looked at the one posting that mentions this error and tried what was suggested but continued to have the problem. We are using E-Run 2.0 (Runtime 2.0.8.74). The program works fine on our computers that have only E-Run installed but we are trying to run a study off site using their computers. The computers on both sites are running Windows XP and have the same version of E-Run installed. Could their be a some configuration of the environment of the off site computers that is causing the problem? Some application that needs to be updated? Something in the E-Prime file that needs to be adjusted? Any suggestions would be great. Thank you. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Fri May 7 16:16:15 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 7 May 2010 12:16:15 -0400 Subject: Error Number: 101 In-Reply-To: <4aae3b84-a0c6-438a-8a8d-87ae68067474@q30g2000yqd.googlegro ups.com> Message-ID: We experienced the same error messsage in one lab here, diagnosed it, found a workaround for the lab, and reported this to PST Web Support. Following is that report, verbatim (and as mentioned there, if you had simply searched the Google Group or the PST Forum with a term like "buffer size" then you would have found where I already posted this at http://groups.google.com/group/e-prime/browse_thread/thread/6a8302d0bdf90dd1 ). You should add your own report to PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp. /*** Our first lab updated to EP2.0.8.73 from EP2.9.8.22, and immediately ran into a problem, but it is not critical so I report this as "Info" rather than "Bug". In short, it seems that EP2.0.8.73 reduced the maximum limit on sound Buffer Size. Details... User had programs that ran fine in EP2.0.8.22, but at run time in EP2.9.8.73 got the error message, "Internal error buffer size issue", error #101. This occured in the InitObjects subroutine as it tried to execute Feedback.LoadProperties. For debugging, we deleted Feedback, and then the error just moved to SoundOut1.LoadProperties, etc. Turns out that Feedback also included a SoundOut sub-object. Looking further, these sound objects all had Buffer Size set to 50000 or 60000 (experiment program originally developed in EP1, as you have guessed by now). Setting Buffer Mode to Streaming and Buffer Size back to the default of 5000 cured the problem, which is how things should be set in EP2 anyway. The program had worked in EP2.0.8.22 and earlier because then the maximum limit on Buffer Size was 100000, apparently this changed in EP2.0.8.22. I did try doing a binary search to find the new limit in EP2.9.8.73, but the limit changed as I ran the search, I got it down to the order of 45000. With Streaming Mode in EP2, no one needs large Buffer Sizes anymore, so this is not a critical bug. However, we should post a notice for those few users who may run into this problem. I will place the appropriate posts on the Forum and E-Prime Google Group, please chime in when you can. ***/ -- David McFarlane, Professional Faultfinder >While attempting to run our study today we received this message: > >Internal error buffer size issue. >Error Number: 101 > >The error seems to be connected with this: SoundOut1SoundBuffer.Load >(This was originally programmed in E-Prime 1 but converted to 2.) > >I've looked at the one posting that mentions this error and tried what >was suggested but continued to have the problem. > >We are using E-Run 2.0 (Runtime 2.0.8.74). The program works fine on >our computers that have only E-Run installed but we are trying to run >a study off site using their computers. The computers on both sites >are running Windows XP and have the same version of E-Run installed. >Could their be a some configuration of the environment of the off site >computers that is causing the problem? Some application that needs to >be updated? Something in the E-Prime file that needs to be adjusted? >Any suggestions would be great. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From litlinglarc at gmail.com Fri May 7 16:46:56 2010 From: litlinglarc at gmail.com (litling) Date: Fri, 7 May 2010 09:46:56 -0700 Subject: Error Number: 101 In-Reply-To: <4be43cdc.0b0bca0a.26e3.4a86SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Thanks David. I was able to replicate the problem on a machine in our lab by downloading 2.0.8.74. We thought the computers in our lab had been updated to the new version which is where the confusion was stemming from. I DID look at your posting before hand but wasn't able to replicate the problem until just now in our lab (yours is the one posting I referenced). I definitely looked before I posted this. Making the changes you suggest appear to be working but I can't be sure until I get a chance to test at the other site. Thank you again. p.s. I sent a report to PST Web Support. On May 7, 12:16?pm, David McFarlane wrote: > We experienced the same error messsage in one lab here, diagnosed it, > found a workaround for the lab, and reported this to PST Web > Support. ?Following is that report, verbatim (and as mentioned there, > if you had simply searched the Google Group or the PST Forum with a > term like "buffer size" then you would have found where I already > posted this athttp://groups.google.com/group/e-prime/browse_thread/thread/6a8302d0b... > ). ?You should add your own report to PST Web Support athttp://support.pstnet.com/e%2Dprime/support/login.asp. > > /*** > Our first lab updated to EP2.0.8.73 from EP2.9.8.22, and immediately > ran into a problem, but it is not critical so I report this as "Info" > rather than "Bug". In short, it seems that EP2.0.8.73 reduced the > maximum limit on sound Buffer Size. Details... > > User had programs that ran fine in EP2.0.8.22, but at run time in > EP2.9.8.73 got the error message, "Internal error buffer size issue", > error #101. This occured in the InitObjects subroutine as it tried to > execute Feedback.LoadProperties. For debugging, we deleted Feedback, > and then the error just moved to SoundOut1.LoadProperties, etc. Turns > out that Feedback also included a SoundOut sub-object. Looking > further, these sound objects all had Buffer Size set to 50000 or > 60000 (experiment program originally developed in EP1, as you have > guessed by now). Setting Buffer Mode to Streaming and Buffer Size > back to the default of 5000 cured the problem, which is how things > should be set in EP2 anyway. > > The program had worked in EP2.0.8.22 and earlier because then the > maximum limit on Buffer Size was 100000, apparently this changed in > EP2.0.8.22. I did try doing a binary search to find the new limit in > EP2.9.8.73, but the limit changed as I ran the search, I got it down > to the order of 45000. > > With Streaming Mode in EP2, no one needs large Buffer Sizes anymore, > so this is not a critical bug. However, we should post a notice for > those few users who may run into this problem. I will place the > appropriate posts on the Forum and E-Prime Google Group, please chime > in when you can. > ***/ > > -- David McFarlane, Professional Faultfinder > > > > >While attempting to run our study today we received this message: > > >Internal error buffer size issue. > >Error Number: 101 > > >The error seems to be connected with this: SoundOut1SoundBuffer.Load > >(This was originally programmed in E-Prime 1 but converted to 2.) > > >I've looked at the one posting that mentions this error and tried what > >was suggested but continued to have the problem. > > >We are using E-Run 2.0 (Runtime 2.0.8.74). The program works fine on > >our computers that have only E-Run installed but we are trying to run > >a study off site using their computers. The computers on both sites > >are running Windows XP and have the same version of E-Run installed. > >Could their be a some configuration of the environment of the off site > >computers that is causing the problem? Some application that needs to > >be updated? Something in the E-Prime file that needs to be adjusted? > >Any suggestions would be great. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Fri May 7 17:11:48 2010 From: vera.donk at googlemail.com (Vera) Date: Fri, 7 May 2010 10:11:48 -0700 Subject: Read out certain levels only In-Reply-To: Message-ID: :-( I seem to have cheered too early. :-( Some filteringin E-DataAid showed that E-Prime is still exactly doing as it likes. I also had some mistakes in the previous code, here it is again: Dim nLevel as Integer Dim TriggerValue as Integer If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = 1 Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel ' DesignList.Reset ElseIf NewTriggerValue = 0 Then For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = 0 Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel ' DesignList.Reset End If A few remarks to this code: 1. E-Prime is still doing what it likes, guaranteeing me no counterbalancing whatsoever. 2. I had to add: TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") - If TriggerValue = 0 Then and I know I could have been doing that more elegantly (like you did Michiel), but then E-Prime complains that there are "too many variables". 3. If I add this piece of code, not only will E-Prime still not do what I expect it to do, but it will also generate blocks as it likes. Sometimes 3, sometimes 4... But never 7 as it is supposed to do!! In my last test run it even stopped in the middle of a trial going immediately to the block feedback! Anybody any idea why that could be? It seems to me that this piece of script has nothing to do with the number of blocks or anything. 4. As you can see, DesignList.Reset has been commented out, because when I add this, E-Prime runs only one trials (instead of 36 in a normal block) and then goes immediately to the Block Feedback. I don't understand this program, it makes absolutely no sense to me. :- ( Greetings, Vera On 7 Mai, 17:05, Vera wrote: > Ok, found a way to be at the experimental setup AND have internet > (whew!!!). ;-) > > So the thing I did was: > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > ? ?For nLevel = 1 to DesignList.Size > ? ? ? ? If c.GetAttrib("Trigger") = "1" Then > ? ? ? ? ? ? ? ?DesignList.SetWeight nLevel, 1 > ? ? ? ? Else DesignList.SetWeight nLevel, 0 > ? ? ? ? End If > ? ?Next nLevel > ElseIf NewTriggerValue = 0 Then > ? ?For nLevel = 1 to DesignList.Size > ? ? ? ? If c.GetAttrib("Trigger") = "0" Then > ? ? ? ? ? ? ? ?DesignList.SetWeight nLevel, 1 > ? ? ? ? Else DesignList.SetWeight nLevel, 0 > ? ? ? ? End If > ? ?Next nLevel > End If > > And now that I could finally connect, I see that you proposed me the > same thing. :-) > And the best thing: it works!!!! Checked the database with E-DataAid > and it's all perfectly balanced. :-) > > Thanks a lot for giving me the idea! > > Have a great weekend! > > Vera > > On 7 Mai, 13:42, Vera wrote: > > > Ok, I now had a closer look at your solution (I wasn't on the right PC > > before, with the USB-stick-licence it's kind of a hassle sometimes, > > making a lot of kms in the institute! ;-) ) and I think I might try > > something with your solution. > > > So to get back at your question: > > > "If trigger 1 then PLEASE take only line 1" > > ... > > "You mean, of a list, right?" > > > Yes, I mean of a list (so a level of a list). Of course I simplified > > the whole a bit, pretending that I had only two levels in my list and > > two triggers. In reality I have 20 lines and two triggers (so the list > > kind of gets separated into two). :-) > > > So basically what I want to do is > > "If trigger = 1 then take any of the lines for which attribute.trigger > > = 1" (any of 10 in a random manner) > > > Oh and then don't worry about TMS, it's already all working fine. :-) > > I am getting the triggers and all, E-Prime just doesn't know what to > > do with them for the moment (ok if I am more precise: E-Prime knows > > what to do with the triggers, but I can't control the conditions, > > making sure that the design is completely perfectly counterbalanced > > over the two conditions). :-) > > > I am going back to my experimental setup again, seeing what I can do > > with your solution in mind. I definitely should get internet there, > > but that's the hassle with experimental computers: you want to keep > > them clean from anything that might slow them such as anti-virus and > > stuff. :-| But feel free to reply if you came up with another idea, I > > will check for input anyway. :-) > > > Greetings, Vera > > > On May 7, 12:25?pm, Michiel Spape > > wrote: > > > > Hi Vera & Group, > > > I like that "Sudoku-effect"! In fact, I think I might have misstated that nested-lists are untrustworthy - in general, people are much more prone to making errors than computers, and indeed, this to me is the main problem of nested lists. I do, however, use them all the time, myself, but usually not for my main 'triallist'. > > > > Anyway, I'm sorry for the lack of help I'm going to offer, I'm just not entirely clear on what you want to achieve. Do you want to run certain conditions based on a trigger readout from TMS (err, I never worked with TMS)? Does that mean certain stimuli? Certain different orderings? > > > > Lacking a clear idea on what exactly it is you want, I can help with certain specifics: > > > > "If trigger 1 then PLEASE take only line 1" > > > ... > > > You mean, of a list, right? > > > > This can be achieved in a quick and dirty way by adding a bit of inline that sets all weights of a list to 0 except line 1. From E-basic help, and adjusted > > > > Dim nLevel As Integer 'originally Long, but how many people really have lists that have more than 32768 levels? > > > For nLevel = 1 To List1.Size > > > ? ? ? ? If nLevel = 1 then List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > > Next 'nLevel > > > List1.Reset > > > > You can even put this List1 in unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > > > Hope any of this helps (I might be way off in understanding your problem), > > > Mich > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychology > > > > -----Original Message----- > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Vera > > > Sent: 07 May 2010 08:24 > > > To: E-Prime > > > Subject: Re: Read out certain levels only > > > > Ok guys, just to let you know that I am really trying here, a small > > > update: > > > > Yesterday I tried to solve this problem with nested lists (knowing > > > that nested lists very quickly get very complicated and taking into > > > account that Michiel pointed out in his E-Prime doc that the random > > > doesn't seem to be completely "trustable") but the problem is that I > > > get to the same thing: I would basically have two lines, 1 pointing to > > > the condition for trigger 1 and another one pointing to trigger 2. But > > > then, how to access this line?? > > > I need to figure out some way to tell E-Prime: > > > > If trigger 1 then PLEASE take only line 1 > > > > (Or in the old solution, which I very much preferred, because it was > > > much cleaner - nested lists do have a high "sudoku-effect"): > > > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > > > = 1 > > > > Down to the beginning again, I don't know how to solve this. :-( Any > > > ideas are very welcome. :-) > > > > Greetings, Vera > > > > On May 6, 2:31?pm, Vera wrote: > > > > Ok, got a bit further (but it's still not working fine): > > > > > I added this inline: > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") > > > > ElseIf NewTriggerValue = 0 Then > > > > ? ? ? ? Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") > > > > End If > > > > > It's based on something David once wrote concerning counterbalancing > > > > (it would have been so much easier if E-Prime could just > > > > counterbalance for any attribute and not just Group, Subject and > > > > Session). I am actually hoping to tell E-Prime with this, that it > > > > needs to take any of the 18 levels which has either 1 or 0 in the > > > > TriggerPos attribute. It doesn't seem to work though. :-( > > > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > > > Grrr, I know I am not very far from a solution... > > > > > Greetings, Vera > > > > > On May 6, 11:17?am, Vera wrote: > > > > > > Dear forum members, > > > > > > I already got some very useful help here and as I am now running into > > > > > a new problem with E-Prime, I will see if you can help me out (again). > > > > > I did all my homework: yes I looked at the reference guide, getting > > > > > started guide, all other documents concerning E-Prime, yes I combed > > > > > through this forum, yes I combed through the PST-forum. :-) > > > > > > So here's the problem: > > > > > > I created a list of conditions (and all that has been working fine > > > > > until now) and as we are moving on to another experimental setup, it > > > > > is now very important that half of the conditions appear on one type > > > > > of stimulus and the other half of conditions appear on another type of > > > > > stimulus. > > > > > > To be more clear: > > > > > > On Trigger1 I want only a certain type of the 18 conditions I have to > > > > > be executed. > > > > > On Trigger2 I want the other 18 conditions (another type) to be > > > > > executed. > > > > > > I know I could be able to do this over nested lists (probably), but it > > > > > would take a lot of time too, as then "big surgery" has to be done on > > > > > my program. ;-) > > > > > > So I figured that there should be some way to add a few lines of code, > > > > > which tell E-Prime that it should only use a certain level in a > > > > > certain condition. > > > > > > I wrote: > > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > > ? ? ? ? c.getAttrib("TriggerPos") = 1 > > > > > ElseIf NewTriggerValue = 0 Then > > > > > ? ? ? ? c.getAttrib("TriggerPos") = 0 > > > > > End If > > > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > > > attribute in my designlist. > > > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > > > Ok. But what do I need to add then in order to make it work? Basically > > > > > I want Eprime in certain conditions only to use the levels that have > > > > > "1" in the attribute "TriggerPos". > > > > > > I know that I am not very far from a solution. Any help would be very > > > > > much appreciated. :-) > > > > > > Vera > > > > > > -- > > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > This message has been checked for viruses but the contents of an attachment > > > may still contain software > > ... > > Erfahren Sie mehr ? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Sun May 9 10:45:11 2010 From: giladsabo at gmail.com (gilis) Date: Sun, 9 May 2010 03:45:11 -0700 Subject: Avoid repeating similar trials Message-ID: Hi, I have tried to built an experiment in which the same trial don't repeat twice. That's what I did: First the experiment stracture goes like that: Instructions (text object) BlockList procedure (list object) within the blocklist procedure: Inline dubbed "first" in this inline I only dimmed x as integer triallist procedure (list object) within the trial list the order of the trial goes like this: inline which I dubbed "conditioncheck" and goes like that (pay attention please): 'defining first variable as integer to count the number of trials for each parmutations (as will be seen next) dim cr as integer cr=0+cr 'if this is the first trial you run set number attribute value as "d" if cr=0 then c.setattrib "number", "D" 'defining another variable to help counting the number of each permutation dim dummy as integer dummy=1 'defining initial value for each permutation saparetly dim o as integer o=o+0 dim t as integer t=t+0 dim th as integer th=th+0 'defining variable for randomization purpses dim x as integer 'updating the number of repitations was made dim counter as integer counter=0 cr=cr+dummy 'if the first permutation was already presented twice, don't run it again-if it didn't, you may choose it randomly if o<=2 then select case c.getattrib("number") case "d" x=random(1,3) select case x 'if you choosed the first/second or third permutation, update it to the number attribute and set text and correct attributes for the text object display and for the text object "correct" response option. case 1 'first permutation c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=0+1 'update the number of times this permutation was selected case 2 'second permutation c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 'update the number of times this permutation was selected case 3 'third permutation c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 'update the number of times this permutation was selected end select ' case "one" 'if the number attribute value is different than "d" randomize from the permutation were not chosen in the previous trial x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 t=t+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 th=th+1 end select end select counter=1 else counter=0 end if if t<=2 and counter=0 then select case c.getattrib("number") case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 th=th+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select counter=1 'update counter to 1 else ' if you didn't run any of it, counter remain 0 counter=0 end if if th<=2 and counter=0 then select case c.getattrib("number") ' if the number attribute value is "d" then you can randomize for each of the three permutatuions case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select end if 'case cr=1 and above, "d' is not relevant if cr<>0 then if o<=2 then select case c.getattrib("number") case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 t=t+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 th=th+1 end select end select counter=1 else counter=0 end if if t<=2 and counter=0 then select case c.getattrib("number") case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 th=th+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select counter=1 else counter=0 end if if th<=2 and counter=0 then select case c.getattrib("number") case "d" x=random(1,3) select case x case 1 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "one" x=random(2,3) select case x case 2 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "two" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 2 o=o+1 case 3 c.setattrib "text", "three" c.setattrib "number", "three" c.setattrib "correct", 3 th=th+1 end select case "three" x=random(2,3) select case x case 2 c.setattrib "text", "one" c.setattrib "number", "one" c.setattrib "correct", 1 o=o+1 case 3 c.setattrib "text", "two" c.setattrib "number", "two" c.setattrib "correct", 2 t=t+1 end select end select end if end if after this inline comes text object with stimulus reciving its input from the text object The problem is that the program can't identify any "text" attribute, and if I define one at some higer level (e.g., c.setattrib "text", "text" just before the Trialist) then it will only run "text"as stimulus. I truely assume that my mistake is a very stupid one and I'm pretty green with EPrime programing, but if anyone can assist, or even suggest a better solution, it would be great. Regards Gilis -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Sun May 9 11:45:30 2010 From: giladsabo at gmail.com (gilis) Date: Sun, 9 May 2010 04:45:30 -0700 Subject: Avoid repeating similar trials In-Reply-To: <250ad081-df9c-4b37-9a1c-326ff99aba32@g21g2000yqk.googlegroups.com> Message-ID: Don't repeat twice=don't repeat twice in a raw... On May 9, 1:45?pm, gilis wrote: > Hi, > > I have tried to built an experiment in which the same trial don't > repeat twice. > > That's what I did: > > First the experiment stracture goes like that: > > Instructions (text object) > BlockList procedure (list object) > > within the blocklist procedure: > > Inline dubbed "first" > > in this inline I only dimmed x as integer > > triallist procedure (list object) > > within the trial list the order of the trial goes like this: > > inline which I dubbed "conditioncheck" and goes like that (pay > attention please): > > 'defining first variable as integer to count the number of trials for > each parmutations (as will be seen next) > dim cr as integer > cr=0+cr > > 'if this is the first trial you run set number attribute value as "d" > if cr=0 then c.setattrib "number", "D" > > 'defining another variable to help counting the number of each > permutation > dim dummy as integer > dummy=1 > > 'defining initial value for each permutation saparetly > > dim o as integer > o=o+0 > dim t as integer > t=t+0 > dim th as integer > th=th+0 > > 'defining variable for randomization purpses > dim x as integer > > 'updating the number of repitations was made > dim counter as integer > counter=0 > cr=cr+dummy > > 'if the first permutation was already presented twice, don't run it > again-if it didn't, you may choose it randomly > > if o<=2 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > > 'if you choosed the first/second or third permutation, update it to > the number attribute and set text and correct attributes for the text > object display and for the text object "correct" response option. > > case 1 'first permutation > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > > o=0+1 'update the number of times this permutation was selected > > case 2 'second permutation > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 'update the number of times this permutation was selected > > case 3 'third permutation > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 'update the number of times this permutation was selected > end select ' > case "one" 'if the number attribute value is different than "d" > randomize from the permutation were not chosen in the previous trial > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > t=t+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > th=th+1 > end select > end select > counter=1 > else > counter=0 > end if > if t<=2 and counter=0 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > th=th+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > counter=1 'update counter to 1 > else ' if you didn't run any of it, counter remain 0 > counter=0 > end if > > if th<=2 and counter=0 then > select case c.getattrib("number") > ' if the number attribute value is "d" then you can randomize for each > of the three permutatuions > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > end if > > 'case cr=1 and above, "d' is not relevant > > if cr<>0 then > > if o<=2 then > select case c.getattrib("number") > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > t=t+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > th=th+1 > end select > end select > counter=1 > else > counter=0 > end if > > if t<=2 and counter=0 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > th=th+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > counter=1 > else > counter=0 > end if > > if th<=2 and counter=0 then > select case c.getattrib("number") > case "d" > x=random(1,3) > select case x > case 1 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "one" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "two" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 2 > o=o+1 > case 3 > c.setattrib "text", "three" > c.setattrib "number", "three" > c.setattrib "correct", 3 > th=th+1 > end select > case "three" > x=random(2,3) > select case x > case 2 > c.setattrib "text", "one" > c.setattrib "number", "one" > c.setattrib "correct", 1 > o=o+1 > case 3 > c.setattrib "text", "two" > c.setattrib "number", "two" > c.setattrib "correct", 2 > t=t+1 > end select > end select > end if > end if > > after this inline comes text object with stimulus reciving its input > from the text object > > The problem is that the program can't identify any "text" attribute, > and if I define one at some higer level (e.g., c.setattrib "text", > "text" just before the Trialist) then it will only run "text"as > stimulus. ?I truely assume that my mistake is a very stupid one and > I'm pretty green with EPrime programing, but if anyone can assist, or > even suggest a better solution, it would be great. > > Regards > Gilis > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Sun May 9 11:49:22 2010 From: giladsabo at gmail.com (gilis) Date: Sun, 9 May 2010 04:49:22 -0700 Subject: Avoid repeating similar trials In-Reply-To: <6af2af5b-3edb-481c-b967-efc9694d1ebb@r34g2000yqj.googlegroups.com> Message-ID: And in any case don't repeat the same trial more than two times (in this example) On May 9, 2:45?pm, gilis wrote: > Don't repeat twice=don't repeat twice in a raw... > > On May 9, 1:45?pm, gilis wrote: > > > > > Hi, > > > I have tried to built an experiment in which the same trial don't > > repeat twice. > > > That's what I did: > > > First the experiment stracture goes like that: > > > Instructions (text object) > > BlockList procedure (list object) > > > within the blocklist procedure: > > > Inline dubbed "first" > > > in this inline I only dimmed x as integer > > > triallist procedure (list object) > > > within the trial list the order of the trial goes like this: > > > inline which I dubbed "conditioncheck" and goes like that (pay > > attention please): > > > 'defining first variable as integer to count the number of trials for > > each parmutations (as will be seen next) > > dim cr as integer > > cr=0+cr > > > 'if this is the first trial you run set number attribute value as "d" > > if cr=0 then c.setattrib "number", "D" > > > 'defining another variable to help counting the number of each > > permutation > > dim dummy as integer > > dummy=1 > > > 'defining initial value for each permutation saparetly > > > dim o as integer > > o=o+0 > > dim t as integer > > t=t+0 > > dim th as integer > > th=th+0 > > > 'defining variable for randomization purpses > > dim x as integer > > > 'updating the number of repitations was made > > dim counter as integer > > counter=0 > > cr=cr+dummy > > > 'if the first permutation was already presented twice, don't run it > > again-if it didn't, you may choose it randomly > > > if o<=2 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > > 'if you choosed the first/second or third permutation, update it to > > the number attribute and set text and correct attributes for the text > > object display and for the text object "correct" response option. > > > case 1 'first permutation > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > > o=0+1 'update the number of times this permutation was selected > > > case 2 'second permutation > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 'update the number of times this permutation was selected > > > case 3 'third permutation > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 'update the number of times this permutation was selected > > end select ' > > case "one" 'if the number attribute value is different than "d" > > randomize from the permutation were not chosen in the previous trial > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > t=t+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > th=th+1 > > end select > > end select > > counter=1 > > else > > counter=0 > > end if > > if t<=2 and counter=0 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > th=th+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > counter=1 'update counter to 1 > > else ' if you didn't run any of it, counter remain 0 > > counter=0 > > end if > > > if th<=2 and counter=0 then > > select case c.getattrib("number") > > ' if the number attribute value is "d" then you can randomize for each > > of the three permutatuions > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > end if > > > 'case cr=1 and above, "d' is not relevant > > > if cr<>0 then > > > if o<=2 then > > select case c.getattrib("number") > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > t=t+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > th=th+1 > > end select > > end select > > counter=1 > > else > > counter=0 > > end if > > > if t<=2 and counter=0 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > th=th+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > counter=1 > > else > > counter=0 > > end if > > > if th<=2 and counter=0 then > > select case c.getattrib("number") > > case "d" > > x=random(1,3) > > select case x > > case 1 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "one" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "two" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 2 > > o=o+1 > > case 3 > > c.setattrib "text", "three" > > c.setattrib "number", "three" > > c.setattrib "correct", 3 > > th=th+1 > > end select > > case "three" > > x=random(2,3) > > select case x > > case 2 > > c.setattrib "text", "one" > > c.setattrib "number", "one" > > c.setattrib "correct", 1 > > o=o+1 > > case 3 > > c.setattrib "text", "two" > > c.setattrib "number", "two" > > c.setattrib "correct", 2 > > t=t+1 > > end select > > end select > > end if > > end if > > > after > > ... > > read more ?- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From giladsabo at gmail.com Tue May 11 06:19:58 2010 From: giladsabo at gmail.com (gilis) Date: Mon, 10 May 2010 23:19:58 -0700 Subject: X position Message-ID: Hi All, In my Experiment the stimuli appear, technically, twice. The participant however is very desirably not to notice that. The issue is that I collect one vocal response and one manual response (with the mouse) so there are two following slide objects that present the same stimuli exactly. The problem I now facing goes like that: Most of the images I use are at the same size and I use flankers above and below them in part of the trials. The flankers should always appear above or below the center of the image. Two of the images are too large so I had to move the flankers to the left in oreder of these to appear above the center of it exactly. I did it by setting an attribute dubbed "Location" in the trial list- for all other images its value is "center" and for these two images I set the value to 55%. In the slide objects that contain the stimuli and the flankers I changed the flankers X position only (X and X align, in the sub object properties) by adding [location] to both X and X align. The problem is that the program automatically change it to [Location]:center. I have tried several times to delete the "center" but for vain because then it add it time and again. What I get in my experiment is that for these two images there is a movement and it can be noticed that I'm using to slide objects. The first object present the flankers at the [location] and the second at the center...Also, although the image is set to allways appear in the center from within the sub object properties, it seem to move the same way with the flankers. Does any one have anhy idea what may be causing it? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Tue May 11 11:09:23 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 11 May 2010 12:09:23 +0100 Subject: X position In-Reply-To: <0b9af4c3-c495-4090-9c6a-79fd4365a631@37g2000yqm.googlegroups.com> Message-ID: Hi Gilis, 1: delete the second stimuli and copy-drag the first stimulus on the procedure to make a copy. The error is, almost certainly, caused by sloppiness :) I have that all the time, anyway! There's many reasons that can cause your slides to be non-identical, and it makes little sense to try see which one. After copying, the two slides should not be noticeably different - just keep changing them and don't forget to debug often to see whether everything is still ok. 2: Leave the X-Align (do you really want to redefine what constitutes the location?) alone and set X to [Location]. 3: Make sure ALL locations are either defined with percentages or pixels (i.e. without %), but not both! E-Prime will add :center to your attribute - this should not affect it. Any luck with your other problem, by the way? I'm sorry, but found it too long to read (I imagine the E-Prime support unit wouldn't say such a thing!). Cheers, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of gilis Sent: 11 May 2010 07:20 To: E-Prime Subject: X position Hi All, In my Experiment the stimuli appear, technically, twice. The participant however is very desirably not to notice that. The issue is that I collect one vocal response and one manual response (with the mouse) so there are two following slide objects that present the same stimuli exactly. The problem I now facing goes like that: Most of the images I use are at the same size and I use flankers above and below them in part of the trials. The flankers should always appear above or below the center of the image. Two of the images are too large so I had to move the flankers to the left in oreder of these to appear above the center of it exactly. I did it by setting an attribute dubbed "Location" in the trial list- for all other images its value is "center" and for these two images I set the value to 55%. In the slide objects that contain the stimuli and the flankers I changed the flankers X position only (X and X align, in the sub object properties) by adding [location] to both X and X align. The problem is that the program automatically change it to [Location]:center. I have tried several times to delete the "center" but for vain because then it add it time and again. What I get in my experiment is that for these two images there is a movement and it can be noticed that I'm using to slide objects. The first object present the flankers at the [location] and the second at the center...Also, although the image is set to allways appear in the center from within the sub object properties, it seem to move the same way with the flankers. Does any one have anhy idea what may be causing it? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 12:46:08 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 08:46:08 -0400 Subject: Fixed Order of Pictures In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF19E@VUIEXCHC.ad.notti ngham.ac.uk> Message-ID: JL, Taking a break from my labors and catching up on a couple of Group threads... Just amplifying what Mich said... I assume that you mean a single visual stimulus display with four pictures. For this I would use a Slide with four SlideImages, one for each picture. Then I would use SlideState.HitTest to get mouse responses. For details, see the SlideState.HitTest topic in the online E-Basic Help, and the "Response Areas for Mouse Input" sample from the PST web site. You will have to extend their example to handle four valid mouse clicks [FN1]. I would then probably store the "hits" in an array, and then as Mich said use a loop to compare those hits, in order, against the answer key. This does all require a fair amount of inline code. As for the feedback display, I would use a single Slide with two states, one for the "correct" sound & visual, and another for the "incorrect" sound & visual, and then add a bit of code to select the appropriate Slide.ActiveState (see the online E-Basic Help). But that's just me, ordinary people would use a pair of Slides and then Labels and Gotos to select which one gets used. Finally, as Mich says E-Prime is not well suited to animations, unless you do not mind writing even more inline code to run it. Otherwise, if you have EP2 then you might run a SlideMovie within the feedback Slide, or in any case just skip the animation and stick with an informative static image or even good old text (I am rather a text snob myself). All in all, nothing that cannot be done in E-Prime without a little bit of ingenuity and general programming skills. -- David McFarlane, Professional Faultfinder FN1: I actually wrote a library of Functions & Subs to help with this sort of thing and would be happy to post that on the Group if someone would send me instructions on how to do that. At 5/7/2010 06:59 AM Friday, you wrote: >Hiya, >Long-winded? How long do you suppose any answer >would be to this question :) No, seriously, if >you have gone through the tutorial, and maybe >even our little guide, you might understand that >what you are asking is indeed a little tricky on a number of levels: >1. Four pictures, dumped in a slide, but: >clicking on them (oomph). There's an example in >the e-prime online help thing where they have >this hit-test for mouse-clicking operations. I'm >sure it's here somewhere in this mailinglist as >well, certainly discussed a few times. Just make sure you save the response. >2. Four clicks, not one, is most easily achieved >(I say), by having four slides (with four >hit-tests); just make copies of them by control+dragging them. >3. Four responses... If you have one attribute, >say "CorrectResponse", and four responses to >slides pic1 pic2 pic3 pic4, you could just do something like: >c.SetAttrib "Y_Resp", pic1.Resp & pic2.Resp & pic3.Resp & pic4.Resp. >if c.GetAttrib ("Y_Resp") = c.GetAttrib >("CorrectResponse") then c.SetAttrib "Y_ACC", 1 else c.SetAttrib "Y_ACC", 0 >4. But of course, you want more than that, >compare each response individually. Of course, >you could just have four correct responses and 4 >responses, so I suppose you'd end up with four >"Y_resp"s (Y_resp1...4) and four "CorrResps" (CorrResp1..4). >5. Assuming you don't want to go for animations >(in which case I'd suggest abandoning E-Prime >altogether, because your whole thing is MUCH >more easily achieved in Flash to begin with), you might do something like: >Dim I as integer >For I = 1 to 4 > If c.GetAttrib ("Y_Resp" & cstr(i)) = > c.GetAttrib("CorrResp" & cstr(i)) then SoundWRONG.play else SoundRIGHT.play >Next I >... that is, assuming you have made two >soundbuffers (SoundWrong and SoundRight), but >this is pretty well documented in the ebasic help. > >Best, >Mich > >Michiel Spap? >Research Fellow >Perception & Action group >University of Nottingham >School of Psychology > > >-----Original Message----- >From: e-prime at googlegroups.com >[mailto:e-prime at googlegroups.com] On Behalf Of JL >Sent: 06 May 2010 22:35 >To: E-Prime >Subject: Fixed Order of Pictures > >Hi there, > >I'm new to E-Prime and finding it a little tricky. I'm wondering is it >possible to make a level whereby four pictures are presented and they >must be clicked on in a certain fixed order? So for example if the >fixed order is pic1, pic 2, pic3, pic 4 and the subject clicks pic >1,3,2,4 then for the clicks that were correct a certain sound and >animation will occur to let the person know and for the ones that were >wrong another sound and animation will occur. And then I'd like to be >able to compare what the subject clicked to what they were supposed to >click? > >Sorry this is very long winded, any help would be much appreciated! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 13:41:13 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 09:41:13 -0400 Subject: Read out certain levels only In-Reply-To: Message-ID: Vera, [Took me awhile to get to this because I had other business to attend to and I wanted to write this up properly.] As to "counterbalancing" on attributes other than Group, Subject, and Session... As I hinted in the thread at http://groups.google.com/group/e-prime/browse_thread/thread/26d2e1e83c6a09bb , although the E-Studio GUI allows options only for Subject, Session, and Group, you may "counterbalance" on any other attribute simply through a proper application of inline code before the List runs, e.g., Set List.Deletion = PickOne(c.GetAttrib("AnyAttribYouLike")) In fact, List.Order does not have a "Counterbalance" option -- instead, Counterbalance in E-Studio just generates a combination of settings that makes EP pick a numbered row from the List at runtime and run just that, once. The best way to see this is to use Counterbalance in E-Studio and then look at the generated code (and IMO if you do not care to look at or understand generated E-Basic code, then you should leave this work to somebody else who does). For the record, and to spare you the trouble, here is an example of the relevant generated code from the InitObjects subroutine: Set List.Order = New SequentialOrder Set List.Deletion = PickOne(c.GetAttrib("Subject")) List.ResetEveryRun = True Set List.TerminateCondition = Samples(1) Set List.ResetCondition = Samples(1) -- David McFarlane, Professional Faultfinder At 5/6/2010 08:31 AM Thursday, you wrote: >Ok, got a bit further (but it's still not working fine): > >I added this inline: > >If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "1") >ElseIf NewTriggerValue = 0 Then > Set DesignList.Deletion = PickOne(c.GetAttrib("TriggerPos") = "0") >End If > >It's based on something David once wrote concerning counterbalancing >(it would have been so much easier if E-Prime could just >counterbalance for any attribute and not just Group, Subject and >Session). -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 14:33:51 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 10:33:51 -0400 Subject: Read out certain levels only In-Reply-To: Message-ID: Vera, Don't know why your code does not work, but just a couple comments on your code fragment here... First, almost every time we have resorted to using List.SetWeight it turned out that we had a poor design structure, and once we restructured the design it eliminated the need for List.SetWeight and solved a host of other lurking problems as well. So I urge you to first take a serious look at your design structure. Next, when we did use List.SetWeight, we absolutely had to execute a List.Reset, otherwise the List ignored our .SetWeight changes. So if your code does not work with the List.Reset command in place, then your code has other problems. And since you must do the List.Reset for either branch of the If...Then...ElseIf, then you may as well pull it out from within the branches and put it after the whole If...Then...ElseIf block. Finally, what happens if TriggerValue < 0 or TriggerValue >= 7? As it stands, in this case your code will simply leave the List intact. Is this what you meant? Perhaps you think it impossible for TriggerValue to ever take on values outside of 0-6, but good coding practice requires that you either include a final Else to handle outliers or at least add a comment to explain what you mean the code to do. So just as an exercise, here is your code fragement again (keeping your TriggerValue variable because I do not want to get into that issue, using "<=" instead of "<" just because I think that makes the intent clearer, and adding a Const to get rid of one "magic number"; hmm, on further thought I restructured this to pull the common inner loops out of the main loop, etc.): Const TriggerValueMax as Integer = 6 Dim nLevel as Integer Dim TriggerValue as Integer, TriggerValueToRun as Integer ' Assign TriggerValueToRun based on NewTriggerValue: If (NewTriggerValue = 0) Then TriggerValueToRun = 0 ElseIf ((1 <= NewTriggerValue) AND _ (NewTriggerValue <= TriggerValueMax)) Then TriggerValueToRun = 1 Else MsgBox "NewTriggerValue " & NewTriggerValue _ & "out of range! Please contact programmer." End If ' Now set List level weights according to match between TriggerValue & ' TriggerValueToRun: For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = TriggerValueToRun Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel DesignList.Reset Or just for fun, let's do this with a Select Case: Const TriggerValueMax as Integer = 6 Dim nLevel as Integer Dim TriggerValue as Integer, TriggerValueToRun as Integer ' Assign TriggerValueToRun based on NewTriggerValue: Select Case NewTriggerValue Case 0 TriggerValueToRun = 0 Case 1 to 6 TriggerValueToRun = 1 Case Else MsgBox "NewTriggerValue " & NewTriggerValue _ & "out of range! Please contact programmer." End Select ' Now set List level weights according to match between TriggerValue & ' TriggerValueToRun: For nLevel = 1 to DesignList.Size TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") If TriggerValue = TriggerValueToRun Then DesignList.SetWeight nLevel, 1 Else DesignList.SetWeight nLevel, 0 End If Next nLevel DesignList.Reset -- David McFarlane, Professional Faultfinder At 5/7/2010 01:11 PM Friday, you wrote: >:-( > >I seem to have cheered too early. :-( Some filteringin E-DataAid >showed that E-Prime is still exactly doing as it likes. > >I also had some mistakes in the previous code, here it is again: > >Dim nLevel as Integer >Dim TriggerValue as Integer > >If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > For nLevel = 1 to DesignList.Size > TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > If TriggerValue = 1 Then > DesignList.SetWeight nLevel, 1 > Else DesignList.SetWeight nLevel, 0 > End If > Next nLevel >' DesignList.Reset >ElseIf NewTriggerValue = 0 Then > For nLevel = 1 to DesignList.Size > TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > If TriggerValue = 0 Then > DesignList.SetWeight nLevel, 1 > Else DesignList.SetWeight nLevel, 0 > End If > Next nLevel >' DesignList.Reset >End If > >A few remarks to this code: > >1. E-Prime is still doing what it likes, guaranteeing me no >counterbalancing whatsoever. >2. I had to add: TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") >- If TriggerValue = 0 Then and I know I could have been doing that >more elegantly (like you did Michiel), but then E-Prime complains that >there are "too many variables". >3. If I add this piece of code, not only will E-Prime still not do >what I expect it to do, but it will also generate blocks as it likes. >Sometimes 3, sometimes 4... But never 7 as it is supposed to do!! In >my last test run it even stopped in the middle of a trial going >immediately to the block feedback! Anybody any idea why that could be? >It seems to me that this piece of script has nothing to do with the >number of blocks or anything. >4. As you can see, DesignList.Reset has been commented out, because >when I add this, E-Prime runs only one trials (instead of 36 in a >normal block) and then goes immediately to the Block Feedback. > >I don't understand this program, it makes absolutely no sense to me. :- >( > >Greetings, Vera > > > > >On 7 Mai, 17:05, Vera wrote: > > Ok, found a way to be at the experimental setup AND have internet > > (whew!!!). ;-) > > > > So the thing I did was: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > For nLevel = 1 to DesignList.Size > > If c.GetAttrib("Trigger") = "1" Then > > DesignList.SetWeight nLevel, 1 > > Else DesignList.SetWeight nLevel, 0 > > End If > > Next nLevel > > ElseIf NewTriggerValue = 0 Then > > For nLevel = 1 to DesignList.Size > > If c.GetAttrib("Trigger") = "0" Then > > DesignList.SetWeight nLevel, 1 > > Else DesignList.SetWeight nLevel, 0 > > End If > > Next nLevel > > End If > > > > And now that I could finally connect, I see that you proposed me the > > same thing. :-) > > And the best thing: it works!!!! Checked the database with E-DataAid > > and it's all perfectly balanced. :-) > > > > Thanks a lot for giving me the idea! > > > > Have a great weekend! > > > > Vera > > > > On 7 Mai, 13:42, Vera wrote: > > > > > Ok, I now had a closer look at your solution (I wasn't on the right PC > > > before, with the USB-stick-licence it's kind of a hassle sometimes, > > > making a lot of kms in the institute! ;-) ) and I think I might try > > > something with your solution. > > > > > So to get back at your question: > > > > > "If trigger 1 then PLEASE take only line 1" > > > ... > > > "You mean, of a list, right?" > > > > > Yes, I mean of a list (so a level of a list). Of course I simplified > > > the whole a bit, pretending that I had only two levels in my list and > > > two triggers. In reality I have 20 lines and two triggers (so the list > > > kind of gets separated into two). :-) > > > > > So basically what I want to do is > > > "If trigger = 1 then take any of the lines for which attribute.trigger > > > = 1" (any of 10 in a random manner) > > > > > Oh and then don't worry about TMS, it's already all working fine. :-) > > > I am getting the triggers and all, E-Prime just doesn't know what to > > > do with them for the moment (ok if I am more precise: E-Prime knows > > > what to do with the triggers, but I can't control the conditions, > > > making sure that the design is completely perfectly counterbalanced > > > over the two conditions). :-) > > > > > I am going back to my experimental setup again, seeing what I can do > > > with your solution in mind. I definitely should get internet there, > > > but that's the hassle with experimental computers: you want to keep > > > them clean from anything that might slow them such as anti-virus and > > > stuff. :-| But feel free to reply if you came up with another idea, I > > > will check for input anyway. :-) > > > > > Greetings, Vera > > > > > On May 7, 12:25 pm, Michiel Spape > > > wrote: > > > > > > Hi Vera & Group, > > > > I like that "Sudoku-effect"! In fact, I > think I might have misstated that nested-lists > are untrustworthy - in general, people are much > more prone to making errors than computers, and > indeed, this to me is the main problem of > nested lists. I do, however, use them all the > time, myself, but usually not for my main 'triallist'. > > > > > > Anyway, I'm sorry for the lack of help > I'm going to offer, I'm just not entirely clear > on what you want to achieve. Do you want to run > certain conditions based on a trigger readout > from TMS (err, I never worked with TMS)? Does > that mean certain stimuli? Certain different orderings? > > > > > > Lacking a clear idea on what exactly it > is you want, I can help with certain specifics: > > > > > > "If trigger 1 then PLEASE take only line 1" > > > > ... > > > > You mean, of a list, right? > > > > > > This can be achieved in a quick and dirty > way by adding a bit of inline that sets all > weights of a list to 0 except line 1. From E-basic help, and adjusted > > > > > > Dim nLevel As Integer 'originally Long, > but how many people really have lists that have more than 32768 levels? > > > > For nLevel = 1 To List1.Size > > > > If nLevel = 1 then > List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > > > Next 'nLevel > > > > List1.Reset > > > > > > You can even put this List1 in > unreferenced objects (i.e. your garbage can) and run it on request (List1.Run). > > > > Hope any of this helps (I might be way > off in understanding your problem), > > > > Mich > > > > > > Michiel Spap? > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychology > > > > > > -----Original Message----- > > > > From: e-prime at googlegroups.com > [mailto:e-prime at googlegroups.com] On Behalf Of Vera > > > > Sent: 07 May 2010 08:24 > > > > To: E-Prime > > > > Subject: Re: Read out certain levels only > > > > > > Ok guys, just to let you know that I am really trying here, a small > > > > update: > > > > > > Yesterday I tried to solve this problem with nested lists (knowing > > > > that nested lists very quickly get very complicated and taking into > > > > account that Michiel pointed out in his E-Prime doc that the random > > > > doesn't seem to be completely "trustable") but the problem is that I > > > > get to the same thing: I would basically have two lines, 1 pointing to > > > > the condition for trigger 1 and another one pointing to trigger 2. But > > > > then, how to access this line?? > > > > I need to figure out some way to tell E-Prime: > > > > > > If trigger 1 then PLEASE take only line 1 > > > > > > (Or in the old solution, which I very much preferred, because it was > > > > much cleaner - nested lists do have a high "sudoku-effect"): > > > > > > If trigger 1 PLEASE take any of the lines for which attribute.trigger1 > > > > = 1 > > > > > > Down to the beginning again, I don't know how to solve this. :-( Any > > > > ideas are very welcome. :-) > > > > > > Greetings, Vera > > > > > > On May 6, 2:31 pm, Vera wrote: > > > > > Ok, got a bit further (but it's still not working fine): > > > > > > > I added this inline: > > > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > > Set DesignList.Deletion = > PickOne(c.GetAttrib("TriggerPos") = "1") > > > > > ElseIf NewTriggerValue = 0 Then > > > > > Set DesignList.Deletion = > PickOne(c.GetAttrib("TriggerPos") = "0") > > > > > End If > > > > > > > It's based on something David once wrote concerning counterbalancing > > > > > (it would have been so much easier if E-Prime could just > > > > > counterbalance for any attribute and not just Group, Subject and > > > > > Session). I am actually hoping to tell E-Prime with this, that it > > > > > needs to take any of the 18 levels which has either 1 or 0 in the > > > > > TriggerPos attribute. It doesn't seem to work though. :-( > > > > > > > E-Prime now only runs 1 trials (instead of 36). Any hints on that? > > > > > > > Grrr, I know I am not very far from a solution... > > > > > > > Greetings, Vera > > > > > > > On May 6, 11:17 am, Vera wrote: > > > > > > > > Dear forum members, > > > > > > > > I already got some very useful help > here and as I am now running into > > > > > > a new problem with E-Prime, I will > see if you can help me out (again). > > > > > > I did all my homework: yes I looked at the reference guide, getting > > > > > > started guide, all other documents concerning E-Prime, yes I combed > > > > > > through this forum, yes I combed through the PST-forum. :-) > > > > > > > > So here's the problem: > > > > > > > > I created a list of conditions (and all that has been working fine > > > > > > until now) and as we are moving on to > another experimental setup, it > > > > > > is now very important that half of > the conditions appear on one type > > > > > > of stimulus and the other half of > conditions appear on another type of > > > > > > stimulus. > > > > > > > > To be more clear: > > > > > > > > On Trigger1 I want only a certain > type of the 18 conditions I have to > > > > > > be executed. > > > > > > On Trigger2 I want the other 18 conditions (another type) to be > > > > > > executed. > > > > > > > > I know I could be able to do this > over nested lists (probably), but it > > > > > > would take a lot of time too, as then > "big surgery" has to be done on > > > > > > my program. ;-) > > > > > > > > So I figured that there should be > some way to add a few lines of code, > > > > > > which tell E-Prime that it should only use a certain level in a > > > > > > certain condition. > > > > > > > > I wrote: > > > > > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > > > > c.getAttrib("TriggerPos") = 1 > > > > > > ElseIf NewTriggerValue = 0 Then > > > > > > c.getAttrib("TriggerPos") = 0 > > > > > > End If > > > > > > > > TriggerPos = the type of trigger (1 or 0) which I added as an > > > > > > attribute in my designlist. > > > > > > When I try to execute, Eprime tells me "Can't Assign to Constant" > > > > > > > > Ok. But what do I need to add then in > order to make it work? Basically > > > > > > I want Eprime in certain conditions > only to use the levels that have > > > > > > "1" in the attribute "TriggerPos". > > > > > > > > I know that I am not very far from a > solution. Any help would be very > > > > > > much appreciated. :-) > > > > > > > > Vera -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From j.j.marshall at kent.ac.uk Tue May 11 14:51:46 2010 From: j.j.marshall at kent.ac.uk (Jason) Date: Tue, 11 May 2010 07:51:46 -0700 Subject: Pre-load movies in E-prime Message-ID: Hi, I am doing a study where we are showing multiple video stimuli in succession, Each movie is about 8 seconds long, and about 30Mb in size. My problem is that there is a long pause between each video (2-3 seconds), presumably as E-prime is trying to fully load the video before it starts playing it. Does anyone know if there is anyway of pre-loading the videos at the start of the experiment, so that there is a minimal delay between videos? Cheers Jason -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 14:56:04 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 10:56:04 -0400 Subject: X position In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF033EF8DF@VUIEXCHC.ad.notti ngham.ac.uk> Message-ID: Gilis, Regarding the ":center" that E-Studio adds to your X property: Ignore it, it does not affect the actual position during the run. Long explanation: E-Studio adds this just to show where *E-Studio* will put the *placeholder* for the object when *designing* the program, *not* when running the program. Think about it -- You tell EP that you want something to appear at [Location]. OK, so where does E-Studio show the placeholder for that object? It has no idea what value [Location] will take at run time. So instead it assigns a separate value to use just during design time. And just to demonstrate this, try the following: Take your object with the [Location] and drag it anywhere you like on the screen, then look at the X property again -- you will see that it now says, e.g, [Location]:20% (if you dragged it leftward). So now you know how to put an object one place at run time, and show its placeholder whereever you like at design time. -- David McFarlane, Professional Faultfinder At 5/11/2010 07:09 AM Tuesday, you wrote: >Hi Gilis, >1: delete the second stimuli and copy-drag the >first stimulus on the procedure to make a copy. >The error is, almost certainly, caused by >sloppiness :) I have that all the time, anyway! >There's many reasons that can cause your slides >to be non-identical, and it makes little sense >to try see which one. After copying, the two >slides should not be noticeably different - just >keep changing them and don't forget to debug >often to see whether everything is still ok. >2: Leave the X-Align (do you really want to >redefine what constitutes the location?) alone and set X to [Location]. >3: Make sure ALL locations are either defined >with percentages or pixels (i.e. without %), but >not both! E-Prime will add :center to your >attribute - this should not affect it. > >Any luck with your other problem, by the way? >I'm sorry, but found it too long to read (I >imagine the E-Prime support unit wouldn't say such a thing!). >Cheers, >Mich > > >Michiel Spap? >Research Fellow >Perception & Action group >University of Nottingham >School of Psychology > >-----Original Message----- >From: e-prime at googlegroups.com >[mailto:e-prime at googlegroups.com] On Behalf Of gilis >Sent: 11 May 2010 07:20 >To: E-Prime >Subject: X position > >Hi All, > >In my Experiment the stimuli appear, technically, twice. The >participant however is very desirably not to notice that. The issue is >that I collect one vocal response and one manual response (with the >mouse) so there are two following slide objects that present the same >stimuli exactly. > >The problem I now facing goes like that: Most of the images I use are >at the same size and I use flankers above and below them in part of >the trials. The flankers should always appear above or below the >center of the image. > >Two of the images are too large so I had to move the flankers to the >left in oreder of these to appear above the center of it exactly. > >I did it by setting an attribute dubbed "Location" in the trial list- >for all other images its value is "center" and for these two images I >set the value to 55%. > >In the slide objects that contain the stimuli and the flankers I >changed the flankers X position only (X and X align, in the sub object >properties) by adding [location] to both X and X align. The problem >is that the program automatically change it to [Location]:center. I >have tried several times to delete the "center" but for vain because >then it add it time and again. > >What I get in my experiment is that for these two images there is a >movement and it can be noticed that I'm using to slide objects. The >first object present the flankers at the [location] and the second at >the center...Also, although the image is set to allways appear in the >center from within the sub object properties, it seem to move the same >way with the flankers. > > >Does any one have anhy idea what may be causing it? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 15:04:12 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 11:04:12 -0400 Subject: X position In-Reply-To: <4be97006.120bca0a.2b8a.ffffd5e3SMTPIN_ADDED@gmr-mx.google. com> Message-ID: Just to belabor the obvious, note that you can take control of the ":..." placeholder position and type in whatever value you like directly, you do not have to settle for just dragging placeholders around on the screen. -- David McFarlane, Professional Faultfinder At 5/11/2010 10:56 AM Tuesday, you wrote: >Gilis, > >Regarding the ":center" that E-Studio adds to >your X property: Ignore it, it does not affect >the actual position during the run. > >Long explanation: E-Studio adds this just to >show where *E-Studio* will put the *placeholder* >for the object when *designing* the program, >*not* when running the program. Think about it >-- You tell EP that you want something to appear >at [Location]. OK, so where does E-Studio show >the placeholder for that object? It has no idea >what value [Location] will take at run time. So >instead it assigns a separate value to use just >during design time. And just to demonstrate >this, try the following: Take your object with >the [Location] and drag it anywhere you like on >the screen, then look at the X property again -- >you will see that it now says, e.g, >[Location]:20% (if you dragged it leftward). So >now you know how to put an object one place at >run time, and show its placeholder whereever you like at design time. > >-- David McFarlane, Professional Faultfinder > > >At 5/11/2010 07:09 AM Tuesday, you wrote: >>Hi Gilis, >>1: delete the second stimuli and copy-drag the >>first stimulus on the procedure to make a copy. >>The error is, almost certainly, caused by >>sloppiness :) I have that all the time, anyway! >>There's many reasons that can cause your slides >>to be non-identical, and it makes little sense >>to try see which one. After copying, the two >>slides should not be noticeably different - >>just keep changing them and don't forget to >>debug often to see whether everything is still ok. >>2: Leave the X-Align (do you really want to >>redefine what constitutes the location?) alone and set X to [Location]. >>3: Make sure ALL locations are either defined >>with percentages or pixels (i.e. without %), >>but not both! E-Prime will add :center to your >>attribute - this should not affect it. >> >>Any luck with your other problem, by the way? >>I'm sorry, but found it too long to read (I >>imagine the E-Prime support unit wouldn't say such a thing!). >>Cheers, >>Mich >> >> >>Michiel Spap? >>Research Fellow >>Perception & Action group >>University of Nottingham >>School of Psychology >> >>-----Original Message----- >>From: e-prime at googlegroups.com >>[mailto:e-prime at googlegroups.com] On Behalf Of gilis >>Sent: 11 May 2010 07:20 >>To: E-Prime >>Subject: X position >> >>Hi All, >> >>In my Experiment the stimuli appear, technically, twice. The >>participant however is very desirably not to notice that. The issue is >>that I collect one vocal response and one manual response (with the >>mouse) so there are two following slide objects that present the same >>stimuli exactly. >> >>The problem I now facing goes like that: Most of the images I use are >>at the same size and I use flankers above and below them in part of >>the trials. The flankers should always appear above or below the >>center of the image. >> >>Two of the images are too large so I had to move the flankers to the >>left in oreder of these to appear above the center of it exactly. >> >>I did it by setting an attribute dubbed "Location" in the trial list- >>for all other images its value is "center" and for these two images I >>set the value to 55%. >> >>In the slide objects that contain the stimuli and the flankers I >>changed the flankers X position only (X and X align, in the sub object >>properties) by adding [location] to both X and X align. The problem >>is that the program automatically change it to [Location]:center. I >>have tried several times to delete the "center" but for vain because >>then it add it time and again. >> >>What I get in my experiment is that for these two images there is a >>movement and it can be noticed that I'm using to slide objects. The >>first object present the flankers at the [location] and the second at >>the center...Also, although the image is set to allways appear in the >>center from within the sub object properties, it seem to move the same >>way with the flankers. >> >> >>Does any one have anhy idea what may be causing it? > >-- >You received this message because you are >subscribed to the Google Groups "E-Prime" group. >To post to this group, send email to e-prime at googlegroups.com. >To unsubscribe from this group, send email to >e-prime+unsubscribe at googlegroups.com. >For more options, visit this group at >http://groups.google.com/group/e-prime?hl=en. > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 15:15:29 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 11:15:29 -0400 Subject: Pre-load movies in E-prime In-Reply-To: <341b3fb0-667c-4caa-96b2-9052648563c4@24g2000yqy.googlegrou ps.com> Message-ID: Jason, Hope somebody else has an answer here, but you should also take this right to PST's trained staff at http://support.pstnet.com/e%2Dprime/support/login.asp . They strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days), and this is pretty much their substitute for proper documentation, so make full use of it. And if you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the rest of us. That said, I really wonder if E-Prime (or any video-playing system) does fully load files before playing? I would think that they all stream from disk through some buffer, so EP may only be trying to load that buffer before starting playback of each file. So if you cannot fully pre-load (cache?) each file to a separate buffer (along with switching playback buffers on demand, which is what you would need to do), perhaps you could reduce the buffer so that it loads less at the start and starts streaming sooner? But I do not really know anything about video, just guessing here based on general knowledge of digital systems. Thanks, -- David McFarlane, Professional Faultfinder At 5/11/2010 10:51 AM Tuesday, you wrote: >I am doing a study where we are showing multiple video stimuli in >succession, Each movie is about 8 seconds long, and about 30Mb in >size. My problem is that there is a long pause between each video (2-3 >seconds), presumably as E-prime is trying to fully load the video >before it starts playing it. > >Does anyone know if there is anyway of pre-loading the videos at the >start of the experiment, so that there is a minimal delay between >videos? > >Cheers > >Jason -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From adele.dimian at gmail.com Tue May 11 16:15:02 2010 From: adele.dimian at gmail.com (Adele) Date: Tue, 11 May 2010 09:15:02 -0700 Subject: Blackjack task in E-prime In-Reply-To: <5d0d4966-3e05-4d7b-a612-bd558f7bb10a@k29g2000yqh.googlegroups.com> Message-ID: Hi all, We have been working more on our code and made some progress. Now we are having problems with the equation for adding the card values together so that we can use it to determine when the dealer/computer hits or stays. Any suggestions would be greatly appreciated! '******************> ' CalcNewTotalVal '******************> Dim value As Integer Dim total As Integer Dim winnings as currency Dim ValBC1 as Integer ValBC1 = val(c.getattrib("ValBC1")) Dim ValSC as Integer ValSC = val(c.getattrib("ValSC")) Dim ValHit1 as integer ValHit1 = val(c.getattrib("ValHit1")) Dim ValHit2 as integer ValHit2 = val(c.getattrib("ValHit2")) Dim ValDBC1 as Integer ValDBC1 = val(c.getattrib("ValDBC1")) Dim ValDSC as Integer ValDSC = val(c.getattrib("ValDSC")) Dim ValDHit1 as Integer ValDHit1 = val(c.getattrib("ValDHit1")) Dim ValDHit2 as Integer ValDHit2 = val(c.getattrib("ValDHit2")) debug.print "ValBC1" & c.getattrib ("ValBC1") debug.print "ValSC" & c.getattrib ("ValSC") debug.print "ValHit1" & c.getattrib ("ValHit1") debug.print "ValHit2" & c.getattrib ("ValHit2") debug.print "ValDBC1" & c.getattrib ("ValDBC1") debug.print "ValDSC" & c.getattrib ("ValDSC") debug.print "ValDHit1" & c.getattrib ("ValDHit1") debug.print "ValDHit2" & c.getattrib ("ValDHit2") playercardtotal = 0 dealercardtotal = 0 c.setattrib "playercardtotal", playercardtotal c.setattrib "dealercardtotal", dealercardtotal Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" <------------- This is where the code errors out, stating type mismatch error Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" winnings = total - val(c.getattrib("borrowed")) If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And DealerCardTotal < 22) then MsgBox "You lose." Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And DealerCardTotal > 22) then msgBox "You win." End If '******************< ' CalcNewTotalVal '******************< On May 4, 2:45?pm, Adele wrote: > Hello all, > > We are currently trying to program a Blackjack task in e-prime and > have been trying unsuccessfully for months now! The problem we are > having has to do with how to calculate the value of each card so we > can then calculate the total value of the dealer and participant's > hands. We are trying to use an array to declare the value of the cards > (bear with us this is our first time attempting to use an array). The > cards are set up in a blocklist with card values. In theory ?we would > like to draw from this list to declare the values, so that the values > are consistent with the cards dealt. > > Once the card values are declared we then would like to use an > equation to add the card values and compare the participant total card > value to the dealer card value. We need the dealer card value to > program when the dealer hits and stays. > > Please see below, can anyone point us in the right direction? We would > appreciate it immensely! Thanks for your time and consideration. > > Kind regards, > Adele and Brittany > > Please excuse our inexperience and disorganization, here are several > different ways we were trying to get the card values: > > '******************> > ' CalcNewTotalVal > '******************> > Dim value As Integer > Dim total As Integer > Dim CardCount As Integer > Dim i As Integer > Dim DealerCardCount As Integer > Dim PlayerCardCount As Integer > Dim Deck As clsDeck > Dim hit as integer > Dim stay as Integer > Dim playercardtotal as integer > Dim Dealercardtotal as integer > Dim won as currency > Dim lost as currency > dim winnings as currency > > Dim arrValue (10) as integer > > For i = 0 > 'c.SetAttrib "Won", "Won" > 'c.SetAttrib "Lost", "Lost" > 'won = val(c.getattrib("Won")) > 'lost = val(c.getattrib("Lost")) > total = total + won - lost > winnings = total - val(c.getattrib("borrowed")) > > 'c.SetAttrib "Hit", "Hit" > 'c.SetAttrib "Stay", "Stay" > 'Hit = val(c.getattrib("Hit")) > 'Stay = val(c.getattrib("Stay")) > 'c.getattrib("ValBC1") > 'c.getattrib("ValSC") > 'c.getattrib("ValHit1") > 'c.getattrib("ValHit2") > 'c.getattrib("ValDBC1") > 'c.getattrib("ValDSC") > 'c.getattrib("ValDHit1") > 'c.getattrib("ValDHit2") > Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" > Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" > winnings = total - val(c.getattrib("borrowed")) > > If Playercardtotal > 21 Then > ? ?MsgBox "You busted" > ? ?goto EndlabelDealerif2 > End If > > 'For DealerTotal = GetCardTotal(Dealer) > If DealerCardTotal > 21 Then > ? ?MsgBox "Dealer busts" > ElseIf DealerCardTotal > 15 Then > ? ?MsgBox "Dealer stays" > ' ? EndGame > 'Else > ?' ?DealerCardCount = DealerCardCount + 1 > ? ' Deck.Deal 1, Dealer, _ > ? ?' ?DealerCardCount * 80 + 20, 60, 0, FaceUp > End If > > 'total = 0 > 'CardCount = Choice1.NumCardsInHand(plyer) > 'For i = 0 To CardCount - 1 > ' ? ? ? value = Choice1.GetCardValue(plyer, i) Mod 13 > ' ? ? ? total = total + value + 1 > > 'Dim msg As String > > 'Deck.ShowHandCard Dealer, 0, FaceUp > 'DealerCardTotal = GetCardTotal(Dealer) > 'PlayerCardTotal = GetCardTotal(Player) > Set Choice1 = Nothing > > 'msg = "Dealer: " + CStr(DealerCardTotal) + _ > ' ? ? ? ?+ "Player: " + CStr(PlayerCardTotal) > If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And > DealerCardTotal < 22) then > MsgBox "You lose." > Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And > DealerCardTotal > 22) then > msgBox "You win." > End If > > debug.print "won " & c.getattrib("won") > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 11 17:02:09 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 11 May 2010 13:02:09 -0400 Subject: Blackjack task in E-prime In-Reply-To: <6e2339dd-d28d-4a0a-b376-5a20cf058ef0@k2g2000yqe.googlegrou ps.com> Message-ID: Adele, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... According to your earlier code, you declared Playercardtotal (or PlayerCardTotal, which reads better) as type Integer. Your troublesome line Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" Constructs the string ""ValBC1ValSCValHit1ValHit2" and then tries to assign that to the Integer variable Playercardtotal, which of course makes no sense. You could check the result of "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" yourself just by doing MsgBox "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" Perhaps you meant to do Playercardtotal = ValBC1 + ValSC + ValHit1 + ValHit2 Remember, quotes enclose literal text values, whereas variable names are never quoted (although, to confuse matters slightly, it may look like you enclose variable names in quotes when they indicate items in a Collection object (e.g., SlideState.Objects("subObjectName")), but even here the name is strictly speaking a key value associated with the Collection item). Really, this is elementary programming stuff. Perhaps you and colleagues need to take a time out and take an introduction to computer programming class, just as I did long ago. -- David McFarlane, Professional Faultfinder "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." (Richard Feynman, Nobel prize-winning physicist) >We have been working more on our code and made some progress. Now we >are having problems with the equation for adding the card values >together so that we can use it to determine when the dealer/computer >hits or stays. Any suggestions would be greatly appreciated! > >'******************> >' CalcNewTotalVal >'******************> >Dim value As Integer >Dim total As Integer >Dim winnings as currency > >Dim ValBC1 as Integer >ValBC1 = val(c.getattrib("ValBC1")) >Dim ValSC as Integer >ValSC = val(c.getattrib("ValSC")) >Dim ValHit1 as integer >ValHit1 = val(c.getattrib("ValHit1")) >Dim ValHit2 as integer >ValHit2 = val(c.getattrib("ValHit2")) >Dim ValDBC1 as Integer >ValDBC1 = val(c.getattrib("ValDBC1")) >Dim ValDSC as Integer >ValDSC = val(c.getattrib("ValDSC")) >Dim ValDHit1 as Integer >ValDHit1 = val(c.getattrib("ValDHit1")) >Dim ValDHit2 as Integer >ValDHit2 = val(c.getattrib("ValDHit2")) >debug.print "ValBC1" & c.getattrib ("ValBC1") >debug.print "ValSC" & c.getattrib ("ValSC") >debug.print "ValHit1" & c.getattrib ("ValHit1") >debug.print "ValHit2" & c.getattrib ("ValHit2") >debug.print "ValDBC1" & c.getattrib ("ValDBC1") >debug.print "ValDSC" & c.getattrib ("ValDSC") >debug.print "ValDHit1" & c.getattrib ("ValDHit1") >debug.print "ValDHit2" & c.getattrib ("ValDHit2") > > > >playercardtotal = 0 >dealercardtotal = 0 > >c.setattrib "playercardtotal", playercardtotal >c.setattrib "dealercardtotal", dealercardtotal >Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" ><------------- This is where the code errors out, stating type >mismatch error >Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" >winnings = total - val(c.getattrib("borrowed")) > > >If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And >DealerCardTotal < 22) then >MsgBox "You lose." >Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And >DealerCardTotal > 22) then >msgBox "You win." >End If > > > > >'******************< >' CalcNewTotalVal >'******************< > > > > >On May 4, 2:45 pm, Adele wrote: > > Hello all, > > > > We are currently trying to program a Blackjack task in e-prime and > > have been trying unsuccessfully for months now! The problem we are > > having has to do with how to calculate the value of each card so we > > can then calculate the total value of the dealer and participant's > > hands. We are trying to use an array to declare the value of the cards > > (bear with us this is our first time attempting to use an array). The > > cards are set up in a blocklist with card values. In theory we would > > like to draw from this list to declare the values, so that the values > > are consistent with the cards dealt. > > > > Once the card values are declared we then would like to use an > > equation to add the card values and compare the participant total card > > value to the dealer card value. We need the dealer card value to > > program when the dealer hits and stays. > > > > Please see below, can anyone point us in the right direction? We would > > appreciate it immensely! Thanks for your time and consideration. > > > > Kind regards, > > Adele and Brittany > > > > Please excuse our inexperience and disorganization, here are several > > different ways we were trying to get the card values: > > > > '******************> > > ' CalcNewTotalVal > > '******************> > > Dim value As Integer > > Dim total As Integer > > Dim CardCount As Integer > > Dim i As Integer > > Dim DealerCardCount As Integer > > Dim PlayerCardCount As Integer > > Dim Deck As clsDeck > > Dim hit as integer > > Dim stay as Integer > > Dim playercardtotal as integer > > Dim Dealercardtotal as integer > > Dim won as currency > > Dim lost as currency > > dim winnings as currency > > > > Dim arrValue (10) as integer > > > > For i = 0 > > 'c.SetAttrib "Won", "Won" > > 'c.SetAttrib "Lost", "Lost" > > 'won = val(c.getattrib("Won")) > > 'lost = val(c.getattrib("Lost")) > > total = total + won - lost > > winnings = total - val(c.getattrib("borrowed")) > > > > 'c.SetAttrib "Hit", "Hit" > > 'c.SetAttrib "Stay", "Stay" > > 'Hit = val(c.getattrib("Hit")) > > 'Stay = val(c.getattrib("Stay")) > > 'c.getattrib("ValBC1") > > 'c.getattrib("ValSC") > > 'c.getattrib("ValHit1") > > 'c.getattrib("ValHit2") > > 'c.getattrib("ValDBC1") > > 'c.getattrib("ValDSC") > > 'c.getattrib("ValDHit1") > > 'c.getattrib("ValDHit2") > > Playercardtotal = "ValBC1" + "ValSC" + "ValHit1" + "ValHit2" > > Dealercardtotal = "ValDBC1" + "ValDSC" + "ValDHit1" + "ValDHit2" > > winnings = total - val(c.getattrib("borrowed")) > > > > If Playercardtotal > 21 Then > > MsgBox "You busted" > > goto EndlabelDealerif2 > > End If > > > > 'For DealerTotal = GetCardTotal(Dealer) > > If DealerCardTotal > 21 Then > > MsgBox "Dealer busts" > > ElseIf DealerCardTotal > 15 Then > > MsgBox "Dealer stays" > > ' EndGame > > 'Else > > ' DealerCardCount = DealerCardCount + 1 > > ' Deck.Deal 1, Dealer, _ > > ' DealerCardCount * 80 + 20, 60, 0, FaceUp > > End If > > > > 'total = 0 > > 'CardCount = Choice1.NumCardsInHand(plyer) > > 'For i = 0 To CardCount - 1 > > ' value = Choice1.GetCardValue(plyer, i) Mod 13 > > ' total = total + value + 1 > > > > 'Dim msg As String > > > > 'Deck.ShowHandCard Dealer, 0, FaceUp > > 'DealerCardTotal = GetCardTotal(Dealer) > > 'PlayerCardTotal = GetCardTotal(Player) > > Set Choice1 = Nothing > > > > 'msg = "Dealer: " + CStr(DealerCardTotal) + _ > > ' + "Player: " + CStr(PlayerCardTotal) > > If PlayerCardTotal > 21 Or (PlayerCardTotal < DealerCardTotal And > > DealerCardTotal < 22) then > > MsgBox "You lose." > > Elseif PlayerCardTotal < 21 Or (PlayerCardTotal > DealerCardTotal And > > DealerCardTotal > 22) then > > msgBox "You win." > > End If > > > > debug.print "won " & c.getattrib("won") -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From j.j.marshall at kent.ac.uk Wed May 12 07:57:29 2010 From: j.j.marshall at kent.ac.uk (Jason) Date: Wed, 12 May 2010 00:57:29 -0700 Subject: Pre-load movies in E-prime In-Reply-To: <4be97494.0b0bca0a.2dfe.ffffe099SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Thanks David, I have forwarded my query to PST tech support, and will of course re- post as ansd when I recieve a response! Good point about the buffering. Cheers Jason -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 12 16:37:52 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 12 May 2010 09:37:52 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: Message-ID: Arrrgggh!!! So I've spent the last couple of days trying to place the various code within the experiment. every time i try to do so i get the error messages "SetAttrib is not a property of the object" when i put any of the above script in or "CurrentPerc is not an assignable property of the object" when i try to set CurrentPerc as an attribute, any suggestions? On May 5, 11:25?am, Matt Paffel wrote: > oops, should have spell checked. just got a little too excited to get > to work. > > On May 5, 11:23?am, Matt Paffel wrote: > > > > > > > wow, thanks a lot to the both of you! what a nice bit of information > > to find upon arrivign to work thsi morning! > > > On May 5, 11:00?am, Michiel Spape > > wrote: > > > > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > > > If IsNumeric(mySlide.RESP) then > > > ? ? ? ? If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > > > ? ? ? ? currentPerc = currentPerc + cint(mySlide.RESP)-5 > > > ? ? ? ? c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > ? ? ? ? goto Label1 > > > End if > > > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > > > Best, > > > Mich > > > > Michiel Spap? > > > Research Fellow > > > Perception & Action group > > > University of Nottingham > > > School of Psychology > > > > -----Original Message----- > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > > > Sent: 05 May 2010 15:14 > > > To: e-prime at googlegroups.com > > > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > > > If...Thens stand (and while at it also added a couple comments, and used > > > line continuation characters to break long lines): > > > > If mySlide.resp = 2 then ?' increase pie slice > > > ? ? ?If c.GetAttrib("CurrentPerc") < 100 then _ > > > ? ? ? ? ?c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > > ? ? ? ? ?& ".bmp" > > > ? ? ?goto Label1 > > > ElseIf mySlide.resp = 1 then ?' decrease pie slice > > > ? ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > > > ? ? ? ? ?c.GetAttrib("CurrentPerc") - 1 > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > > ? ? ? ? ?& ".bmp" > > > ? ? ?goto Label1 > > > End If > > > > Might also use a variable instead of an attribute reference for > > > CurrentPerc, thus, > > > > Dim ?currentPerc > > > If mySlide.resp = 2 then ?' increase pie slice > > > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > ? ? ?goto Label1 > > > ElseIf mySlide.resp = 1 then ?' decrease pie slice > > > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > ? ? ?goto Label1 > > > End If > > > > And to complete the exercise, let's use Select...Case: > > > > Dim ?currentPerc > > > Select Case mySlide.RESP > > > ? ?Case 2 ?' increase pie slice > > > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > ? ? ?goto Label1 > > > ? ?Case 1 ?' decrease pie slice > > > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > ? ? ?goto Label1 > > > End Select > > > > -- David McFarlane, Professional Faultfinder > > > > On 5 May 2010 Michiel Spape wrote: > > > > Hi, > > > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > > > If mySlide.resp = 2 then > > > > ? ?If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > > ? ?goto Label1 > > > > end if > > > > If mySlide.resp = 1 then > > > > ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > > ? ?goto Label1 > > > > end if > > > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > > > Best, > > > > Mich > > > > > Michiel Spap? > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychology > > > > > -----Original Message----- > > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > > > Sent: 04 May 2010 20:14 > > > > To: E-Prime > > > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > > > Hello, > > > > > I'm trying to develop a behavioral choice task in which a participant > > > > will be able to increase or decrease a percentage of pie dependent > > > > upon the contingency of the experiment. I've attached the code that I > > > > was planning on using, which I took from the e-basic help file. There > > > > are a couple of lines that I plan on removing from the script such as > > > > the lines referencing "random" and "nCount". However, overall this is > > > > aesthetically what I want the program to look like. My question is; I > > > > want the participant to be able to increase and decrease the > > > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > > > lines of script, or references pertaining to, what I'd like to achieve > > > > within the design. Does anyone have any suggestions? > > > > > 'Create a Canvas > > > > Dim cnvs As Canvas > > > > 'Set cnvs as the current, onscreen canvas > > > > Set cnvs = Display.Canvas > > > > 'Declare variables used to set the size of the canvas > > > > Dim XRes As Integer, YRes As Integer > > > > 'Set the canvas size as the entire screen resolution > > > > XRes = Display.XRes > > > > YRes = Display.YRes > > > > > 'Declare and initialize variables to be used when drawing the sections > > > > of the circle > > > > Const nRadius As Integer = 100 > > > > Dim nStartAngle As Integer, nEndAngle As Integer > > > > Dim nCount As Integer > > > > > 'Initialize variables > > > > nStartAngle = 90 > > > > nEndAngle = 90 > > > > > 'Declare variables to be used to randomly select the delay value > > > > Dim nRandom As Integer > > > > Dim nDelay As Integer > > > > 'Select a random number to determine the value of the delay between > > > > the drawing of each section of the circle > > > > nRandom = Random (1, 2) > > > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > > > 'Otherwise, the nDelay value is set to 1000 ms. > > > > If nRandom = 1 Then > > > > nDelay = 500 > > > > Else > > > > nDelay = 1000 > > > > End If > > > > > 'Set color of pen for pie slice > > > > cnvs.PenColor = CColor("red") > > > > cnvs.FillColor = CColor("red") > > > > 'The For...Next statement repeats a block of statements a specified > > > > number of times > > > > 'incrementing a loop counter by a given increment each time through > > > > the loop > > > > 'In this sample, the nCount variable is incremented by one each time > > > > through the loop allowing ten pie slices to be drawn. > > > > > For nCount = 1 to 10 > > > > > 'Adjust startAngle to specify where to start each section of the > > > > circle each time a pie slice is drawn > > > > nStartAngle = nStartAngle - 36 > > > > 'Draw a pie slice with center point at x, y and radius r, starting at > > > > startAngle and drawing to endAngle. > > > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > > > 'Sleep before drawing next pie slice > > > > Sleep nDelay > > > > Next nCount > > > > 'Set fill color to white before clearing canvas > > > > cnvs.FillColor = CColor("white") > > > > 'Clear canvas > > > > cnvs.clear > > > > 'Set the value of the delay as an attribute in the data file > > > > > Thank you. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > This message has been checked for viruses but the contents of an attachment > > > may still contain software viruses which could damage your computer system: > > > you are advised to perform your own checks. Email communications with the > > > University of Nottingham may be monitored as permitted by UK legislation. > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.-Hidequoted text - > > > > - Show quoted text - > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.-Hide quoted text - > > > - Show quoted text - > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To- Hide quoted text - > > - Show quoted text -... > > read more ? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From susangc7 at gmail.com Wed May 12 17:00:53 2010 From: susangc7 at gmail.com (Susan) Date: Wed, 12 May 2010 10:00:53 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <53ab7479-68f2-4f97-8fed-000fd97cf0fb@37g2000yqm.googlegroups.com> Message-ID: Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does not; I believe the general form should be: c.SetAttrib "CurrentPerc", "12" or whatever. That should fix that particular error. You may also have a problem because all attributes are strings, so conversion to integer may be necessary in some places. HTH, Susan On May 12, 12:37?pm, Matt Paffel wrote: > Arrrgggh!!! > > So I've spent the last couple of days trying to place the various code > within the experiment. every time i try to do so i get the error > messages "SetAttrib is not a property of the object" when i put any of > the above script in or "CurrentPerc is not an assignable property of > the object" when i try to set CurrentPerc as an attribute, any > suggestions? > > On May 5, 11:25?am, Matt Paffel wrote: > > > oops, should have spell checked. just got a little too excited to get > > to work. > > > On May 5, 11:23?am, Matt Paffel wrote: > > > > wow, thanks a lot to the both of you! what a nice bit of information > > > to find upon arrivign to work thsi morning! > > > > On May 5, 11:00?am, Michiel Spape > > > wrote: > > > > > Just as MatLab started half an hour of calculations, I see your corrections and thought I could add the following: > > > > > If IsNumeric(mySlide.RESP) then > > > > ? ? ? ? If (currentPerc + cint(mySlide.RESP)-5 > 0) AND (currentPerc + cint(mySlide.RESP)-5 < 100) then _ > > > > ? ? ? ? currentPerc = currentPerc + cint(mySlide.RESP)-5 > > > > ? ? ? ? c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > > ? ? ? ? goto Label1 > > > > End if > > > > ... no need for else; any numberic key will be seen as an increment or decrement of the pie (9 point scale, bit biased to save code). > > > > Best, > > > > Mich > > > > > Michiel Spap? > > > > Research Fellow > > > > Perception & Action group > > > > University of Nottingham > > > > School of Psychology > > > > > -----Original Message----- > > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > > > > Sent: 05 May 2010 15:14 > > > > To: e-prime at googlegroups.com > > > > Subject: Re: increasing/decreasing percentage - pie chart/ circular graph > > > > > Sorry, couldn't quite let that pair of exhaustive-and-mutually-exclusive > > > > If...Thens stand (and while at it also added a couple comments, and used > > > > line continuation characters to break long lines): > > > > > If mySlide.resp = 2 then ?' increase pie slice > > > > ? ? ?If c.GetAttrib("CurrentPerc") < 100 then _ > > > > ? ? ? ? ?c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > > > ? ? ? ? ?& ".bmp" > > > > ? ? ?goto Label1 > > > > ElseIf mySlide.resp = 1 then ?' decrease pie slice > > > > ? ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), _ > > > > ? ? ? ? ?c.GetAttrib("CurrentPerc") - 1 > > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) _ > > > > ? ? ? ? ?& ".bmp" > > > > ? ? ?goto Label1 > > > > End If > > > > > Might also use a variable instead of an attribute reference for > > > > CurrentPerc, thus, > > > > > Dim ?currentPerc > > > > If mySlide.resp = 2 then ?' increase pie slice > > > > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > > ? ? ?goto Label1 > > > > ElseIf mySlide.resp = 1 then ?' decrease pie slice > > > > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > > ? ? ?goto Label1 > > > > End If > > > > > And to complete the exercise, let's use Select...Case: > > > > > Dim ?currentPerc > > > > Select Case mySlide.RESP > > > > ? ?Case 2 ?' increase pie slice > > > > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > > ? ? ?goto Label1 > > > > ? ?Case 1 ?' decrease pie slice > > > > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > > > > ? ? ?c.SetAttrib("myPicture"), "pie" & cstr(currentPerc) & ".bmp" > > > > ? ? ?goto Label1 > > > > End Select > > > > > -- David McFarlane, Professional Faultfinder > > > > > On 5 May 2010 Michiel Spape wrote: > > > > > Hi, > > > > > A) You could, of course, just do away with almost all of the inline code, make some nice graphics yourself and just making a little procedure with a slide and a loop. Just name your 100 pictures of pies to be something like pie50.bmp (for 50%). Have a slide (mySlide, with, importantly, a reference to attribute [myPicture]), a little label before that (Label1), a single inline after that: > > > > > > If mySlide.resp = 2 then > > > > > ? ?If c.GetAttrib("CurrentPerc") < 100 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") + 1 > > > > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > > > ? ?goto Label1 > > > > > end if > > > > > If mySlide.resp = 1 then > > > > > ? ?If c.GetAttrib("CurrentPerc") > 1 then c.SetAttrib("CurrentPerc"), c.GetAttrib("CurrentPerc") - 1 > > > > > ? ?c.SetAttrib("myPicture"), "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > > > > ? ?goto Label1 > > > > > end if > > > > > > Should work. Any response other than 1 or 2 is taken as final answer. > > > > > > B) If you insist on using loads of canvas, my advice is to do something similar to the above - i.e. check for a response (for instance, just use a little, blank textdisplay with duration 0 and timelimit infinite), or even continually check for a response, loop, &c. > > > > > > Best, > > > > > Mich > > > > > > Michiel Spap? > > > > > Research Fellow > > > > > Perception & Action group > > > > > University of Nottingham > > > > > School of Psychology > > > > > > -----Original Message----- > > > > > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Matt Paffel > > > > > Sent: 04 May 2010 20:14 > > > > > To: E-Prime > > > > > Subject: increasing/decreasing percentage - pie chart/ circular graph > > > > > > Hello, > > > > > > I'm trying to develop a behavioral choice task in which a participant > > > > > will be able to increase or decrease a percentage of pie dependent > > > > > upon the contingency of the experiment. I've attached the code that I > > > > > was planning on using, which I took from the e-basic help file. There > > > > > are a couple of lines that I plan on removing from the script such as > > > > > the lines referencing "random" and "nCount". However, overall this is > > > > > aesthetically what I want the program to look like. My question is; I > > > > > want the participant to be able to increase and decrease the > > > > > percentage of pie using the 1 and 2 keys. I'm having trouble finding > > > > > lines of script, or references pertaining to, what I'd like to achieve > > > > > within the design. Does anyone have any suggestions? > > > > > > 'Create a Canvas > > > > > Dim cnvs As Canvas > > > > > 'Set cnvs as the current, onscreen canvas > > > > > Set cnvs = Display.Canvas > > > > > 'Declare variables used to set the size of the canvas > > > > > Dim XRes As Integer, YRes As Integer > > > > > 'Set the canvas size as the entire screen resolution > > > > > XRes = Display.XRes > > > > > YRes = Display.YRes > > > > > > 'Declare and initialize variables to be used when drawing the sections > > > > > of the circle > > > > > Const nRadius As Integer = 100 > > > > > Dim nStartAngle As Integer, nEndAngle As Integer > > > > > Dim nCount As Integer > > > > > > 'Initialize variables > > > > > nStartAngle = 90 > > > > > nEndAngle = 90 > > > > > > 'Declare variables to be used to randomly select the delay value > > > > > Dim nRandom As Integer > > > > > Dim nDelay As Integer > > > > > 'Select a random number to determine the value of the delay between > > > > > the drawing of each section of the circle > > > > > nRandom = Random (1, 2) > > > > > 'If the random number chosen is 1, the nDelay value is set to 500 ms. > > > > > 'Otherwise, the nDelay value is set to 1000 ms. > > > > > If nRandom = 1 Then > > > > > nDelay = 500 > > > > > Else > > > > > nDelay = 1000 > > > > > End If > > > > > > 'Set color of pen for pie slice > > > > > cnvs.PenColor = CColor("red") > > > > > cnvs.FillColor = CColor("red") > > > > > 'The For...Next statement repeats a block of statements a specified > > > > > number of times > > > > > 'incrementing a loop counter by a given increment each time through > > > > > the loop > > > > > 'In this sample, the nCount variable is incremented by one each time > > > > > through the loop allowing ten pie slices to be drawn. > > > > > > For nCount = 1 to 10 > > > > > > 'Adjust startAngle to specify where to start each section of the > > > > > circle each time a pie slice is drawn > > > > > nStartAngle = nStartAngle - 36 > > > > > 'Draw a pie slice with center point at x, y and radius r, starting at > > > > > startAngle and drawing to endAngle. > > > > > cnvs.Pie XRes/2, YRes/2, nRadius, nStartAngle, nEndAngle > > > > > 'Sleep before drawing next pie slice > > > > > Sleep nDelay > > > > > Next nCount > > > > > 'Set fill color to white before clearing canvas > > > > > cnvs.FillColor = CColor("white") > > > > > 'Clear canvas > > > > > cnvs.clear > > > > > 'Set the value of the delay as an attribute in the data file > > > > > > Thank you. > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to e-prime at googlegroups.com. > > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > > > This message has been checked for viruses but the contents of an attachment > > > > may still contain software viruses which could damage your computer system: > > > > you are advised to perform your own checks. Email communications with the > > > > University of Nottingham may be monitored as permitted by UK legislation. > > > > > -- > > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > > To post to this group, send email to > > ... > > read more ? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 12 19:35:10 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 12 May 2010 15:35:10 -0400 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <9f00dc43-8309-4c03-9444-2674676fcaff@q30g2000yqd.googlegroups.com> Message-ID: Susan, Good catch, I obviously missed that when I made & posted my revisions! Just for the record (and because I am such a pedant) here are all the code samples again with corrections made. AFAIK E-Basic/Visual Basic is the only language that has this silly rule about parentheses around Function arguments but not Sub arguments, which causes much pain for no useful purpose. (For that matter, more rational languages such as C do away with the useless distinction between functions and subroutines altogether.) First, my base revision of Mich's code (also adding more parentheses around conditional clauses, and putting tests into numerical order just because I think it reads better) (and please pay attention to the underscore "_" that I use at the end of some lines, yet another silly affectation of Basic)... If (mySlide.resp = 1) then ' decrease pie slice If c.GetAttrib("CurrentPerc") > 1 then _ c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 c.SetAttrib "myPicture", _ "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 ElseIf (mySlide.resp = 2) then ' increase pie slice If c.GetAttrib("CurrentPerc") < 100 then _ c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 c.SetAttrib "myPicture", _ "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" goto Label1 End If Then, my revision using a variable instead of an attribute reference for CurrentPerc (and this time giving a type to the variable)... Dim currentPerc as Integer ' Single would allow fractional changes If (mySlide.resp = 1) then ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 ElseIf (mySlide.resp = 2) then ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 End If Then my exercise using Select...Case... Dim currentPerc as Integer Select Case mySlide.RESP Case 1 ' decrease pie slice If (currentPerc > 1) then currentPerc = currentPerc - 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 Case 2 ' increase pie slice If (currentPerc < 100) then currentPerc = currentPerc + 1 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 End Select And finally, Mich reduced it all to (with me now adding the Dim, and making a correction to his literal constant value)... ' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise ' algorithm will fail. Dim currentPerc as Integer If IsNumeric(mySlide.RESP) then If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ currentPerc = currentPerc + cint(mySlide.RESP)- 2 c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" goto Label1 End if Note that this all assumes that the Procedure runs until we are done with pie slices, otherwise we would have to work with a global variable. -- David McFarlane, Professional Faultfinder > Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does > not; I believe the general form should be: > > c.SetAttrib "CurrentPerc", "12" > > or whatever. That should fix that particular error. You may also have > a problem because all attributes are strings, so conversion to integer > may be necessary in some places. > > HTH, > Susan > > On May 12, 12:37 pm, Matt Paffel wrote: >> Arrrgggh!!! >> >> So I've spent the last couple of days trying to place the various code >> within the experiment. every time i try to do so i get the error >> messages "SetAttrib is not a property of the object" when i put any of >> the above script in or "CurrentPerc is not an assignable property of >> the object" when i try to set CurrentPerc as an attribute, any >> suggestions? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Wed May 12 21:45:42 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Wed, 12 May 2010 14:45:42 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4BEB02EE.9050604@msu.edu> Message-ID: Thank you guys, I wont be able to check the variations until tomorrow afternoon. I'll let you know how it works out. On May 12, 2:35?pm, David McFarlane wrote: > Susan, > > Good catch, I obviously missed that when I made & posted my revisions! > Just for the record (and because I am such a pedant) here are all the > code samples again with corrections made. ?AFAIK > E-Basic/Visual Basic is the only language that has this silly rule about > parentheses around Function arguments but not Sub arguments, which > causes much pain for no useful purpose. ?(For that matter, more rational > languages such as C do away with the useless distinction between > functions and subroutines altogether.) > > First, my base revision of Mich's code (also adding more parentheses > around conditional clauses, and putting tests into numerical order just > because I think it reads better) (and please pay attention to the > underscore "_" that I use at the end of some lines, yet another silly > affectation of Basic)... > > If (mySlide.resp = 1) then ?' decrease pie slice > ? ? ?If c.GetAttrib("CurrentPerc") > 1 then _ > ? ? ? ? ?c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 > ? ? ?c.SetAttrib "myPicture", _ > ? ? ? ? ?"pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > ? ? ?goto Label1 > ElseIf (mySlide.resp = 2) then ?' increase pie slice > ? ? ?If c.GetAttrib("CurrentPerc") < 100 then _ > ? ? ? ? ?c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 > ? ? ?c.SetAttrib "myPicture", _ > ? ? ? ? ?"pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > ? ? ?goto Label1 > End If > > Then, my revision using a variable instead of an attribute reference for > CurrentPerc (and this time giving a type to the variable)... > > Dim ?currentPerc as Integer ?' Single would allow fractional changes > If (mySlide.resp = 1) then ?' decrease pie slice > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > ? ? ?c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > ElseIf (mySlide.resp = 2) then ?' increase pie slice > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > ? ? ?c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > End If > > Then my exercise using Select...Case... > > Dim ?currentPerc as Integer > Select Case mySlide.RESP > Case 1 ?' decrease pie slice > ? ? ?If (currentPerc > 1) then currentPerc = currentPerc - 1 > ? ? ?c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > Case 2 ?' increase pie slice > ? ? ?If (currentPerc < 100) then currentPerc = currentPerc + 1 > ? ? ?c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > End Select > > And finally, Mich reduced it all to (with me now adding the Dim, and > making a correction to his literal constant value)... > > ' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise > ' algorithm will fail. > Dim ?currentPerc as Integer > If IsNumeric(mySlide.RESP) then > ? ? ?If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ > ? ? ? ? ?((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ > ? ? ? ? ?currentPerc = currentPerc + cint(mySlide.RESP)- 2 > ? ? ?c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > ? ? ?goto Label1 > End if > > Note that this all assumes that the Procedure runs until we are done > with pie slices, otherwise we would have to work with a global variable. > > -- David McFarlane, Professional Faultfinder > > > > > Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does > > not; I believe the general form should be: > > > c.SetAttrib "CurrentPerc", "12" > > > or whatever. That should fix that particular error. You may also have > > a problem because all attributes are strings, so conversion to integer > > may be necessary in some places. > > > HTH, > > Susan > > > On May 12, 12:37 pm, Matt Paffel wrote: > >> Arrrgggh!!! > > >> So I've spent the last couple of days trying to place the various code > >> within the experiment. every time i try to do so i get the error > >> messages "SetAttrib is not a property of the object" when i put any of > >> the above script in or "CurrentPerc is not an assignable property of > >> the object" when i try to set CurrentPerc as an attribute, any > >> suggestions? > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ekoren2 at gmail.com Thu May 13 05:04:17 2010 From: ekoren2 at gmail.com (Eli Koren) Date: Thu, 13 May 2010 08:04:17 +0300 Subject: pause with image Message-ID: Hi there! I need 2 pause2 after 150 trials 1 with text and the other text with image. this is the first pause acript: If trial1= 150 Then ' Must set input properties manually if running from Unreferenced E-Objects Pause2.InputMasks.Add Keyboard.CreateInputMask("{SPACE}", "", CLng(Pause2.Duration), CLng("1"), ebEndResponseActionTerminate, CLogical("Yes"), "", "", "ResponseMode:All ProcessBackspace:Yes") Pause2.Run End If How can i write the second pause text with image? (not possible to insert image to pause ) I dont want script with goto label just another pause which include image. thanks Eli Koren -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcfarla9 at msu.edu Thu May 13 19:04:37 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 13 May 2010 15:04:37 -0400 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4BEB02EE.9050604@msu.edu> Message-ID: OK, by now you are all sick of this, but I couldn't let that last sample code sit, so as yet another exercise I revised it so that it will use .RESP = 1 for decrease and .RESP = 2 for increase (but as a further exercise, think through what happens if .RESP goes outside that range; of course one could prevent that by proper use of Allowable). Note the use of CSng(). Remember, you are responsible for catching typos and making your own corrections in any of the free and hastily-produced sample code posted here. Dim currentPerc as Integer, newPerc as Integer If IsNumeric(mySlide.RESP) Then newPerc = currentPerc + (2 * ( CSng(mySlide.RESP) - 1.5 )) If (0 <= newPerc) and (newPerc <= 100) Then currentPerc = newPerc c.SetAttrib "myPicture", "pie" & Cstr(newPerc) & ".bmp" End If goto Label1 End if -- David McFarlane, Professional Faultfinder At 5/12/2010 03:35 PM Wednesday, David McFarlane wrote: >Susan, > >Good catch, I obviously missed that when I made & posted my >revisions! Just for the record (and because I am such a pedant) here >are all the code samples again with corrections >made. AFAIK E-Basic/Visual Basic is the only language >that has this silly rule about parentheses around Function arguments >but not Sub arguments, which causes much pain for no useful >purpose. (For that matter, more rational languages such as C do >away with the useless distinction between functions and subroutines >altogether.) > > >First, my base revision of Mich's code (also adding more parentheses >around conditional clauses, and putting tests into numerical order >just because I think it reads better) (and please pay attention to >the underscore "_" that I use at the end of some lines, yet another >silly affectation of Basic)... > >If (mySlide.resp = 1) then ' decrease pie slice > If c.GetAttrib("CurrentPerc") > 1 then _ > c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 > c.SetAttrib "myPicture", _ > "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 >ElseIf (mySlide.resp = 2) then ' increase pie slice > If c.GetAttrib("CurrentPerc") < 100 then _ > c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 > c.SetAttrib "myPicture", _ > "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > goto Label1 >End If > >Then, my revision using a variable instead of an attribute reference for >CurrentPerc (and this time giving a type to the variable)... > >Dim currentPerc as Integer ' Single would allow fractional changes >If (mySlide.resp = 1) then ' decrease pie slice > If (currentPerc > 1) then currentPerc = currentPerc - 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >ElseIf (mySlide.resp = 2) then ' increase pie slice > If (currentPerc < 100) then currentPerc = currentPerc + 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >End If > >Then my exercise using Select...Case... > >Dim currentPerc as Integer >Select Case mySlide.RESP >Case 1 ' decrease pie slice > If (currentPerc > 1) then currentPerc = currentPerc - 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >Case 2 ' increase pie slice > If (currentPerc < 100) then currentPerc = currentPerc + 1 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >End Select > >And finally, Mich reduced it all to (with me now adding the Dim, and >making a correction to his literal constant value)... > >' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise >' algorithm will fail. >Dim currentPerc as Integer >If IsNumeric(mySlide.RESP) then > If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ > ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ > currentPerc = currentPerc + cint(mySlide.RESP)- 2 > c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > goto Label1 >End if > >Note that this all assumes that the Procedure runs until we are done >with pie slices, otherwise we would have to work with a global variable. > >-- David McFarlane, Professional Faultfinder > > >>Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does >>not; I believe the general form should be: >>c.SetAttrib "CurrentPerc", "12" >>or whatever. That should fix that particular error. You may also have >>a problem because all attributes are strings, so conversion to integer >>may be necessary in some places. >>HTH, >>Susan >>On May 12, 12:37 pm, Matt Paffel wrote: >>>Arrrgggh!!! >>> >>>So I've spent the last couple of days trying to place the various code >>>within the experiment. every time i try to do so i get the error >>>messages "SetAttrib is not a property of the object" when i put any of >>>the above script in or "CurrentPerc is not an assignable property of >>>the object" when i try to set CurrentPerc as an attribute, any >>>suggestions? > >-- >You received this message because you are subscribed to the Google >Groups "E-Prime" group. >To post to this group, send email to e-prime at googlegroups.com. >To unsubscribe from this group, send email to >e-prime+unsubscribe at googlegroups.com. >For more options, visit this group at >http://groups.google.com/group/e-prime?hl=en. > -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mpaffel at gmail.com Thu May 13 21:43:37 2010 From: mpaffel at gmail.com (Matt Paffel) Date: Thu, 13 May 2010 14:43:37 -0700 Subject: increasing/decreasing percentage - pie chart/ circular graph In-Reply-To: <4bec4d49.0b0bca0a.0567.5981SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hello...again. Sorry for taking up so much time with this but I?ve entered the code and when I generate it, there seems to be no problem, the code generates just fine. However, when I try to run the program, I keep getting the error message 13, ?type mismatch?. I then put all the various 1?s and 2?s in quotation marks which allow me to not only generate the code, but also run the program. However, the program does not respond to any of the keys pressed, which inevitably leads me to have to ctrl, alt, shift out of the program. After looking at it, one of my colleagues suggested I place the entire code online for whomever to look at and see if they can make it work. I?m not sure of the etiquette of this and have opted against doing so but if anyone would be willing to take a shot at it I can certainly do so. Does anyone have a suggestion of where to go from here? On May 13, 2:04?pm, David McFarlane wrote: > OK, by now you are all sick of this, but I couldn't let that last > sample code sit, so as yet another exercise I revised it so that it > will use .RESP = 1 for decrease and .RESP = 2 for increase (but as a > further exercise, think through what happens if .RESP goes outside > that range; of course one could prevent that by proper use of > Allowable). ?Note the use of CSng(). ?Remember, you are responsible > for catching typos and making your own corrections in any of the free > and hastily-produced sample code posted here. > > Dim ?currentPerc as Integer, newPerc as Integer > If IsNumeric(mySlide.RESP) Then > ? ? ?newPerc = currentPerc + (2 * ( CSng(mySlide.RESP) - 1.5 )) > ? ? ?If (0 <= newPerc) and (newPerc <= 100) Then > ? ? ? ? ?currentPerc = newPerc > ? ? ? ? ?c.SetAttrib "myPicture", "pie" & Cstr(newPerc) & ".bmp" > ? ? ?End If > ? ? ?goto Label1 > End if > > -- David McFarlane, Professional Faultfinder > > At 5/12/2010 03:35 PM Wednesday, David McFarlane wrote: > > > > > > >Susan, > > >Good catch, I obviously missed that when I made & posted my > >revisions! Just for the record (and because I am such a pedant) here > >are all the code samples again with corrections > >made. ?AFAIK E-Basic/Visual Basic is the only language > >that has this silly rule about parentheses around Function arguments > >but not Sub arguments, which causes much pain for no useful > >purpose. ?(For that matter, more rational languages such as C do > >away with the useless distinction between functions and subroutines > >altogether.) > > >First, my base revision of Mich's code (also adding more parentheses > >around conditional clauses, and putting tests into numerical order > >just because I think it reads better) (and please pay attention to > >the underscore "_" that I use at the end of some lines, yet another > >silly affectation of Basic)... > > >If (mySlide.resp = 1) then ?' decrease pie slice > > ? ? If c.GetAttrib("CurrentPerc") > 1 then _ > > ? ? ? ? c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) - 1 > > ? ? c.SetAttrib "myPicture", _ > > ? ? ? ? "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > ? ? goto Label1 > >ElseIf (mySlide.resp = 2) then ?' increase pie slice > > ? ? If c.GetAttrib("CurrentPerc") < 100 then _ > > ? ? ? ? c.SetAttrib "CurrentPerc", CInt(c.GetAttrib("CurrentPerc")) + 1 > > ? ? c.SetAttrib "myPicture", _ > > ? ? ? ? "pie" & cstr(c.GetAttrib("CurrentPerc")) & ".bmp" > > ? ? goto Label1 > >End If > > >Then, my revision using a variable instead of an attribute reference for > >CurrentPerc (and this time giving a type to the variable)... > > >Dim ?currentPerc as Integer ?' Single would allow fractional changes > >If (mySlide.resp = 1) then ?' decrease pie slice > > ? ? If (currentPerc > 1) then currentPerc = currentPerc - 1 > > ? ? c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > > ? ? goto Label1 > >ElseIf (mySlide.resp = 2) then ?' increase pie slice > > ? ? If (currentPerc < 100) then currentPerc = currentPerc + 1 > > ? ? c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > > ? ? goto Label1 > >End If > > >Then my exercise using Select...Case... > > >Dim ?currentPerc as Integer > >Select Case mySlide.RESP > >Case 1 ?' decrease pie slice > > ? ? If (currentPerc > 1) then currentPerc = currentPerc - 1 > > ? ? c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > > ? ? goto Label1 > >Case 2 ?' increase pie slice > > ? ? If (currentPerc < 100) then currentPerc = currentPerc + 1 > > ? ? c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > > ? ? goto Label1 > >End Select > > >And finally, Mich reduced it all to (with me now adding the Dim, and > >making a correction to his literal constant value)... > > >' Assumes .RESP = 1 for decrease, .RESP = 3 for increase, otherwise > >' algorithm will fail. > >Dim ?currentPerc as Integer > >If IsNumeric(mySlide.RESP) then > > ? ? If ((currentPerc + cint(mySlide.RESP) - 2) > 0) AND _ > > ? ? ? ? ((currentPerc + cint(mySlide.RESP) - 2) < 100) then _ > > ? ? ? ? currentPerc = currentPerc + cint(mySlide.RESP)- 2 > > ? ? c.SetAttrib "myPicture", "pie" & cstr(currentPerc) & ".bmp" > > ? ? goto Label1 > >End if > > >Note that this all assumes that the Procedure runs until we are done > >with pie slices, otherwise we would have to work with a global variable. > > >-- David McFarlane, Professional Faultfinder > > >>Here's a thought: while c.GetAttrib takes parens, c.SetAttrib does > >>not; I believe the general form should be: > >>c.SetAttrib "CurrentPerc", "12" > >>or whatever. That should fix that particular error. You may also have > >>a problem because all attributes are strings, so conversion to integer > >>may be necessary in some places. > >>HTH, > >>Susan > >>On May 12, 12:37 pm, Matt Paffel wrote: > >>>Arrrgggh!!! > > >>>So I've spent the last couple of days trying to place the various code > >>>within the experiment. every time i try to do so i get the error > >>>messages "SetAttrib is not a property of the object" when i put any of > >>>the above script in or "CurrentPerc is not an assignable property of > >>>the object" when i try to set CurrentPerc as an attribute, any > >>>suggestions? > > >-- > >You received this message because you are subscribed to the Google > >Groups "E-Prime" group. > >To post to this group, send email to e-prime at googlegroups.com. > >To unsubscribe from this group, send email to > >e-prime+unsubscribe at googlegroups.com. > >For more options, visit this group at > >http://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From chloebooth86 at googlemail.com Thu May 13 22:05:02 2010 From: chloebooth86 at googlemail.com (Chloe) Date: Thu, 13 May 2010 15:05:02 -0700 Subject: Tidying an if.. then statement in E-Prime script for attention capture paradigm Message-ID: Hi there, I?m having some problems with scripting an If, then clause in my program. I?ve edited an emotional capture paradigm in which people view 3 faces on the screen, one face has blue eyes (the target) and the other two faces have brown eye (the distractors). When participants find the blue eyed face, they must respond with what direction the face is tilted in (left or right). On 2/3 trials, all faces have a neutral emo expression. However, on 1/3 trials, one face will show a discrepant emotion (either happy or sad) and this discrepant emotion can appear on either the target face or on the distractor faces. The emotion is always irrelevant to the task (find blue eyes). I use four face identities in this task, and the pictures are edited so each face has blue eyes and brown eyes. So, for example, I have a picture of ID1 with blue eyes and a picture of ID1 with brown eyes. Also, the faces can appear in Left or Right orientation. So, the picture files I have are listed in program as thus: LBluNeut(1) = "M1_Bl_L_Neut.bmp" LBluNeut(2) = "M2_Bl_L_Neut.bmp" LBluNeut(3) = "F1_Bl_L_Neut.bmp" LBluNeut(4) = "f2_Bl_L_Neut.bmp" RBluNeut(1) = "M1_Bl_R_Neut.bmp" RBluNeut(2) = "M2_Bl_R_Neut.bmp" RBluNeut(3) = "F1_Bl_R_Neut.bmp" RBluNeut(4) = "F2_Bl_R_Neut.bmp" LBluHap(1) = "M1_Bl_L_Hap.bmp" LBluHap(2) = "M2_Bl_L_Hap.bmp" LBluHap(3) = "F1_Bl_L_Hap.bmp" LBluHap(4) = "F2_Bl_L_Hap.bmp" RBluHap(1) = "M1_Bl_R_Hap.bmp" RBluHap(2) = "M2_Bl_R_Hap.bmp" RBluHap(3) = "F1_Bl_R_Hap.bmp" RBluHap(4) = "F2_Bl_R_Hap.bmp" LBluSad(1) = "M1_Bl_L_Sad.bmp" LBluSad(2) = "M2_Bl_L_Sad.bmp" LBluSad(3) = "F1_Bl_L_Sad.bmp" LBluSad(4) = "F2_Bl_L_Sad.bmp" Etc? and repeated for all the brown eyes. I then have this code: 'position objects 'dim nIndex as integer for fill_loop = 1 to 3 ?POSITION OF DISPLAY ITEMS pos(fill_loop) = fill_loop next fill_loop for fill_loop = 1 to 4 'WHICH BROWN EYE (DISTRACTOR) FACE bro_eye(fill_loop) = fill_loop next fill_loop 'MAKE TARGET NOT SAME AS TARGET ON TRIAL n - 1 do curr_tar = random(1,4) loop while (curr_tar = prev_tar) ?MAKE DISTRACTOR NOT SAME AS DISTRACTOR ON TRIAL n - 1 do RandomizeArray bro_eye, 1, 4 loop while (bro_eye(1) = prev_dis) prev_tar = curr_tar prev_dis = bro_eye(1) / *========================================================================= ''''Choose target face (blue eyes) as first item in list face =========================================================================*/ select case c.getattrib("Target_Emotion") case "neutral" select case c.getattrib("T_Orient") 'READ TARGET FROM TABLE case "left" c.setattrib"rc","m" 'SET RESPONSE stim(1) = LBluNeut(curr_tar) case "right" c.setattrib"rc","k" 'SET RESPONSE stim(1) = RBluNeut(curr_tar) end select case "happy" select case c.getattrib("T_Orient") case "left" c.setattrib"rc","m" stim(1) = LBluHap(curr_tar) case "right" c.setattrib"rc","k" stim(1) = RBluHap(curr_tar) end select case "sad" select case c.getattrib("T_Orient") case "left" c.setattrib"rc","m" stim(1) = LBluSad(curr_tar) case "right" c.setattrib"rc","k" stim(1) = RBluSad(curr_tar) end select end select / *============================================================================*/ / *========================================================================= ''''Choose brown eyes face for 2nd item in list - CAN be emotional =========================================================================*/ select case c.getattrib("Distractor_Emotion") case "neutral" select case c.getattrib("D1_Orient") 'READ DISTRACTOR 1 ORIENTATION CONDITION FROM TABLE case "left" stim(2) = LBroNeut(bro_eye(1)) case "right" stim(2) = RBroNeut(bro_eye(1)) end select case "happy" select case c.getattrib("D1_Orient") case "left" stim(2) = LBroHap(bro_eye(1)) case "right" stim(2) = RBroHap(bro_eye(1)) end select case "sad" select case c.getattrib("D1_Orient") case "left" stim(2) = LBroSad(bro_eye(1)) case "right" stim(2) = RBroSad(bro_eye(1)) end select end select / *============================================================================== ''''Choose second brown eye face as distractor item - never the emotional one. ===============================================================================*/ select case c.getattrib("D2_Orient") case "left" stim(3) = LBroNeut(bro_eye(2)) case "right" stim(3) = RBroNeut(bro_eye(2)) end select / *============================================================================*/ RandomizeArray pos, 1, 3 /*Assign filenames to locations in slide*/ c.setattrib "e1", stim(pos(1)) c.setattrib "e2", stim(pos(2)) c.setattrib "e3", stim(pos(3)) strImageFile = c.GetAttrib("e1") LoadSlideImageFile search.States(search.ActiveState), "image1", strImageFile strImageFile = c.GetAttrib("e2") LoadSlideImageFile search.States(search.ActiveState), "image2", strImageFile strImageFile = c.GetAttrib("e3") LoadSlideImageFile search.States(search.ActiveState), "image3", strImageFile Okay, so the problem is, I need to insert a clause so that if the target being shown is a picture of person1/ID1 with blue eyes, then none of the distractors show ID1 with brown eyes. So something like: If curr_tarr = LBluNeut(1) or RBluNeut(1) or LBluSad(1) or RBluSad(1) or LBluHap(1) or RBluHap(1) then distractors can?t be LBroNeut(1) or RBroNeut(1) or LBroSad(1) or RBroSad(1) or LBroHap(1) or RBroHap(1) or if curr_tar = LBluNeut(2) or RBluNeut(2) or LBluSad(2) or RBluSad(2) or LBluHap(2) or RBluHap(2) then distractors can?t be LBroNeut(2) or RBroNeut(2) or LBroSad(2) or RBroSad(2) or LBroHap(2) or RBroHap(2) etc. for all four IDs. But 1) this doesn?t work! And 2) there must be a simpler way of doing this?! Please help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From sophie.jarlier at gmail.com Fri May 14 06:51:40 2010 From: sophie.jarlier at gmail.com (soeursourire) Date: Thu, 13 May 2010 23:51:40 -0700 Subject: Play movie in Eprime2 Message-ID: Hi, I have this error when I try to simply read an avi file in Eprime2: Run-time Error (Line 99) 11053: An error occurred while attempting to load the movie Marker: 223 Error: -2147220877 (0x80040273) I do not understand why, as the first image of the video is visible in Eprime when elaborating the experiment. I can read the video on the PC into Windows Media Player so it should not be a problem of codec. So why eprime cannot load the video although I selected directly the file to play? Thanks for your help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Fri May 14 13:50:30 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 14 May 2010 09:50:30 -0400 Subject: Play movie in Eprime2 In-Reply-To: <69321b58-b615-4d9a-a4ac-ffebdc703cba@k42g2000yqb.googlegro ups.com> Message-ID: This has been discussed in several threads both here and on the PST Forum, as well as in the PST Knowledge Base. As I recall, seeing a movie work in Windows Media Player provides no guarantee that codecs and other things are configured correctly to work with E-Prime, if I am wrong then someone please correct me. We could really use a full explanation of the technical matters involved in playing digital movies. In the meantime, please contact PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp , they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. And if you learn anything useful then please post back here. -- David McFarlane, Professional Faultfinder >I have this error when I try to simply read an avi file in Eprime2: > >Run-time Error (Line 99) 11053: An error occurred while attempting to >load the movie >Marker: 223 >Error: -2147220877 (0x80040273) > >I do not understand why, as the first image of the video is visible in >Eprime when elaborating the experiment. >I can read the video on the PC into Windows Media Player so it should >not be a problem of codec. > >So why eprime cannot load the video although I selected directly the >file to play? > >Thanks for your help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From d.vinson at ucl.ac.uk Fri May 14 15:54:18 2010 From: d.vinson at ucl.ac.uk (David Vinson) Date: Fri, 14 May 2010 16:54:18 +0100 Subject: Play movie in Eprime2 In-Reply-To: <69321b58-b615-4d9a-a4ac-ffebdc703cba@k42g2000yqb.googlegroups.com> Message-ID: Hi, David M. is right - the fact that a movie works in Windows Media Player is no guarantee that it will work in E-Prime 2.0. If you have not successfully displayed a movie in E-Prime before, the first troubleshooting step is to check is whether the sample experiment "MovieRT" works. If this doesn't work, this tells you there's a more general problem than just something to do with the specific avi video you're trying to load. If MovieRT works, then you know it's something specific to do with your video encoding and can proceed accordingly. Good luck! another David soeursourire wrote: > I have this error when I try to simply read an avi file in Eprime2: > > Run-time Error (Line 99) 11053: An error occurred while attempting to > load the movie > Marker: 223 > Error: -2147220877 (0x80040273) > > I do not understand why, as the first image of the video is visible in > Eprime when elaborating the experiment. > I can read the video on the PC into Windows Media Player so it should > not be a problem of codec. -- David Vinson, Ph.D. Senior Postdoctoral Researcher 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 post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Fri May 14 20:43:28 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 14 May 2010 16:43:28 -0400 Subject: Tidying an if.. then statement in E-Prime script for attention capture paradigm In-Reply-To: <4d592f3a-d530-4edf-bb97-7006ce7290b6@k42g2000yqb.googlegro ups.com> Message-ID: Chloe, Wow. I would like to know how others here feel, but when I see someone post more than about a dozen lines of code I get the feeling that they are so hopelessly lost that they are beyond any help that I can offer. Still, I will hazard a couple of thoughts on this situation. If I were to use arrays for this (instead of Lists, which I will come back to), then I would put everything into one array instead of separated into so many arrays as you have done. Using all those separate arrays just complicates matters and wastes the power of arrays. With all the file names in one array, I could then use Mid() or InStr() to inspect any string for the presence of tags like "Neut" or "Hap", and I would need only one array name to use in my conditional expressions for the If...Thens. Sticking with arrays, I might go a step further and put all this into one mult-dimensional array. I could use one dimension for eye color, another for orientation, etc. Now, by a suitable choice of index values, I could immediately single out ranges from any dimensions I like. But I would probably not use arrays anyway. More likely I would put all this into a List. After all, if you are not going to use the specialized features of E-Prime, why use it at all? -- You could just as well use any general-purpose programming platform, which would both cost less and make more portable programs. Anyway, my List could contain a column or "attribute" for each, well, attribute, e.g., ID, EyeColor, Orientation, Emotion. I could then generate my file names simply by concatenating attribute references in my Image or Slide objects, thus: [ID]-[EyeColor]-[Orientation]-[Emotion].bmp (note that I do not have to include the ".bmp" in any of the strings of either arrays or Lists). I might even go a bit further and use nested Lists to indicate which files may be used with each other file. With enough care, I might do everything with Lists and not need any If...Thens at all! In any case, I think this could all be cleared up with a little more study into elementary computer programming combined with a little more exercise in the specifics of E-Prime. So I will close with a bit of more general advice that others here are sick of seeing from me: 1) First, decide whether you want to be a researcher who dabbles in computer programming, or a computer programmer who dabbles in psychology research. 2) If the former, then hire this out to someone who actually enjoys this sort of work and is good at it, while you do something else that you enjoy and are good at. That's what the division of labor is all about, learn to use it. 3) In any case, do take an Introduction to Computer Programming class, if not to make you into a programmer then to help you communicate and collaborate better with any programmer that you hire to shore up the technical needs of your research. And if you haven't even done the tutorials that come with E-Prime, then you should really start there. -- David McFarlane, Professional Faultfinder "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." (Richard Feynman, Nobel prize-winning physicist) At 5/13/2010 06:05 PM Thursday, you wrote: >I?m having some problems with scripting an If, then clause in my >program. I?ve edited an emotional capture paradigm in which people >view 3 faces on the screen, one face has blue eyes (the target) and >the other two faces have brown eye (the distractors). When >participants find the blue eyed face, they must respond with what >direction the face is tilted in (left or right). On 2/3 trials, all >faces have a neutral emo expression. However, on 1/3 trials, one face >will show a discrepant emotion (either happy or sad) and this >discrepant emotion can appear on either the target face or on the >distractor faces. The emotion is always irrelevant to the task (find >blue eyes). > >I use four face identities in this task, and the pictures are edited >so each face has blue eyes and brown eyes. So, for example, I have a >picture of ID1 with blue eyes and a picture of ID1 with brown eyes. >Also, the faces can appear in Left or Right orientation. So, the >picture files I have are listed in program as thus: >LBluNeut(1) = "M1_Bl_L_Neut.bmp" >LBluNeut(2) = "M2_Bl_L_Neut.bmp" >LBluNeut(3) = "F1_Bl_L_Neut.bmp" >LBluNeut(4) = "f2_Bl_L_Neut.bmp" > >RBluNeut(1) = "M1_Bl_R_Neut.bmp" >RBluNeut(2) = "M2_Bl_R_Neut.bmp" >RBluNeut(3) = "F1_Bl_R_Neut.bmp" >RBluNeut(4) = "F2_Bl_R_Neut.bmp" > >LBluHap(1) = "M1_Bl_L_Hap.bmp" >LBluHap(2) = "M2_Bl_L_Hap.bmp" >LBluHap(3) = "F1_Bl_L_Hap.bmp" >LBluHap(4) = "F2_Bl_L_Hap.bmp" > >RBluHap(1) = "M1_Bl_R_Hap.bmp" >RBluHap(2) = "M2_Bl_R_Hap.bmp" >RBluHap(3) = "F1_Bl_R_Hap.bmp" >RBluHap(4) = "F2_Bl_R_Hap.bmp" > >LBluSad(1) = "M1_Bl_L_Sad.bmp" >LBluSad(2) = "M2_Bl_L_Sad.bmp" >LBluSad(3) = "F1_Bl_L_Sad.bmp" >LBluSad(4) = "F2_Bl_L_Sad.bmp" > >Etc? and repeated for all the brown eyes. > >I then have this code: > >'position objects >'dim nIndex as integer > >for fill_loop = 1 to 3 ?POSITION OF DISPLAY ITEMS > pos(fill_loop) = fill_loop >next fill_loop > >for fill_loop = 1 to 4 'WHICH BROWN EYE (DISTRACTOR) FACE > bro_eye(fill_loop) = fill_loop >next fill_loop > > >'MAKE TARGET NOT SAME AS TARGET ON TRIAL n - 1 >do > curr_tar = random(1,4) >loop while (curr_tar = prev_tar) >?MAKE DISTRACTOR NOT SAME AS DISTRACTOR ON TRIAL n - 1 >do > RandomizeArray bro_eye, 1, 4 >loop while (bro_eye(1) = prev_dis) >prev_tar = curr_tar >prev_dis = bro_eye(1) > >/ >*========================================================================= >''''Choose target face (blue eyes) as first item in list face >=========================================================================*/ > >select case c.getattrib("Target_Emotion") >case "neutral" > > select case c.getattrib("T_Orient") 'READ TARGET FROM TABLE > case "left" > c.setattrib"rc","m" 'SET RESPONSE > stim(1) = LBluNeut(curr_tar) > case "right" > c.setattrib"rc","k" 'SET RESPONSE > stim(1) = RBluNeut(curr_tar) > end select > >case "happy" > select case c.getattrib("T_Orient") > case "left" > c.setattrib"rc","m" > stim(1) = LBluHap(curr_tar) > case "right" > c.setattrib"rc","k" > stim(1) = RBluHap(curr_tar) > end select > > >case "sad" > select case c.getattrib("T_Orient") > case "left" > c.setattrib"rc","m" > stim(1) = LBluSad(curr_tar) > case "right" > c.setattrib"rc","k" > stim(1) = RBluSad(curr_tar) > end select >end select > >/ >*============================================================================*/ >/ >*========================================================================= >''''Choose brown eyes face for 2nd item in list - CAN be emotional >=========================================================================*/ > >select case c.getattrib("Distractor_Emotion") >case "neutral" > > select case c.getattrib("D1_Orient") 'READ DISTRACTOR 1 >ORIENTATION CONDITION FROM TABLE > case "left" > stim(2) = LBroNeut(bro_eye(1)) > case "right" > stim(2) = RBroNeut(bro_eye(1)) > end select > >case "happy" > select case c.getattrib("D1_Orient") > case "left" > stim(2) = LBroHap(bro_eye(1)) > case "right" > stim(2) = RBroHap(bro_eye(1)) > end select > > >case "sad" > select case c.getattrib("D1_Orient") > case "left" > stim(2) = LBroSad(bro_eye(1)) > case "right" > stim(2) = RBroSad(bro_eye(1)) > end select >end select > >/ >*============================================================================== >''''Choose second brown eye face as distractor item - never the >emotional one. >===============================================================================*/ > >select case c.getattrib("D2_Orient") > case "left" > stim(3) = LBroNeut(bro_eye(2)) > case "right" > stim(3) = RBroNeut(bro_eye(2)) > end select > >/ >*============================================================================*/ > >RandomizeArray pos, 1, 3 > > >/*Assign filenames to locations in slide*/ > >c.setattrib "e1", stim(pos(1)) >c.setattrib "e2", stim(pos(2)) >c.setattrib "e3", stim(pos(3)) > > >strImageFile = c.GetAttrib("e1") > LoadSlideImageFile search.States(search.ActiveState), "image1", >strImageFile > strImageFile = c.GetAttrib("e2") > LoadSlideImageFile search.States(search.ActiveState), "image2", >strImageFile > strImageFile = c.GetAttrib("e3") > LoadSlideImageFile search.States(search.ActiveState), "image3", >strImageFile > > >Okay, so the problem is, I need to insert a clause so that if the >target being shown is a picture of person1/ID1 with blue eyes, then >none of the distractors show ID1 with brown eyes. So something like: > >If curr_tarr = LBluNeut(1) or RBluNeut(1) or LBluSad(1) or RBluSad(1) >or LBluHap(1) or RBluHap(1) >then distractors can?t be LBroNeut(1) or RBroNeut(1) or LBroSad(1) or >RBroSad(1) or LBroHap(1) or RBroHap(1) >or if curr_tar = LBluNeut(2) or RBluNeut(2) or LBluSad(2) or >RBluSad(2) or LBluHap(2) or RBluHap(2) >then distractors can?t be LBroNeut(2) or RBroNeut(2) or LBroSad(2) or >RBroSad(2) or LBroHap(2) or RBroHap(2) > >etc. for all four IDs. But 1) this doesn?t work! And 2) there must be >a simpler way of doing this?! > >Please help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Sun May 16 22:23:39 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Sun, 16 May 2010 18:23:39 -0400 Subject: Tidying an if.. then statement in E-Prime script for attention capture paradigm In-Reply-To: <4bedb615.0b0bca0a.0567.ffff8df7SMTPIN_ADDED@gmr-mx.google.com> Message-ID: On further thought, I don't think I would put everything into one array or List. I was on a better track with my notion of constructing file names from the desired image attributes. So instead, I might make a separate List or array for each attribute, and then pick a sample from each List or array to construct a file name. E.g., with a List for EyeColor and another List for Orientation, I could again construct a file name in inline code with c.SetAttrib "ImageFile", c.GetAttrib("EyeColor") & "-" _ & c.GetAttrib("Orientation") & ".bmp" or as before directly in the File Name property of the appropriate object with [EyeColor]-[Orientation].bmp In fact, if I drew samples without replacement, and my Lists (or arrays) contained only one sample of each value, then the next sample drawn from each attribute is guaranteed to differ from the first value drawn, and once again I would not need any If...Then. This still fits my broader theme that many times, when we find ourselves in a deep tangle of code, the answer lies not in finding yet another knot to add to the tangle, but instead in restructuring the problem in such away that the tangle never occurs in the first place. This sort of judgment comes from education in, dedication to, and experience with the grand art of computer programming. -- David McFarlane, Professional Faultfinder On 14 May 2010 David McFarlane wrote: > Chloe, > > Wow. I would like to know how others here feel, but when I see someone > post more than about a dozen lines of code I get the feeling that they > are so hopelessly lost that they are beyond any help that I can offer. > Still, I will hazard a couple of thoughts on this situation. > > If I were to use arrays for this (instead of Lists, which I will come > back to), then I would put everything into one array instead of > separated into so many arrays as you have done. Using all those > separate arrays just complicates matters and wastes the power of > arrays. With all the file names in one array, I could then use Mid() or > InStr() to inspect any string for the presence of tags like "Neut" or > "Hap", and I would need only one array name to use in my conditional > expressions for the If...Thens. > > Sticking with arrays, I might go a step further and put all this into > one mult-dimensional array. I could use one dimension for eye color, > another for orientation, etc. Now, by a suitable choice of index > values, I could immediately single out ranges from any dimensions I like. > > But I would probably not use arrays anyway. More likely I would put all > this into a List. After all, if you are not going to use the > specialized features of E-Prime, why use it at all? -- You could just as > well use any general-purpose programming platform, which would both cost > less and make more portable programs. Anyway, my List could contain a > column or "attribute" for each, well, attribute, e.g., ID, EyeColor, > Orientation, Emotion. I could then generate my file names simply by > concatenating attribute references in my Image or Slide objects, thus: > [ID]-[EyeColor]-[Orientation]-[Emotion].bmp (note that I do not have to > include the ".bmp" in any of the strings of either arrays or Lists). I > might even go a bit further and use nested Lists to indicate which files > may be used with each other file. With enough care, I might do > everything with Lists and not need any If...Thens at all! > > In any case, I think this could all be cleared up with a little more > study into elementary computer programming combined with a little more > exercise in the specifics of E-Prime. So I will close with a bit of > more general advice that others here are sick of seeing from me: > > 1) First, decide whether you want to be a researcher who dabbles in > computer programming, or a computer programmer who dabbles in psychology > research. > > 2) If the former, then hire this out to someone who actually enjoys this > sort of work and is good at it, while you do something else that you > enjoy and are good at. That's what the division of labor is all about, > learn to use it. > > 3) In any case, do take an Introduction to Computer Programming class, > if not to make you into a programmer then to help you communicate and > collaborate better with any programmer that you hire to shore up the > technical needs of your research. > > And if you haven't even done the tutorials that come with E-Prime, then > you should really start there. > > -- David McFarlane, Professional Faultfinder > "For a successful technology, reality must take precedence over public > relations, for nature cannot be fooled." (Richard Feynman, Nobel > prize-winning physicist) > > > At 5/13/2010 06:05 PM Thursday, you wrote: >> I?m having some problems with scripting an If, then clause in my >> program. I?ve edited an emotional capture paradigm in which people >> view 3 faces on the screen, one face has blue eyes (the target) and >> the other two faces have brown eye (the distractors). When >> participants find the blue eyed face, they must respond with what >> direction the face is tilted in (left or right). On 2/3 trials, all >> faces have a neutral emo expression. However, on 1/3 trials, one face >> will show a discrepant emotion (either happy or sad) and this >> discrepant emotion can appear on either the target face or on the >> distractor faces. The emotion is always irrelevant to the task (find >> blue eyes). >> >> I use four face identities in this task, and the pictures are edited >> so each face has blue eyes and brown eyes. So, for example, I have a >> picture of ID1 with blue eyes and a picture of ID1 with brown eyes. >> Also, the faces can appear in Left or Right orientation. So, the >> picture files I have are listed in program as thus: >> LBluNeut(1) = "M1_Bl_L_Neut.bmp" >> LBluNeut(2) = "M2_Bl_L_Neut.bmp" >> LBluNeut(3) = "F1_Bl_L_Neut.bmp" >> LBluNeut(4) = "f2_Bl_L_Neut.bmp" >> >> RBluNeut(1) = "M1_Bl_R_Neut.bmp" >> RBluNeut(2) = "M2_Bl_R_Neut.bmp" >> RBluNeut(3) = "F1_Bl_R_Neut.bmp" >> RBluNeut(4) = "F2_Bl_R_Neut.bmp" >> >> LBluHap(1) = "M1_Bl_L_Hap.bmp" >> LBluHap(2) = "M2_Bl_L_Hap.bmp" >> LBluHap(3) = "F1_Bl_L_Hap.bmp" >> LBluHap(4) = "F2_Bl_L_Hap.bmp" >> >> RBluHap(1) = "M1_Bl_R_Hap.bmp" >> RBluHap(2) = "M2_Bl_R_Hap.bmp" >> RBluHap(3) = "F1_Bl_R_Hap.bmp" >> RBluHap(4) = "F2_Bl_R_Hap.bmp" >> >> LBluSad(1) = "M1_Bl_L_Sad.bmp" >> LBluSad(2) = "M2_Bl_L_Sad.bmp" >> LBluSad(3) = "F1_Bl_L_Sad.bmp" >> LBluSad(4) = "F2_Bl_L_Sad.bmp" >> >> Etc? and repeated for all the brown eyes. >> >> I then have this code: >> >> 'position objects >> 'dim nIndex as integer >> >> for fill_loop = 1 to 3 ?POSITION OF DISPLAY ITEMS >> pos(fill_loop) = fill_loop >> next fill_loop >> >> for fill_loop = 1 to 4 'WHICH BROWN EYE (DISTRACTOR) FACE >> bro_eye(fill_loop) = fill_loop >> next fill_loop >> >> >> 'MAKE TARGET NOT SAME AS TARGET ON TRIAL n - 1 >> do >> curr_tar = random(1,4) >> loop while (curr_tar = prev_tar) >> ?MAKE DISTRACTOR NOT SAME AS DISTRACTOR ON TRIAL n - 1 >> do >> RandomizeArray bro_eye, 1, 4 >> loop while (bro_eye(1) = prev_dis) >> prev_tar = curr_tar >> prev_dis = bro_eye(1) >> >> / >> *========================================================================= >> >> ''''Choose target face (blue eyes) as first item in list face >> =========================================================================*/ >> >> >> select case c.getattrib("Target_Emotion") >> case "neutral" >> >> select case c.getattrib("T_Orient") 'READ TARGET FROM TABLE >> case "left" >> c.setattrib"rc","m" 'SET RESPONSE >> stim(1) = LBluNeut(curr_tar) >> case "right" >> c.setattrib"rc","k" 'SET RESPONSE >> stim(1) = RBluNeut(curr_tar) >> end select >> >> case "happy" >> select case c.getattrib("T_Orient") >> case "left" >> c.setattrib"rc","m" >> stim(1) = LBluHap(curr_tar) >> case "right" >> c.setattrib"rc","k" >> stim(1) = RBluHap(curr_tar) >> end select >> >> >> case "sad" >> select case c.getattrib("T_Orient") >> case "left" >> c.setattrib"rc","m" >> stim(1) = LBluSad(curr_tar) >> case "right" >> c.setattrib"rc","k" >> stim(1) = RBluSad(curr_tar) >> end select >> end select >> >> / >> *============================================================================*/ >> >> / >> *========================================================================= >> >> ''''Choose brown eyes face for 2nd item in list - CAN be emotional >> =========================================================================*/ >> >> >> select case c.getattrib("Distractor_Emotion") >> case "neutral" >> >> select case c.getattrib("D1_Orient") 'READ DISTRACTOR 1 >> ORIENTATION CONDITION FROM TABLE >> case "left" >> stim(2) = LBroNeut(bro_eye(1)) >> case "right" >> stim(2) = RBroNeut(bro_eye(1)) >> end select >> >> case "happy" >> select case c.getattrib("D1_Orient") >> case "left" >> stim(2) = LBroHap(bro_eye(1)) >> case "right" >> stim(2) = RBroHap(bro_eye(1)) >> end select >> >> >> case "sad" >> select case c.getattrib("D1_Orient") >> case "left" >> stim(2) = LBroSad(bro_eye(1)) >> case "right" >> stim(2) = RBroSad(bro_eye(1)) >> end select >> end select >> >> / >> *============================================================================== >> >> ''''Choose second brown eye face as distractor item - never the >> emotional one. >> ===============================================================================*/ >> >> >> select case c.getattrib("D2_Orient") >> case "left" >> stim(3) = LBroNeut(bro_eye(2)) >> case "right" >> stim(3) = RBroNeut(bro_eye(2)) >> end select >> >> / >> *============================================================================*/ >> >> >> RandomizeArray pos, 1, 3 >> >> >> /*Assign filenames to locations in slide*/ >> >> c.setattrib "e1", stim(pos(1)) >> c.setattrib "e2", stim(pos(2)) >> c.setattrib "e3", stim(pos(3)) >> >> >> strImageFile = c.GetAttrib("e1") >> LoadSlideImageFile search.States(search.ActiveState), "image1", >> strImageFile >> strImageFile = c.GetAttrib("e2") >> LoadSlideImageFile search.States(search.ActiveState), "image2", >> strImageFile >> strImageFile = c.GetAttrib("e3") >> LoadSlideImageFile search.States(search.ActiveState), "image3", >> strImageFile >> >> >> Okay, so the problem is, I need to insert a clause so that if the >> target being shown is a picture of person1/ID1 with blue eyes, then >> none of the distractors show ID1 with brown eyes. So something like: >> >> If curr_tarr = LBluNeut(1) or RBluNeut(1) or LBluSad(1) or RBluSad(1) >> or LBluHap(1) or RBluHap(1) >> then distractors can?t be LBroNeut(1) or RBroNeut(1) or LBroSad(1) or >> RBroSad(1) or LBroHap(1) or RBroHap(1) >> or if curr_tar = LBluNeut(2) or RBluNeut(2) or LBluSad(2) or >> RBluSad(2) or LBluHap(2) or RBluHap(2) >> then distractors can?t be LBroNeut(2) or RBroNeut(2) or LBroSad(2) or >> RBroSad(2) or LBroHap(2) or RBroHap(2) >> >> etc. for all four IDs. But 1) this doesn?t work! And 2) there must be >> a simpler way of doing this?! >> >> Please help! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From sophie.jarlier at gmail.com Mon May 17 07:23:56 2010 From: sophie.jarlier at gmail.com (soeursourire) Date: Mon, 17 May 2010 00:23:56 -0700 Subject: Play movie in Eprime2 In-Reply-To: <4BED722A.9040604@ucl.ac.uk> Message-ID: Hello Davids :-) Thanks for your answer. Actually I first explained my problem on the PST forum but they told me to ask my question here to your group. I tried to run MovieRT but that does not work neither. I got this error: An error occurs whole attempting to load the movie marker So what does that mean? That Eprime is not correctly installed? Thanks Soph. On May 14, 5:54?pm, David Vinson wrote: > Hi, > > David M. is right - the fact that a movie works in Windows Media Player > is no guarantee that it will work in E-Prime 2.0. If you have not > successfully displayed a movie in E-Prime before, the first > troubleshooting step is to check is whether the sample experiment > "MovieRT" works. ?If this doesn't work, this tells you there's a more > general problem than just something to do with the specific avi video > you're trying to load. > > If MovieRT works, then you know it's something specific to do with your > video encoding and can proceed accordingly. > > Good luck! > another David > > soeursourire wrote: > > I have this error when I try to simply read an avi file in Eprime2: > > > Run-time Error (Line 99) 11053: An error occurred while attempting to > > load the movie > > Marker: 223 > > Error: -2147220877 (0x80040273) > > > I do not understand why, as the first image of the video is visible in > > Eprime when elaborating the experiment. > > I can read the video on the PC into Windows Media Player so it should > > not be a problem of codec. > > -- > David Vinson, Ph.D. > Senior Postdoctoral Researcher > 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 post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 17 15:06:03 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 17 May 2010 11:06:03 -0400 Subject: Play movie in Eprime2 In-Reply-To: <925d4c9f-232e-439b-9428-fbe9639e8318@f14g2000vbn.googlegroups.com> Message-ID: Good, you ran the basic test and now you know to set aside looking for a problem in your movie file and instead look for a more general problem in your system setup (or understanding of MovieRT). If it were me I would next try doing all this on a different machine to see if the problem lies with the one machine or is something even more general. Also, please do contact PST Web Support at http://support.pstnet.com/e%2Dprime/support/login.asp . Reminder: the PST Forum is *not* Web Support, and PST Staff rarely provide any help through their Forum. In general, if you want help then either contact PST Web Support or post here to the E-Prime Google Group, best to ignore the PST Forum (except for searching the archives) as it regularly gets confused with Web Support and beyond that offers nothing that you cannot get more readily here on the Google Group. -- David McFarlane, Professional Faultfinder soeursourire wrote: > Hello Davids :-) > > Thanks for your answer. Actually I first explained my problem on the > PST forum but they told me to ask my question here to your group. > I tried to run MovieRT but that does not work neither. I got this > error: > An error occurs whole attempting to load the movie marker > > So what does that mean? That Eprime is not correctly installed? > Thanks > Soph. > > On May 14, 5:54 pm, David Vinson wrote: >> Hi, >> >> David M. is right - the fact that a movie works in Windows Media Player >> is no guarantee that it will work in E-Prime 2.0. If you have not >> successfully displayed a movie in E-Prime before, the first >> troubleshooting step is to check is whether the sample experiment >> "MovieRT" works. If this doesn't work, this tells you there's a more >> general problem than just something to do with the specific avi video >> you're trying to load. >> >> If MovieRT works, then you know it's something specific to do with your >> video encoding and can proceed accordingly. >> >> Good luck! >> another David >> >> soeursourire wrote: >>> I have this error when I try to simply read an avi file in Eprime2: >>> Run-time Error (Line 99) 11053: An error occurred while attempting to >>> load the movie >>> Marker: 223 >>> Error: -2147220877 (0x80040273) >>> I do not understand why, as the first image of the video is visible in >>> Eprime when elaborating the experiment. >>> I can read the video on the PC into Windows Media Player so it should >>> not be a problem of codec. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From melissadawn.stockbridge at gmail.com Tue May 18 18:49:21 2010 From: melissadawn.stockbridge at gmail.com (Melissa) Date: Tue, 18 May 2010 11:49:21 -0700 Subject: Button press during sound play Message-ID: I am currently designing an experiment in which children are presented with sentences that are read as they appear on screen. Then, a question appears and is read in a sound file, with two options of answers, and a key press to designate the chosen answer. However, I am having trouble allowing the children to press a key (for my reaction time measure) while the sound file plays (if they have decided on the answer prior to the reading ending). It seems to only permit an answer input after the sound file is complete, which isn't terribly helpful for reaction time data. I have Eprime 1 now, though I am in the process of getting Eprime 2. I know this seems painfully simple, but I have read all of the information I have found online in attempting to solve it. So far, I have had no luck. Any advice would be very appreciated. Thank you all! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Tue May 18 19:46:25 2010 From: cblaison at gmail.com (ccbaye) Date: Tue, 18 May 2010 12:46:25 -0700 Subject: Complex (for me) randomization Message-ID: Hi, Thank you for your help! I didn't figure out the problem by myself. I have a problem with a complex randomization. I would like my prog to pick out randomly without replacement a stim from a list of different male faces or different female faces at the block level, and than conserve this chosen stim all along the individual trials bound to this block. And so on for the successive blocks. Ultimately for each block, participants would have to rate a face (the chosen stim) on different scales (random presentation order without replacement); before pursuing to the next block: rating of another face with the same scales; etc. I used some nested lists, But, until now, my prog selects another stim from the female or male faces list for each new trial. This is not what I want: I want that the stim chosen once at the block level, is used again and again for all the trials bound to this block. When this block of trials is over, the prog should start the second block and choose another face from the remaining stim of the face list, and this face should again be used again and again for all block trials, and so on. I can't attach the prog and the stims, but if someone was to help me, I could send it. Best, Christophe -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 18 22:49:56 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 18 May 2010 18:49:56 -0400 Subject: Complex (for me) randomization In-Reply-To: Message-ID: Christophe, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... This all seems rather simple to me, but perhaps I am missing something. So before I expend any more effort, I need your solemn word that you have already worked completely through *all* of the exercises in *both* the Getting Started Guide and the User's Guide that came with E-Prime. Or just wait a bit and some more understanding soul here may just jump in and answer you. -- David McFarlane, Professional Faultfinder "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." (Richard Feynman, Nobel prize-winning physicist) >Thank you for your help! I didn't figure out the problem by myself. > >I have a problem with a complex randomization. I would like my prog to >pick out randomly without replacement a stim from a list of different >male faces or different female faces at the block level, and than >conserve this chosen stim all along the individual trials bound to >this block. And so on for the successive blocks. Ultimately for each >block, participants would have to rate a face (the chosen stim) on >different scales (random presentation order without replacement); >before pursuing to the next block: rating of another face with the >same scales; etc. > >I used some nested lists, But, until now, my prog selects another >stim from the female or male faces list for each new trial. This is >not what I want: I want that the stim chosen once at the block level, >is used again and again for all the trials bound to this block. When >this block of trials is over, the prog should start the second block >and choose another face from the remaining stim of the face list, and >this face should again be used again and again for all block trials, >and so on. I can't attach the prog and the stims, but if someone was >to help me, I could send it. > >Best, >Christophe -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 18 22:42:57 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 18 May 2010 18:42:57 -0400 Subject: Button press during sound play In-Reply-To: Message-ID: Melissa, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... I don't see why you are having trouble with this, and I thought this had been answered in other threads. Nevertheless, it seems to me that if you set the input mask of your SoundOut or Slide object to the appropriate value (usually "(same as duration)", but perhaps a value longer than Duration if using "extended input") and End Action to (none) then all should work in either EP1 or EP2 (I still find EP1 a generally superior platform unless I really need Movies, etc.). -- David McFarlane, Professional Faultfinder >I am currently designing an experiment in which children are presented >with sentences that are read as they appear on screen. Then, a >question appears and is read in a sound file, with two options of >answers, and a key press to designate the chosen answer. However, I >am having trouble allowing the children to press a key (for my >reaction time measure) while the sound file plays (if they have >decided on the answer prior to the reading ending). It seems to only >permit an answer input after the sound file is complete, which isn't >terribly helpful for reaction time data. I have Eprime 1 now, though >I am in the process of getting Eprime 2. > >I know this seems painfully simple, but I have read all of the >information I have found online in attempting to solve it. So far, I >have had no luck. Any advice would be very appreciated. Thank you >all! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 06:32:24 2010 From: cblaison at gmail.com (ccbaye) Date: Tue, 18 May 2010 23:32:24 -0700 Subject: Complex (for me) randomization In-Reply-To: <4bf31999.120bca0a.575e.734dSMTPIN_ADDED@gmr-mx.google.com> Message-ID: Dear David, Thank you for your effort. Now I can give you my solemn word that I have been through all the exercices :). I had the idea to change the weights in the male face and female faces lists, in hoping that the chosen stim would be repeated the number of time I set the weight..but it did not work either. I hope that it is easy and that I am just too dumb to figure it out. I sent the problem also to the PST staff, but I would need an answer quickly, and I was terrified at the idea to wait up to 10 days to get an answer..So..please, as you think it is so simple, I would be very grateful to you if you could provide me with a hint. Best, Christophe. On May 19, 12:49?am, David McFarlane wrote: > Christophe, > > Stock reminder: ?1) I do not work for PST. ?2) PST's trained staff > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > strive to respond to all requests in 24-48 hours (although latest > reports indicate more like 10 days) -- this is pretty much their > substitute for proper documentation, so make full use of it. ?3) If > you do get an answer from PST Web Support, please extend the courtesy > of posting their reply back here for the sake of others. > > That said, here is my take ... > > This all seems rather simple to me, but perhaps I am missing > something. ?So before I expend any more effort, I need your solemn > word that you have already worked completely through *all* of the > exercises in *both* the Getting Started Guide and the User's Guide > that came with E-Prime. ?Or just wait a bit and some more > understanding soul here may just jump in and answer you. > > -- David McFarlane, Professional Faultfinder > "For a successful technology, reality must take precedence over > public relations, for nature cannot be fooled." ?(Richard Feynman, > Nobel prize-winning physicist) > > > > >Thank you for your help! I didn't figure out the problem by myself. > > >I have a problem with a complex randomization. I would like my prog to > >pick out randomly without replacement a stim from a list of different > >male faces or different female faces at the block level, and than > >conserve this chosen stim all along the individual trials bound to > >this block. And so on for the successive blocks. Ultimately for each > >block, participants would have to rate a face (the chosen stim) on > >different scales (random presentation order without replacement); > >before pursuing to the next block: rating of another face with the > >same scales; etc. > > >I used some nested lists, ?But, until now, my prog selects another > >stim from the female or male faces list for each new trial. This is > >not what I want: I want that the stim chosen once at the block level, > >is used again and again for all the trials bound to this block. When > >this block of trials is over, the prog should start the second block > >and choose another face from the remaining stim of the face list, and > >this face should again be used again and again for all block trials, > >and so on. I can't attach the prog and the stims, but if someone was > >to help me, I could send it. > > >Best, > >Christophe > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From liza.mccarron at uwe.ac.uk Wed May 19 08:40:03 2010 From: liza.mccarron at uwe.ac.uk (LizaM) Date: Wed, 19 May 2010 01:40:03 -0700 Subject: How to install EPrime Standard (or Professional) Silently under XP Message-ID: According to PST you can only do a silent install with EPrime Professional. (A silent install is one where the installer just gets on with installing and asks no questions!) As I wanted to install EPrime standard via our SMS server (used to deliver the same build to all PCs with the same functionality - a great time saver!) I decided to play around and see if it would work - the blanket install is so that we can use our copies of EPrime Run Time in our 23 PC student lab, the dongled installs for academics and technical staff are still done manually and I haven't tested whether the silent install installs the hasp drivers correctly - It doesn't install the SRbox etc but these can be done manually. Please note that this installs a full copy of EPrime - to use the run time part (which you have 25 licences for with each full dongled copy of EPrime) just ignore the EStudio part and just use RunTime. If you don't have a centrally managed installation system then the same principle could be used with a bit of Dos based scripting to deliver the install files to multiple machines and then to do a local install from a remote location thus saving having to log on and off multiple machines to do the installs and select the various options! Firstly use Winzip or Winrar or similar to unzip the installation .exe file to a folder (The version I used was 2.0.8.22 Standard). In the folder you will then have several files, including E-Prime 2.0.msi and Data1.cab - from testing it would seems these are the only file needed for the silent install. PortdriverInstaller.exe and SRBoxDriverinstaller.exe install the port and SR Box drivers and can be installed afterwards if needed. Select Start and choose run in the run box type: msiexec /i "D:\eprime 2.0.msi" /qb (where location of the .msi and the .cab file is D:\) and EPrime will install silently without any prompts and a few moments later will appear on the start menu!. Worth playing around with if you just want an install for run time etc. Hope this proves useful. Cheers Liza -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 09:06:32 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 02:06:32 -0700 Subject: How to install EPrime Standard (or Professional) Silently under XP In-Reply-To: Message-ID: wow thank you Liza, very useful! Cheers, Christophe. On May 19, 10:40?am, LizaM wrote: > According to PST you can only do a silent install with EPrime > Professional. (A silent install is one where the installer just gets > on with installing and asks no questions!) > > As I wanted to install EPrime standard via our SMS server (used to > deliver the same build to all PCs with the same functionality - a > great time saver!) I decided to play around and see if it would work - > the blanket install is so that we can use our copies of EPrime Run > Time in our 23 PC student lab, the dongled installs for academics and > technical staff are still done manually and I haven't tested whether > the silent install installs the hasp drivers correctly - It doesn't > install the SRbox etc but these can be done manually. ?Please note > that this installs a full copy of EPrime - to use the run time part > (which you have 25 licences for with each full dongled copy of > EPrime) ?just ignore the EStudio part and just use RunTime. ?If you > don't have a centrally managed installation system then the same > principle could be used with a bit of Dos based scripting to deliver > the install files to multiple machines and then to do a local install > from a remote location thus saving having to log on and off multiple > machines to do the installs and select the various options! > > Firstly use Winzip or Winrar or similar to unzip the installation .exe > file to a folder (The version I used was 2.0.8.22 Standard). > > In the folder you will then have several files, including E-Prime > 2.0.msi and Data1.cab - from testing it would seems these are the only > file needed for the silent install. ?PortdriverInstaller.exe and > SRBoxDriverinstaller.exe install the port and SR Box drivers and can > be installed afterwards if needed. > > Select Start and choose run in the run box type: > > msiexec /i "D:\eprime 2.0.msi" /qb > > (where location of the .msi and the .cab file is D:\) > > and EPrime will install silently without any prompts and a few moments > later will appear on the start menu!. > > Worth playing around with if you just want an install for run time > etc. ?Hope this proves useful. > > Cheers > > Liza > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 10:01:23 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 03:01:23 -0700 Subject: Complex (for me) randomization In-Reply-To: <92459d2b-09f3-471c-a8df-5e1ce696b81d@a16g2000vbr.googlegroups.com> Message-ID: Ok..I finally managed to have the prog selecting one face and holding it for the rest of the block trials. yeepee. The problem now is that for each new block, the prog select a face at random in the corresponding face list, including the face that has been presented in the preceding block..So I can't yet manage to have a randomized selection of faces without replacement through the different blocks of my task..I am trying harder, but if someone (david?) has an idea, he/ she is very very welcome! Best, Christophe. On May 19, 8:32?am, ccbaye wrote: > Dear David, > > Thank you for your effort. Now I can give you my solemn word that I > have been through all the exercices :). I had the idea to change the > weights in the male face and female faces lists, in hoping that the > chosen stim would be repeated the number of time I set the weight..but > it did not work either. I hope that it is easy and that I am just too > dumb to figure it out. I sent the problem also to the PST staff, but I > would need an answer quickly, and I was terrified at the idea to wait > up to 10 days to get an answer..So..please, as you think it is so > simple, I would be very grateful to you if you could provide me with a > hint. > > Best, > Christophe. > > On May 19, 12:49?am, David McFarlane wrote: > > > > > Christophe, > > > Stock reminder: ?1) I do not work for PST. ?2) PST's trained staff > > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > > strive to respond to all requests in 24-48 hours (although latest > > reports indicate more like 10 days) -- this is pretty much their > > substitute for proper documentation, so make full use of it. ?3) If > > you do get an answer from PST Web Support, please extend the courtesy > > of posting their reply back here for the sake of others. > > > That said, here is my take ... > > > This all seems rather simple to me, but perhaps I am missing > > something. ?So before I expend any more effort, I need your solemn > > word that you have already worked completely through *all* of the > > exercises in *both* the Getting Started Guide and the User's Guide > > that came with E-Prime. ?Or just wait a bit and some more > > understanding soul here may just jump in and answer you. > > > -- David McFarlane, Professional Faultfinder > > "For a successful technology, reality must take precedence over > > public relations, for nature cannot be fooled." ?(Richard Feynman, > > Nobel prize-winning physicist) > > > >Thank you for your help! I didn't figure out the problem by myself. > > > >I have a problem with a complex randomization. I would like my prog to > > >pick out randomly without replacement a stim from a list of different > > >male faces or different female faces at the block level, and than > > >conserve this chosen stim all along the individual trials bound to > > >this block. And so on for the successive blocks. Ultimately for each > > >block, participants would have to rate a face (the chosen stim) on > > >different scales (random presentation order without replacement); > > >before pursuing to the next block: rating of another face with the > > >same scales; etc. > > > >I used some nested lists, ?But, until now, my prog selects another > > >stim from the female or male faces list for each new trial. This is > > >not what I want: I want that the stim chosen once at the block level, > > >is used again and again for all the trials bound to this block. When > > >this block of trials is over, the prog should start the second block > > >and choose another face from the remaining stim of the face list, and > > >this face should again be used again and again for all block trials, > > >and so on. I can't attach the prog and the stims, but if someone was > > >to help me, I could send it. > > > >Best, > > >Christophe > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 11:18:26 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 04:18:26 -0700 Subject: Complex (for me) randomization In-Reply-To: <26882bd5-4c1f-4317-8561-c7a273d0cd99@c11g2000vbe.googlegroups.com> Message-ID: I don't understand it: When the selection is sequential in the faces list, e-prime keeps the info about the face already presented through the block (he does't start again the selection from scratch because then I would have the same face presented again and again through the blocks). BUT when I use random, he doesn't! He then cheerfully replaces already presented faces..the same result as random with replacement. Would someone be so kind to put me in the picture? Best, Christophe. On May 19, 12:01?pm, ccbaye wrote: > Ok..I finally managed to have the prog selecting one face and holding > it for the rest of the block trials. yeepee. The problem now is that > for each new block, the prog select a face at random in the > corresponding face list, including the face that has been presented in > the preceding block..So I can't yet manage to have a randomized > selection of faces without replacement through the different blocks of > my task..I am trying harder, but if someone (david?) has an idea, he/ > she is very very welcome! > > Best, > Christophe. > > On May 19, 8:32?am, ccbaye wrote: > > > > > Dear David, > > > Thank you for your effort. Now I can give you my solemn word that I > > have been through all the exercices :). I had the idea to change the > > weights in the male face and female faces lists, in hoping that the > > chosen stim would be repeated the number of time I set the weight..but > > it did not work either. I hope that it is easy and that I am just too > > dumb to figure it out. I sent the problem also to the PST staff, but I > > would need an answer quickly, and I was terrified at the idea to wait > > up to 10 days to get an answer..So..please, as you think it is so > > simple, I would be very grateful to you if you could provide me with a > > hint. > > > Best, > > Christophe. > > > On May 19, 12:49?am, David McFarlane wrote: > > > > Christophe, > > > > Stock reminder: ?1) I do not work for PST. ?2) PST's trained staff > > > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > > > strive to respond to all requests in 24-48 hours (although latest > > > reports indicate more like 10 days) -- this is pretty much their > > > substitute for proper documentation, so make full use of it. ?3) If > > > you do get an answer from PST Web Support, please extend the courtesy > > > of posting their reply back here for the sake of others. > > > > That said, here is my take ... > > > > This all seems rather simple to me, but perhaps I am missing > > > something. ?So before I expend any more effort, I need your solemn > > > word that you have already worked completely through *all* of the > > > exercises in *both* the Getting Started Guide and the User's Guide > > > that came with E-Prime. ?Or just wait a bit and some more > > > understanding soul here may just jump in and answer you. > > > > -- David McFarlane, Professional Faultfinder > > > "For a successful technology, reality must take precedence over > > > public relations, for nature cannot be fooled." ?(Richard Feynman, > > > Nobel prize-winning physicist) > > > > >Thank you for your help! I didn't figure out the problem by myself. > > > > >I have a problem with a complex randomization. I would like my prog to > > > >pick out randomly without replacement a stim from a list of different > > > >male faces or different female faces at the block level, and than > > > >conserve this chosen stim all along the individual trials bound to > > > >this block. And so on for the successive blocks. Ultimately for each > > > >block, participants would have to rate a face (the chosen stim) on > > > >different scales (random presentation order without replacement); > > > >before pursuing to the next block: rating of another face with the > > > >same scales; etc. > > > > >I used some nested lists, ?But, until now, my prog selects another > > > >stim from the female or male faces list for each new trial. This is > > > >not what I want: I want that the stim chosen once at the block level, > > > >is used again and again for all the trials bound to this block. When > > > >this block of trials is over, the prog should start the second block > > > >and choose another face from the remaining stim of the face list, and > > > >this face should again be used again and again for all block trials, > > > >and so on. I can't attach the prog and the stims, but if someone was > > > >to help me, I could send it. > > > > >Best, > > > >Christophe > > > > -- > > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > > To post to this group, send email to e-prime at googlegroups.com. > > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups "E-Prime" group. > > To post to this group, send email to e-prime at googlegroups.com. > > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From vera.donk at googlemail.com Wed May 19 11:42:34 2010 From: vera.donk at googlemail.com (Vera) Date: Wed, 19 May 2010 04:42:34 -0700 Subject: Read out certain levels only In-Reply-To: <4be96ad2.0c0bca0a.3f1b.ffffd661SMTPIN_ADDED@gmr-mx.google.com> Message-ID: David, thanks for the reply. I had already been trying to have a look at the code generated by E-Prime (and I already tried to do what you did with the Set List.Deletion = PickOne(c.GetAttrib("AnyAttribYouLike")) , but it generated another number of errors). Anyway, we found a solution now (we just have two different lists (which is not the solution I prefer, because it gets incredibly messy with Labels and Gotos in all directions, but hey, it's working, and that was the goal...)). I think that you are right that the weight level solution isn't the best one. We tried to apply another one, working with two arrays, which I think is the perfect, cleanest solution (unfortunately I am not a programming hero and so I got it almost to working, but I am still convinced to get it working someday). As time was running out, we took the "E-Prime solution" (mentionned above, including two designlists and a lot of Labels and Gotos) which as I said is working. To the trigger value question, you are probably right that I should foresee what happens is the trigger is < 0 or > 7. But in practice this will just not happen, as we are using the first 4 bits of a parallelport only (0, 1, 2, 4). :-) Thanks for the general programming tip though. So thanks to you and Michiel for trying to help me out! Greetings, Vera On May 11, 4:33?pm, David McFarlane wrote: > Vera, > > Don't know why your code does not work, but just > a couple comments on your code fragment here... > > First, almost every time we have resorted to > using List.SetWeight it turned out that we had a > poor design structure, and once we restructured > the design it eliminated the need for > List.SetWeight and solved a host of other lurking > problems as well. ?So I urge you to first take a > serious look at your design structure. > > Next, when we did use List.SetWeight, we > absolutely had to execute a List.Reset, otherwise > the List ignored our .SetWeight changes. ?So if > your code does not work with the List.Reset > command in place, then your code has other problems. > > And since you must do the List.Reset for either > branch of the If...Then...ElseIf, then you may as > well pull it out from within the branches and put > it after the whole If...Then...ElseIf block. > > Finally, what happens if TriggerValue < 0 or > TriggerValue >= 7? ?As it stands, in this case > your code will simply leave the List intact. ?Is > this what you meant? ?Perhaps you think it > impossible for TriggerValue to ever take on > values outside of 0-6, but good coding practice > requires that you either include a final Else to > handle outliers or at least add a comment to > explain what you mean the code to do. > > So just as an exercise, here is your code > fragement again (keeping your TriggerValue > variable because I do not want to get into that > issue, using "<=" instead of "<" just because I > think that makes the intent clearer, and adding a > Const to get rid of one "magic number"; hmm, on > further thought I restructured this to pull the > common inner loops out of the main loop, etc.): > > Const TriggerValueMax as Integer = 6 > Dim nLevel as Integer > Dim TriggerValue as Integer, TriggerValueToRun as Integer > ' Assign TriggerValueToRun based on NewTriggerValue: > If (NewTriggerValue = 0) Then > ? ? ?TriggerValueToRun = 0 > ElseIf ((1 <= NewTriggerValue) AND _ > ? ? ?(NewTriggerValue <= TriggerValueMax)) Then > ? ? ?TriggerValueToRun = 1 > Else MsgBox "NewTriggerValue " & NewTriggerValue _ > ? ? ? ? ?& "out of range! ?Please contact programmer." > End If > ' Now set List level weights according to match between TriggerValue & > ' TriggerValueToRun: > For nLevel = 1 to DesignList.Size > ? ? ?TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > ? ? ?If TriggerValue = TriggerValueToRun Then > ? ? ? ? ?DesignList.SetWeight nLevel, 1 > ? ? ?Else DesignList.SetWeight nLevel, 0 > ? ? ?End If > Next nLevel > DesignList.Reset > > Or just for fun, let's do this with a Select Case: > > Const TriggerValueMax as Integer = 6 > Dim nLevel as Integer > Dim TriggerValue as Integer, TriggerValueToRun as Integer > ' Assign TriggerValueToRun based on NewTriggerValue: > Select Case NewTriggerValue > Case 0 > ? ? ?TriggerValueToRun = 0 > Case 1 to 6 > ? ? ?TriggerValueToRun = 1 > Case Else > ? ? ?MsgBox "NewTriggerValue " & NewTriggerValue _ > ? ? ? ? ?& "out of range! ?Please contact programmer." > End Select > ' Now set List level weights according to match between TriggerValue & > ' TriggerValueToRun: > For nLevel = 1 to DesignList.Size > ? ? ?TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > ? ? ?If TriggerValue = TriggerValueToRun Then > ? ? ? ? ?DesignList.SetWeight nLevel, 1 > ? ? ?Else DesignList.SetWeight nLevel, 0 > ? ? ?End If > Next nLevel > DesignList.Reset > > -- David McFarlane, Professional Faultfinder > > At 5/7/2010 01:11 PM Friday, you wrote: > > >:-( > > >I seem to have cheered too early. :-( Some filteringin E-DataAid > >showed that E-Prime is still exactly doing as it likes. > > >I also had some mistakes in the previous code, here it is again: > > >Dim nLevel as Integer > >Dim TriggerValue as Integer > > >If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > ? ? ? ? For nLevel = 1 to DesignList.Size > > ? ? ? ? TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > > ? ? ? ? ? ? ? ? If TriggerValue = 1 Then > > ? ? ? ? ? ? ? ? ? ? ? ? DesignList.SetWeight nLevel, 1 > > ? ? ? ? ? ? ? ? Else DesignList.SetWeight nLevel, 0 > > ? ? ? ? ? ? ? ? End If > > ? ? ? ? Next nLevel > >' ? ? ? DesignList.Reset > >ElseIf NewTriggerValue = 0 Then > > ? ? ? ? For nLevel = 1 to DesignList.Size > > ? ? ? ? TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > > ? ? ? ? ? ? ? ? If TriggerValue = 0 Then > > ? ? ? ? ? ? ? ? ? ? ? ? DesignList.SetWeight nLevel, 1 > > ? ? ? ? ? ? ? ? Else DesignList.SetWeight nLevel, 0 > > ? ? ? ? ? ? ? ? End If > > ? ? ? ? Next nLevel > >' ? ? ? DesignList.Reset > >End If > > >A few remarks to this code: > > >1. E-Prime is still doing what it likes, guaranteeing me no > >counterbalancing whatsoever. > >2. I had to add: TriggerValue = DesignList.GetAttrib(nLevel,"Trigger") > >- If TriggerValue = 0 Then and I know I could have been doing that > >more elegantly (like you did Michiel), but then E-Prime complains that > >there are "too many variables". > >3. If I add this piece of code, not only will E-Prime still not do > >what I expect it to do, but it will also generate blocks as it likes. > >Sometimes 3, sometimes 4... But never 7 as it is supposed to do!! In > >my last test run it even stopped in the middle of a trial going > >immediately to the block feedback! Anybody any idea why that could be? > >It seems to me that this piece of script has nothing to do with the > >number of blocks or anything. > >4. As you can see, DesignList.Reset has been commented out, because > >when I add this, E-Prime runs only one trials (instead of 36 in a > >normal block) and then goes immediately to the Block Feedback. > > >I don't understand this program, it makes absolutely no sense to me. :- > >( > > >Greetings, Vera > > >On 7 Mai, 17:05, Vera wrote: > > > Ok, found a way to be at the experimental setup AND have internet > > > (whew!!!). ;-) > > > > So the thing I did was: > > > > If (NewTriggerValue > 0) AND (NewTriggerValue < 7) Then > > > ? ?For nLevel = 1 to DesignList.Size > > > ? ? ? ? If c.GetAttrib("Trigger") = "1" Then > > > ? ? ? ? ? ? ? ?DesignList.SetWeight nLevel, 1 > > > ? ? ? ? Else DesignList.SetWeight nLevel, 0 > > > ? ? ? ? End If > > > ? ?Next nLevel > > > ElseIf NewTriggerValue = 0 Then > > > ? ?For nLevel = 1 to DesignList.Size > > > ? ? ? ? If c.GetAttrib("Trigger") = "0" Then > > > ? ? ? ? ? ? ? ?DesignList.SetWeight nLevel, 1 > > > ? ? ? ? Else DesignList.SetWeight nLevel, 0 > > > ? ? ? ? End If > > > ? ?Next nLevel > > > End If > > > > And now that I could finally connect, I see that you proposed me the > > > same thing. :-) > > > And the best thing: it works!!!! Checked the database with E-DataAid > > > and it's all perfectly balanced. :-) > > > > Thanks a lot for giving me the idea! > > > > Have a great weekend! > > > > Vera > > > > On 7 Mai, 13:42, Vera wrote: > > > > > Ok, I now had a closer look at your solution (I wasn't on the right PC > > > > before, with the USB-stick-licence it's kind of a hassle sometimes, > > > > making a lot of kms in the institute! ;-) ) and I think I might try > > > > something with your solution. > > > > > So to get back at your question: > > > > > "If trigger 1 then PLEASE take only line 1" > > > > ... > > > > "You mean, of a list, right?" > > > > > Yes, I mean of a list (so a level of a list). Of course I simplified > > > > the whole a bit, pretending that I had only two levels in my list and > > > > two triggers. In reality I have 20 lines and two triggers (so the list > > > > kind of gets separated into two). :-) > > > > > So basically what I want to do is > > > > "If trigger = 1 then take any of the lines for which attribute.trigger > > > > = 1" (any of 10 in a random manner) > > > > > Oh and then don't worry about TMS, it's already all working fine. :-) > > > > I am getting the triggers and all, E-Prime just doesn't know what to > > > > do with them for the moment (ok if I am more precise: E-Prime knows > > > > what to do with the triggers, but I can't control the conditions, > > > > making sure that the design is completely perfectly counterbalanced > > > > over the two conditions). :-) > > > > > I am going back to my experimental setup again, seeing what I can do > > > > with your solution in mind. I definitely should get internet there, > > > > but that's the hassle with experimental computers: you want to keep > > > > them clean from anything that might slow them such as anti-virus and > > > > stuff. :-| But feel free to reply if you came up with another idea, I > > > > will check for input anyway. :-) > > > > > Greetings, Vera > > > > > On May 7, 12:25 pm, Michiel Spape > > > > wrote: > > > > > > Hi Vera & Group, > > > > > I like that "Sudoku-effect"! In fact, I > > think I might have misstated that nested-lists > > are untrustworthy - in general, people are much > > more prone to making errors than computers, and > > indeed, this to me is the main problem of > > nested lists. I do, however, use them all the > > time, myself, but usually not for my main 'triallist'. > > > > > > Anyway, I'm sorry for the lack of help > > I'm going to offer, I'm just not entirely clear > > on what you want to achieve. Do you want to run > > certain conditions based on a trigger readout > > from TMS (err, I never worked with TMS)? Does > > that mean certain stimuli? Certain different orderings? > > > > > > Lacking a clear idea on what exactly it > > is you want, I can help with certain specifics: > > > > > > "If trigger 1 then PLEASE take only line 1" > > > > > ... > > > > > You mean, of a list, right? > > > > > > This can be achieved in a quick and dirty > > way by adding a bit of inline that sets all > > weights of a list to 0 except line 1. From E-basic help, and adjusted > > > > > > Dim nLevel As Integer 'originally Long, > > but how many people really have lists that have more than 32768 levels? > > > > > For nLevel = 1 To List1.Size > > > > > ? ? ? ? If nLevel = 1 then > > List1.SetWeight nLevel, 1 else List1.SetWeight nLevel, 0 > > ... > > read more ? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 19 14:16:55 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 19 May 2010 10:16:55 -0400 Subject: Complex (for me) randomization In-Reply-To: <26882bd5-4c1f-4317-8561-c7a273d0cd99@c11g2000vbe.googlegroups.com> Message-ID: Christophe, > Ok..I finally managed to have the prog selecting one face and holding > it for the rest of the block trials. yeepee. You did not say how you did this, that would help us. Just to make sure we are all talking about the same thing, let me lay out what I had in mind. First, the general rule, as explained in some detail in Chapter 4 of the User's Guide (and I will try to word this very carefully): The current value of any attribute set at one level is available to each successively activated lower level. So, suppose you have a structure like - BlockList - BlockProc - TrialList - TrialProc And suppose in BlockList you have an attribute (i.e., column) named "Face", and that has two levels (i.e., rows) with Face set to "Bob" on level 1, and "Alice" for level 2. Now, when your BlockList runs level (row) 1, all the trials in TrialList will use the face "Bob", and when your BlockList runs level 2 all the trials in TrialList will use the face "Alice". So you see it really is quite simple, as you originally posed the problem. And the rule applies whether you run BlockList sequentially, randomly, randomly with replacement, or any other way. The key is to understand the use of blocks vs. trials, etc., and how attribute values propogate. > The problem now is that > for each new block, the prog select a face at random in the > corresponding face list, including the face that has been presented in > the preceding block..So I can't yet manage to have a randomized > selection of faces without replacement through the different blocks of > my task. But now you add a complication. Now you want each block to use both a randomly selected new face, *plus* reuse the face from the previous block. Well, in general E-Prime is just not very good at remembering the past unless you help it along with some inline code. The only way I know how to do what you now ask is to define some global variables or arrays and then to manage these in inline code within the program. I cannot give you any more detail than that. If you are not already a competent computer programmer then I advise that you now either take some time out to learn some real computer programming skills, or hire someone else for this work. -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From cblaison at gmail.com Wed May 19 16:22:13 2010 From: cblaison at gmail.com (ccbaye) Date: Wed, 19 May 2010 09:22:13 -0700 Subject: Complex (for me) randomization In-Reply-To: <4BF3F2D7.5090400@msu.edu> Message-ID: Ok David, thank you for the time you took for me. I think I will use a fixed random order for the problem. This order will be same across experimental conditions, so it will not have a large influence I guess. > Ok..I finally managed to have the prog selecting one face and holding > it for the rest of the block trials. yeepee. >You did not say how you did this, that would help us. You are right, so...for beginners who get the same problem. I simply present the face picture with an imagedisplay object at the Blockprocess level, with a "0" in duration (position centered). Then I put my Triallist on its right, on the blockprocess line. From there I start a new Trialprocess, and put the second picture (bottom position) with Background set to "transparency". As the second picture is smaller than the face picture, they fit both nicely simultaneously on the screen. Now as I go through the block trials, only the second picture changes, not the face picture. When the block is over, a new face is selected, and the trials with the second pictures go on again, and so on for the other blocks. I really thank you for your advice David. Cheers, Christophe. On May 19, 4:16?pm, David McFarlane wrote: > Christophe, > > > Ok..I finally managed to have the prog selecting one face and holding > > it for the rest of the block trials. yeepee. > > You did not say how you did this, that would help us. ?Just to make sure > we are all talking about the same thing, let me lay out what I had in mind. > > First, the general rule, as explained in some detail in Chapter 4 of the > User's Guide (and I will try to word this very carefully): ?The current > value of any attribute set at one level is available to each > successively activated lower level. > > So, suppose you have a structure like > > - BlockList > ? ? ?- BlockProc > ? ? ? ? ?- TrialList > ? ? ? ? ? ? ?- TrialProc > > And suppose in BlockList you have an attribute (i.e., column) named > "Face", and that has two levels (i.e., rows) with Face set to "Bob" on > level 1, and "Alice" for level 2. > > Now, when your BlockList runs level (row) 1, all the trials in TrialList > will use the face "Bob", and when your BlockList runs level 2 all the > trials in TrialList will use the face "Alice". ?So you see it really is > quite simple, as you originally posed the problem. ?And the rule applies > whether you run BlockList sequentially, randomly, randomly with > replacement, or any other way. ?The key is to understand the use of > blocks vs. trials, etc., and how attribute values propogate. > > > The problem now is that > > for each new block, the prog select a face at random in the > > corresponding face list, including the face that has been presented in > > the preceding block..So I can't yet manage to have a randomized > > selection of faces without replacement through the different blocks of > > my task. > > But now you add a complication. ?Now you want each block to use both a > randomly selected new face, *plus* reuse the face from the previous > block. ?Well, in general E-Prime is just not very good at remembering > the past unless you help it along with some inline code. ?The only way I > know how to do what you now ask is to define some global variables or > arrays and then to manage these in inline code within the program. ?I > cannot give you any more detail than that. ?If you are not already a > competent computer programmer then I advise that you now either take > some time out to learn some real computer programming skills, or hire > someone else for this work. > > -- David McFarlane, Professional Faultfinder > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Wed May 19 17:11:22 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Wed, 19 May 2010 13:11:22 -0400 Subject: Complex (for me) randomization In-Reply-To: <213538f8-d830-4569-84f0-328263263207@q13g2000vbm.googlegroups.com> Message-ID: Christophe, Thanks for posting that. I am glad that you were clever enough to cobble together a solution. But if you take another look at the Slide exercise in the User's Guide, you might see that Slides offer a more general and flexible solution. So here is another approach. As before, in BlockList create an attribute called, say, BlockFace. Have your BlockProc do nothing more than call TrialList (do *not* have it present any Image or stimulus) Then in your TrialList create an attribute called, say, TrialFace. Now put a Slide into the TrialProc, let's call that StimSlide. Add two SlideImage sub-objects in the appropriate places on the StimSlide. In one SlideImage sub-object use "[BlockFace]" (without the quotes) for the File Name, in the other SlideImage use (you guessed it) "[TrialFace]". And Bob's your uncle! That may at first glance look like a more involved process, but as many others here may attest, if you take the time to learn how to use Slides you will find that it pays great dividends. Regards, -- David McFarlane, Professional Faultfinder >> Ok..I finally managed to have the prog selecting one face and holding >> it for the rest of the block trials. yeepee. > >> You did not say how you did this, that would help us. > > You are right, so...for beginners who get the same problem. I simply > present the face picture with an imagedisplay object at the > Blockprocess level, with a "0" in duration (position centered). Then I > put my Triallist on its right, on the blockprocess line. From there I > start a new Trialprocess, and put the second picture (bottom position) > with Background set to "transparency". As the second picture is > smaller than the face picture, they fit both nicely simultaneously on > the screen. Now as I go through the block trials, only the second > picture changes, not the face picture. When the block is over, a new > face is selected, and the trials with the second pictures go on again, > and so on for the other blocks. > > I really thank you for your advice David. > > Cheers, > Christophe. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Thu May 20 16:35:09 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Thu, 20 May 2010 17:35:09 +0100 Subject: Button press during sound play In-Reply-To: <4bf31809.0c0bca0a.72c1.5dd2SMTPIN_ADDED@gmr-mx.google.com> Message-ID: Hi Melissa, David &al., Is this solved yet? As I just happen to have an experiment open which does this sort of stuff, I was just thinking that in situations where you would like a sound to stop playing, the easiest way, by far, seems to be mySoundBuffer.Stop ... That's one serious bit of code, hmm? Of course, that is given that you have pre-programmed this SoundBuffer, for example: 1. put this in the User Script (alt+5, tab user) Dim GenericSoundBufferInfo As SoundBufferInfo 2. And put this in a little inline at the beginning of your experiment GenericSoundBufferInfo.MaxLength = 100 'where 100 is the maximum duration your sample could possibly be... in my case 100 ms (my samples are 30 ms, actually) GenericSoundBufferInfo.VolumeControl = CLogical("No") GenericSoundBufferInfo.PanControl = CLogical("No") Set mySoundBuffer = Sound.CreateBuffer(GenericSoundBufferInfo) mySoundBuffer.Filename ="tap30ms.wav" 'where tap30ms.wav is actually my 30 ms sound file of a... tap mySoundBuffer.Load 3. Put the following inline anywhere you'd like to play the sound mySoundBuffer.Play 4. Or if you want to play the sound and stop it after 300 ms (in my case, you should hear something for 30 ms, and there's 270 ms of silence): mySoundBuffer.Play Sleep 300 mySoundBuffer.Stop Hatchekeeday! (for English people who like to learn the epitome of Dutch non-words) Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane Sent: 18 May 2010 23:43 To: e-prime at googlegroups.com Subject: Re: Button press during sound play Melissa, Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... I don't see why you are having trouble with this, and I thought this had been answered in other threads. Nevertheless, it seems to me that if you set the input mask of your SoundOut or Slide object to the appropriate value (usually "(same as duration)", but perhaps a value longer than Duration if using "extended input") and End Action to (none) then all should work in either EP1 or EP2 (I still find EP1 a generally superior platform unless I really need Movies, etc.). -- David McFarlane, Professional Faultfinder >I am currently designing an experiment in which children are presented >with sentences that are read as they appear on screen. Then, a >question appears and is read in a sound file, with two options of >answers, and a key press to designate the chosen answer. However, I >am having trouble allowing the children to press a key (for my >reaction time measure) while the sound file plays (if they have >decided on the answer prior to the reading ending). It seems to only >permit an answer input after the sound file is complete, which isn't >terribly helpful for reaction time data. I have Eprime 1 now, though >I am in the process of getting Eprime 2. > >I know this seems painfully simple, but I have read all of the >information I have found online in attempting to solve it. So far, I >have had no luck. Any advice would be very appreciated. Thank you >all! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ryansouthgate8806 at googlemail.com Thu May 20 18:04:35 2010 From: ryansouthgate8806 at googlemail.com (ryan8806) Date: Thu, 20 May 2010 11:04:35 -0700 Subject: DoHitTest - Multiple Mouse Clicks and feedback In-Reply-To: <3761af24-0b70-4612-b674-7854f39ae5bf@b21g2000vbh.googlegroups.com> Message-ID: sorry i was unable to post the link to the image of my slide: img375(dot)imageshack(dot)us/img375/9820/slide(dot)jpg ryan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From ryansouthgate8806 at googlemail.com Thu May 20 18:02:29 2010 From: ryansouthgate8806 at googlemail.com (ryan8806) Date: Thu, 20 May 2010 11:02:29 -0700 Subject: DoHitTest - Multiple Mouse Clicks and feedback Message-ID: hello guys, i'm new to e-prime, but not new to programming. i've got a slight problem, i've read the following post about multiple mouse clicks however i've become a bit unsure about the whole "slide states" scenario. for my experiment i'm having the following screen: on this screen i want to be able to detect 4 mouse clicks in total, each mouse click will be assigned to any box, but not the same box twice. i was wondering if there is an easily programmable way to change the colour of each selected box once it has been clicked, i've currently only been able to do this with only one box. in the boxes i would also like the numbers 1-4 displayed according to which one was clicked 1st, 2nd, 3rd etc. i am more than happy with the underlying code about setting up the arrays and checking those as i have had years of experience in that, however it is the detecting and displaying i'm unsure about. another question is am i able to do this all from the e-prime user interface using the "slides" and "inline" functions or would i have to do it entirely from the script editor? here is my current code if this helps: [code]'Designate "theState" as the Default Slide State, which is the 'current ActiveState on the Slide object "PRACquestion". Dim theState As SlideState Dim theState2 As SlideState Set theState = PRACquestion.States("Default") Set theState2 = PRACquestion.States("Default") Dim theSlideText As SlideText Dim theSlideText2 As SlideText Dim strHit As String Dim strHit2 As String Dim intRating As Integer Dim intRating2 As Integer Dim i as Integer '0 is correct 1 is incorrect Dim inputArray (3) as Integer Dim arrayCount as Integer Dim numberCorrect as Integer Dim loopCount as Integer loopCount = 1 arrayCount = 0 Loop_Start: 'Was there a response? If PRACquestion.InputMasks.Responses.Count > 0 Then Dim theMouseResponseData As MouseResponseData 'Get the mouse response. Set theMouseResponseData = CMouseResponseData(PRACquestion.InputMasks.Responses(1)) 'Determine string name of SlideText object at 'mouse click coordinates. Assign that value to strHit strHit = theState.HitTest(theMouseResponseData.CursorX, theMouseResponseData.CursorY) 'Did the subject click one of the SlideText sub-objects? If strHit <> "" And strHit <> "Question" Then 'Gain access to the SlideText sub-object selected 'Change appearance of selected sub-object to provide feedback to the subject. Set theSlideText = CSlideText(PRACquestion.States.Item("Default").Objects(strHit)) theSlideText.BackColor = CColor("red") theSlideText.Text = 1 'Redraw the Slide to present changes PRACquestion.Draw 'Each SlideText is named "Text" followed by a single digit. The Mid function is 'instructed to return the 5th character (i.e. the digit) of strHit for logging purposes. intRating = CInt(Mid(strHit, 5, 1)) if intRating = 1 then inputArray(0) = 0 else inputArray(0) = 1 end if 'Log rating in the data file under the attribute "Rating" 'c.SetAttrib "Rating", intRating Sleep 1000 theSlideText.BackColor = CColor("green") 'The subject did not click a valid sub-object. Else 'c.SetAttrib "Rating", "nothing" 'MsgBox "Please Select a Valid Option", ,"ATTENTION!" 'set theMouseResponseData = nothing 'goTo Loop_Start End If 'The subject did not respond. Else 'c.SetAttrib "Rating", "nothing" End If 'Was there a response? 'If PRACquestion.InputMasks.Responses.Count > 2 Then Dim theMouseResponseData2 As MouseResponseData 'Get the mouse response. Set theMouseResponseData2 = CMouseResponseData(PRACquestion.InputMasks.Responses(1)) 'Determine string name of SlideText object at 'mouse click coordinates. Assign that value to strHit strHit2 = theState2.HitTest(theMouseResponseData2.CursorX, theMouseResponseData2.CursorY) 'Did the subject click one of the SlideText sub-objects? If strHit2 <> "" And strHit2 <> "Question" Then 'Gain access to the SlideText sub-object selected 'Change appearance of selected sub-object to provide feedback to the subject. Set theSlideText2 = CSlideText(PRACquestion.States.Item("Default").Objects(strHit2)) theSlideText2.BackColor = CColor("red") theSlideText2.Text = 2 'Redraw the Slide to present changes PRACquestion.Draw 'Each SlideText is named "Text" followed by a single digit. The Mid function is 'instructed to return the 5th character (i.e. the digit) of strHit for logging purposes. intRating2 = CInt(Mid(strHit2, 5, 1)) if intRating2 = 2 then inputArray(1) = 0 else inputArray(1) = 1 end if 'Log rating in the data file under the attribute "Rating" 'c.SetAttrib "Rating", intRating Sleep 1000 theSlideText2.BackColor = CColor("green") 'The subject did not click a valid sub-object. 'Else 'c.SetAttrib "Rating", "nothing" 'MsgBox "Please Select a Valid Option", ,"ATTENTION!" 'set theMouseResponseData = nothing 'goTo Loop_Start 'End If 'The subject did not respond. 'Else 'goTo Loop_Start 'c.SetAttrib "Rating", "nothing" End If numberCorrect = 0 for i = 0 to 3 if inputArray(i) = 0 then numberCorrect = numberCorrect + 1 end if next i c.SetAttrib "numberCorrect", numberCorrect Set theMouseResponseData = Nothing Mouse.ShowCursor FALSE[/code] thanks in advance ryan -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Thu May 20 18:39:53 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 20 May 2010 14:39:53 -0400 Subject: Read out certain levels only In-Reply-To: Message-ID: Vera, Thanks for writing back with the update... At 5/19/2010 07:42 AM Wednesday, you wrote: >To the trigger value question, you are probably right that I should >foresee what happens is the trigger is < 0 or > 7. But in practice >this will just not happen, as we are using the first 4 bits of a >parallelport only (0, 1, 2, 4). :-) Just on that point, 4 bits still allows values from 0 all the way to decimal 15, so you should still think about what happens with responses > 6. Three bits, OTOH, would indeed restrict values to <= 7, but even then courtesy dictates a comment to that effect. (Also, if it were me, I would still apply a mask to absolutely eliminate mistakes from stray signals, e.g., Const WireMask as Integer = &H0F ' lower 4 bits, decimal 15 NewTriggerValue = NewTriggerValue or WireMask ' do bitwise Or .) Ever harping on minutiae, -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From masteringminds at gmail.com Thu May 20 20:30:19 2010 From: masteringminds at gmail.com (Nawar) Date: Thu, 20 May 2010 13:30:19 -0700 Subject: Random with Constraint Message-ID: Hi, I am facing a randomization problem here. I am creating an experiment which have a list with 6 nested lists to choose from. The experiment is designed to break into 2 parts but still using the same lists. I need to randomize the selection process so that I don't choose more than half of any of the sublists in the first half of the experiment. Any ideas? -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Thu May 20 20:43:14 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Thu, 20 May 2010 16:43:14 -0400 Subject: DoHitTest - Multiple Mouse Clicks and feedback In-Reply-To: <3761af24-0b70-4612-b674-7854f39ae5bf@b21g2000vbh.googlegro ups.com> Message-ID: Stock reminder: 1) I do not work for PST. 2) PST's trained staff takes any and all questions at http://support.pstnet.com/e%2Dprime/support/login.asp , and they strive to respond to all requests in 24-48 hours (although latest reports indicate more like 10 days) -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take... >i'm new to e-prime, but not new to programming. Good to have an actual programmer on board, though as a real programmer you will will E-Prime deficient in many respects. But forging ahead... >i've got a slight problem, i've read the following post about multiple >mouse clicks >however i've become a bit unsure about the whole "slide states" >scenario. for my experiment i'm having the following screen: > >on this screen i want to be able to detect 4 mouse clicks in total, >each mouse click will be assigned to any box, but not the same box >twice. i was wondering if there is an easily programmable way to >change the colour of each selected box once it has been clicked, i've >currently only been able to do this with only one box. I just programmed something like this a week or so ago. In short, you can make use of the the .Draw method of any object, in this case either the entire Slide object or at a finer grain each individual SlideText or SlideImage sub-object (see the appropriate topics in the online E-Basic Help, which comprises the real technical documentation). In our case for each selection we wanted to restore the previous selection to its previous state, and then color the border or background of the new selection. (That means keeping track of a little more history than in your case, which I could have done with variable but instead did by restoring color properties immediately after each .Draw so that the next .Draw would automatically restore the original color.) I decided to wrap this work into a couple of Subs for more general use. So I now offer here my two Subs, plus a little example inline code using these. I provide these with no offer of any further support, and it is up to you to extract what you may from these: '/==========================\ Function SlideState_TextAltBorderColor( slState as SlideState, _ slTextName as String, altColor as Long ) as SlideText ' Draws alternate color on border of named SlideText object of the ' SlideState, and then restores the .BorderColor property for the next ' .Draw of the SlideText. ' Returns named SlideText object. Dim color0 as Long Dim slText as SlideText Set slText = CSlideText( slState.Objects( slTextName ) ) color0 = slText.BorderColor ' preserve color setting ' set & sraw alternat color... slText.BorderColor = altColor slText.Draw ' restore original color setting for next .Draw: slText.BorderColor = color0 Set SlideState_TextAltBorderColor = slText ' return value End Function ' SlideState_TextAltBorderColor() Sub SlideText_AltBackColor( slText as SlideText, altColor as Long ) ' Draws alternate color to background of specified SlideText object, ' and then restores the .BackColor property for the next .Draw of the ' SlideText. Dim color0 as Long color0 = slText.BackColor ' preserve color setting ' set & sraw alternat color... slText.BackColor = altColor slText.Draw ' restore original color setting for next .Draw: slText.BackColor = color0 End Sub ' SlideText_AltBackColor() Some inline code fragments... ' RatingSlide must use a SlideText object for each rating item, ' and the object name must take the form of ScaleStub#LevelStub#, ' e.g., "Scale1L1"... Const ScaleStub as String = "Scale" ' precedes scale # Const LevelStub as String = "L" ' precedes level # ' Alternate colors for rating items... Const AltBorderColorStr as String = "red" Const AltBackColorStr as String = "red" ' Working variables... Dim scaleN as Integer, levelSelect as Integer Dim slideTextName as String Dim RatingSlideText as SlideText ' Some variables for convenience & clarity... Dim altBorderColor as Long, altBackColor as Long ' Assign "constant" variables for notational convenience below... altBorderColor = CColor( AltBorderColorStr ) altBackColor = CColor( AltBackColorStr ) Set RatingSlideState = RatingSlide.States(RatingSlide.ActiveState) ' Initialize scales & display... slideTextName = CStr(ScaleStub & scaleN & LevelStub & levelSelect) Set RatingSlideText = SlideState_TextAltBorderColor( RatingSlideState, _ slideTextName, altBorderColor ) ' [... other stuff happens, then later...] ' Draw alternate color & restore color property for next .Draw: SlideText_AltBackColor RatingSlideText, altBackColor ' [... even more stuff happens, and later still...] ' Restore color of previously selected rating item, alter color of ' newly selected rating item... RatingSlideText.Draw ' restore previous color slideTextName = CStr(ScaleStub & scaleN & LevelStub & levelSelect) Set RatingSlideText = SlideState_TextAltBorderColor( RatingSlideState, _ slideTextName, altBorderColor ) ' [... clean up before we leave...] ' Close out object variables: Set RatingSlideState = Nothing Set RatingSlideText = Nothing '\==========================/ > in the boxes i >would also like the numbers 1-4 displayed according to which one was >clicked 1st, 2nd, 3rd etc. i am more than happy with the underlying >code about setting up the arrays and checking those as i have had >years of experience in that, however it is the detecting and >displaying i'm unsure about. I will have to leave you to work that one out. >another question is am i able to do this all from the e-prime user >interface using the "slides" and "inline" functions or would i have to >do it entirely from the script editor? Hmm, I don't know what you mean by the distintion between inline code and a "script editor". >here is my current code if this helps: I cannot speak for others, but generally when I see more than about a dozen lines of code in someone's question then I just tune out. (Yes, I did just post more than a dozen lines of code myself, but I provided that as an answer, not as a question :) .) All the double-spacing does not help matters, nor does the lack of indentation. Regards, -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From dpschpak at gmail.com Fri May 21 18:29:42 2010 From: dpschpak at gmail.com (dpschpak) Date: Fri, 21 May 2010 11:29:42 -0700 Subject: How to construct an experiment following the PQ-Likert Message-ID: I am an RA and neither myself, nor my boss have used E-Prime before. She wants me to try to design an experiment using the PQ-Lickert scale. This will require that the subject can select 1 OR 2 choices per question. Any help anyone can offer would be GREATLY appreciated. Thanks! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From wangshusandra at gmail.com Fri May 21 18:53:32 2010 From: wangshusandra at gmail.com (Sandra Wang) Date: Fri, 21 May 2010 11:53:32 -0700 Subject: How to construct an experiment following the PQ-Likert In-Reply-To: Message-ID: Check the link below. Hope it will help. http://www.pstnet.com/forum/Topic435-5-1.aspx Sandra On May 21, 1:29?pm, dpschpak wrote: > I am an RA and neither myself, nor my boss have used E-Prime before. > She wants me to try to design an experiment using the PQ-Lickert > scale. This will require that the subject can select 1 OR 2 choices > per question. Any help anyone can offer would be GREATLY appreciated. > Thanks! > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From melissadawn.stockbridge at gmail.com Sat May 22 10:34:27 2010 From: melissadawn.stockbridge at gmail.com (Melissa) Date: Sat, 22 May 2010 03:34:27 -0700 Subject: Button press during sound play In-Reply-To: <0CA8E1B4EC20D743912B980E486C5CAF034F16B6@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: Yes, thank you. I FINALLY got Eprime 2 installed by finding another whole copy. That upgrade cost a fortune and was literally completely useless. Upon getting Eprime 2's slide feature, everything appears to have worked very well. The problem was that I couldn't get sounds to play without sleeping the program, but it seems sorted now. Now I just need to find a few more kids! On May 20, 5:35?pm, Michiel Spape wrote: > Hi Melissa, David &al., > > Is this solved yet? As I just happen to have an experiment open which does this sort of stuff, I was just thinking that in situations where you would like a sound to stop playing, the easiest way, by far, seems to be > mySoundBuffer.Stop > ... > > That's one serious bit of code, hmm? Of course, that is given that you have pre-programmed this SoundBuffer, for example: > 1. put this in the User Script (alt+5, tab user) > Dim GenericSoundBufferInfo As SoundBufferInfo > 2. And put this in a little inline at the beginning of your experiment > GenericSoundBufferInfo.MaxLength = 100 ? 'where 100 is the maximum duration your sample could possibly be... in my case 100 ms (my samples are 30 ms, actually) > GenericSoundBufferInfo.VolumeControl = CLogical("No") > GenericSoundBufferInfo.PanControl = CLogical("No") > Set mySoundBuffer = Sound.CreateBuffer(GenericSoundBufferInfo) > mySoundBuffer.Filename ="tap30ms.wav" ? ?'where tap30ms.wav is actually my 30 ms sound file of a... tap > mySoundBuffer.Load > > 3. Put the following inline anywhere you'd like to play the sound > mySoundBuffer.Play > 4. Or if you want to play the sound and stop it after 300 ms (in my case, you should hear something for 30 ms, and there's 270 ms of silence): > mySoundBuffer.Play > Sleep 300 > mySoundBuffer.Stop > > Hatchekeeday! (for English people who like to learn the epitome of Dutch non-words) > Mich > > Michiel Spap? > Research Fellow > Perception & Action group > University of Nottingham > School of Psychology > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David McFarlane > Sent: 18 May 2010 23:43 > To: e-prime at googlegroups.com > Subject: Re: Button press during sound play > > Melissa, > > Stock reminder: ?1) I do not work for PST. ?2) PST's trained staff > takes any and all questions athttp://support.pstnet.com/e%2Dprime/support/login.asp, and they > strive to respond to all requests in 24-48 hours (although latest > reports indicate more like 10 days) -- this is pretty much their > substitute for proper documentation, so make full use of it. ?3) If > you do get an answer from PST Web Support, please extend the courtesy > of posting their reply back here for the sake of others. > > That said, here is my take ... > > I don't see why you are having trouble with this, and I thought this > had been answered in other threads. ?Nevertheless, it seems to me > that if you set the input mask of your SoundOut or Slide object to > the appropriate value (usually "(same as duration)", but perhaps a > value longer than Duration if using "extended input") and End Action > to (none) then all should work in either EP1 or EP2 (I still find EP1 > a generally superior platform unless I really need Movies, etc.). > > -- David McFarlane, Professional Faultfinder > > >I am currently designing an experiment in which children are presented > >with sentences that are read as they appear on screen. ?Then, a > >question appears and is read in a sound file, with two options of > >answers, and a key press to designate the chosen answer. ?However, I > >am having trouble allowing the children to press a key (for my > >reaction time measure) while the sound file plays (if they have > >decided on the answer prior to the reading ending). ?It seems to only > >permit an answer input after the sound file is complete, which isn't > >terribly helpful for reaction time data. ?I have Eprime 1 now, though > >I am in the process of getting Eprime 2. > > >I know this seems painfully simple, but I have read all of the > >information I have found online in attempting to solve it. ?So far, I > >have had no luck. ?Any advice would be very appreciated. ?Thank you > >all! > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From rbscullin at gmail.com Mon May 24 14:24:26 2010 From: rbscullin at gmail.com (Rachel S.) Date: Mon, 24 May 2010 07:24:26 -0700 Subject: Improving Picture Resolution Message-ID: I am currently working on a program that uses the dot-probe task. A fixation cross "+", followed by 2 faces, and a probe (E or F) appears. The faces I am presenting are from .png files. Using Microsoft Office Picture Manager, I edit the .png files to make the faces smaller. The resolution of the faces looks fine until I run the e-prime program. Any suggestions how I can improve the resolution of the faces without affecting the refresh rate of the computer? I have already tried changing the file type and that doesn't seem to help. Thanks in advance. Rachel -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Liza.Mccarron at uwe.ac.uk Mon May 24 15:07:08 2010 From: Liza.Mccarron at uwe.ac.uk (Liza Mccarron) Date: Mon, 24 May 2010 16:07:08 +0100 Subject: Improving Picture Resolution In-Reply-To: <2981c58c-08f2-4553-996b-ef5d39037199@j27g2000vbp.googlegroups.com> Message-ID: Ok.. in EPrime how have you set up the picture display? It is possible that you may have made the images too small via picture manager and then may be trying to display them at a higher screen resolution through EPrime (there are lots of variables that could be coming into play here including graphics drivers, display resolution etc etc) Generally I tend to make my images 1024 x 768 @ 72dpi for use in Eprime as that is the resolution I have found best works with our range of monitors (I tend to use Photoshop or Photoshop elements to edit and save images as that seems to give most control - a free program called "The Gimp" is widely used too - I know a couple of members here use it. As you say changing the file format makes no difference I'm wondering if picture manager (I am not really familiar with it) is doing something odd in the save which is then not liked by EPrime. It would be helpful if you could e-mail me a copy of your original picture and a copy of the saved picture and then I can probably work out what is going on! It would also be worth you checking the display size that your eprime experiment is set to use (If you haven't already) - - Open Experiment - Choose "Edit" "Experiment" - Select "Devices" tab - Choose "Display" and "Edit" - Check that you either have "Match desktop setting at runtime" as "yes" or that you have the height/width setting you require specified below. To find your desktop resolution right click on the desktop and select "Properties" and then "Settings" You may need to play around with these settings in EPrime to get the results you want. Hope this is of some use - feel free to mail me back if you need any more suggestions! Best Regards Liza McCarron Senior Technician Department of Psychology Room 0H17A/0J12 University of the West Of England Frenchay Campus Coldharbour Lane BS16 1QY Tel: 0117 328 3253 -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Rachel S. Sent: 24 May 2010 15:24 To: E-Prime Subject: Improving Picture Resolution I am currently working on a program that uses the dot-probe task. A fixation cross "+", followed by 2 faces, and a probe (E or F) appears. The faces I am presenting are from .png files. Using Microsoft Office Picture Manager, I edit the .png files to make the faces smaller. The resolution of the faces looks fine until I run the e-prime program. Any suggestions how I can improve the resolution of the faces without affecting the refresh rate of the computer? I have already tried changing the file type and that doesn't seem to help. Thanks in advance. Rachel -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From rbscullin at gmail.com Mon May 24 15:57:10 2010 From: rbscullin at gmail.com (Rachel S.) Date: Mon, 24 May 2010 08:57:10 -0700 Subject: Improving Picture Resolution In-Reply-To: <20010E745C50274D93A655F97E2815973047439F8A@EGEN-MBX02.campus.ads.uwe.ac.uk> Message-ID: Thank you. I needed to match the desktop setting at runtime to fix it. I appreciate your help. Best, Rachel On May 24, 10:07?am, Liza Mccarron wrote: > Ok.. in EPrime how have you set up the picture display? ?It is possible that you may have made the images too small via picture manager and then may be trying to display them at a higher screen resolution through EPrime (there are lots of variables that could be coming into play here including graphics drivers, display resolution etc etc) > > Generally I tend to make my images 1024 x 768 @ 72dpi for use in Eprime as that is the resolution I have found best works with our range of monitors (I tend to use Photoshop or Photoshop elements to edit and save images as that seems to give most control - a free program called "The Gimp" is widely used too - I know a couple of members here use it. ?As you say changing the file format makes no difference I'm wondering if picture manager (I am not really familiar with it) is doing something odd in the save which is then not liked by EPrime. > > It would be helpful if you could e-mail me a copy of your original picture and a copy of the saved picture and then I can probably work out what is going on! > > It would also be worth you checking the display size that your eprime experiment is set to use (If you haven't already) - > > - Open Experiment > - Choose "Edit" ?"Experiment" ? > - Select "Devices" tab > - Choose "Display" and "Edit" > - Check that you either have "Match desktop setting at runtime" as "yes" or that you have the height/width setting you require specified below. > > To find your desktop resolution right click on the desktop and select "Properties" and then "Settings" > > You may need to play around with these settings in EPrime to get the results you want. > > Hope this is of some use - feel free to mail me back if you need any more suggestions! > > Best Regards > > Liza McCarron > Senior Technician > Department of Psychology > Room 0H17A/0J12 > University of the West Of England > Frenchay Campus > Coldharbour Lane > BS16 1QY > Tel: 0117 328 3253 > > > > -----Original Message----- > From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Rachel S. > Sent: 24 May 2010 15:24 > To: E-Prime > Subject: Improving Picture Resolution > > I am currently working on a program that uses the dot-probe task. A > fixation cross "+", followed by 2 faces, and a probe (E or F) appears. > The faces I am presenting are from .png files. Using Microsoft Office > Picture Manager, I edit the .png files to make the faces smaller. The > resolution of the faces looks fine until I run the e-prime program. > Any suggestions how I can improve the resolution of the faces without > affecting the refresh rate of the computer? > > I have already tried changing the file type and that doesn't seem to > help. > > Thanks in advance. > > Rachel > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From david.r.allen1 at gmail.com Tue May 25 00:30:26 2010 From: david.r.allen1 at gmail.com (David Allen) Date: Mon, 24 May 2010 17:30:26 -0700 Subject: Helper functions and global variables Message-ID: Hello, I'm new to e-prime and the last time I did visual basic was 7 years ago. I am, however, an experienced programmer. Unfortunately I'm stuck using e-prime on a vista machine, which breaks the help (where I'm certain I could find the answers to my questions). How does one go about defining helper functions (functions in an inline script that can be referred to anywhere in the project) and global variables (the same but in variable form)? I found the visual basic syntax for each and tried to just use it inside an inline script but the compiler threw errors like "Found: Function Expected: " for function foo as integer return 1 end function Any help or pointers to good resources besides the help file will be much appreciated. Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From Michiel.Spape at nottingham.ac.uk Tue May 25 11:51:56 2010 From: Michiel.Spape at nottingham.ac.uk (Michiel Spape) Date: Tue, 25 May 2010 12:51:56 +0100 Subject: Helper functions and global variables In-Reply-To: <9ed64419-e573-4ed2-92f8-a9a370b1af79@j36g2000prj.googlegroups.com> Message-ID: Hiya, Here's one from me: Function TekenCirkel(xloc, yloc, size as integer, colour as string) as boolean cnvsnext.FillColor = CColor(colour) cnvsnext.PenColor = CColor(colour) cnvsnext.Circle xloc, yloc, size TekenCirkel = true end Function 'canvasnext is my buffered canvas, by the way, so at some point you can swap that one for the front one and everything is drawn at once. ... You get the idea - Function FunctionName (inputvars) as returnvariable-type Then assign to the functionname. All of that you can put in the user area (Alt+5), which is also where all your variables declared are global. I can't generally be bothered to find out how E-Prime does this sort of thing, so it's quite possible this is not the best way at all. Also, for your convenience, Subs (functions without returns, i.e. voids): Sub ClrScrNext() cnvsnext.FillColor = CColor(BGColour) cnvsnext.clear End Sub Cheers, Mich Michiel Spap? Research Fellow Perception & Action group University of Nottingham School of Psychology -----Original Message----- From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of David Allen Sent: 25 May 2010 01:30 To: E-Prime Subject: Helper functions and global variables Hello, I'm new to e-prime and the last time I did visual basic was 7 years ago. I am, however, an experienced programmer. Unfortunately I'm stuck using e-prime on a vista machine, which breaks the help (where I'm certain I could find the answers to my questions). How does one go about defining helper functions (functions in an inline script that can be referred to anywhere in the project) and global variables (the same but in variable form)? I found the visual basic syntax for each and tried to just use it inside an inline script but the compiler threw errors like "Found: Function Expected: " for function foo as integer return 1 end function Any help or pointers to good resources besides the help file will be much appreciated. Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 25 12:37:26 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 25 May 2010 08:37:26 -0400 Subject: Helper functions and global variables In-Reply-To: <9ed64419-e573-4ed2-92f8-a9a370b1af79@j36g2000prj.googlegroups.com> Message-ID: David, Stock reminder: 1) I do not work for PST. 2) PST's trained staff really does like to 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 -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... 1) Study Chapter 4, "E-Basic", of the User's Guide that came with E-Prime. (Beyond that, do yourself a favor and work through all of the Getting Started Guide and User's Guide; you may leave the Reference Guide for later.) 2) The online E-Basic Help may not work because Vista removed support for the older (and long deprecated) .hlp format. To enable the online E-Basic Help, you must either download and install the .hlp reader for Vista from Microsoft, or install a newer version of EP2, which comes with online E-Basic Help in the newer .chm format (which has its own problems). 3) Although the online E-Basic Help is indeed the closest we get to actual technical documentation, it will not answer all your questions as it is incomplete and in several places just plain wrong. So beware, you still have to user your own wits when figuring out E-Prime. -- David McFarlane, Professional Faultfinder On Monday 24 May 2010 David Allen wrote: > Hello, > I'm new to e-prime and the last time I did visual basic was 7 years > ago. I am, however, an experienced programmer. Unfortunately I'm stuck > using e-prime on a vista machine, which breaks the help (where I'm > certain I could find the answers to my questions). > > How does one go about defining helper functions (functions in an > inline script that can be referred to anywhere in the project) and > global variables (the same but in variable form)? I found the visual > basic syntax for each and tried to just use it inside an inline script > but the compiler threw errors like "Found: Function Expected: > " for > > function foo as integer > return 1 > end function > > Any help or pointers to good resources besides the help file will be > much appreciated. > > Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Tue May 25 17:45:31 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Tue, 25 May 2010 13:45:31 -0400 Subject: Helper functions and global variables In-Reply-To: <4BFBC486.6080600@msu.edu> Message-ID: David, Just a couple more hints for writing functions, subs, & EP code in general: - Unlike a rational language such as C or even JavaScript, E-Basic requires parantheses around the argument list in any call to a Function, but forbids parentheses around the argument list in any call to a Sub. When writing & using Subs, eventually you will run across a runtime error such as, --------------------------- The following error was found while attempting to compile the E-Basic script: Encountered: ',' Expecting: , ')' --------------------------- This just means that, out of long habit with other languages (and in keeping with the syntax in the *definition* of the Sub), you made the mistake of using a Sub and enclosing its argument list in parantheses, and now you need to remove those parentheses. Sigh. - Read through the full code that E-Studio generates from any .es file. With prior experience in VBA you should be able to learn a lot just from poring over the generated code. -- David McFarlane, Professional Faultfinder At 5/25/2010 08:37 AM Tuesday, you wrote: >David, > >Stock reminder: 1) I do not work for PST. 2) PST's trained staff >really does like to 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 -- this is pretty >much their substitute for proper documentation, so make full use of >it. 3) If you do get an answer from PST Web Support, please extend >the courtesy of posting their reply back here for the sake of others. > >That said, here is my take ... > >1) Study Chapter 4, "E-Basic", of the User's Guide that came with >E-Prime. (Beyond that, do yourself a favor and work through all of >the Getting Started Guide and User's Guide; you may leave the >Reference Guide for later.) > >2) The online E-Basic Help may not work because Vista removed >support for the older (and long deprecated) .hlp format. To enable >the online E-Basic Help, you must either download and install the >.hlp reader for Vista from Microsoft, or install a newer version of >EP2, which comes with online E-Basic Help in the newer .chm format >(which has its own problems). > >3) Although the online E-Basic Help is indeed the closest we get to >actual technical documentation, it will not answer all your >questions as it is incomplete and in several places just plain >wrong. So beware, you still have to user your own wits when >figuring out E-Prime. > >-- David McFarlane, Professional Faultfinder > > >On Monday 24 May 2010 David Allen wrote: >>Hello, >>I'm new to e-prime and the last time I did visual basic was 7 years >>ago. I am, however, an experienced programmer. Unfortunately I'm stuck >>using e-prime on a vista machine, which breaks the help (where I'm >>certain I could find the answers to my questions). >>How does one go about defining helper functions (functions in an >>inline script that can be referred to anywhere in the project) and >>global variables (the same but in variable form)? I found the visual >>basic syntax for each and tried to just use it inside an inline script >>but the compiler threw errors like "Found: Function Expected: >>" for >>function foo as integer >>return 1 >>end function >>Any help or pointers to good resources besides the help file will be >>much appreciated. >>Thanks, David -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From susangc7 at gmail.com Wed May 26 16:51:26 2010 From: susangc7 at gmail.com (Susan) Date: Wed, 26 May 2010 09:51:26 -0700 Subject: Helper functions and global variables In-Reply-To: <9ed64419-e573-4ed2-92f8-a9a370b1af79@j36g2000prj.googlegroups.com> Message-ID: Maybe I'm missing the point of your question, but you say you're defining functions and global variables in inline code. I don't think they work there because of the limited scope; have you tried putting them in the User script tab instead (View: Script: User tab)? Your functions may be fine, but misplaced. HTH, Susan On May 24, 8:30?pm, David Allen wrote: > Hello, > I'm new to e-prime and the last time I did visual basic was 7 years > ago. I am, however, an experienced programmer. Unfortunately I'm stuck > using e-prime on a vista machine, which breaks the help (where I'm > certain I could find the answers to my questions). > > How does one go about defining helper functions (functions in an > inline script that can be referred to anywhere in the project) and > global variables (the same but in variable form)? I found the visual > basic syntax for each and tried to just use it inside an inline script > but the compiler threw errors like "Found: Function Expected: > " for > > function foo as integer > return 1 > end function > > Any help or pointers to good resources besides the help file will be > much appreciated. > > Thanks, David > > -- > You received this message because you are subscribed to the Google Groups "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From dpschpak at gmail.com Fri May 28 13:49:33 2010 From: dpschpak at gmail.com (dpschpak) Date: Fri, 28 May 2010 06:49:33 -0700 Subject: I need help writing an If...Then InLine Message-ID: My experiment follows a Likert-scale with options from 0-4. What I would like to do is if the subject selects an option 1-4 on the question slide, then a slide requiring a Y or N answer will display. I've never written script before, and this is my first experiment on E- Prime, so if you can help me please dumb it down a bit for me. Thanks! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From estelle.breton at gmail.com Fri May 28 16:41:20 2010 From: estelle.breton at gmail.com (Estelle_Thought_Technology) Date: Fri, 28 May 2010 09:41:20 -0700 Subject: send event related signal to serial/parallel ports Message-ID: Hi, I am new to this group, and a new e-prime user too. I will be working as an intern for the summer for a company named 'Thought Technology' . They develop hardware and software for biofeedback use and they want to make the interface between e-prime and their hardware possible so that users can use their technology to acquire physiological data during an e-prime protocol. The first goal will be to send event-related signals from e-prime to a port so it can be recieved and handled by a software that will be developped for this use. Reading the documentation, I realized that event-related signals are usually sent through the parallel port. Is there a reason to use the parallel port instead of the serial port ? I saw that SerialDevice objects exist and that there is a method to write to the serial port, but is it possible to notify external equipment the exact time that an event occurs in E-Prime using the serial port ? I know it coul be done with the parallel port using the onset and offset signal properties of objects...I wonder if the same could be done through the serail port since it is more commonly used than the parallel port these days... Thank you for your help, it will be really appreciated ! Estelle -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Sat May 29 01:20:17 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 28 May 2010 21:20:17 -0400 Subject: I need help writing an If...Then InLine In-Reply-To: Message-ID: Well, before anyone does their first experiment with E-Prime, they should at the very least work through the Getting Started Guide and the User's Guide that came with E-Prime. In particular, before doing your first inline code, work through Chapter 4 of the User's Guide. -- David McFarlane, Professional Faultfinder dpschpak wrote: > My experiment follows a Likert-scale with options from 0-4. What I > would like to do is if the subject selects an option 1-4 on the > question slide, then a slide requiring a Y or N answer will display. > I've never written script before, and this is my first experiment on E- > Prime, so if you can help me please dumb it down a bit for me. Thanks! -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Sat May 29 01:24:35 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Fri, 28 May 2010 21:24:35 -0400 Subject: send event related signal to serial/parallel ports In-Reply-To: <6724fa9b-8230-4768-b8f9-2e756634e0e2@o12g2000vba.googlegroups.com> Message-ID: Estelle, > Reading the documentation, I realized that event-related signals are > usually sent through the parallel port. Is there a reason to use the > parallel port instead of the serial port ? Yes, and if you consult any standard reference on parallel ports and serial ports then the answer will become obvious. Or just use Google. In fact, if you do a proper search of either this Google Group or the PST Forum you should find where I have already discussed this at length. -- David McFarlane, Professional Faultfinder -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From estelle.breton at gmail.com Mon May 31 13:23:44 2010 From: estelle.breton at gmail.com (Estelle Breton) Date: Mon, 31 May 2010 09:23:44 -0400 Subject: send event related signal to serial/parallel ports In-Reply-To: <4C006CD3.80405@msu.edu> Message-ID: Ok, thank you, I understand the parallel port communication is faster than the serial port communication. I guess I will have to find a computer with a parallel port since mine only has serial. Thanks again ! On Fri, May 28, 2010 at 9:24 PM, David McFarlane wrote: > Estelle, > > > Reading the documentation, I realized that event-related signals are >> usually sent through the parallel port. Is there a reason to use the >> parallel port instead of the serial port ? >> > > Yes, and if you consult any standard reference on parallel ports and serial > ports then the answer will become obvious. Or just use Google. In fact, if > you do a proper search of either this Google Group or the PST Forum you > should find where I have already discussed this at length. > > -- David McFarlane, Professional Faultfinder > > > -- > You received this message because you are subscribed to the Google Groups > "E-Prime" group. > To post to this group, send email to e-prime at googlegroups.com. > To unsubscribe from this group, send email to > e-prime+unsubscribe at googlegroups.com > . > For more options, visit this group at > http://groups.google.com/group/e-prime?hl=en. > > -- Estelle -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sara.agosta at gmail.com Mon May 31 14:25:09 2010 From: sara.agosta at gmail.com (saraag) Date: Mon, 31 May 2010 07:25:09 -0700 Subject: USB port TMS Message-ID: Hello everyone, does anyone knows the scropt to open the USB port in order to trigger a TMS? please, let me know I have to send a trigger though the USB port, because the parallel port is used to trigger another device. thank you very much Sara -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 31 18:26:53 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 31 May 2010 14:26:53 -0400 Subject: USB port TMS In-Reply-To: <92c6ae5b-4d01-42bd-9f16-76b96bfae601@l6g2000vbo.googlegroups.com> Message-ID: Sara, Stock reminder: 1) I do not work for PST. 2) PST's trained staff really does like to 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 -- this is pretty much their substitute for proper documentation, so make full use of it. 3) If you do get an answer from PST Web Support, please extend the courtesy of posting their reply back here for the sake of others. That said, here is my take ... Unless PST has added something new to the latest release of EP2, E-Prime simply has no facility for sending or receiving data through a USB port, so you are just out of luck there. But do not take my word for this, please contact PST Web Support yourself and then report back here. Say, why not just install another parallel port? Or, does your other device need all 8 outputs from the parallel port? If not, why not just build a cable to send different wires to your different devices? Just take a look at the book "Parallel Port Complete" by Jan Axelson to get some idea of how to make full use of the parallel port. Or, skip the parallel port and just install a real digital I/O card (e.g., from http://www.mccdaq.com ). -- David McFarlane, Professional Faultfinder > does anyone knows the scropt to open the USB port in order to trigger > a TMS? > > please, let me know > I have to send a trigger though the USB port, because the parallel > port is used to trigger another device. > > thank you very much > Sara -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From mcfarla9 at msu.edu Mon May 31 22:20:18 2010 From: mcfarla9 at msu.edu (David McFarlane) Date: Mon, 31 May 2010 18:20:18 -0400 Subject: USB port TMS In-Reply-To: <4C03FF6D.606@msu.edu> Message-ID: Sara, Come to think of it, there is a way to send & receive data through USB using E-Prime, in fact I am doing that for a project now. First go to Measurement Computing (referred to earlier) and get whatever I/O board suits your fancy, e.g., their USB-1024 ($100). When that arrives, install the Universal Libray software that comes with it. Then add the appropriate Declare statements in the User Script area of your EP program (see instructions that come with the MCC UL). Now you can use MCC UL function calls from EP inline code to send & receive data through the USB port. Recognizing that the MCC UL essentially just adds a DLL to provide the USB support, with enough ingenuity you could take this even further by writing your own DLL to use from EP. For that, you might want to take a look at "USB Complete" by Jan Axelson. Mind you, I am not advising you do any of this. Just being an academic and pointing out the full range of possibilities. -- David McFarlane, Professional Faultfinder David McFarlane wrote: > Sara, > > Stock reminder: 1) I do not work for PST. 2) PST's trained staff > really does like to 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 -- this is pretty much their > substitute for proper documentation, so make full use of it. 3) If you > do get an answer from PST Web Support, please extend the courtesy of > posting their reply back here for the sake of others. > > That said, here is my take ... > > Unless PST has added something new to the latest release of EP2, E-Prime > simply has no facility for sending or receiving data through a USB port, > so you are just out of luck there. But do not take my word for this, > please contact PST Web Support yourself and then report back here. > > Say, why not just install another parallel port? Or, does your other > device need all 8 outputs from the parallel port? If not, why not just > build a cable to send different wires to your different devices? Just > take a look at the book "Parallel Port Complete" by Jan Axelson to get > some idea of how to make full use of the parallel port. Or, skip the > parallel port and just install a real digital I/O card (e.g., from > http://www.mccdaq.com ). > > -- David McFarlane, Professional Faultfinder > > >> does anyone knows the scropt to open the USB port in order to trigger >> a TMS? >> >> please, let me know >> I have to send a trigger though the USB port, because the parallel >> port is used to trigger another device. >> >> thank you very much >> Sara -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en. From pquain at une.edu.au Mon May 31 22:18:24 2010 From: pquain at une.edu.au (Peter Quain) Date: Tue, 1 Jun 2010 08:18:24 +1000 Subject: USB port TMS In-Reply-To: <4C043622.2060402@msu.edu> Message-ID: what about timing issues David - anything to be aware of? At 08:20 AM 1/06/2010, you wrote: >Sara, > >Come to think of it, there is a way to send & receive data through >USB using E-Prime, in fact I am doing that for a project now. First >go to Measurement Computing (referred to earlier) and get whatever >I/O board suits your fancy, e.g., their USB-1024 ($100). When that >arrives, install the Universal Libray software that comes with >it. Then add the appropriate Declare statements in the User Script >area of your EP program (see instructions that come with the MCC >UL). Now you can use MCC UL function calls from EP inline code to >send & receive data through the USB port. > >Recognizing that the MCC UL essentially just adds a DLL to provide >the USB support, with enough ingenuity you could take this even >further by writing your own DLL to use from EP. For that, you might >want to take a look at "USB Complete" by Jan Axelson. > >Mind you, I am not advising you do any of this. Just being an >academic and pointing out the full range of possibilities. > >-- David McFarlane, Professional Faultfinder > > >David McFarlane wrote: >>Sara, >>Stock reminder: 1) I do not work for PST. 2) PST's trained staff >>really does like to 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 -- this is pretty >>much their substitute for proper documentation, so make full use of >>it. 3) If you do get an answer from PST Web Support, please extend >>the courtesy of posting their reply back here for the sake of others. >>That said, here is my take ... >>Unless PST has added something new to the latest release of EP2, >>E-Prime simply has no facility for sending or receiving data >>through a USB port, so you are just out of luck there. But do not >>take my word for this, please contact PST Web Support yourself and >>then report back here. >>Say, why not just install another parallel port? Or, does your >>other device need all 8 outputs from the parallel port? If not, >>why not just build a cable to send different wires to your >>different devices? Just take a look at the book "Parallel Port >>Complete" by Jan Axelson to get some idea of how to make full use >>of the parallel port. Or, skip the parallel port and just install >>a real digital I/O card (e.g., from http://www.mccdaq.com ). >>-- David McFarlane, Professional Faultfinder >> >>>does anyone knows the scropt to open the USB port in order to trigger >>>a TMS? >>> >>>please, let me know >>>I have to send a trigger though the USB port, because the parallel >>>port is used to trigger another device. >>> >>>thank you very much >>>Sara > >-- >You received this message because you are subscribed to the Google >Groups "E-Prime" group. >To post to this group, send email to e-prime at googlegroups.com. >To unsubscribe from this group, send email to >e-prime+unsubscribe at googlegroups.com. >For more options, visit this group at >http://groups.google.com/group/e-prime?hl=en. -- You received this message because you are subscribed to the Google Groups "E-Prime" group. To post to this group, send email to e-prime at googlegroups.com. To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.