I started my DietPi on Raspberry Pi 3 optimisation. This device is used as a Roon Bridge and Apple Airplay end point. Apple Airplay is being used to stream Qobuz from my iPad until Roon includes this service + various other services occasionally. I use the Allo Digione Signature hat cause the USB output SQ of the Raspberry Pi is low.
This topic is to share optimizations that may improve the overall SQ of this cheap but quite good device. So feel free to share your learnings.
My setup is as following:
HDMI is off
Ethernet is off, only WiFi
Bluetooth is off
CPU is in powersave mode
CPU is in fixed frequency (600 MHz)
All Linux processes are running on core 0
All Roon Bridge processes are running on cores 1 & 2 in SCHED_RR schedule policy (real time) and priority 99 (maximum). Nice is also set to -20, may be redundant or of no use.
All Shairport processes are running on core 3 with similar options than Roon.
Overall SQ has been improved, especially dynamics and bass.
I used to use additional ALSA settings with Daphile (buffer time and period count). Those settings were having huge impact on SQ. But my knowledge in ALSA is not good enough to find where those settings were located. If one can help.
----- Edit 16th of december 2018 : CPU fixed frequency added
Use DietPi-Process_tool menu and select, for each process, the according Affinity.
Affinity is for processor’s cores.
Simply unselect the core(s) you don’t want to be used by one process, and apply by clicking OK.
Not sure you can change Alsa for Roon as it ignores the configs and has low level access. I asked a question in another thread about being able to use Alsa to mono my output as I have done this and it works for mod but not Roon.
I run my USBridge on fixed CPU frequency (720 Mhz), not sure if it improved the sound (if it did, it was minimal), but the reason is I read that CPU switching frequency was noisy.
Indeed Magnus, this was a best practice with Daphile and, I suppose, all computer based network source. I add it to the initial list.
I had set it at 600 MHz on my device. Average load is less than 5% for the 2 Roon Bridge cores, and less than 10% for Linux processes core.
Do you know how to make changes to process Affinity so they don’t reset after reboot. When I use dietpi_process-tool I can make changes, but once I reboot they are gone.
Thanks, that did the trick. But even with RoonBridge set to affinity 3, htop shows 2 cores (the top ones, 0 and 1 I would guess) working at around 4% when RoonBridge works at 8%.