OSC 입출력
OSC는 스마트폰의 컨트롤러 앱이나 TouchDesigner 같은 외부 소프트웨어에서 SynapseRack을 조작하기 위한 구조입니다. 반대로 SynapseRack에서 밖으로 값을 보낼 수도 있습니다.
방법은 2가지가 있습니다.
| 방법 | 어울리는 상황 |
|---|---|
| 화면의 UI에 직접 할당하기 | 레이어의 Opacity나 재생 버튼 등, 이미 있는 UI를 그대로 외부에서 움직이고 싶다 |
| OSC 노드를 놓기 | 받은 값을 노드로 가공하고 싶다/SynapseRack에서 값을 내보내고 싶다 |
먼저 활성화하기
메뉴 바의 Setting → GlobalSettings → OSC 입니다.
| 항목 | 내용 | 초깃값 |
|---|---|---|
| OSC Input | 수신의 ON/OFF | OFF |
| Input Port | 수신 포트 | 3170 |
| OSC Output | 송신의 ON/OFF | OFF |
| (라벨이 없는 드롭다운) | Localhost / Custom 의 전환 | Localhost |
| Output Address | 송신 대상 주소(Custom 일 때만 표시) | 127.0.0.1 |
| Output Port | 송신 포트 | 3171 |
입출력은 어느 쪽도 초기 상태에서는 OFF입니다. ‘보내고 있는데 아무 일도 일어나지 않는다’라고 할 때는, 먼저 OSC Input 이 ON으로 되어 있는지 확인해 주세요.
송신 측 앱에는 SynapseRack을 실행하고 있는 머신의 IP 주소와 Input Port 의 값을 입력합니다.
Localhost로 되돌려도, 입력한 송신 대상 주소는 남습니다. 숨겨지는 것은 입력란뿐입니다. 로컬로 다시 보내고 싶을 때는Custom인 채로127.0.0.1을 다시 입력해 주세요.
이 설정은 프로젝트가 아니라 머신 쪽에 저장됩니다(설정 화면 아래에도
Saved on this machine, not in the project file 이라고 나옵니다).
공연장마다 네트워크가 바뀌어도, .synapse 를 들고 다니면 설정은 그 머신의 것이 사용됩니다.
도달하고 있는지 확인하기
OSC Monitor에 수신한 메시지가 그대로 나열됩니다. 주소도 타입도 여기서 확인할 수 있으므로, 잘 동작하지 않을 때는 가장 먼저 여기를 봐 주세요.
화면의 UI에 할당하기
MIDI와 같은 어사인 모드 안에서 할당합니다.
- OSC Input 을 ON으로 하고, 송신 측에서 실제로 신호를 보내 둡니다
- 메뉴 바의 Setting → MidiMapping 으로 어사인 모드에 들어갑니다
- 할당하고 싶은 UI를 클릭해서 빨간색으로 만듭니다
- MIDI Inspector의
OSC sources (click to assign):에 수신한 주소가 나열됩니다 - 그 행을 클릭하면 할당됩니다

행의 서식은 주소 [인수 번호] (현재 값) 입니다.
하나의 메시지에 값이 여러 개 들어 있는 경우에는, 값마다 별개의 행으로 나열됩니다.
아직 아무것도 수신하지 않았을 때는 Move an OSC control to detect its address... 라고 나옵니다.
송신 측의 페이더를 움직이면 그 주소가 나온다, 라는 식으로 찾습니다.
OSC는 ‘움직이면 자동으로 할당’이 되지 않습니다. MIDI는 노브를 움직인 순간에 연결되지만, OSC는 항상 대량의 신호가 흐를 수 있기 때문에, 목록에서 고르는 방식으로 되어 있습니다.
목록은 선택을 바꿀 때마다 리셋됩니다. 다른 UI를 클릭하거나, 어사인 모드를 드나들면 비워집니다. 원하는 주소가 사라졌다면, 송신 측을 한 번 더 움직이면 나옵니다.
목록에 나오는 것은 수치로 읽을 수 있는 인수뿐입니다. 소수·정수·불리언 값은 주워 가지만, 문자열이나 바이너리 인수는 후보가 되지 않습니다. 쌓이는 후보는 최대 64건까지입니다.
할당을 지울 때는 Mappings: 행의 오른쪽 끝에 있는 × 입니다.
자세한 내용은 MIDI 매핑을 참조해 주세요.
값이 적용되는 방식
보내진 값은 그대로 UI로 전달됩니다. 0〜1로 보내면 슬라이더가 그대로 움직이고, 버튼·토글 계열은 0.5 를 아래에서 위로 넘어선 순간에 1회 발화합니다.
OSC 노드로 배선하기
Node Editor의 I/O 카테고리에, 입력·출력 각각 3종류씩 준비되어 있습니다.
| 노드 | 역할 |
|---|---|
| OSCFloatInput | 받은 소수를 출력합니다 |
| OSCIntInput | 받은 정수를 출력합니다 |
| OSCBoolInput | 받은 불리언 값을 출력합니다 |
| OSCFloatOutput | 소수를 보냅니다 |
| OSCIntOutput | 정수를 보냅니다 |
| OSCBoolOutput | 불리언 값을 보냅니다 |
어느 노드에나 주소를 적어 넣는 입력란이 있습니다. 입력 측은 주소가 완전히 일치한 메시지의 첫 번째 값을 읽고, 출력 측은 입력된 값이 바뀌었을 때(및 Trigger가 왔을 때) 송신합니다.
타입이 맞지 않는 메시지는 무시되므로, 소수를 보내고 있다고 생각했는데
정수가 도착하고 있다, 라고 할 때는 OSC Monitor의 type: 을 확인해 주세요.
각 노드의 자세한 사양은 노드 레퍼런스를 참조해 주세요.
관련
- OSC Monitor — 수신한 메시지를 확인합니다
- MIDI 매핑 — 어사인 모드의 자세한 설명
- Widget Panel — 직접 배치한 조작 화면에 OSC를 할당합니다





