Roc Toolkit implements real-time streaming over unreliable networks like Internet and Wi-Fi. It works on Linux and macOS and provides C library, CLI tools, modules for PulseAudio and PipeWire, and Android app.

https://github.com/roc-streaming/roc-toolkit

  • Admiral Patrick@dubvee.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Ooh. I’ve been using Snapcast for my multi-room audio, but this seems more versatile. Going to check it out for sure.

    Have you used it? Curious about latency. Snapcast has about a 1 second buffer which makes it not ideal for anything beyond music casting.

    • chtk@feddit.nl
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      I’m currently using ROC on my laptop and desktop. Latency is low enough to not be noticeable when playing video on my laptop and streaming audio to the desktop. Audio can get a bit choppy if my laptop is on WiFi. But that is most probably because the signal between the repeater on the second floor and my DSL modem on the ground floor is pretty meh.

      • Admiral Patrick@dubvee.org
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        1 year ago

        Latency is low enough to not be noticeable when playing video on my laptop and streaming audio to the desktop.

        That’s basically my use case. Want to use my HTPC as the source and some RasPi’s or repurposed thin clients as the sinks - pretty much what I do now with MPD and Snapcast. I absolutely do not want to have to mess with audio offset settings in Emby to keep the dialog in sync. lol

        I’ve only skimmed the docs (holidays are a huge time sink haha), but do you know if it can do one-to-many or just one-to-one? Like, can I have one source and multiple receivers? The docs seemed to imply it could do one-to-many, but I didn’t get to dive into them deep enough.

        • chtk@feddit.nl
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          Sorry for the late reply.

          I don’t know if ROC can do multicast on its own. I use the Pipewire source and sink. And I only do the one-to-one setup.

          I did some tests in Pipewire:

          Configuring multiple sinks is possible on a machine. They simply present as additional output devices. So if you want to switch audio to another source, that should be doable by switching to another output device.

          Doing one-to-many: I don’t know if that is possible with ROC alone. You might be able to do something with Pipewire graphs