マウス
マウスの横方向の移動をパンに、縦方向の移動を音高に対応させて、音を鳴らすプログラム。左右のクリックで楽器を変更することもできる。
Hid hi; HidMsg msg; if ( !hi.openMouse(0) ) me.exit(); Shakers s => JCRev r => Pan2 p => dac; 800 => s.freq => float freq; s.preset() => int pst; .1 => r.mix; p.pan() => float pan; while(hi => now) { while(hi.recv(msg)) { // X軸の変化量はパンに使う msg.deltaX / 500.0 +=> pan; Math.min(Math.max(-1.0, pan), 1.0) => pan; pan => p.pan; // Y軸の変化量は音高に使う msg.deltaY * 10 -=> freq; Math.min(Math.max(50, freq), 10000) => freq; freq => s.freq; // 左右のクリックで楽器を変更する if (msg.isButtonUp()) { s.preset() + (msg.which ? -1 : 1) => pst; if (pst < 0) 22 => pst; if (pst > 22) 0 => pst; <<<"changed preset to", pst => s.preset>>>; } s.noteOn(1); } }
クリックされたボタンはパラメータwhichの値で区別できる。
- 左ボタン:0
- 右ボタン:1
- 中央ボタン:2
マウスの座標を得るためのパラメータはないっぽい。
以前にも一度使ったShakersは、マラカスやタンバリンなど23種類の楽器・環境音をシミュレートするユニットジェネレータ。楽器の種類はパラメータpresetで読み書きする。