Dante-verkon kellottaminen

Pidin Studiotecillä tammikuussa 2016 koulutuksen Dante-verkoista. Koulutuksen aikana nousi esiin kysymyksiä Dante-verkon kellotuksesta ja päätin kirjoittaa pienen postauksen aiheesta.

Tässä kirjoituksessa perehdymme siihen miten Dante-verkon kellotus toimii.

Dante-verkko huolehtii äänensiirron lisäksi siitä, että verkkoon kytketyt laitteet on kellotettu keskenään. Dante-verkossa on kerrallaan yksi laite, joka toimii Master-kellona ja muut laitteet ovat Slavena tähän laitteeseen. Jos Master-kelloksi valittu laite poistetaan verkosta, Dante-verkko valitsee toisen laitteen automaattisesti sen tilalle. Kellon vaihtuessa ääneen tulee pieni crossfade-tyyppinen ”häiriö”.

Yksinkertaisimillaan Dante-verkon kellotus tapahtuu niin, että Dante-verkko itse valitsee sopivan laitteen Master-kelloksi ja muut laitteet kellottuvat kyseiseen laitteseen. Tämän lisäksi käyttäjällä on muutama valinta millä voi vaikuttaa siihen, mikä verkon laitteista valitaan kelloksi. Välillä on tilanteita joissa on järkevää itse vaikuttaa Master-kellon valintaan.

Käytännössä on kolme eri vaihtoehtoa miten Dante-verkon kellotuksen voi hoitaa.

Vaihtoehto 1: Dante-verkko kellottaa itse itsensä

dante_kellotus

Tässä yksinkertaisimmassa vaihtoehdossa Dante-verkko kellottaa itse itsensä. Dante-verkko valitsee yhden verkon laitteista toimimaan Master-kellona, johon muut laitteet kellottuvat automaattisesti.

Jokaisesta verkkoon kytketystä laitteesta pitää valita kellolähteeksi Dante-verkko tai lisäkorttipaikka, johon Dante-lisäkortti on asennettu. Tämä valinta pitää tehdä jokaisen laitteen kohdalla sen omista valikoista, eikä sitä pysty tekemään Dante Controllerin kautta. Esimerkiksi Studerin D21 Dante-lisäkortissa tämä kellovalinta tapahtuu kortilla olevilla dippikytkimillä, kun taas Yamahan DM1000:ssa se löytyy valikoista.

Tarkista, että Dante Controllerissa “Clock status” -näytössä ei ole täppiä “Preferred Master” tai “Sync to External” -kohdissa.

Dante verkko käyttää seuraavia perusteita Master-kellon valintaan.

  1. Laitteet joissa ulkoinen kello (wordclock/aes3)
  2. 1 Gbs laitteet ennemmin kuin 100 Mbs.
  3. Pienin MAC-osoite

Vaihtoehto 2: Valitaan joku Dante-verkon laitteista Master-kelloksi

Ensimmäinen vaihtoehto on hyvä siitä, että se toimii automaattisesti. Kiinteissä järjestelmissä kannattaa kuitenkin päättää itse minkä laitteen haluaa toimivan masterina.

Vaihtoehto 1:sen kanssa voi käydä esimerkiksi niin, että Dante-verkko valitsee Master-kelloksi vierailevan miksaajan mikserin. Kun tämä mikseri otetaan pois verkosta, Dante-verkko valitsee taas uuden laitteen kelloksi. Tästä syntyy turhaa Master-kellon hyppelyä laitteelta toiselle. Hyppely aiheuttaa pienen häiriön äänessä sekä moninmutkaistaa vianetsintää. Siksi onkin hyvä itse määritellä joku laite Dante-verkosta Master-kelloksi. Kannattaa valita sellainen laite, joka on kiinteästi verkossa paikalla, esim. DSP-prossu tai mikseri.

Kaikki laitteet kellotetaan Dante-verkkoon, mutta käyttäjä määrittää itse minkä laitteen/laitteiden hän haluaa olevan Master- kello. Tämä tapahtuu valitsemalla “Clock status” -näytöstä ne laitteet, joiden halutaan toimivan Master-kellona “Preferred Master” -tilaan. Master-kelloksi kannattaa valita laite joka on verkossa koko ajan. Näin vältetään turhat Master-kellon vaihdokset ja helpotetaan vianetsintää.

Vaihtoehto 3: Kellotetaan Dante-verkko ulkoiseen kelloon

dante_kellotus3

Vastaan voi tulla myös tilanne jossa Dante-verkko halutaan kellottaa ulkoiseen kelloon esimerkiksi videojärjestelmien takia. Tällöin Dante-verkosta valitaan yksi laite joka kellotetaan ulkoiseen kelloon ja Dante-verkko kellotetaan tähän laitteeseen.

Dante Controllerin “Clock status” -näytöstä näet mitkä verkon laitteista tukevat ulkoiseen kellon käyttöä. Laitteissa jotka tukevat ulkoista kelloa on “Enable Sync to External” -täppä käytettävissä. Tämä valinta kellottaa Dante-verkon kyseiseen laitteeseen.

Laitteesta pitää valita jokin muu kello kuin Dante-verkko eli esimerkiksi wordclock, MADI tai AES/EBU. Ulkoisen kellossa pitää olla sama samplerate kuin Dante-verkon laitteissa. Jos esimerkiksi ulkoinen kello on 48 kHz, eivät Dante-verkossa olevat 44.1 kHz laitteet toimi.

Ongelmatilanteet

Dante-verkossa on yksi laite kerrallaan Master-kellona. Jos verkossa näkyy kaksi Master-kelloa viittaa se siihen, että multicast-liikenne ei kulje verkossa oikein ja osa laitteista ei näe toisiaan, jolloin Dante valitsee useamman laitteen Master-kelloksi.

Työkaluja kello-ongelmien ratkaisuun

Clock monitor löytyy Dante Controllerista ja sillä pystyt seuraamaan, kuinka paljon verkon laitteet ovat siirtäneet kellojaan ja kuinka vakaa kello on. Jos Clock Monitor näyttää kellon olevan epävakaa, se voi johtua verkon konffauksesta tai pullonkauloista verkossa.

Clock status näyttö näyttää yleiskuvan Dante-verkon kellotuksesta.

Protokolla-analyysi

Jos et ole kiinnostunut siitä mitä konepellin alla tapahtuu, voit lopettaa lukemisen tähän. Niille joita aihe kiinnostaa, seuraavassa on analysoitu miten Dante-verkon kellotus toimii.

Dante käyttää Precision Time Protocol (PTPv1) -protokollaa Dante-verkon laitteiden kellotukseen. Kyseessä on vuonna 2002 standardisoitu protokolla jota käytetään mm. pankki- ja osakejärjestelmissä huolehtimaan tapahtumien aikaleimoista.

Laitteiden kellottuminen tapahtuu niin, että Slave-laitteet kyselevät Master-kellolta paljonko niiden omat kellot ovat pielessä Master-kelloon nähden ja siirtävät (offset) omia kellojaan tämän verran. Hardware-laitteilla on rajoitettu alue (pull-range) kuinka paljon ne voivat omaa kelloaan siirtää eteen-/taaksepäin. Vastaan voi esimerkiksi tulla tilanne, jossa Master-kellon kello on sen verran pielessä, että osa laitteista ei pysty enää siirtämään omaa kelloaan tarpeeksi. Tälläisessä tilanteessa laitteet, joiden kelloa ei voida enää siirtää, tippuvat synkasta ja niiden ääni katkeaa.

PTPv1 toimii UDP multicastina ja se käyttää osoitteitta 224.0.1.129 – 224.0.1.132.

Jos haluat tarkkailla PTPv1-liikennettä Wiresharkilla, voit käyttää esimerkiksi seuraavanlaista display filteriä:

ptp.subdomain == "_DFLT"

Master-kello lähettää synkronointiviestin 4 kertaa sekunnissa.

Sync message ja Delay_Request message DSCP CS7
Follow_Up message ja Delay_response message DSCP EF

http://www.endruntechnologies.com/pdf/PTP-1588v1.pdf
PTPv1 master lähettää Sync viestin. Sen jälkeen master lähettää perään uuden Follow_up viestin jossa on PrecisionTimestamp joka kertoo milloin Sync viesti lähetettiin. Slave tietää milloin se otti vastaan Sync viestin. Tämän pohjalta voidaan laskea master-to-slave difference PrecisionTimestamp – milloin slave vastaanotti viestin.

Slave lähettää masterille viestin Delay_request. MAster vastaa Delay_response viestillä jossa on delayReceiptTimestamp joka kertoo milloin master vastaanotti slaven lähettämän paketin. Näiden pohjalta Slave laskee slave-to-master eron
Milloin master vastaanotti paketin – milloin slave lähetti sen

Näiden pohjalta voidaan laskea paljonko pitää slaven siirtää kelloaan. Hardware laitteilla on rajattu määrä (pull range) kuinka paljon ne pystyvät kelloaan siirtämään. Jos laite ei pysty enää kelloaan siirtämään se tippuu synkasta pois.