KeyState

object KeyState extends ProductReader[KeyState]

A UGen that detects a specific keyboard stroke. When the given key is not pressed, the lo value is output, while the key is pressed the hi value is output. If lag is greater than zero, a Lag -type operation is applied for a smoother transition between lo and hi .

===Examples===

// determine codes
play {
 val code = Phasor.kr(lo = 0, hi = 127)
 val k    = KeyState.kr(code, lag = 0)
 val x    = Gate.kr(code, k)
 val ch   = x sig_!= Delay1.kr(x)
 // when a code change is detected, print it
 x.poll(ch, "code")
 ()
}
// gate sound using the 'A' key
play {
 // on Linux, key-code 38 denotes the 'A' key
 SinOsc.ar(800) * KeyState.kr(38, 0, 0.1)
}
See also
Companion
class
trait Product
trait Mirror
trait ProductReader[KeyState]
class Object
trait Matchable
class Any

Type members

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def kr(keyCode: GE, lo: GE, hi: GE, lag: GE): KeyState
Value Params
hi

value output when the currently pressed does match the code

keyCode

hardware code for the key to monitor. This is likely platform dependent. For example, on Linux, key-codes 24 to 29 correspond to 'Q', 'W', 'E', 'R', 'T', 'Y'.

lag

60 dB lag time in seconds.

lo

value output when the currently pressed does not match the code

def read(in: RefMapIn, key: String, arity: Int): KeyState