Slow search + Chromecast/Airplay cannot be enabled

#1

Core Machine (Operating system/System info/Roon build number)

Intel Core-i7
Dual channel 16 GB ECC-DDR3 RAM
Four internal 2.5” HDDs in RAID 5 + mSATA
Ubuntu 18.04 LTS - Kernel 4.15.0-50-generic

Docker version 18.09.6, build 481bc77
docker-compose version 1.24.0, build 0aa59064

roon-server:
image: steefdebruijn/docker-roonserver
container_name: roon-server
network_mode: host
restart: unless-stopped
init: true
devices:
- “/dev/snd:/dev/snd”
environment:
- TZ=“America/Toronto”
volumes:
- /data/docker/roon/app:/app
- /data/docker/roon/data:/data
- /data/docker/roon/music:/music
- /data/docker/roon/backups:/backup
- /home/nfs/media:/media

Roon Version 1.6 (build 416) stable (64 bits) on Core and iPhone.
Serial: 0CBD9F30-BB90-479C-896D-FA8BCB5901A8

Network Details (Including networking gear model/manufacturer and if on WiFi/Ethernet)

200 Mbits Down / 30Mbits Up very stable Internet connection.

Router: Ubiquiti EdgeRouter 4 (ER4)
Switches: Ubiquiti EdgeSwitch 8 150W
APs: Ubiquiti UniFi AP-AC-LRR + UniFi AP-AC-Mesh

Different VLANs for Chromecasts with forwarding and mDNS repeater enabled.
Chromecast works perfectly from any other VLAN (FW Rules for inter-VLAN from other VLAN to Chromecast VLAN, and FW Rules in opposite direction for connected/related state) when using iPhone, of PC or Linux to cast, from browser of from apps like Plex or Netflix or Youtube or TuneIN… iPhone and Roon Core are on the same VLAN. Airplay works perfectly as well with same types of rules. The approach looks like this one: https://help.ubnt.com/hc/en-us/articles/204959444-EdgeRouter-Router-on-a-Stick

All Wireless devices connected to APs with high signal / high quality, almost no packet dropped. Everything is controlled with Unifi Controller and I reviewed all the logs, no problem here.

Audio Devices (Specify what device you’re using and its connection type - USB/HDMI/etc.)

Chromecast, Airplay Express, HifiBerryDAC on Raspberry Pi

Description Of Issue

I am currently having issues with the product with my trial and those issues are a show stopper. I would like to know if you are aware of those (I have seen some post but no confirmation or answer from your team) and what can we expect.

There are roughly 10 000 flac files accessible through nfs. Tidal Hifi account linked to Roon.

  1. I see my chromecast audio (1.39.154182), my normal chromecast (1.39.154182) but when I click on enable (from a PC with Roon as a Control or from an iPhone) nothing happens. No error, no box to name it. Same problem with Chromecast Audio and regular Chromecast.It works with any other app than Roon, from the same computer where there is the core server as well as from any app on the iPhone. Roon see both Chromecast with the right IPs.

  2. I can see the Airplay from the Airport Express and enable it. But when I select it as the output, nothing happens. It works with any other app than Roon, from the same computer where there is the core server as well as from any app on the iPhone. Weird thing, the IP of the Airplay is 192.168.104.102 but Roon sees it as 169.254.6.195 (an APIPA address).

I can play on other outputs such as the iPhone (and then redirect the stream to the Airplay from the iPhone, but then I am killing my battery)

I can play on another computer with Windows 10 and Roon, on regular speakers.

  1. Search is extremely slow. Between 40 seconds and 4 minutes. The auto-complete when I type in the search box is fast, it’s when I click on one of the results that it takes hours. Let’s say I type Miles Davis (it appears in real time), it then takes 2 minutes to get the page with the results with my albums and tidal albums. This is true from the iPhone app of from Windows 10 Computer with Roon.
    Browsing albums or tracks or artists is extremely fast. The issue is only the search feature.

When I search albums or artists using Tidal app (Windows and iPhone) the result is immediate.
Same performances with Plex App: it has the same Tidal account and link to the same flac files and search is fast and furious. So I would not blame the network.

I did all the basic stuff like rebooting wifi, core network, APs, Server with Roon Core, check Network logs, etc… and could not find anything. Strange thing, if I install a linux VM on the same computer where Docker Roon Core runs and execute it with Wine, the search seems faster! Still issues with the Airplay and Chromecast.

It took hours to import all my music so I cannot just spawn a Windows VM to check it. Unless I can copy the database easily from linux to windows? Is the format compatible?

Pease advise before the end of my trial,

Thank you,
Torpi

Administration privileges on core library
(Noris) #3

Hi @Torpi,

Apologies for the delay in getting back to you here. I should note that while Roon may somewhat work in the way you have things set up here, Roon is designed to operate on one flat subnet/VLAN and your proposed setup here is on the more “experimental” side of things.

This setup seems quite complex so my initial suggestion here is to simplify things a bit, by this I mean:

  • Have Roon running as the Core on a standard OS (Windows/Ubuntu/OSX)
  • Bypass the mDNS repeaters/VLAN configurations (possibly by using a consumer-grade router)
  • Have both the Core + Remote + Endpoint on the same VLAN/Subnet
  • See if things remain stable in this kind of config
  • Start adding complexity only once the simple setup is confirmed to work properly
  • This should address points #1 & #2

We are currently investigating some search issues as Mike mentioned here (Build 416 Search Performance Feedback) and this is an ongoing process. We have allocated some additional dev resources to this aspect but between 40 seconds - 4 minutes sounds very atypical, especially if this differs in a WINE environment on the same machine. I wonder if perhaps this issue is due to the OS in use and Roon being in the Docker container?

Yes, this is possible using Roon’s Backup Manager (<-clickable link) and these backups can transfer over to different platforms. You can further use these Migration Instructions to perform the database transfer over.

Please let me know if you are able to take a look at my above suggestions when you have a chance. I look forward to hearing your thoughts!

Thanks,
Noris

#4

Thank you for your response Noris.

First, the good news: I got one of the issue solved. The search speed is not an issue anymore, on all platform. My assumption that it works great on Linux with Wine was correct, but when I tested it again on Windows and iPhone later, it was normal. Looking at all my logs, the only explanation I have is that the search is slow until the initial import of the library is done.

Running the Core with docker and endpoint in the same VLAN (and same subnet) works like a charm and it’s solid and stable. I don’t need any consumer-grade router for that I have a good knowledge and control over my network.

The reason behind my Vlans is that I have close to zero trust to all those IoT devices. It’s actually pretty simple to hack, some would phone home and report metadata, so I want them to be isolated.

Currently, my setup is pretty simple with 3 VLANs (wired and wireless): private, guest, IoT. The last one includes smartbulbs, smartplugs, washer, chromecast, etc… (basically, things I don’t have root or administrative control on it + those I don’t trust security is patch correctly + those I don’t trust their data collection politic). Private is servers, alarm, videosurveillance, etc… Guest is for friends not to be polluted with IoT but separated from my private network. IoT can connect to the WAN but no other VLAN. Private and Guest can connect to IoT, and there is a rule for IoT to be able to respond, it’s basically a firewall rule to allow connection from IoT to other vlan for related or established state)

It’s pretty much the base in terms of security, nothing fancy.

I am not asking you to support my network topology or troubleshoot it. What I would like to know is what protocol, ports, multicast address… etc you are using so I can configure it accordingly and save me hours of work with Wireshark.

Currently, all apps (iPhone, Android, Windows, MacOS, Linux) in Private or Guest can discover and stream to Chromecast and Airplay. Roon is the only one that cannot. Therefore I was wondering if there is anything special you are doing or if you reject connection when the subnet is not the same since my vlans are in different subnets.

So my question here is: do you have any documentation on what rules I should allow to be able to connect and stream to Chromecast and Airplay (I am discovering it, but cannot connect)?

Thanks,
Torpi

(Allan Hsu) #5

Unlike most other Chromecast apps, our Chromecast app needs to initiate connections to your Roon core to stream music and metadata. You probably need to configure your firewall(s) to allow TCP traffic to be initiated from your Chromecasts to your core.

1 Like
#6

That indeed works. But it deceives the purpose of isolating Chromecast devices. It allows those devices to discover the network and report data/metadata to Google. There are a lot of information about that in the internet and I was able to trace some with my network equipment too.

Do you have a list of ports that I can restrict?
Same question for AirPlay.

I am considering removing this chromecast if I cannot isolated them correctly. I could put the core in the same untrustworthy Vlan but then Remote from another subnet cannot connect to it, seems a restriction on the application.

How about I use a DAC on RPi with Ropieee. Is there some documentation on what port / protocol is used?

Torpi

(Mike) #7

Hey Torpi,

We know some people have setups like this working, but as Noris mentioned this isn’t a configuration we do any testing on, nor is it one we can make guarantees about.

Feel free to open a thread in #tinkering so you can discuss this further with other Roon users, but we’re not going to be able to provide further documentation or support on this setup.

Thanks for your understanding @Torpi!

#8

Having worked as a Dev Manager for years with different technologies and companies, I found this very surprising. Usually there are some specifications for protocols and ports, and those are always published.

Some examples:

I understand you might use frameworks that you did not code in-house but even though, there should be some documentation available.

Not sure how you can setup a test environment then.

Anyway, I will do some reverse engineering with tools and decide if I go forward with your product or end after the demo period.

I quote you: “we set out to delight the most demanding music enthusiasts and audiophiles, not to acquire a billion users”. Those who are paying the price for such an experience would probably not be happy to open a door to security issues.

Thank you.