From d89172d1369c4423dcd6b589154dca7c82d182a3 Mon Sep 17 00:00:00 2001 From: Ben Pettit Date: Sat, 29 Aug 2026 15:11:34 +1000 Subject: [PATCH 1/2] fix: keyList must be a list, not a bare string getKeys() filters with `key[0] in keyList`, so 'escape' matched a/c/e/p/s and silently aborted running experiments. 'space', not 'spacebar' -- the latter is not a psychopy key name and only worked as a substring. --- eegnb/experiments/Experiment.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eegnb/experiments/Experiment.py b/eegnb/experiments/Experiment.py index ba80d8e2..122b1c37 100644 --- a/eegnb/experiments/Experiment.py +++ b/eegnb/experiments/Experiment.py @@ -191,7 +191,7 @@ def show_instructions(self): def _user_input(self, input_type): if input_type == 'start': - key_input = 'spacebar' + key_input = ['space'] vr_inputs = [ ('RightTouch', 'A', True), ('LeftTouch', 'X', True), @@ -199,7 +199,7 @@ def _user_input(self, input_type): ] elif input_type == 'cancel': - key_input = 'escape' + key_input = ['escape'] vr_inputs = [ ('RightTouch', 'B', False), ('LeftTouch', 'Y', False), From 83da878a7825fe74f5cc008d61813e2766c08aa4 Mon Sep 17 00:00:00 2001 From: Ben Pettit Date: Sat, 29 Aug 2026 15:11:34 +1000 Subject: [PATCH 2/2] fix: same bare-string keyList in 20 waitKeys() gates Over-permissive continue prompts; identical substring bug to the previous commit. --- eegnb/experiments/auditory_oddball/aMMN.py | 2 +- .../auditory_oddball/auditory_erp_arrayin.py | 2 +- eegnb/experiments/auditory_ssaep/ssaep.py | 2 +- .../auditory_ssaep/ssaep_onefreq.py | 2 +- .../experiments/visual_codeprose/codeprose.py | 10 ++++----- eegnb/experiments/visual_cueing/cueing.py | 22 +++++++++---------- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eegnb/experiments/auditory_oddball/aMMN.py b/eegnb/experiments/auditory_oddball/aMMN.py index cf809c0a..c4a805ab 100644 --- a/eegnb/experiments/auditory_oddball/aMMN.py +++ b/eegnb/experiments/auditory_oddball/aMMN.py @@ -123,7 +123,7 @@ def show_instructions(duration): text = visual.TextStim(win=mywin, text=instruction_text, color=[-1, -1, -1]) text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True mywin.close() diff --git a/eegnb/experiments/auditory_oddball/auditory_erp_arrayin.py b/eegnb/experiments/auditory_oddball/auditory_erp_arrayin.py index e494accb..b0f3e6e3 100644 --- a/eegnb/experiments/auditory_oddball/auditory_erp_arrayin.py +++ b/eegnb/experiments/auditory_oddball/auditory_erp_arrayin.py @@ -183,7 +183,7 @@ def show_instructions(duration): text = visual.TextStim(win=mywin, text=instruction_text, color=[-1, -1, -1]) text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True mywin.close() diff --git a/eegnb/experiments/auditory_ssaep/ssaep.py b/eegnb/experiments/auditory_ssaep/ssaep.py index b2a422c2..1af7e831 100644 --- a/eegnb/experiments/auditory_ssaep/ssaep.py +++ b/eegnb/experiments/auditory_ssaep/ssaep.py @@ -165,7 +165,7 @@ def show_instructions(duration): text = visual.TextStim(win=mywin, text=instruction_text, color=[-1, -1, -1]) text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True mywin.close() diff --git a/eegnb/experiments/auditory_ssaep/ssaep_onefreq.py b/eegnb/experiments/auditory_ssaep/ssaep_onefreq.py index 813a86c2..2757a6fc 100644 --- a/eegnb/experiments/auditory_ssaep/ssaep_onefreq.py +++ b/eegnb/experiments/auditory_ssaep/ssaep_onefreq.py @@ -135,7 +135,7 @@ def show_instructions(duration): color=[-1, -1, -1]) text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True mywin.close() diff --git a/eegnb/experiments/visual_codeprose/codeprose.py b/eegnb/experiments/visual_codeprose/codeprose.py index ec849268..9dab0759 100644 --- a/eegnb/experiments/visual_codeprose/codeprose.py +++ b/eegnb/experiments/visual_codeprose/codeprose.py @@ -176,7 +176,7 @@ def fixate(window: visual.Window, text: Optional[str] = None): visual.GratingStim(win=window, size=0.2, sf=0).draw() window.flip() - event.waitKeys(keyList="space", maxWait=5) + event.waitKeys(keyList=["space"], maxWait=5) def goodbye(window): @@ -187,7 +187,7 @@ def goodbye(window): ) text.draw() window.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) def practice(window): @@ -198,7 +198,7 @@ def practice(window): text.draw() window.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) def instructions(window): @@ -211,7 +211,7 @@ def instructions(window): text.draw() window.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) text = visual.TextStim( win=window, @@ -221,4 +221,4 @@ def instructions(window): text.draw() window.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) diff --git a/eegnb/experiments/visual_cueing/cueing.py b/eegnb/experiments/visual_cueing/cueing.py index 5245352b..f77dc0f8 100644 --- a/eegnb/experiments/visual_cueing/cueing.py +++ b/eegnb/experiments/visual_cueing/cueing.py @@ -245,7 +245,7 @@ def present(duration, subject=0, session=0, **kwargs): ) text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True @@ -403,7 +403,7 @@ def practice(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True @@ -429,7 +429,7 @@ def instructions(): ) text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -445,7 +445,7 @@ def instructions(): fixation.draw() text.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -457,7 +457,7 @@ def instructions(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -471,7 +471,7 @@ def instructions(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -485,7 +485,7 @@ def instructions(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -503,7 +503,7 @@ def instructions(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -521,7 +521,7 @@ def instructions(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -539,7 +539,7 @@ def instructions(): text.draw() fixation.draw() mywin.flip() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) # Instructions text = visual.TextStim( @@ -555,7 +555,7 @@ def instructions(): sys.stdout.write("\a") sys.stdout.flush() - event.waitKeys(keyList="space") + event.waitKeys(keyList=["space"]) mywin.mouseVisible = True