Jog Wheel
DJ 컨트롤러의 조그 휠을 받는 노드입니다. 조그는 일반 노브와 달리 ‘1메시지 = 돌린 양’을 보내는 상대 입력이므로, 통상적인 MIDI 어사인이 아니라 이 노드의 Learn 버튼으로 할당합니다. 개발은 DDJ-400으로 검증하고 있습니다.
할당(Learn)
노드에 그려진 휠 위에, 실기의 위치에 대응하는 5개의 버튼이 있습니다.
| 버튼 | 학습하는 신호 |
|---|---|
| 바깥쪽의 ← | 링(외측)을 왼쪽으로 돌렸을 때 |
| 바깥쪽의 → | 링(외측)을 오른쪽으로 돌렸을 때 |
| 안쪽의 ← | 플래터(윗면)를 왼쪽으로 돌렸을 때 |
| 안쪽의 → | 플래터(윗면)를 오른쪽으로 돌렸을 때 |
| Touch | 윗면을 만졌을 때의 Note(터치 센서) |
절차는 ‘버튼을 누른다 → 그 방향으로 1초 정도 계속 돌린다’뿐입니다. 첫 신호로 번호를 확정하고, 그 후 약 0.8초분의 값을 모아 확정합니다. 같은 버튼을 다시 누르면 학습을 중지합니다(학습 중에는 빨갛게 표시됩니다. 도중에 그만둬도 기존 할당은 바뀌지 않습니다). Touch는 만진 순간의 1회 발화로 확정됩니다.
- 신호 방식(Pioneer 계열의 ‘64 센터’인지, Numark / Hercules 계열의 ‘7bit 2의 보수’인지)은 모은 값으로부터 자동으로 판정합니다. 회전 방향이 반대로 나오는 기종이라도, →/← 어느 버튼으로 학습했는지에 따라 자동으로 반전됩니다
- 학습한 신호를 보낸 디바이스명도 함께 기억합니다. 이후로는 같은 디바이스로부터의 신호만 받아들입니다(다른 컨트롤러가 같은 번호를 보내도 반응하지 않습니다)
- 할당이 끝난 버튼은 테두리가 파랗게 되고, 휠 아래에
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" })