【Max 8】コンピュータのキーボードを使う

記事をシェアする:

Maxではコンピュータのキーボードの入力情報を受けて処理を行うこともできます。MIDIキーボードやMIDIコントローラーが無くても効果音を再生したり、プリセットを切り替えるなどが手元で行えます。

キーボードの値を取得する

筆者の環境でスペースキーを押した場合

キーボードの値を取得するには[key]オブジェクトを使用します。アウトレットの左から順に

  1. アスキー値(UTF-8)
  2. プラットフォーム固有キー値
  3. 修飾キー値
  4. プラットフォーム独立キー値

の値が出力されます。2.と4.は環境によって値が変化しますので、使用しない方が無難です。

3.はALTキー、Shiftキーなどの修飾キーを押しながら他のキーを押した際に、修飾キーの値が出力されます。例えばShiftキーを押すと512が出力されます。

特定キーの入力を受ける

特定キーの入力が来た時に処理を実行したい場合は、[sel]オブジェクトを使用します。

49: 1キー
50: 2キー
51: 3キー
52: 4キー

[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になります。

記事をシェアする: