OSC 입출력

AI와 함께 읽기
전체 문서 한 파일로 (llms-full.txt)

OSC는 스마트폰의 컨트롤러 앱이나 TouchDesigner 같은 외부 소프트웨어에서 SynapseRack을 조작하기 위한 구조입니다. 반대로 SynapseRack에서 밖으로 값을 보낼 수도 있습니다.

방법은 2가지가 있습니다.

방법어울리는 상황
화면의 UI에 직접 할당하기레이어의 Opacity나 재생 버튼 등, 이미 있는 UI를 그대로 외부에서 움직이고 싶다
OSC 노드를 놓기받은 값을 노드로 가공하고 싶다/SynapseRack에서 값을 내보내고 싶다

먼저 활성화하기

메뉴 바의 Setting → GlobalSettings → OSC 입니다.

항목내용초깃값
OSC Input수신의 ON/OFFOFF
Input Port수신 포트3170
OSC Output송신의 ON/OFFOFF
(라벨이 없는 드롭다운)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와 같은 어사인 모드 안에서 할당합니다.

  1. OSC Input 을 ON으로 하고, 송신 측에서 실제로 신호를 보내 둡니다
  2. 메뉴 바의 Setting → MidiMapping 으로 어사인 모드에 들어갑니다
  3. 할당하고 싶은 UI를 클릭해서 빨간색으로 만듭니다
  4. MIDI Inspector의 OSC sources (click to assign): 에 수신한 주소가 나열됩니다
  5. 그 행을 클릭하면 할당됩니다

OSC sources 항목이 있는 MIDI Inspector

행의 서식은 주소 [인수 번호] (현재 값) 입니다. 하나의 메시지에 값이 여러 개 들어 있는 경우에는, 값마다 별개의 행으로 나열됩니다.

아직 아무것도 수신하지 않았을 때는 Move an OSC control to detect its address... 라고 나옵니다. 송신 측의 페이더를 움직이면 그 주소가 나온다, 라는 식으로 찾습니다.

OSC는 ‘움직이면 자동으로 할당’이 되지 않습니다. MIDI는 노브를 움직인 순간에 연결되지만, OSC는 항상 대량의 신호가 흐를 수 있기 때문에, 목록에서 고르는 방식으로 되어 있습니다.

목록은 선택을 바꿀 때마다 리셋됩니다. 다른 UI를 클릭하거나, 어사인 모드를 드나들면 비워집니다. 원하는 주소가 사라졌다면, 송신 측을 한 번 더 움직이면 나옵니다.

목록에 나오는 것은 수치로 읽을 수 있는 인수뿐입니다. 소수·정수·불리언 값은 주워 가지만, 문자열이나 바이너리 인수는 후보가 되지 않습니다. 쌓이는 후보는 최대 64건까지입니다.

할당을 지울 때는 Mappings: 행의 오른쪽 끝에 있는 × 입니다. 자세한 내용은 MIDI 매핑을 참조해 주세요.

값이 적용되는 방식

보내진 값은 그대로 UI로 전달됩니다. 0〜1로 보내면 슬라이더가 그대로 움직이고, 버튼·토글 계열은 0.5 를 아래에서 위로 넘어선 순간에 1회 발화합니다.

OSC 노드로 배선하기

Node EditorI/O 카테고리에, 입력·출력 각각 3종류씩 준비되어 있습니다.

노드역할
OSCFloatInput받은 소수를 출력합니다
OSCIntInput받은 정수를 출력합니다
OSCBoolInput받은 불리언 값을 출력합니다
OSCFloatOutput소수를 보냅니다
OSCIntOutput정수를 보냅니다
OSCBoolOutput불리언 값을 보냅니다

어느 노드에나 주소를 적어 넣는 입력란이 있습니다. 입력 측은 주소가 완전히 일치한 메시지의 첫 번째 값을 읽고, 출력 측은 입력된 값이 바뀌었을 때(및 Trigger가 왔을 때) 송신합니다.

타입이 맞지 않는 메시지는 무시되므로, 소수를 보내고 있다고 생각했는데 정수가 도착하고 있다, 라고 할 때는 OSC Monitortype: 을 확인해 주세요.

각 노드의 자세한 사양은 노드 레퍼런스를 참조해 주세요.

관련

  • OSC Monitor — 수신한 메시지를 확인합니다
  • MIDI 매핑 — 어사인 모드의 자세한 설명
  • Widget Panel — 직접 배치한 조작 화면에 OSC를 할당합니다

이 페이지로 연결된 페이지

같은 페이지를 참조하는 페이지