Leader/member model
Relace má jedno vedoucí zařízení a až čtyřicet devět následujících. Leader určuje, co se hraje a kde v tom kdo je.
Role v relaci
| Role | Jak vznikne | Co dělá |
|---|---|---|
| Leader | Spustí relaci na obrazovce synchronizace | Ohlašuje se v síti, běží na něm server, vysílá příkazy |
| Člen | Připojí se k nalezené relaci | Přijímá příkazy a vykonává je |
Leader zůstává i po připojení členů ve stavu „ohlašuje se" — pořád naslouchá dalším příchozím. Stav „připojeno" ukazuje jen člen.
Co leader řídí
| Akce | Co se stane u členů |
|---|---|
| Změna písně | Členové přejdou na stejnou píseň |
| Vynucená změna písně | Totéž, ale i u členů, kteří mají sledování vypnuté |
| Posun v textu | Pozice scrollu se srovná |
| Spuštění autoscrollu | Členům se rozjede autoscroll ze stejné pozice a stejnou rychlostí |
| Pauza autoscrollu | Zastaví se na společné pozici |
| Změna rychlosti autoscrollu | Rychlost se propíše všem |
| Transpozice | Členům se aplikuje stejný posun o půltóny |
| Změna sekce | Přeskok na sekci se rozešle dál |
| Start a stop metronomu | Členům se rozjede metronom ve stejném tempu a na stejnou dobu |
| Pokyn kapele | Na displejích ostatních se objeví překryv — „SÓLO", „POSLEDNÍ REFRÉN", „KONEC" |
Členové, kteří sledování vypnou, zůstanou stát a mohou si listovat po svém. Vynucená změna písně je nástroj leadera, jak je vrátit zpátky.
Dohánění pozice
Když člen dostane pozici, která se liší od jeho vlastní, nescvakne se tam skokem — pozice se dorovná plynulým doběhem během zhruba dvou desetin sekundy. Na projekci ani na tabletu to nevypadá jako trhnutí.
Metronom v kapele
Praktický důsledek: kdo se připojí uprostřed písně, dostane tu samou kotvu a nasadí na správnou dobu. Nemusí čekat na další takt ani se „chytat".
Pokyny kapele
Leader může během písně poslat krátký pokyn, který se ostatním zobrazí jako překryv přes text — „SÓLO", „POSLEDNÍ REFRÉN", „KONEC".
Posílat je může jen leader.
Co se nesynchronizuje
- Otáčení stránek PDF. Přes relaci se posílá pozice scrollu, ne číslo stránky. Swipe do stran navíc v živém režimu mění píseň, ne stránku.
- MIDI příkazy u písní. Aparaturu má každý svou, takže MIDI zůstává na zařízení.
Průběh připojení
Když se člen připojí, nedostane jednu velkou zprávu se stavem, ale sérii zpráv:
welcome— přidělení identitysessionInfo— informace o relaci a jejích členech- Po ohlášení nového člena mu leader pošle aktuální píseň, případně běžící autoscroll, aktivní setlist a nabídku písní z něj
Člen si o kompletní stav může kdykoli říct i sám.
Načasování příkazů
Každý vysílaný příkaz nese:
| Pole | Význam |
|---|---|
leaderEpochMs | Čas leaderových hodin v okamžiku odeslání |
executeAt | Kdy se má akce provést — standardně o 300 ms později |
v | Verze protokolu |
id | Unikátní identifikátor zprávy |
executeAt znamená na všech zařízeních stejný okamžik. Tím se sjednotí i zařízení s různě velkou odezvou.Člen, který chce něco poslat ostatním, to nepošle přímo — pošle to leaderovi s příznakem „přepošli". Leader zprávu přerazítkuje vlastními hodinami a rozešle ji. Díky tomu existuje jediná časová osa.
Vyžádání obsahu
Vedle řídicích příkazů umí protokol přenášet i samotný obsah. Iniciátorem je vždy ten, komu něco chybí:
| Co | Jak to probíhá |
|---|---|
| Píseň | Člen si vyžádá píseň podle identifikátoru, leader pošle její sdílená pole |
| Setlist | Člen si vyžádá aktivní setlist se seznamem písní |
| Hromadný přenos | Leader nabídne metadata všech písní v setlistu, člen si řekne jen o ty, které nemá, a dostane je po jedné s pořadovým číslem |
| PDF, MusicXML, obrázky | Přenášejí se na vyžádání, ne automaticky |
Limity přenosů
| Typ | Limit |
|---|---|
| Nad 3 MB se automaticky zmenší, nad 10 MB se nepřenese | |
| MusicXML | 10 MB |
| Balík obrázků | 25 MB |
U každého binárního přenosu se počítá kontrolní součet SHA-256, aby se poznal poškozený soubor.
Sdílení mezi členy
Když leader požadovanou přílohu nemá, relace se nezasekne. Spustí se zprostředkované sdílení mezi členy:
- Leader se zeptá ostatních, kdo soubor má.
- Ti, kdo ho mají, se přihlásí.
- Žadatel si vybere zdroj.
- Soubor se přenese od vybraného člena přes leadera.
Kontrola před koncertem
Než se začne hrát, může se leader jednou zeptat a celá kapela odpoví. Výsledek je seznam toho, co se za chvíli pokazí:
| Nález | Co znamená |
|---|---|
| Chybějící písně | Někdo nemá píseň z aktivního setlistu |
| Chybějící přílohy | Píseň má, ale bez not nebo PDF |
| Jiný setlist | Někdo má nastavený jiný setlist než leader |
| Žádný setlist | Někdo nemá aktivní žádný |
| Slabá baterie | Zařízení nedojede koncert |
| Vysoká odezva | Slabé spojení |
| Bez odpovědi | Zařízení se neozvalo |
Vyplatí se to pustit hned po příchodu do klubu, ne pět minut před začátkem. Chybějící přílohy se dají doplnit jen dokud jsou všichni na stejné síti.
Omezení modelu
Další věci, se kterými je dobré počítat:
- Relaci nelze rozdělit ani spojit; jedna kapela = jedna relace = jeden leader.
- Když leader zmizí, členové nezvolí náhradu — přejdou do režimu opětovného připojování k témuž leaderovi.
- Členové mezi sebou nekomunikují přímo; i sdílení příloh jde přes leadera.