Silent Angel VitOs

Paul I had some heat issues with heat on my early Pi 4’s so yes I started to put heat sinks on everything :wink:

The whole Flirc case is a CPU heat sink in itself, as the case comes down onto the CPU. It’s a good case and at least one of mine (running DietPi) has been up for over a hundred days as well as driving one of my headphone DACS (and doing DNS duties as well).
The other is currently running VitOS again, though I am sure I will test the latest PopieeeXL again soon and then back to VitOS again.

Good that the LPS made such a difference for your listening experience
Have a good Christmas and enjoy the new setup.

Regards

Mike

1 Like

You have a good Christmas, too!

Regards

Paul

Merry Xmas everyone!

Does anybody know if it is possible to add Spotify connect and possibly Airplay as well to VitOS in some way? Thank you!

Regards,

Mano

Hi Mano and a happy Christmas to you as well.
If you want the additional services you will need RopieeeXL (not the standard Ropiee)

VitOS is a cut down, optimised just as a USB Roon endpoint

Hopefully this helps answer your question.

Regards

Mike

1 Like

VitOS Live Stream Demo

I’m going to demonstrate building a Roon endpoint from a Raspberry Pi 4 using VitOS tomorrow. I’ll be taking questions live, so feel free to join if you happen to be around at 1:00 pm PST on Tuesday, December 29th. I hope to have the stream up a few minutes early. Hope to see some of you there.

4 Likes

I’ve been using VitOS for the last week on my RPI4 4gb model. Easy to install, and works well.

But I do want to call out an odd behavior that did NOT occur on Ropieeexl:
When switching between songs of different bitdepths/frequency rates, VitOS truncates the first few samples while the DAC is still switching. This results in the first few milliseconds of a song being cut.

Ropieeexl has some sort of “wait” logic for the DAC to switch frequencies, and THEN begin playing. I never noticed the truncation when switching. But VITOS does it every time.

I prefer to play the songs bitperfect to the DAC, and let the DAC perform the switching instead of upsampling everything to the same frequency.

Anyone else notice this when using VitOS?

Oh also soundwise, I would say at best I hear a SLIGHT improvement with VitOS over Ropieeexl. Could just be my mind making things up.

For me Ropieeexl offers that “wait logic” (whatever it may be) when switching frequencies, plus airplay, spotify, uPNP, etc. so it’s the winner.

You can add delay on sample rate change to Zone settings in Roon to mitigate that

2 Likes

I’ve not noticed this, but @Yethal’s suggestion should work. If you were not able to attend my live stream, have a look at the playback where I describe how I attempted to objectively measure network performance between VitOS, RoPieee, and DietPi.

1 Like

David thanks for the video, interesting results with the optimised kernel.

I have never noticed what Chris is saying, but I am an album listener so less changing of audio settings I assume

Regards

Mike

1 Like

Yes. Same here…at least for my “serious listening” zones. :slight_smile:
Thanks for having a look. Cheers.

Going to watch this, now I am intrigued about the latency!

Also yes, Yethal’s suggestion did indeed work. Wasn’t aware of that feature in Roon.

You all are the best! :slight_smile:

Here are some round-trip plots and statistics from Wireshark. I collected these while playing Blue in Green from Miles Davis’ Kind of Blue. This is a 24-bit, 192 kHz download from HDtracks.

Again, I don’t understand why there would be a correlation between lower endpoint latency and subjective sound quality, but Silent Angel at least does what they claim to do regarding network performance. And, VitOS does sound better to me, for whatever reason. :slight_smile:

1 Like

Great explanations, Mike!

I’m also interested in why latency would matter. I mean, bits are still flowing in order they are sent, just slightly delayed, I think?

I could see lack of other background processes causing an improvement in sound quality. And VitOS does indeed do that.

Wondering what some of the other processes that run. Specifically the “lighttpd-angel” tasks.

Anyone do a network analysis of where data is going? Anything funky?

I still have my pcap traces. I’m 99.9% certain that the lighttpd-angel process is there to respond to the mobile app. All of the code for the app seems to have been written in Bash. Unusual choice, but I guess it works. I’ve not seen anything sinister in there so far.

[root@VitOS ~]# ls -l /srv/sh
total 80
-rw-r--r-- 1 root root  3875 Dec  4  2020 app.sh
-rw-r--r-- 1 root root  1543 Dec  4  2020 app_device.sh
-rw-r--r-- 1 root root   343 Dec  4  2020 app_manage.sh
-rw-r--r-- 1 root root 17513 Dec  4  2020 app_network.sh
-rw-r--r-- 1 root root  2942 Dec  4  2020 app_network_verify.sh
-rw-r--r-- 1 root root  6013 Dec  4  2020 app_roon_bridge.sh
-rw-r--r-- 1 root root  3121 Dec  4  2020 app_storage.sh
-rw-r--r-- 1 root root 15034 Dec  4  2020 app_versions.sh
-rw-r--r-- 1 root root   809 Dec  4  2020 roon_install.sh
-rw-r--r-- 1 root root    76 Oct  3 18:14 roon_install_kill.sh
-rw-r--r-- 1 root root  2083 Dec  4  2020 saos_app_install.sh
-rw-r--r-- 1 root root  2467 Dec  4  2020 saos_update.sh
1 Like

Only had a quick play with VitOS but did notice that both the USB and Ethernet interrupts are running at a very high priority (-51)…so I would image this would help reduce network latency but there may be other things also (plus it’s real time kernel). Would be interested to know more about any tuning they have done but agree can’t really correlate how reduced network latency would improve SQ

1 Like

Actually, looking at the code, this is a little funky. The roon_install.sh script includes this line:

json=$(curl -s http://silentangel.audio/files/saos/roon_bridge.json 2>&1)

Contents of that resource are:

{"thunder_roon_link": "http://silentangel.audio/files/saos.formal/RoonBridge.tar","md5": "8d90a6088db7b7d83a76b417f494b74d"}

Contents of that tar file are:

drwxr-xr-x root/root         0 2019-12-27 09:00 RoonBridge/
-rw-r--r-- root/root        99 2019-12-27 09:00 RoonBridge/install.sh
-rw-r--r-- root/root   6794208 2019-12-27 09:00 RoonBridge/RoonBridge-1.0-171-any.pkg.tar.xz

And contens of the RoonBridge-1.0-171-any.pkg.tar.xz file look suspiciously like the proprietary intellectual property of Roon Labs…

[root@VitOS RoonBridge]# tar tvf RoonBridge-1.0-171-any.pkg.tar.xz | head -n 20
-rw-r--r-- root/root       114 2019-12-27 08:53 .INSTALL
-rw-r--r-- root/root      6803 2019-12-27 08:53 .MTREE
-rw-r--r-- root/root       340 2019-12-27 08:53 .PKGINFO
-rw-r--r-- root/root     13899 2019-12-27 08:53 .BUILDINFO
drwxr-xr-x root/root         0 2019-12-27 08:53 opt/
drwxr-xr-x root/root         0 2019-12-27 08:53 opt/RoonBridge/
drwxr-xr-x root/root         0 2019-12-27 08:53 opt/RoonBridge/Bridge/
-rw-r--r-- root/root    117248 2019-12-27 08:53 opt/RoonBridge/Bridge/Base.dll
-rw-r--r-- root/root    374272 2019-12-27 08:53 opt/RoonBridge/Bridge/Broker.Messages.Core.dll
-rwxr-xr-x root/root    198656 2019-12-27 08:53 opt/RoonBridge/Bridge/ICSharpCode.SharpZipLib.dll
-rw-r--r-- root/root     40448 2019-12-27 08:53 opt/RoonBridge/Bridge/LevelDb.Database.dll
-rw-r--r-- root/root     89088 2019-12-27 08:53 opt/RoonBridge/Bridge/Messaging.dll
-rw-r--r-- root/root    194560 2019-12-27 08:53 opt/RoonBridge/Bridge/Metadata.Messages.dll
-rw-r--r-- root/root     13312 2019-12-27 08:53 opt/RoonBridge/Bridge/Pebble.Messages.dll
-rwxr-xr-x root/root      1296 2019-12-27 08:53 opt/RoonBridge/Bridge/RAATServer
-rw-r--r-- root/root      5120 2019-12-27 08:53 opt/RoonBridge/Bridge/RAATServer.exe
-rw-r--r-- root/root       152 2019-12-27 08:53 opt/RoonBridge/Bridge/RAATServer.runtimeconfig.json
-rw-r--r-- root/root     12800 2019-12-27 08:53 opt/RoonBridge/Bridge/RAATServerApp.dll
-rw-r--r-- root/root     28160 2019-12-27 08:53 opt/RoonBridge/Bridge/Roon.Audio.Raat.dll
-rw-r--r-- root/root     66048 2019-12-27 08:53 opt/RoonBridge/Bridge/Roon.Messages.dll

That’s not very good…Silent Angel Audio should not be distributing Roon Labs software from their website without permission as this would be a violation of Roon Labs copyright.

Cc: @Chorus_Chuang and @danny - hoping you guys can work this out in an approved way offline.

In my video, I incorrectly assumed that the button in the app to install Roon Bridge triggered VitOS to pull the software down from download.roonlabs.com. This is not the case…at least as of the December 7th, 2020 VitOS image. :-\

2 Likes

David do I remember correctly that VitOS only supports USB output and not Hat boards?

I just got a new Pi and a Digi+ Pro and (plain) Ropieee is installing now, though I might want to try this wireless as I plan on moving around testing it with different devices and maybe running it off battery

Regards

Mike

David I think that is why they have the App as that is pretty much its job.
Download and install RoonBridge and reading another thread Roon said they could not distribute Roon code as part of a distribution, so I assume this is how they got around it.

Regards

Mike