When I ran a trial loop with logging set for ‘all keys’ then the response.corr value was incorrectly 0/false for all trials , even when only a single key was pressed for each trial however if I changed the setting to log only the ‘last key’ then the response.corr is values are then accurate.
This seems to be independent of whether ‘discard previous’ is set.
I can’t think of why this should be so I thought I should flag it. Sorry haven’t got time to load up an MVP demo.
EDIT:
Version is 1.83.04 (we have stabilised on this version for this academic year)
Thanks for reporting this, I’ve created an issue on GitHub. Which version of PsychoPy are you using? By the way, I am not sure whether this might even be expected behavior, let’s wait for the Builder pros to reply.
Good point about what ‘expected behaviour’ might be. For me having non-blank values implies it’s a true report of accuracy in under some condition however I don’t think this is the case from my testing.
My first thoughts are that either reporting accuracy based on the first response or leaving the field blank might be preferable.
John
Yes, the issue here is what “correct” should be if you’re allowing participants to respond multiple times. It means you need to provide a correct sequence rather than a single key. I think the current solution will allow a set of keys to be tested (input as a list) but you have to get them all correct o be considered correct. So you might be able correct to be [“a”] and the subject will then be correct if they only press “a” but not if they press “a” as well as other keys.
The case of testing correct based on the first or last (or any) single key of a multi-key sequence seems like a bad idea because everyone will want the “other” option whichever one we use. The options/rules start getting many and complex and this should be done with a simple code component to test correctness yourself with any arbitrary rule.