Widget Panel

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

노드의 파라미터를, 자신이 배치하고 싶은 형태·색·크기로 다시 배열하기 위한 창입니다. 노드 쪽이 준비한 UI를 배열하는 것이 아니라, 배치한 위젯에서 노드의 파라미터를 가리키러 가는 구조로 되어 있기 때문에, 같은 파라미터를 페이더로 만들어도 버튼으로 만들어도 되고, ON/OFF의 색도 위젯마다 정할 수 있습니다. 패널은 몇 개든 열 수 있습니다.

여는 방법

메뉴 바의 Create → WidgetPanel.

빈 패널에는 ‘우클릭으로 위젯을 추가’라는 워터마크가 표시됩니다. 타이틀 바를 더블 클릭하면 패널에 이름을 붙일 수 있습니다(이름도 저장됩니다).

위젯 추가하기

패널의 빈 공간을 우클릭하면 위젯 팔레트가 나옵니다. 카테고리(Value / Choice / Display / Layout)에 마우스를 올리면 오른쪽에 목록이 열립니다. 선택한 위젯은 우클릭한 위치에 배치됩니다(그리드에 스냅되며, 밖으로 벗어나는 경우에는 패널 안에 들어오는 위치로 당겨집니다).

같은 메뉴의 아래쪽에는 다음 두 가지가 있습니다.

항목동작
Browse all…전체 위젯 목록을 다이얼로그로 표시합니다. From Node... 에서 노드 → 파라미터 순으로 따라가 이미 바인드된 위젯을 직접 만들 수도 있습니다
Freeze Layout레이아웃을 동결해 연주 상태로 만듭니다(후술)

막 배치한 위젯은 ‘Unbound’라고 표시됩니다. 형태만 먼저 배열해 두고 나중에 파라미터를 할당하는 방식으로 진행해도 됩니다.

이동·리사이즈·삭제

Freeze하지 않은 동안에는 각 위젯에 편집용 프레임이 표시됩니다.

  • 상단의 바를 드래그 → 이동
  • 오른쪽 아래의 사각형을 드래그 → 리사이즈
  • 위젯을 우클릭 → 메뉴(Assign / Appearance… / Duplicate / Delete / Freeze Layout)

이동·리사이즈는 둘 다 20px 그리드에 스냅됩니다.

위젯의 종류

팔레트에 나열되는 것은 다음 18종입니다. 괄호 안은 꽂을 수 있는 파라미터의 타입입니다(메뉴 오른쪽에 작게 표시됩니다).

Value(값을 만든다)

위젯타입동작
FaderFloat / Int세로·가로는 위젯의 종횡비로 자동 전환(높이 ≧ 너비이면 세로). 누른 위치로 값이 점프합니다
KnobFloat / Int세로 드래그로 상대 조정(위로 갈수록 증가). 누른 위치로 점프하지는 않습니다
NumberFloat / Int가로 드래그로 스크럽, 움직이지 않고 떼면 직접 입력. 레인지가 없는 경우에는 상한 없음
XY PadFloat / Int ×2주 바인드가 X축, Assign Y… 로 Y축. 위쪽이 Max
CrossfaderFloat / Int ×2위치에 대해 Left와 Right에 반대 방향의 값을 씁니다
ToggleBool / Float / Int / Color / Options누를 때마다 전환
ButtonTrigger / Bool / Float / Int / Color / Options누르면 발화 / 값을 세트
Color PickerColor여는 조작 없이 그대로 조작할 수 있는 인라인 피커

Choice(선택지)

위젯타입동작
DropdownOptions누르면 리스트가 열립니다. 선택지는 열리는 순간에 취득하므로, 레이어의 증감이나 NDI 소스의 등장에 자연스럽게 따라갑니다
Button GridOptions선택지 1개당 버튼 1개. 현재 선택되어 있는 버튼이 ON 색으로 점등합니다

Display(보기만 한다)

위젯타입동작
LabelText문자를 표시할 뿐(항상 표시 전용)
Text InputTextEnter 또는 포커스를 벗어나면 확정, Esc로 되돌립니다. 읽기 전용 파라미터에 꽂은 경우에는 표시만 됩니다
MeterFloat / Int레벨 미터. 피크는 0.8초 유지한 뒤 떨어집니다
PreviewTexture약 30fps로 갱신되는 영상 모니터

Layout(장식·바인드를 갖지 않는다)

위젯동작
Header섹션 제목. 문자색은 Appearance의 On 색
Divider구분선. 종횡비로 세로선 / 가로선이 자동으로 전환됩니다
Frame그룹용 프레임. 내부는 그대로 통과하므로, 프레임 위에 겹친 위젯은 정상적으로 조작할 수 있습니다

Node View

노드의 컨트롤 UI를 그대로 패널에 삽입합니다. 위젯으로 표현하기 어려운 복잡한 UI(스텝 시퀀서 등)를 가까이에 두고 싶을 때의 도피로입니다.

Node View는 1노드당 1개뿐입니다. 추가·복제·붙여넣기 어느 입구에서도, 이미 같은 노드의 뷰가 있는 경우에는 거부됩니다(다른 패널에 있는 경우도 포함). 위젯의 UI는 노드 쪽이 가지고 있으므로, Node View에는 Appearance… 가 나오지 않습니다.

파라미터를 할당한다(Assign)

주된 순서는 다음 3단계입니다.

  1. 패널의 빈 공간을 우클릭해서, 원하는 형태의 위젯을 배치한다
  2. 그 위젯을 우클릭해서 Assign… 을 선택한다
  3. Node Editor 위에서 분홍색으로 하이라이트된 실제 파라미터를 클릭한다

할당 중에는 화면 상단에 Assigning ...: click a highlighted parameter (Esc / right-click to cancel) 라고 표시됩니다. Esc 또는 우클릭으로 중지할 수 있습니다.

하이라이트되는 것은 배치한 형태에 꽂을 수 있는 타입의 파라미터뿐입니다. 포트 행을 갖지 않는 파라미터(노드 위의 드롭다운 등)는 노드 본체가 하이라이트되고, 그 노드에 후보가 여러 개 있는 경우에는 클릭 후에 파라미터 이름의 메뉴가 나옵니다.

바인드되지 않은 위젯은, 편집 바의 Not assigned’ 문자를 클릭해도 같은 할당이 시작됩니다.

축이 2개인 위젯

XY Pad와 Crossfader는 우클릭 메뉴에 2개 항목이 나옵니다.

위젯메뉴
XY PadAssign X… / Assign Y…
CrossfaderAssign Left… / Assign Right…

둘 다 한쪽만으로도 동작합니다(XY Pad는 X 단독 패드, Crossfader는 Left를 반대 방향으로 움직이는 페이더가 됩니다).

배치한 형태는, 꽂은 타입에 맞춰 바뀝니다

Toggle과 Button은 ‘꽂은 대상의 타입’으로 내용이 결정됩니다.

배치한 형태TriggerBoolFloat / IntColorOptions
ToggleToggle값 토글(On값⇄Off값)색 토글(On색⇄Off색)Button Grid
ButtonButtonToggle값 버튼(누르면 On값을 세트)색 버튼(누르면 On색을 세트)Button Grid

Button을 Bool에 꽂으면, Momentary가 기본으로 ON이 됩니다. ‘누르고 있는 동안만 true’가 버튼의 직관이기 때문입니다. Toggle에서 꽂은 경우에는 종전대로 번갈아 토글되는 상태 그대로입니다. 둘 다 Appearance… 에서 언제든지 바꿀 수 있습니다.

값 버튼 / 값 토글은, 현재 값이 설정값과 일치하면 점등합니다(어떤 값이 선택되어 있는지 한눈에 알 수 있습니다). 색 버튼의 경우에는 버튼의 배경색이 그대로 ‘보내는 색’이 되고, 일치할 때는 흰 테두리로 표시됩니다.

바인드의 확인·교체

메뉴동작
Reveal SourceNode Editor를 해당 노드까지 이동해 선택하고, 대상 파라미터를 약 1.2초 하이라이트합니다
Clear Assignment할당을 해제합니다(레이아웃과 외형 설정은 남습니다)
Appearance… → BindingBind... / Change... 로 다이얼로그에서 선택, Unbind 로 해제

편집 중인 위젯의 상단 바에는 노드명 / 파라미터명 이 표시됩니다. 마우스를 올리면 내부 주소도 확인할 수 있습니다.

외형과 동작을 바꾼다(Appearance…)

위젯을 우클릭 → Appearance…. 변경은 즉시 반영됩니다.

항목내용
Label표시명. 비우면 파라미터명으로 돌아갑니다
ColorsOn / Off의 두 가지 색. 탭으로 전환해서 편집합니다
Font Size0〜48. 0이면 자동
Display Only표시 전용으로 만듭니다(Freeze 중에도 포인터를 받아들이지 않습니다)
Momentary누르고 있는 동안만 On(XY Pad에서는 ‘Spring Return’ = 떼면 중앙으로 돌아감)
Values값 버튼 / 값 토글의 On Value / Off Value
RangeFader / Knob / Meter / Number의 Min/Max 덮어쓰기
Visible OptionsDropdown / Button Grid에 표시할 선택지를 좁힙니다

Range를 공란으로 두면, 파라미터 쪽의 기본 레인지가 사용됩니다. 기본 레인지를 갖지 않는 파라미터에서는 0〜1(Number는 무제한)로 취급됩니다. Min > Max는 그대로 반전 페이더가 됩니다(에러가 아니라, 위아래가 반대인 페이더로 동작합니다).

Momentary가 나오는 위젯은 한정되어 있습니다. 값 버튼은 항상, Toggle은 Bool에 꽂혀 있을 때만, XY Pad는 Spring Return으로 나옵니다. 그 외의 위젯에는 항목 자체가 나타나지 않습니다.

Visible Options는 전부 OFF로 할 수 없습니다. 마지막 1개는 지울 수 없는 사양입니다. 반대로 전부 ON으로 하면 ‘좁히기 없음’으로 정규화되므로, 나중에 레이어 등이 늘어났을 때 새로운 선택지가 자동으로 표시됩니다.

Freeze(레이아웃을 동결해 연주한다)

패널에는 2가지 상태가 있습니다. 전환은 빈 공간 또는 위젯의 우클릭 메뉴에 있는 Freeze Layout / Unfreeze Layout 입니다.

비Freeze(편집)Freeze(연주)
그리드표시비표시
이동 바·리사이즈·바인드 대상명표시비표시
추가·복제·삭제가능불가능(메뉴가 회색 처리)
페이더나 버튼의 조작불가능가능

값을 조작하고 싶을 때는 Freeze해 주세요. 배치 작업 중의 오조작을 방지하기 위해, 비Freeze 중에는 위젯의 값 조작 자체가 무효화되어 있습니다. ‘조작하고 있는데 움직이지 않는다’고 할 때는 대개 Freeze를 잊은 것입니다.

Freeze 중에는 창 크기에 맞춰 전체가 확대·축소됩니다. Freeze에 들어간 순간의 패널 크기를 기준으로, 종횡비를 유지한 채 스케일합니다 (본 공연에서 창을 넓히면 손 아래의 위젯도 커집니다). Unfreeze하면 반드시 1:1로 돌아가고, 좌표 자체는 변하지 않습니다.

Assign…Appearance… 는 Freeze 중에도 사용할 수 있습니다. 동결되는 것은 레이아웃 조작뿐입니다.

키보드 조작

포인터가 패널 위에 있고, 또한 Freeze하지 않았을 때만 작동합니다.

동작
Ctrl/Cmd + C / V선택 중인 위젯을 복사 / 붙여넣기(다른 패널에도 붙여넣을 수 있습니다)
Ctrl/Cmd + D복제
Delete삭제
Ctrl/Cmd + ZUndo
Ctrl/Cmd + Shift + Z / Ctrl/Cmd + YRedo

Undo는 패널마다 독립되어 있으며, 이력은 50단계까지입니다. Node Editor의 Undo와는 별개이며, 대상은 레이아웃·바인드·외형의 변경뿐입니다. 페이더를 움직이는 등의 값 변경은 라이브 조작이므로 이력에 쌓이지 않습니다.

복사·복제에서는 MIDI 매핑이 인계되지 않습니다. 같은 노브가 2개의 위젯을 두드리는 것은 대개 사고이므로, 의도적으로 비워 두고 있습니다.

MIDI를 할당한다

위젯 자체가 MIDI의 수신자가 됩니다. 마우스로 조작하는 것과 같은 위젯을 MIDI로도 움직일 수 있습니다.

  1. 메뉴 바의 Setting → MidiMapping 으로 할당 모드에 들어갑니다(MIDI Inspector 창이 열립니다)
  2. 할당 가능한 위젯이 파랗게 됩니다
  3. 위젯을 클릭하면 빨갛게 됩니다(선택 상태)
  4. 그 상태에서 MIDI 컨트롤러를 움직이면, 그 위젯에 할당됩니다

위젯별 MIDI의 해석은 다음과 같습니다.

위젯MIDI가 작동하는 방식
Fader / Knob0〜1을 레인지에 매핑
Crossfader0〜1이 그대로 위치
NumberMin/Max가 확정되어 있을 때만 유효(상한 없는 필드에는 작동하지 않습니다)
Toggle보통은 누른 순간에 토글, Momentary라면 누르고 있는 동안만 ON
Button(Trigger)누른 순간에 발화
값 버튼 / 값 토글누른 순간에 세트 / 토글
Dropdown누를 때마다 다음 선택지로(끝에서 처음으로 돌아감)

Button Grid는, 위젯 전체가 아니라 버튼 1개씩 할당합니다. 할당 모드에서는 각 버튼에 개별 후보가 나오므로, 패드의 각 키를 각 선택지에 할당할 수 있습니다.

다음 위젯은 MIDI 할당 대상이 되지 않습니다. Color Picker / XY Pad(노브 1개로는 2축으로 나눌 수 없기 때문) / Label·Meter·Preview·Text Input(표시 전용 계열) / Header·Divider·Frame(장식) / Node View(노드 쪽의 UI가 조작계를 갖기 때문) / 바인드되지 않은·Missing 위젯. 바인드되지 않은 것은, 저장된 매핑 자체는 사라지지 않으며 다시 바인드하면 되살아납니다.

저장되는 방식

Widget Panel은 프로젝트(.synapse)와 함께 저장됩니다. 패널 단독 파일은 없습니다.

저장되는 것:

  • 창의 위치·크기·타이틀
  • Freeze하고 있는지 여부(와, Freeze 중 스케일의 기준 크기)
  • 각 위젯의 종류·배치·크기
  • 바인드 대상(어느 노드의 어느 파라미터인지)
  • 외형(라벨·On/Off 색·폰트 크기)과 동작(표시 전용·Momentary·On/Off 값·레인지 덮어쓰기·선택지 좁히기)
  • 위젯에 할당한 MIDI 매핑

바인드 대상 노드를 지워도, 위젯은 사라지지 않습니다. ‘Missing’ 표시로 축퇴하고, 레이아웃도 바인드 정보도 외형 설정도 그대로 남습니다. 다른 프로젝트를 열었을 때나, 아직 노드를 만들지 않은 단계에서도 마찬가지입니다. 화면만 먼저 구성해 두는 방식이 망가지지 않도록 되어 있습니다.

구현에서 알게 된 주의점

Assign의 후보가 되는 것은, Node Editor에 실제로 표시되어 있는 노드뿐입니다. 화면에 나와 있지 않은 노드의 파라미터는 하이라이트되지 않습니다. 호환 파라미터가 하나도 발견되지 않는 경우, 할당은 아무 일도 일어나지 않은 채 종료됩니다(로그에 경고가 나올 뿐입니다). 그런 경우에는 Appearance… → Binding → Bind... 다이얼로그에서 선택해 주세요.

Binding 다이얼로그(Bind... / Browse all…From Node...)는, 활성 프로젝트의 노드만 목록에 표시합니다. 한편 저장된 바인드의 해결은 전체 프로젝트를 횡단하므로, 그룹 안의 노드에 바인드한 위젯은, 그룹 밖으로 나가도 계속 살아 있습니다.

Frame 안에 배치한 위젯은 ‘Frame의 자식’이 아닙니다. 장식은 어디까지나 외형상의 프레임이며, Frame을 움직여도 안의 위젯은 따라오지 않습니다.

살아 있는 노드를 하나도 참조하지 않는 패널(비어 있음·바인드되지 않은 것만·장식만)은, 어느 프로젝트를 저장하더라도 함께 저장됩니다. 만들다 만 레이아웃을 말없이 버리지 않기 위한 동작입니다.

Preview는 약 30fps로 계속 다시 그립니다. 값의 변화를 기다리는 것이 아니라 일정 간격으로 다시 그리는 구조이므로, 다수를 늘어놓으면 그만큼의 부하가 됩니다.

관련

  • MIDI 매핑 — 할당 모드의 공통된 사용법
  • Node Editor — 바인드 대상 파라미터를 갖는 노드를 구성하는 곳

영상

이 페이지로 연결된 페이지

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