Jog Wheel
DJコントローラーのジョグホイールを受けるノードです。ジョグは普通のノブと違って「1メッセージ=回した量」を送ってくる相対入力なので、通常のMIDIアサインではなく、このノードのLearnボタンで割り当てます。開発では DDJ-400 で検証しています。
割り当て(Learn)
ノードに描かれたホイールの上に、実機の位置に対応した5つのボタンがあります。
| ボタン | 学習する信号 |
|---|---|
| 外周の ← | リング(外側)を左に回したとき |
| 外周の → | リング(外側)を右に回したとき |
| 内側の ← | プラッター(上面)を左に回したとき |
| 内側の → | プラッター(上面)を右に回したとき |
| Touch | 上面に触れたときのNote(タッチセンサー) |
手順は「ボタンを押す → その方向に1秒ほど回し続ける」だけです。最初の信号で番号を確定し、その後約0.8秒ぶんの値を集めて確定します。もう一度同じボタンを押すと学習をやめます(学習中は赤く表示されます。途中でやめても元の割り当ては変わりません)。Touchは触れた瞬間の1発で確定します。
- 信号の方式(Pioneer系の「64中心」か、Numark / Hercules系の「7bit二の補数」か)は集めた値から自動で判定します。回転方向が逆に出る機種でも、→/←どちらのボタンで学習したかから自動で反転します
- 学習した信号を送ってきたデバイス名も一緒に覚えます。以後は同じデバイスからの信号だけを受け付けます(別のコントローラーが同じ番号を送っても反応しません)
- 割り当て済みのボタンは枠が青くなり、ホイールの下に
P ch1 cc34 R ch1 cc33 T n54のように割り当てが表示されます
DDJ-400 は Vinyl ボタンの ON / OFF で上面のCC番号が変わります。 →を Vinyl ON、←を Vinyl OFF で学習すると両方の番号を拾えます。通常は Vinyl ON で両方を学習すれば十分です。
出力
回転量はすべて「周」の単位です。機種ごとの分解能(1周あたりの信号数)は Ticks/Rev でこのノードが吸収するので、下流のノードはコントローラーの違いを知らずに済みます。
| 出力 | 内容 |
|---|---|
| Delta | プラッター(上面)の符号付き回転量(周)。回っているフレームだけ流れ、止まった直後に0が一度だけ流れます |
| Ring Delta | リング(外側)の符号付き回転量(周)。同上 |
| Rate | プラッターの回転速度。1.0 が 33⅓rpm で回している速さです。Smoothing(秒、初期値0.05)で平滑化され、手を止めると0へ落ちます |
| Position | プラッターの累積回転数(1.0 = 1周) |
| Touch | 上面に触れているかどうか |
パラメータ
- Ticks/Rev(初期値720)— 1周あたりの信号数。DDJ-400 は720です
- Smoothing(初期値0.05)— Rate の平滑化の時定数(秒)。0で生の値
挙動の補足
- ホイールの絵は入力に合わせて回り、回っている方向側が青く光ります。タッチ中はプラッターが縁取られます
- コントローラーを抜いたり無効化したりすると、押しっぱなしになっていた Touch は解除されます
- 出力を再生に繋ぐには Layer Jog Wheel を使います。Delta / Ring Delta / Touch をそのまま挿してください
入力ポート
なし
出力ポート
| Port ID | 型 |
|---|---|
Delta | float |
RingDelta | float |
Rate | float |
Position | float |
Touch | bool |
スクリプトから設定可能なメンバー
| パス | 型 |
|---|---|
ticksPerRev | int |
smoothing | float |
Synapse Apps(スクリプティング)
await synapse.modules.create({ type: "midi_jog_wheel" })