Jog Wheel

AIと読む
全ドキュメントを1ファイルで(llms-full.txt)
midi_jog_wheel #I/O #ノード

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
Deltafloat
RingDeltafloat
Ratefloat
Positionfloat
Touchbool

スクリプトから設定可能なメンバー

パス
ticksPerRevint
smoothingfloat

Synapse Apps(スクリプティング)

await synapse.modules.create({ type: "midi_jog_wheel" })

このページへのリンク