class:: KeyState summary:: Respond to the state of a key related:: Classes/MouseButton, Classes/MouseX, Classes/MouseY categories:: UGens>User interaction Description:: Respond to the state of a key. note:: Note that this UGen does not prevent normal typing. It therefore may be helpful to select a GUI window rather than an SC document when using KeyState, as the latter will be altered by any keystrokes. :: classmethods:: method::kr argument::keycode The keycode value of the key to check. This corresponds to the keycode values passed into the keyDownActions of SCViews. See the example below. argument::minval The value to output when the key is not pressed. argument::maxval The value to output when the key is pressed. argument::lag A lag factor. instancemethods:: private:: signalRange Examples:: code:: s.boot; // execute the code below to find out a key's keycode // the char and keycode of any key you press will be printed in the post window ( w = Window.new("I catch keystrokes"); w.view.keyDownAction = { arg view, char, modifiers, unicode, keycode; [char, keycode].postln; }; w.front; ) // then execute this and then press the 'j' key ( w.front; // something safe to type on { SinOsc.ar(800, 0, KeyState.kr(38, 0, 0.1)) }.play; ) ::