agen judi bola , sportbook, casino, togel, number game, singapore, tangkas, basket, slot, poker, dominoqq,
agen bola. Semua permainan bisa dimainkan hanya dengan 1 ID. minimal deposit 50.000 ,- bonus cashback hingga 10% , diskon togel hingga 66% bisa bermain di android dan IOS kapanpun dan dimana pun. poker , bandarq , aduq, domino qq ,
dominobet. Semua permainan bisa dimainkan hanya dengan 1 ID. minimal deposit 10.000 ,- bonus turnover 0.5% dan bonus referral 20%. Bonus - bonus yang dihadirkan bisa terbilang cukup tinggi dan memuaskan, anda hanya perlu memasang pada situs yang memberikan bursa pasaran terbaik yaitu
http://45.77.173.118/ Bola168. Situs penyedia segala jenis permainan poker online kini semakin banyak ditemukan di Internet, salah satunya TahunQQ merupakan situs Agen Judi Domino66 Dan
BandarQ Terpercaya yang mampu memberikan banyak provit bagi bettornya. Permainan Yang Di Sediakan Dewi365 Juga sangat banyak Dan menarik dan Peluang untuk memenangkan Taruhan Judi online ini juga sangat mudah . Mainkan Segera Taruhan Sportbook anda bersama
Agen Judi Bola Bersama Dewi365 Kemenangan Anda Berapa pun akan Terbayarkan. Tersedia 9 macam permainan seru yang bisa kamu mainkan hanya di dalam 1 ID saja. Permainan seru yang tersedia seperti Poker, Domino QQ Dan juga
BandarQ Online. Semuanya tersedia lengkap hanya di ABGQQ. Situs ABGQQ sangat mudah dimenangkan, kamu juga akan mendapatkan mega bonus dan setiap pemain berhak mendapatkan cashback mingguan. ABGQQ juga telah diakui sebagai
Bandar Domino Online yang menjamin sistem FAIR PLAY disetiap permainan yang bisa dimainkan dengan deposit minimal hanya Rp.25.000. DEWI365 adalah
Bandar Judi Bola Terpercaya & resmi dan terpercaya di indonesia. Situs judi bola ini menyediakan fasilitas bagi anda untuk dapat bermain memainkan permainan judi bola. Didalam situs ini memiliki berbagai permainan taruhan bola terlengkap seperti Sbobet, yang membuat DEWI365 menjadi situs judi bola terbaik dan terpercaya di Indonesia. Tentunya sebagai situs yang bertugas sebagai
Bandar Poker Online pastinya akan berusaha untuk menjaga semua informasi dan keamanan yang terdapat di POKERQQ13. Kotakqq adalah situs
Judi Poker Online Terpercayayang menyediakan 9 jenis permainan sakong online, dominoqq, domino99, bandarq, bandar ceme, aduq, poker online, bandar poker, balak66, perang baccarat, dan capsa susun. Dengan minimal deposit withdraw 15.000 Anda sudah bisa memainkan semua permaina pkv games di situs kami. Jackpot besar,Win rate tinggi, Fair play, PKV Games
Comments
Hi Manuela,
Yes, an inline_script would be the most effective way. You could make a canvas (http://osdoc.cogsci.nl/python/canvas/) that displays your scale. In the run phase of your inline_script, you would then display this canvas in a while-loop. The while-statement would be something like: "while buttonpress != middle_button".
Now the trick is to have a variable that determines the location of a pointer on this scale. In the prepare phase, you could simply create this by inserting the line "pointer = 5".
In the while-loop in the run phase, you adjust the value of pointer based on keypresses. (http://osdoc.cogsci.nl/python/keyboard/#function-__keyboardget_key__keylistnone-timeoutnone). Hence every iteration through the loop you collect a key response, and then insert some code like this:
In the while loop you insert a function that creates a line on the canvas, with its x-coordinate determined by pointer: http://osdoc.cogsci.nl/python/canvas/#function-__canvasline__sx-sy-ex-ey-colornone-penwidthnone
You just have to figure out what exact coordinates on the scale belong to which pointer value. Of course you also have to depict the scale itself. You can create this image beforehand and depict it on canvas with the canvas.image function.
Lastly, before you update the canvas, you have to clear the previous one; otherwise the pointers will stack up. So each run through the while loop will see the following steps: 1) get a keyboard response, and update pointer; 2) exp.canvas.clear() (clears canvas, if your canvasname is "canvas" at least); 3) draw scale and draw line on scale based on pointer value. And if the subject presses the middle button, you will exit the while loop and continue to whatever you had planned next in your experiment.
Let me know how it goes.
Cheers,
Josh
Hi Josh,
thanks for your very quick and detailed reply.
I think I'm making some stupid mistake in declaring/writing variables, since I keep getting a NameError. I tried many ways to call the 'pointer' variable in the function to draw a triangle as my pointer, but it doesn't work.
That's what I've done so far (sorry for not using different colors).
In the Prepare inline:
exp.set ('pointer',510)
exp.set ('response','')
from openexp.canvas import canvas
my_canvas = canvas(exp)
my_canvas.line(100, 400, 900, 400, "white", 2)
my_canvas.text('How happy are you?', y=200)
my_canvas.text('not at all happy', y=500, x=100)
my_canvas.text('moderately happy', y=500)
my_canvas.text('extremely happy', y=500, x=900)
my_canvas.text('5', y=450)
my_canvas.text('0', y=450, x=100)
my_canvas.text('10', y=450, x=900)
my_canvas.show()
In the Run inline:
while 'response' != 'down':
Thanks again in advance,
Manuela
Hi Josh,
forget about the previous comment. It's now working! Thanks again.
I have a final problem...
When pressing the middle button, it doesn't go aout from the while loop. Also, if I have another event (e.g., a sequence with a similar inline with a different question to ask participants) after that, it immediately jumps to the new event and then it comes back to the first. That's pretty weird, I might have placed the show/clear canvas in the wrong position...
Any tip?
Best
Manuela
Hi Manuela,
How did you define the middle button, and what is your while statement? As long as the logic is sound (e.g. "while buttonresponse is not middle") and you got all your values right, it should work. To give you an example: if you store the button response in a variable called 'response', and the used middle button is 'b' (I just picked something on my keyboard here), the line should look as follows
If you have another question after that, it's better to consider it as a new trial and place it in a new sequence - or perhaps a new inline script and at least a new while loop (Otherwise it's going to loop everything of course!). Problems like these are often, like you suspected, of a structural nature. Further you may want to use different variable names for different types of questions. Could be that your trials are mixed in a certain way where one variable overwrites another.
Good luck!
Josh
Hi Josh,
many many thanks, in the end the script seems working with one inline only. However I still don't get the final response for each question. Any tip on that? A counter? I actually don't know how to log responses.
Here is my last try (sorry for the looong copy and paste, I had to put spaces between lines otherwise they got crowded):
In a sequence I have an inline and a logger.
In the Prepare phase of the inline I have:
self.experiment.set('pointer',510)
self.experiment.set('response','')
self.experiment.set('False','')
self.experiment.set('correct','')
pointer = 510
self.experiment.set('pointer_2',510)
self.experiment.set('response_2','')
self.experiment.set('False','')
self.experiment.set('correct_2','')
pointer_2 = 510
from openexp.canvas import canvas
my_canvas = canvas(exp)
my_canvas.line(110, 400, 910, 400, "white", 2)
my_canvas.text('How bored are you?', y=200)
my_canvas.text('not at all bored', y=500, x=110)
my_canvas.text('moderately bored', y=500)
my_canvas.text('extremely bored', y=500, x=910)
my_canvas.text('5', y=450, x=510)
my_canvas.text('0', y=450, x=110)
my_canvas.text('1', y=450, x=190)
my_canvas.text('2', y=450, x=270)
my_canvas.text('3', y=450, x=350)
my_canvas.text('4', y=450, x=430)
my_canvas.text('6', y=450, x=590)
my_canvas.text('7', y=450, x=670)
my_canvas.text('8', y=450, x=750)
my_canvas.text('9', y=450, x=830)
my_canvas.text('10', y=450, x=910)
my_canvas.line(pointer, 320, pointer, 350, "white", 4)
my_canvas.show()
from openexp.canvas import canvas
my_canvas_2 = canvas(exp)
my_canvas_2.line(110, 400, 910, 400, "white", 2)
my_canvas_2.text('Please rate your current level of arousal', y=200)
my_canvas_2.text('calm and relaxed', y=500, x=110)
my_canvas_2.text('moderately aroused', y=500)
my_canvas_2.text('extremely aroused', y=500, x=910)
my_canvas_2.text('5', y=450, x=510)
my_canvas_2.text('0', y=450, x=110)
my_canvas_2.text('1', y=450, x=190)
my_canvas_2.text('2', y=450, x=270)
my_canvas_2.text('3', y=450, x=350)
my_canvas_2.text('4', y=450, x=430)
my_canvas_2.text('6', y=450, x=590)
my_canvas_2.text('7', y=450, x=670)
my_canvas_2.text('8', y=450, x=750)
my_canvas_2.text('9', y=450, x=830)
my_canvas_2.text('10', y=450, x=910)
my_canvas_2.line(pointer_2, 320, pointer_2, 350, "white", 4)
from openexp.canvas import canvas
my_canvas_3 = canvas(exp)
my_canvas_3.fixdot()
In the Run phase of the inline I have:
self.experiment.set('pointer',510)
self.experiment.set('response','')
self.experiment.set('False','')
self.experiment.set('correct','')
self.experiment.set('pointer_2',510)
self.experiment.set('response_2','')
self.experiment.set('False','')
self.experiment.set('correct_2','')
while 'response' != 'down':
Thanks thanks thanks,
Manuela
Hi Manu,
Without having read your entire discussion with Josh, let me reply to your last question:
Basically, you have to options. Either you store those variables that you want to log in the instance of the experiment and let the
logger
item do the collecting job for you, or you send directly messages to the logging file ( do this withexp.log
).I recommend using the first option, if it is possible. To do so, you should find a point in your script that will always be executed after the
while
loop was broken. Naturally, just after thewhile
loop would be a perfect spot for that. There you only have to set your variables do be part of the experiment like so:exp.set('var_name',var_value)
.Now, if your
logger
item is put somewhere in thesequence
following yourinline_script
, it should pick up all the responses and store them in the logfile.I hope this helped.
Eduard
Thanks to all, it now nicely works.
Hi Manuela
I would like to build an experiment similar to yours which records a rating on a scale. In my case a scale of communicative adequacy (1 unsuccessful, 7 very successful) and a scale of accentedness (1 no accent, 9 very strong accent). I've found this thread really useful, but I have not worked with canvases before and only have limited experience of using inline scripts, which was a while ago. I was therefore wondering whether you would be willing to share your full EPrime script with me so that I can see how the whole thing fits together and then modify the output, in my case speech samples, and the scale to fit my experiment. Any help that you can provide would of course be acknowledged in any publications or presentations.
Thanks
Zoe Handley, Department of Education, University of York