3.3
RTP-MIDI
Audiovizuální komunikační prostředky používají pro svou bezproblémovou funkci přenos dat zpravidla protokolem RTP (Real-time Transport Protocol). Také pro přenos zpráv MIDI byl vyvinut vhodný síťový ekvivalent pro užití v sítích LAN a WAN zprostředkovávající komunikaci v reálném čase. Protokol je součástí systému Telemidi, jakožto odvětví systému NMP (Networked Music Performance). Pro vytvoření komunikační cesty navrhuje původní specifikace RFC 6295 využití protokolů SIP (Session Initiation Protocol) a SDP (Session Description Protocol), podobně jako v systémech VoIP. Firma Apple vytvořila pro správu komunikačních cest a jejich synchronizaci vlastní protokol AppleMIDI. Tento protokol využívá pro komunikaci dvou nezávislých UDP portů s označením Control Port (řídicí port) a Data Port (datový port). Čísla portů přiřazuje uživatel. Mělo by platit, že čísla portů musí nabývat hodnoty n a n+1. Jedno komunikační spojení se nazývá session. V něm mohou mezi sebou komunikovat pouze dvě zařízení. Jedno z nich plní funkci iniciátora spoje (Session Initiator) a je zodpovědné za vytvoření a přenos pozvánky potřebné k zahájení komunikace řídicím portem posluchačova spojení (Session Listener). Vytvoření spojení se posléze potvrzuje i na datovém portu.
Po vytvoření komunikačního spoje probíhá krátká synchronizační sekvence, která je vždy spravována iniciátorem daného spojení. Proces stanovení průměrného síťového zpoždění mezi oběma zúčastněnými zařízeními je založen na výměně paketů CK0, CK1 a CK2 obsahujících časové značky (viz obr. 29, přičemž pakety CK0 a CK2 obsahují aktuální lokální čas iniciátora spojení a paket CK1 obsahuje aktuální lokální čas posluchače). Proces je v závislosti na konfiguraci systému v průběhu spojení opakován zhruba pětkrát za minutu a slouží k pravidelnému sledování stavu sítě.
Obr. 29. Způsob synchronizace mezi dvěma zařízeními a proces stanovení odhadu průměrného zpoždění přenosu dat protokolem AppleMIDI
Zajímavost
Jednotlivé pakety obsahují 32bitové časové značky, které jsou, podobně jako v MIDI souborech, uváděny ve formě rozdílu mezi lokálním časem poslední vyslané a časem právě vysílané zprávy. Tato metoda výrazně snižuje velikost přenášených zpráv díky tomu, že se vynechávají redundantní nulové bajty. Výrazně se tím zefektivňuje využití přenosového kanálu. Protokol umožňuje vyslat více MIDI zpráv jako skupinu zpráv prostřednictvím jednoho paketu.
Směrování paketů je automatický proces, což eliminuje nutnost využívání MIDI THRU nebo zařízení pracujících jako MergeBox (viz kapitolu 3.2.2). Je-li zařízení v daném čase účastníkem více RTP-MIDI spojení, dostávají protistrany všech komunikačních cest stejné MIDI zprávy. Příklad tohoto způsobu přenosu je schematicky zobrazen na obr. 30. Více směrovacích cest lze vytvořit s využitím propojovací matrice (patchbay) větším množstvím IP (Internet Protocol) adres.
Obr. 30. Komunikační architektura při inicializaci dvou komunikačních spojení jedním zařízením protokolem RTP-MIDI. Červeně je zobrazena cesta předávání zpráv mezi posluchači dílčích spojení (tzv. řetězení)
3.3.1
Zpoždění v komunikačních spojích a jejich prevence
Zpoždění a chyby v komunikačních spojích protokolem RTP-MIDI se dělí na dva typy:
- Přechodné artefakty – jde o krátkodobé chyby nepřesahující čas ukončení noty, u které chyba vznikla.
Příklad
Příkladem přechodného artefaktu je vynechání zprávy typu NoteOn. To způsobí krátkodobou chybu projevující se výpadkem jedné hrané noty.
- Dlouhodobé artefakty – jde o dlouhodobé chyby přesahující čas ukončení vysílané noty (hraného tónu), u které chyba vznikla.
Příklad
Příkladem dlouhodobého artefaktu je vynechání zprávy typu NoteOff. To způsobí hraní dané noty bez definovaného ukončení, čímž dojde k závažným zkreslením probíhajícího MIDI streamu.
RTP-MIDI využívá tzv. obnovovací mechanismus. Jeho úkolem je transformovat dlouhodobé artefakty na přechodné. Znovuvyslání paketu se nevyužívá z důvodu zpoždění a možného zahlcení přenosové cesty. Každý paket tedy obsahuje část zvanou Journal (žurnál). Ta obsahuje informace, které přijímač využije k následné obnově předchozích paketů při detekci jejich ztráty. Samotný proces generování a kódování těchto obnovovacích dat je velmi složitý. Vyhodnocovací logika je nakonfigurována tak, aby při detekci ztráty více not za sebou během krátkého časového úseku zabránila provádění zpráv NoteOn, které by tak mohly zapříčinit zmiňované dlouhodobé artefakty.

