Maxではコンピュータのキーボードの入力情報を受けて処理を行うこともできます。MIDIキーボードやMIDIコントローラーが無くても効果音を再生したり、プリセットを切り替えるなどが手元で行えます。
目次
キーボードの値を取得する
キーボードの値を取得するには[key]オブジェクトを使用します。アウトレットの左から順に
- アスキー値(UTF-8)
- プラットフォーム固有キー値
- 修飾キー値
- プラットフォーム独立キー値
の値が出力されます。2.と4.は環境によって値が変化しますので、使用しない方が無難です。
3.はALTキー、Shiftキーなどの修飾キーを押しながら他のキーを押した際に、修飾キーの値が出力されます。例えばShiftキーを押すと512が出力されます。
特定キーの入力を受ける
特定キーの入力が来た時に処理を実行したい場合は、[sel]オブジェクトを使用します。
[key]の第1アウトから値を確認し、[sel]のアーギュメントに該当する値を指定します。この場合は1,2,3,4キーを使用しています。[sel]に該当する値が来たら、該当するアウトレットからbangが出力されます。
キーを押している間だけ処理を行う
[key]オブジェクトは、キーを押した時に値が出力されます。キーを離した時の値を出力するオブジェクトは[keyup]です。
出力される値は[key]と同様です。
それではキーを押している間だけ処理を行う場合を考えてみましょう。例えばシーケンサーを動かすと想定して、スペース・キーでトグル・オブジェクトのオン・オフを制御します。
[key]から32の値が来たら1を出力し、[keyup]から32の値が来たら0を出力することで、トグル・オブジェクトを操作しています。
アスキー値から文字に変換
[itoa]は整数値を文字に変換するオブジェクトです。
アスキー値をリストで入力することで文字列を出力できます。
数値入力を受け付ける
[numkey]を使用することで、複数桁の数値を出力できます。
数字キーを連続して入力すると、第2アウトから出力される数値が桁を増やしていきます。Enterキーを押すことでその複数桁の数値を第1アウトから出力します。
[numkey 0.]にすることで浮動小数点を扱えるようになります。
修飾キーの入力を取得する
[key]では修飾キーを押した状態でキーを押したかどうかを確認できますが、単に修飾キーを押したかどうかを知りたい場合は[modifiers]を使用します。
[modifiers]はそのままでは何も出力されません。”interval ミリ秒”のメッセージを送ることで、その間隔でキー情報を取得します。また出力はアスキー値ではなく0,1になります。