lea
New Member
Posts: 16
|
Post by lea on Oct 16, 2020 13:20:34 GMT
Hello!
I selected that my participants have 10 seconds to listen to my audio stimuli and rate it on a scale. If they're too slow, Psytoolkit simply chooses the same answer that they clicked before. Can I change that? For example, can I then show a bitmap or text "please answer faster" and instead of selecting the previous answer again, select nothing or a number that's not in my 7 point scale (a 99 for example)? I can't seem to find an article about this.
Also, my sentences in the stimuli are around 3 seconds long each. If someone clicks on the rating scale before the sentence is done, the next one starts playing while the old one is still finishing so that there is an overlap. Can I somehow change this so that the stimulus stops as soon as an answer is selected?
Thanks a lot!
|
|
|
Post by alexandra (AEC) on Oct 16, 2020 15:31:49 GMT
Hi there,
it might be helpful to show a part of your code that is about the presentation of the audio and the required rating afterwards. Then we might be able to provide ideas on how to change in order to avoid the mentioned problems.
|
|
lea
New Member
Posts: 16
|
Post by lea on Oct 16, 2020 15:41:47 GMT
Oh, sure!
So, that basically is one of the tasks that needs changing:
task rating_weiblich1 table my_sounds_weiblich1 show bitmap fixpoint 0 -100 #1 delay 500 clear 1 show bitmap @1 0 -100 #2 bitmap ratefem, taken from table (from random table line) sound @2 show bitmap wfem -300 200 #4 show bitmap sfem 300 200 #5 show bitmap empty -150 200 #6 emtpy circles that can be clicked show bitmap empty -100 200 #7 show bitmap empty -50 200 #8 show bitmap empty 0 200 #9 show bitmap empty 50 200 #10 show bitmap empty 100 200 #11 show bitmap empty 150 200 #12 show bitmap nn1 -150 250 show bitmap nn2 -100 250 show bitmap nn3 -50 250 show bitmap nn4 0 250 show bitmap nn5 50 250 show bitmap nn6 100 250 show bitmap nn7 150 250 readmouse l 1 10000 range 5 11 # wait for left mouse click for 10sec set $b bitmap-under-mouse MOUSE_X MOUSE_Y # which bitmap was clicked? set $score expression $b - 4 # determine scale score ## now draw filled stimulus on the selected bitmap set $p expression ( $score - 1 ) * 50 - 150 # determine X position of clicked bitmap show bitmap crossed $p 200 delay 300 clear screen delay 300 save BLOCKORDER BLOCKNAME TASKNAME $score RT @3
(bitmaps nn1 to nn7 are bitmaps of numbers that are shown under the circles of my rating scale so people also have a numerical anchor)
I hope this code is somewhat understandable. It does work, at least (except for the two mentioned problems)
|
|
|
Post by PsyToolkit on Oct 17, 2020 8:39:35 GMT
This does it, it is for images, but you can also modify it for audio:
|
|
lea
New Member
Posts: 16
|
Post by lea on Oct 17, 2020 9:47:54 GMT
Thank you for the link! I ran the demo of the task but when I waited for longer than 10 seconds to click, it simply went to the next question without a "please decide faster" message. One can also not see where on the scale they clicked (in my code based on the rating dogs experiment of yours they can, I thought that was a really great option!). Is it possible to show such a message only when participants aren't fast enough or is this currently not an available option? Then I'll just tell my supervisor it's not possible. Also, I haven't quite figured out yet how to make the audio stop if someone clicks before the sentence is spoken completely. I'm sorry for all my questions, I'm new to this whole coding thing and not really experienced. Sadly, my supervisor has also never worked with Psytoolkit before.
|
|
|
Post by PsyToolkit on Oct 17, 2020 12:10:25 GMT
Yes, you need to code around something that works for you.
If you want the participant to be able to change the choice, for example, that is a bit more complex and that does not work. In a future version I will add some features to do this, but doing Likert scales within "experiments" is not commonly done in the first place. I am not sure why you do not simply do this in a PsyToolkit survey, which is much easier?
Of course, you can also do it as you suggested in earlier post.
|
|
lea
New Member
Posts: 16
|
Post by lea on Oct 19, 2020 8:11:51 GMT
We decided to use an experiment because we also need the reaction time and have various forms of randomization. In surveys, there's the possibility of "if $variable == 1 then goto", is it possible to have something like this in experiments, too? I tried it to make sure (if $readmouse > 10000 then show bitmap tooslow) but it didn't work, of course. I feel like I'm probably missing the forest through the trees but I'm completely stumped right now.
|
|
|
Post by alexandra (AEC) on Oct 19, 2020 11:41:21 GMT
Hi there, just some thoughts in regards to your last post. When you call readmouse or readkey a STATUS is saved accordingly. If nothing is pressed than the STATUS becomes a TIMEOUT or in numbers a 3 (1 = correct, 2 = wrong). Consequently, you could try
if STATUS == 3 # or STATUS == TIMEOUT show bitmap ...
I have done ratings in experiment code before by using that many bitmaps as I wanted rating options. It is less variable as the range option in the survey code, but if you only want a certain number like in a Likert scale than it should not be a problem to show for example 7 points (bitmaps) on the screen and readmouse l 1 10000 range [first point bitmap number] [last point bitmap number].
|
|
lea
New Member
Posts: 16
|
Post by lea on Oct 21, 2020 10:59:48 GMT
Hello Alexandra!
To me, this makes a lot of sense. Sadly, if I try it, PTK shows following error:
ERROR: ifline_number_of_arguments in line: 60 >>> if STATUS == 3 show bitmap schneller Problem: The number of parameters in the "if" statement is wrong.
Correct examples:
if STATUS == CORRECT
if $x == 10 && $y == 12 && $z != 8
TIP: Make sure that the elements are all seperated by spaces. Below a wrong example of this:
Correct: if $x == 10 Correct: if STATUS == CORRECT Incorrect: if $x==10 Incorrect: if STATUS ==CORRECT
The same error is shown if I change it to "if STATUS == TIMEOUT" or "if STATUS != CORRECT". My experiment works the way I want it to (the scale in the experiment works just fine), the only thing my instructor wants that's missing now is this timeout message if they're too slow with clicking the Likert scale bitmaps. Thank all of you for your help so far!
|
|
|
Post by alexandra (AEC) on Oct 22, 2020 10:21:16 GMT
Have you put the "show bitmap schneller" below the if statement and indented the show-function by one space in your code? Have you ended your statement with fi below the show-function (or after other parts belonging to showing the bitmap, e.g. delay 500)? Similar to here.
|
|
lea
New Member
Posts: 16
|
Post by lea on Oct 22, 2020 13:35:17 GMT
Thank you so much Alexandra! It finally worked!! Really, thank you so much, I never would have thought of that on my own!
|
|