KbDemo
>Psychtoolbox>PsychDemos
% KbDemo
 Shows how to detect when the user has pressed a key.
 See KbCheck, KbName, KbWait, GetChar, CharAvail.
The KbXXX functions are low-level and go after the state of the keyboard.
 The GetChar/CharAvail interface pulls characters out of the event queue.
 The advantage of the KbXXX functions is that if you can sit and wait on
 characters in a tight loop, you’ll get less of a lag.  But if the key
 goes up and down in between when your code checks the keyboard state, you’ll
 miss it.
The advantage of GetChar/CharAvail is that they may be used
 asychronously - the OS will pick up the character whether your code
 is looking for it when it comes.
This demo works fine the with Keyspan Digital Media Remote:
 http://www.keyspan.com/products/usb/remote/
 However, the Digital Media Remote is sluggish (max alternating key rate of 2 Hz),  
 suggesting that it may not be well suited for measuring reaction time.
Normally, characters typed creep through and appear in the command window or
 file being edited, depending on which has focus. You can prevent Matlab
 from receiving typed characters by calling ListenChar(2); at the
 beginning of you script and calling ListenChar(0); at the end of your
 script. Caution: Make sure to always call ListenChar(0) at normal exit and in all
 error handling routines, otherwise Matlab will be left with a dead
 keyboard and you’ll be unable to type any commands into the Matlab
 window! Pressing CTRL+C will reenable the keyboard in such a case.
Psychtoolbox/PsychDemos/KbDemo.m