Hi All,
I am presenting stimuli and asking people to give a keyboard response. The problem I am having is that KbWait(-1,2) is ignoring key presses: it will consistently ignore the first press but then will consistently notice the second key press I make (i.e., I need to press a key twice to get KbWait to recognize it). Oddly, this does not happen for the numeric keys (1!, 2@, etc.), it only happens for the alpha-numeric ones. Any ideas on how to fix this would be greatly appreciated. Code to reproduce the problem is below:
--------
[window, windowRect] = Screen('OpenWindow', 0,[],[]);
Screen('TextFont',window, 'Times New Roman');
Screen('TextSize', window, 18);
HideCursor(window);
centeredspotRect = CenterRect([0 0 0 0], windowRect);
Priority(1);
Screen('Preference', 'SkipSyncTests',1);
Screen('Preference','VisualDebugLevel',0);
Screen('Preference', 'SuppressAllWarnings', 1);
%KbName('UnifyKeyNames');
ykey = KbName('Y');
nkey = KbName('N');
key1 = '1!';
key2 = '2@';
key3 = '3#';
key4 = '4$';
key5 = '5%';
key6 = '6^';
key7 = '7&';
RestrictKeysForKbCheck([ykey nkey key1 key2 key3 key4 key5 key6 key7]);
DisableKeysForKbCheck(13);
black = BlackIndex(0);
Screen('DrawText', window, '+', centeredspotRect(1)-.01*centeredspotRect(1), centeredspotRect(2)-.24*centeredspotRect(2), black);
Screen('flip',window)
WaitSecs(1)
Screen('DrawText', window, 'Please Get Ready.', centeredspotRect(1)-.09*centeredspotRect(1), centeredspotRect(2)-.24*centeredspotRect(2), black);
Screen('flip',window)
WaitSecs(1)
Screen('DrawText', window, 'Cats', centeredspotRect(1)-.18*centeredspotRect(1), centeredspotRect(2)-.24*centeredspotRect(2), black);
Screen('DrawText', window, 'Dogs', centeredspotRect(1)-.18*centeredspotRect(1), centeredspotRect(2)-.10*centeredspotRect(2), black);
Screen('DrawText', window, 'Demons', centeredspotRect(1)-.18*centeredspotRect(1), centeredspotRect(2)+.04*centeredspotRect(2), black);
Screen('DrawText', window, 'Yes(Y) or No(N)?', centeredspotRect(1)-.04*centeredspotRect(1), centeredspotRect(2)+.18*centeredspotRect(2), black);
RestrictKeysForKbCheck([ykey nkey]);
[~,FlipTime] = Screen('flip',window);
KbWait(-1,2)
[~,First_Answer] = KbWait(-1,2);
First_Answer = find(First_Answer);
First_Answer_Fluency = GetSecs - FlipTime;
sca
------------
Thank you in advance for your help.
-Michael