Streamingsystemen – orde in de chaos!

Inleiding

Wie zoekt naar welke streamingsystemen (protocollen) er allemaal zijn, zal binnen tien minuten hoofdpijn krijgen. Er is namelijk heel erg veel… zo lijkt. Maar weet dat veel ‘custom’ systemen een afgeleide zijn van een andere, bestaande techniek. Wij zetten alle grote, relevante streaming protocollen voor u op een rijtje. Zo weet u ook direct welk systeem bij u past. En waar u dus wellicht op kunt focussen. 

UPnP, DLNA, ROON, OpenHome, Diretta, LMS…Chromecast, Airplay… wat een chaos! En dan heb je nog ‘super-software’ die beter moet klinken. Denk aan Audirvana, JPlay (zowel server als player), Foobar met speciale plugins of natuurlijk Jriver. We kunnen ons goed voorstellen dat u compleet de weg kwijt bent.

De basis

De basis van streaming ligt in een paar dingen:

  • Spelers, servers en controlers (afstandsbedieningen) vinden
  • Spelers en servers stabiel verbinden
  • Controlers in de gaten houden voor opdrachten
  • Data gecontroleerd en stabiel van server naar speler krijgen
  • Spelerprogressie goed bijhouden

Nu is dit vrij kort door de bocht en speelt er op de achtergrond nog veel meer. Denk aan controles van datastreams, protocollen voor datacorrectie, buffering, etc. Maar dat is voor u niet zo heel boeiend. Onder aan de streep gaat het erom dat u muziek kunt spelen, toch?

39 reacties

    1. Dan zou bijvoorbeeld DANTE er ook bij moeten… ;-). We focussen hier een beetje op de ‘gewone’ protocollen. Maar snap je punt hoor. We gaan ook nog een keer met DAW’s werken om te kijken wat daar allemaal gebeurt.

      1. Pak dan AES87 ook mee want dat is een standard die Dante, Ravenna, AVB etc laat samenwerken.
        Buiten de pro-wereld is er helaas weinig tractie.
        Mijn naamgenoot noemde Merging die zelfs een DAC voor de consumentenmarkt hebben, niet te betalen vergeleken met de pro-versie
        https://www.thewelltemperedcomputer.com/HW/Connect/Ravenna.htm
        Dan is er natuurlijk Focusrite met zijn Dante lijn.

        Wel jammer want eigenlijk is het een leukere technology dan USB Audio. Geen beperkingen in kabellengte en galvanisch gescheiden by design.

        Voor de liefhebber: Dante is een gesloten protocol en dus met een prijskaartje, Ravenna is een open protocol.
        Dante (Alighieri) is in Ravenna gestorven…..

  1. Voor wat betreft DLNA/UPnP.
    De organisatie achter DLNA heeft zich zelf in 2017 opgeheven.
    Men was van oordeel dat de doelstellingen bereikt waren.
    Eigenlijk is DLNA blijven steken daar waar UPnP ophield.
    UPnP was en is streaming AV, DLNA had de pretentie om alle apparatuur in het huishouden te integreren.
    Ik vermoed dat ze ingehaald zijn door de tijd met namen door IoT.

    UPnP is tegenwoordig onderdeel van OCF https://openconnectivity.org/

        1. Klopt, de beide anderen die ik noemde ook, en de LMS server software is nog steeds actueel en afgelopen week was er weer een update,
          Logitech Media Server Versie: 8.3.0 – 1659590348 @ Thu 04 Aug 2022 07:26:39 AM CEST
          Hostnaam: Atom-server
          IP-adres van server: 10.0.0.111
          HTTP-poortnummer van server: 9000
          Besturingssysteem: Debian – NL – utf8
          Platformarchitectuur: x86_64-linux
          Perl versie: 5.34.0 – x86_64-linux-gnu-thread-multi
          Audio::Scan: 1.05
          IO::Socket::SSL: 2.074
          Database versie: DBD::SQLite 1.58 (sqlite 3.22.0)
          Totaal aantal herkende muziekspelers: 1

          Ik draai parallel nog steeds deze server, en ook dan de speler

  2. Hi Jaap,

    Diretta werkt ook perfect icm NUC (host) —> GentooPlayer (target op een RPi) .. tijd mee gespeeld op de Pi2AES en de beste DIY oplossing die ik tegen ben gekomen. Het mooie is dat je een ethernetverbinding kan gebruiken die enkel en alleen de bitstream transporteert tussen host en target. Mocht je meer info willen over de opzet, let me know

  3. Ik begrijp nog niet helemaal, als streaming novice, wat ROON voor mij zou kunnen doen. Ik keek net even naar de subscription prijzen van Roon en daar schrok ik wel van. Dan heb je dus naast een qobuz en/of tidal abonnement nog een ROON abonnement nodig. Begrijp ik het goed dat ROON alleen een interface biedt waarop je zowel streaming als lokaal opgeslagen audio kunt organiseren / spelen? Wat is dan de meerwaarde tov bijvoorbeeld BluOS / SONOS etc.? Verandert ROON iets aan de afspeelkwaliteit, of klinkt een Qobuz stream via bluos hetzelfde als via ROON?

    Kortom, wat heb je als hifi liefhebber aan ROON en wat je heb je hiervoor nodig? Ik laat me graag enthousiast maken…;-)

    1. Roon is vooral goed in metadata. Ze beheren een bibliotheek met rijke informatie van ieder album, waardoor je meer informatie te zien krijgt. Op basis van de titel, genre, artiest e.d. komt de software met suggesties voor muziek.

      Dat doen Tidal, Spotify en Qobuz ook, maar ik hoor van veel mensen dat de kwaliteit van die aanbevelingen door Roon beter is. Dat wordt vaak aangeduid als de ‘radio’ functie in die apps.

      Roon beheert zowel streaming services als je lokale bestanden en maakt daar een naadloze bibliotheek van. Dat doet Audirvana ook, maar niet zo mooi naadloos geïntegreerd als Roon. Volumio, niet genoemd in het artikel, is software die dat ook kan. BluOS, Jriver e.d. dus ook.

      RAAT stuurt alle muziek als in PCM formaat naar de streamer. Op de Roon Core server wordt alle inkomende muziek, of het nu een stream is of een lokaal bestand, al omgezet naar PCM formaat. Streams zijn meestal FLAC en die wordt on the fly omgezet. Als je streamer PCM krijgt gevoed hoeft de streamer minder hard te werken en dat zorgt weer (iets) betere geluidskwaliteit. Dat doet Audirvana ook. Dan speelt de kwaliteit van de software (Roon, Audirvana) mee. Dat is iets wat we nog gaan bekijken, zie de kalender met de livestreams.

      Verder kan je met Roon multi-room spelen als je verschillende streamers hebt die allemaal Roon ondersteunen, iets wat Sonos ook doet en wat vaak als sterk punt van Sonos wordt gezien.

      Is Roon z’n geld waard, in vergelijk met de alternatieven? Tsja, goede vraag. Het ziet er gelikt uit en het gemak van alles geïntegreerd in één app is groot. BluOS en Volumio is goede concurrentie, maar iets minder gelikt. BluOS is apparaat gebonden, Roon en Volumio niet.

      Maar het blijft sterk afhankelijk van je streamer of streamer module wat werkt. Een streamer die niet Roon-ready is wordt al snel gedoe, Volumio mikt op de Raspberry Pi markt en komt met nieuwe budget vriendelijke oplossingen in het najaar.

  4. Dag Jaap,

    Bedankt voor dit leerrijke en interessante artikel. Het geeft een duidelijk overzicht van de mogelijkheden bij streaming en ik heb duidelijk bijgeleerd.. .
    Graag enkele bedenkingen of ervaringen hierbij.

    Audirvana heeft ook een pakket dat op windows draait en is onlangs vernieuwd tot een pakket met abonnement “Audirvana Studio”. Een proefversie voor 30 dagen is mogelijk.
    Een promotie argument dat Audirvana gebruikt is dat ook Kernel streaming mogelijk is, wat een betere klankervaring dan Asio of Wasapi zou opleveren.
    Ik heb deze Kernel streaming in Audirvana geprobeerd maar dit had een ongewenste interactie met de op mijn laptop geïnstalleerde JPlay Femto die ook ingesteld stond op een Kernel speler. (Kernel streaming wordt aangeraden als default door JPlay).
    Uiteindelijk heb ik de Audirvana Studio dan maar terug verwijderd.
    De beide pakketten op 1 PC zijn blijkbaar niet compatibel.

    JPlay Femto levert uitstekende klankkwaliteit maar soms gebeurt het dat het programma opnieuw moet geïnstalleerd worden omdat de server JPlay Femto niet meer wordt gevonden.
    Reden hiervoor is onbekend maar ik vermoed dat dit meestal te maken heeft met een windows 10 update die gebeurd is.

    Het belooft een unieke, interessante vergelijkende studie te worden.
    Veel succes!

    Vriendelijke groeten,

    Bart

  5. Hartelijk dank Jaap voor dit overzichtelijk en interessant artikel! Waar ik niet goed aan uit raak is aan die ‘gapless playback’. Een heikel punt dat vaak onder de mat geveegd wordt, nochtans een ‘sine qua non’ voor de meeste audiofielen. Waaraan ligt het dat ‘gapless playback’ mogelijk of onmogelijk is? Ligt dat aan de afspeelapparatuur (hardware), de mediasoftware, het streaming-protocol of een combinatie van deze factoren? Als ik het goed begrijp ondersteunt ‘Chromecast’ bv. geen ‘gapless playback’. Het streamen van Qobuz naar mijn ‘Linn Majik’-speler werkt gapless als ik deze vanop mijn tablet aanstuur met de ‘BubbleDS for Linn Open Home’-app. De standaard ‘BubbleUPnP’-app speelt dan weer niet gapless. Het doet vermoeden dat het streaming protocol een dikke vinger in de pap heeft. Maar dat is wellicht niet het volledige verhaal? Bedankt mocht je tijd vinden voor wat toelichting.

    1. Het is een ‘single threaded’ versus ‘multi threaded’ technisch verhaal. Om het simpel te houden leg ik het niet technisch correct uit, maar dan is het misschien te volgen.

      In de meeste protocollen is er overhead, zeg maar verwerkingsruimte, nodig om het ene bestand na het andere bestand te streamen. Er zit altijd een pauze tussen. Die pauze is best lang in computertermen.

      Wat gapless spelende software doet, is dat ze twee streams naar de speler opzetten. Op de ene stream speelt het wat je hoort en op de andere stream staat het volgende nummer vast klaar. Op moment dat de codec van het bestand aangeeft dat het volgende nummer aansluitend moet zijn zorgt de software ervoor dat het volgende nummer op de tweede stream precies op het juiste moment overneemt. Het is een technisch trucje om rond de beperking van het protocol heen te werken.

      Dat is de reden dat verschillende software op dezelfde speler die over hetzelfde protocol communiceert wel of geen gap laat horen.

      1. Als ik weer even kort zoek naar wat er nodig is, blijven de ‘headers’ boven komen. Er is een header nodig om aan te geven wanneer een track eindigt, zodat de server weet wanneer het de volgende track moet pakken voor buffering. De speler moet dat ook ondersteunen, want die moet voordat de track eindigt, de volgende track kunnen ontvangen. Dus ja: wat martijn zegt… het is een soort ‘multi-threaded’ streaming.

        1. Kan het zijn dat je Frames bedoelt?
          Daarvan is de lengte namelijk bekend.
          Het vervelende is dat sommige audio formaten een fixed frame hebben (MP3) dus je weet precies hoe lang het is maar het is nooit volledig gevuld dus krijg je een witje.

          Het blijft een wat rare zaak dat DLNA geen gapless kent maar UPnP wel (SetNextAVTransport schijnt het toverwoord te zijn)

    2. Bedankt Marijn en Jaap, alweer iets opgestoken! Ik zou toch iedereen die de aanschaf van een streaming-configuratie overweegt aanraden om zich goed te informeren over de mogelijkheid van het ‘gapless’ spelen. Ik beperk me nu tot het streamen van ‘Qobuz’ omdat ik daar het meest ervaring mee heb. Ik heb de indruk dat wanneer de streamer als hardware-apparaat geen ingebouwde ‘Qobuz’-functionaliteit heeft (bv. ‘Marantz’) dat de zogenaamde ‘omwegen’ via universele niet-merkgebonden protocollen als ‘UPnP/DLNA’ of ‘Chromecast’ weliswaar toelaten om ‘Qobuz’ te streamen naar het apparaat maar dan NIET ‘gapless’.

      1. Hallo Erwin,

        Dat hangt van je streamer af. Ik stream gapless Qobuz over UPnP naar mijn oude Naim ND5XS met BubbleUPnPServer (en laat Bubble de stream converteren van FLAC naar PCM).

        Ik heb hetzelfde geprobeerd met andere streamers die ik voor een review thuis had. Een Primare met hun Prisma streaming platform ging niet goed, bijvoorbeeld. Maar voor Prisma heb je dat ook niet nodig, het was puur uitproberen van mijn kant. Hetzelfde gold voor de Platin hub (die Buchardt en System Audio gebruiken), maar die hub heeft sowieso een uitdaging met gapless streamen.

        Je hebt gelijk: goed van te voren informeren en ook gedemonstreerd krijgen dat het werkt.

        1. Bedankt Martijn voor de reactie. Het is blijkbaar nog ingewikkelder en genuanceerder dan ik dacht. Nu eens niet, dan weer wel, naargelang de streamer. Ik vind het jammer dat in veel hifi-reviews deze kwestie onderbelicht blijft. Het illustreert jouw en mijn punt: ga er niet op voorhand van uit dat gapless playback wel zal lukken maar test het eerst daadwerkelijk.

          1. Wij zullen het altijd benoemen als een speler NIET gapless speelt. Geen zorgen. Ik speel zelf best wat mixalbums (progressive rock, trance, elektronische muziek, etc.). En Martijn speelt veel klassiek. Het zal dus zeker opvallen.

      2. Dag Erwin,

        Ik heb een Marantz streamer dac netwerkspeler die geen Qobuz ondersteunt en gebruik de MConnect app op IOS. Hiermee is het perfect mogelijk om gapless playlists af te spelen. Als player gebruik ik dan de Marantz zelf of JPlay Femto op de laptop via Usb verbonden met de Marantz.
        Hopelijk ben jij hiermee geholpen!

        Vriendelijke groeten

        Bart

        1. Dag Bart, bedankt voor de tip! Ik heb deze namiddag de ‘MConnect’ app getest op mijn Linn Majik streamer. Gapless playback was, op deze streamer althans, niet mogelijk. De instelling was nochtans geactiveerd. Niet erg, ik behelp me gewoon verder met de ‘BubbleDS’ app.

          Ik test die ‘MConnect’ app binnenkort op de Marantz netwerkspeler van mijn vriendin. In ieder geval, goed dat het bij jou wél lukt. Misschien werkt de IOS versie anders? Je verwijst ook naar een usb-audio connectie via een laptop of PC. Ik heb daar ook een beetje ervaring mee en ik heb met usb-audio nooit problemen ervaren wat het gapless spelen betreft. De ‘Qobuz’ desktop app bijvoorbeeld werkt als softwarematig vertrekpunt vlekkeloos.

          1. Dag Erwin,

            Bijkomende test i.v.m gapless playback gedaan met MConnect op IOS.
            Streaming van ‘Rachmaninov Variations’ van Daniil Trifonov is een uitstekende test . Bedankt hiervoor!
            Ditmaal gestreamd vanuit Qobuz d.m.v IOS app MConnect naar laptop waarop JRiver geïnstalleerd staat.
            De code gapless bij de instellingen van MConnect moet wel aan staan.
            Resultaat is OK. Perfect gapless!
            Ook streaming van Playlists uit Qobuz werkt perfect gapless.
            Hopelijk ben jij hiermee geholpen!

            Vriendelijke groeten

            Bart

            1. Bedankt Bart voor de tip!

              Ik heb de ‘MConnect’-app (Android versie) getest op de ‘Marantz’ netwerkspeler (NA8005). ‘Marantz’ heeft geen ingebouwde ‘Qobuz’ functionaliteit. Maar langs deze weg ging het streamen van ‘Qobuz’ perfect én deze keer gapless!

              Na wat zoekwerk op het internet vond ik ook een methode om via de ‘BubbleUPnP’-app de ‘Marantz’ gapless aan de praat te krijgen: More –> Settings –> Renderers settings (configure settings for each renderer) –> Select renderer –> apparaat kiezen –> Proxy Qobuz tracks: aanvinken.

              Beide manieren werkten op de ‘Marantz’ maar NIET op de ‘Linn Majik’. Waarmee nog maar eens aangetoond is wat een kluwen het is. Gelukkig ondersteunt de ‘Linn Majik’ wél ‘Qobuz’ dus er zijn andere manieren om gapless te streamen (bv ‘Bubble DS for Linn’ of de eigen ‘Kazoo’-app van Linn).

              Ook dank aan al wie reageerde en meedenkt over die ‘gapless’-kwestie.

      3. Goed laten informeren is inderdaad de beste tip! Zelfs fabrikanten zetten vaak niet eens in de specificaties of gapless playback nou wel of niet ondersteund is. Sowieso ondersteunen UPnP/DLNA streamers het standaard niet, omdat het hier gaat om ‘bestand-na-bestand’ protocollen. Je hebt een extra laagje nodig die als het ware één lang bestand aan biedt, vergelijkbaar met een internet radio station. Zoiets -ik ken de details niet- zal de BubbleUPnP app ook wel doen. Gesloten systemen met een eigen OS pakken het vaak beter aan: bijvoorbeeld Sonos en BluOs zijn netjes gapless.

        Tot slot vind ik het echt niet van deze tijd om streamers te verkopen waarbij het niet is geïmplementeerd. Gapless is echt een probleem dat al jaaaaren geleden is opgelost. Ik zet mijn hoop maar op meerdere ‘connect’ implementaties, zoals die er al zijn voor Spotify en Tidal.

    3. Erwin B
      Gapless, zonder ruimte tussen de nummers, of toch in bepaalde configuraties?
      Ik vind het soms hinderlijk.
      Kan die functie uitgeschakeld worden?
      En wat gebeurt er dan?

      1. Gapless betekent dat tracks die zonder pauze achter elkaar gespeeld moeten worden geen pauze krijgen, terwijl tracks die normaal wel een stilte tussen de nummers hebben die stilte houden.

        Het is geen functie die je in- of uitschakelt, maar een eigenschap van het streaming protocol dat je gebruikt.

      2. Hallo Toon.

        Een tip die ik (denk ik) op deze site ontdekte. Een handig voorbeeld om gapless playback te testen is de ‘Deutsche Grammophon’ opname van de ‘Rachmaninov Variations’ gespeeld door Daniil Trifonov (piano) met ‘The Philadelphia Orchestra’ o.l.v. Yannick Nézet-Séguin (opname beschikbaar op de meeste streaming platforms). Bij gapless playback vloeien de verschillende korte bewegingen van de compositie naadloos in elkaar over, zoals bedoeld door de componist. Indien er geen gapless playback mogelijk is valt er tussen de variaties telkens een korte maar hinderlijke stilte. ‘The Dark Side of the Moon’ van Pink Floyd is een ander klassiek voorbeeld.

Geef een antwoord