Pilot web i panele
Otwórz http://<maszyna>:8090/remote z dowolnego telefonu, tabletu czy laptopa w studyjnej
sieci LAN (wpisz http:// jawnie; pod samym korzeniem nie ma strony). Strona jest serwowana z
Resources/WebRemote.html wtyczki przy każdym żądaniu - edytowalna na gorąco, bez
rekompilacji.
Panele i moduły
Panel (board) to zakładka; moduł to karta na jego 4-kolumnowej kanwie (szerokość
1-4). Moduły trzymają dokładnie tę pozycję, którą im nadasz (zaakceptowane w sierpniu 2026):
puste miejsce jest trwałe - usunięcie albo zwężenie karty zostawia wolne komórki dokładnie
tam, gdzie były - i nic się nie przesuwa, dopóki sam tego nie przesuniesz. Tablety i telefony
układają moduły w kolejności czytania (edycja kanwy to koncept na szerokość desktopu), a
wnętrza modułów przestawiają się dotykowo według szerokości karty - karta na pełną szerokość
nigdy nie wystaje poza mały wyświetlacz. Domyślny panel Studio jest syntetyzowany -
pierwsza edycja go materializuje, a usunięcie przywraca fabryczny. Biblioteka modułów (16):
Health · Mikser audio · Sceny · Presety 1-16 · Kamery + Go Live · Ruchy kamery (ARM A/B) ·
Transport (w tym BOUNCE, świecący z żywego odczytu stanu reżysera) · Nagrywanie ·
Wyjście SDI · Tempo i prędkość · Triggery show (Blueprint) · TV / router ekranów · Banki
cięć (6-slotowe banki na ekran z miniaturami-plakatami i bursztynowym pierścieniem on-air -
dotknięcie odpala <Ekran>.Cut.N, OFF ma blokadę) · Półka Quick Media · Kontrolki własne ·
Etykieta sekcji.
Edycja odbywa się na samej stronie (przebudowana i zaakceptowana w sierpniu 2026): ✎ Edit → dodawaj zakładki i moduły. Przeciągaj moduł za jego tytuł (ikona ✥ pojawia się po najechaniu; na dotyku przyciśnij i przeciągnij tytuł): upuszczony na inną kartę - obie zamieniają się miejscami; upuszczony na puste miejsce - karta przenosi się tam, a obszar węższy od karty też ją przyjmuje, zwężając ją do wolnego pasma (zielony podgląd pokazuje docelowy rozmiar). Przeciągnij prawy dolny ◢ karty, by zmienić rozmiar - skacze na żywo od 1 kolumny do krawędzi siatki albo najbliższej zajętej komórki; sąsiedzi nigdy się nie ruszają. Kreskowane komórki-widma znaczą każde wolne pole: dotknij, by wstawić tam moduł, albo najpierw przeciągnij ◢ samego widma, by poszerzyć przyszły slot - nowy moduł wyląduje w tej szerokości. Wstawianie otwiera galerię modułów - każdy moduł z mini-makietą i jednym zdaniem opisu, w oknie skalującym się do ekranu (bez paska przewijania na dużych monitorach, pionowy układ na telefonach). − na nagłówku każdego modułu minimalizuje go do samego nagłówka, zachowując jego komórkę - działa też poza trybem edycji jako szybkie porządki w trakcie show i zapisuje się z panelem. ⧉ Duplikuj kopiuje cały bieżący panel jako „<Nazwa> 2”. ✎ na karcie zmienia nazwę, 🗑 usuwa (miejsce zostaje wolne) → SAVE BOARDS. Panele zapisują się po stronie projektu i podróżują w plikach show. Długie przytrzymanie przycisku-triggera kopiuje jego URL dla Stream Decka.
Kontrolki typowane
Nowość z sierpnia 2026: moduł kontrolek własnych mówi pełną rodziną typów szyny - obok
trigger/przełącznik/suwak są kontrolki tekstowe, całkowite (integer), wektorowe
(X/Y/Z) i kolorów. Kontrolka tekstowa celująca w LowerThird.Headline zapisuje dokładnie
tę wartość, którą Blueprint czyta przez Get VSK Text - z telefonu. Wartości trwają na szynie
i podróżują w .vskshow; pola tekstowe zatwierdzają się Enterem/utratą fokusu, a odpytywanie
stanu nigdy nie nadpisuje pola, w którym właśnie piszesz; kolory pozostają spójne w sRGB
między przeglądarkowym pickerem a Blueprintami. Kanały transformacji celowo zostają w panelu
VSK Control edytora.
Moduł audio
Na pasek: fader · MUTE · SOLO · AFV · gain · delay, a do tego (sierpień 2026) selektor routingu kanałów Ch (Stereo / L→oba / P→oba / suma mono - rozprowadź monofoniczny mikrofon kamery na oba uszy) oraz rozdzielone mierniki L/P na każdym pasku i masterze. Mierniki pokazują finalny poziom po całym DSP, z tego samego źródła co mierniki miksera w edytorze - telefon i panel zawsze się zgadzają.
Moduł ruchów kamery
ARM A · ARM B · OFF · GO LIVE. Przyciski ARM świecą się na podstawie żywego odczytu stanu uzbrojenia reżysera, nie echa kliknięcia - rozbrojenie po stronie Blueprintów (PLAY, zmiana presetu, przywołanie sceny) gasi je na stronie w jednym cyklu odpytywania i każde urządzenie pokazuje tę samą prawdę.
Przyciski z blokadą
Kontrolki destrukcyjne są dwudotykowe (sierpień 2026): pierwsze dotknięcie uzbraja przycisk - czerwony, pulsujący, TAP TO CONFIRM - a drugie w ciągu 3 s wykonuje akcję; dotknięcie gdziekolwiek indziej (albo odczekanie) rozbraja po cichu, a uzbrojony może być tylko jeden przycisk na całej stronie. Blokada domyślna: REC ■ (tylko podczas nagrywania), OUT ■ (tylko gdy wyjście jest live), OFF ruchów kamery i triggery gaszące ekrany. Własne kontrolki trigger/przełącznik mają w trybie edycji pole Guard, zapisywane z panelem.
Opóźnienia i utrata połączenia
Komendy docierają w ≈25 ms (jeden POST po LAN + klatka); wskaźniki odpytują 4 Hz, mierniki audio 10 Hz. Jeśli 2 kolejne odpytania stanu zawiodą (≈½ s - zerwane Wi-Fi, zamknięty edytor), pełnoekranowa nakładka CONNECTION LOST - controls disabled blokuje wszystkie dotknięcia i odlicza sekundy od ostatniego kontaktu; pierwsze udane odpytanie natychmiast ją zdejmuje. Mierniki audio zerują się na czas utraty łącza, więc zamrożone słupki nigdy nie udają żywego sygnału.
API HTTP
Wszystko, co robi strona, to zwykły HTTP na tym samym porcie - do użycia z Bitfocus Companion, skryptów, czegokolwiek, co umie POST:
| Trasa | Metoda | Działanie |
|---|---|---|
/remote | GET | Strona paneli sterowania |
/api/state | GET | Pełny stan UI w JSON (tally, presety, sceny, TV, lista NDI, wartości typowane, stan uzbrojenia, banki cięć banks, bounce…) |
/api/trigger?name=Cam.2 | POST | Wystrzel dowolny trigger szyny |
/api/logical?name=X&v=1 · /api/scalar?name=X&v=0.5 | POST | Ustaw wartości szyny |
/api/text?name=X&v=… · /api/integer?name=X&v=… · /api/vector?name=X&x=&y=&z= · /api/color?name=X&v=RRGGBB | POST | Ustaw typowane wartości szyny (sierpień 2026) |
/api/tv?name=Wall&source=SDI:2 | POST | Routuj ekran (opcjonalnie &fade=) |
/api/boards | GET / POST | Odczyt / zapis układów paneli |
/api/audio/levels | GET | Poziomy mierników na żywo - finalne pary [L, P] po DSP na pasek + master |
/api/audio?src=Cam1&volume=…&ch=… · /api/audio/add?device=… · /api/audio/remove?src=… | POST | Sterowanie mikserem (w tym routing kanałów ch=) |
/api/upload?name=x.png | POST | Wgraj media na półkę Quick Media |
/media/thumb?name=clip.mp4 | GET | Miniatura-plakat pliku z półki (ścieżka sanityzowana; zasila moduł banków cięć) |
Content-Length (curl -X POST -d "x" "http://host:8090/api/trigger?name=Play").