Audio Tuning / Audiophile Dietpi

i thought it might be worthwile to start a topic to collect hints and experiences to tune dietpi even further to become the audiophile distro of choice.

I saw the great work of dynabot , but seems to be down:

I tried quiet a few distros and think that dietpi already offers a lot. I use MPD and got a fairly maxed out DAC (Andrea Mori DAC with fifo, I2SoverUsb, Drixo External clocks).

In the past is used an Alix1D board witha sotm USB-card and MPDpuppy:
https://oldforum.puppylinux.com/viewtopic.php?t=81984&start=525

lots of good discussions on tuning ideas, but not maintained in the last 10years anymore…

So, I hope more people are interested and bring some ideas to the table. Currently i play with different Mini-Computer, like the Odroid C2 at the moment…BBB…Rp…

A few initial ideas:

  • testing a real-time kernel …the update seems to be easy, no ? aptitude install linux-image-rt-amd64 linux-image-rt-amd64-dbg linux-headers-rt-amd64 ?

  • Following Dynobots Path, but see what is stuff we can use nowadays, some things like nrpacks as a parameter to tune the USB-output are gone by now (unfortunately)…, but his Agenda was:

  1. Improving the priority of the Audio group
  2. Improving the audio thread priority
  3. Improving the latency of the Operating System with Kernel adjustments
  4. Improve network latency

…i think still a good plan…needs only an update on the details…

Lets be clear: I am not a Linux guy at all, i just google around and had great experience with mpdpuppy…now, dietpi has so much more options regarding apps etc, it would be cool to get at at the same audiophile level…

I love the option to change the CPU frequency while playing music…like it slow…250mhz at the moment…not yet sure if i like a dedicated mpd core better…playing with different buffers for mpd/usb…

Ideas to additionally follow up on:

Ok, First Findings:

Both, CPU-Frequency and selected Governor make quiet a remarkable difference / are audible (all remarks based on Odroid C2 with a Powerbank-PSU, so on battery)

Cpu-Frequency:
From tuning now Audio-PC the last 20 years, I learned: Fixed Frequency, please. We want it as stable as possible. Now to the details from my listening session last night:

The higher the frequency - the more you pronounce the trebles…becomes finer and the imaging goes deeper. At the same time the music looses warmth/body/naturalness of transients, it sounds more technical and less warm. My favourite setting is 250 min and max

Governor: That has been a surpise. Never thought that this is audible, 250mhz ist 250 mhz, right ? Wrong. Each setting has a kind of haze effect like you look through glass, even with slightly different flavors, but when choosing manual-no governance: BINGO !!! The glass-haze-effect is gone. The room is deeper, the treble clearer, the tone fuller, everything without execption suonds much more natural and better.

What I really LOVE in DIETPI: I can have on my ipad a window open with a SSH-client, listen to music and can switch those setting with a simple menu selection. THIS IS AWESOME.

Why ? In audio it is so easy to fool yourself. Going back and compare sound needs to be simple and quick. If I need to edit different configuration files, reboot the machine etc…my brain is already consumed and messed up. Very difficult to judge then hwat is doing what. But with such a nice switch which makes this a 2sec job and no rebooting needed ? Great…

DietPI-Team: PLEASE…give us more performance options like buffers etcs which are as easy to use …wonderful feature…as well a finer frequency selection between 250…500 mhz for the CPU would be very cool.

So, next I will try the Software Prioritisation-/and Core-Deication Settings in Dietpi-Services and see what does this…unfortunately I can only see MPD and the apps…would be cool to see as well the I/O- / ALSA /USB-threats and reprioritize them as an option vs. the rest…so grouping them together and put all of them on one core as an example…

1 Like

If I remeber correctly problems with the clock appeared with speeds under 600mhz, at least on RPis.

Imho, If you want good sound, buy equipment what is build for this usecase, like good USB audio interfaces and a good pair of speakers.
I mean, when you can hear differences when the clock speed changes… Why would I use this when I want to enjoy high quality audio? :slight_smile:

1 Like

Well, because this is better…I just had the Sotm Audio specialized streamers here with external linear PSU…2000€…got killed by the c2/dietpi…I own as well a Bluesound nt130 with linear PSU…no chance as well…the Alix1D or the C2 outperform those…so

…maybe if i invest like xxxxx$+ …but why would this be fun ?

There are not many producers who really go deep into the hardware AND software tuning it to the max…Sotm is specialized in building great hardware…software is fedora…standard.

I believe my equipment is already above most of the stuff you can buy literally as I am in DIY audio now for more than 30years…on the DAC side i built like 10 dacs in the last 25 years…finally got to www.thewellaudio.com…even better than soekris r2r, easily outperforming DcS…but this needs now the best source possible and this will be DIY as well.

Some fruit for thought:

From H. Akkan, M. Lang, L.M. Liebrock, Stepping towards noiseless Linux environment

So, Isolcpus ist mandatory, csets should be similar…but tickless ist the target…

I am working on it and at least understand that the Kernel of Dietpi has been compile with supporting tickless mode:

grep CONFIG_NO_HZ= /boot/config-uname -r
shows:
CONFIG_NO_HZ=y

I read though the white paper of the inventor of this:
https://www.kernel.org/doc/Documentation/timers/NO_HZ.txt

but when I nano boot.cmf on my C2 and recompile with kernel commands
isolcpus=3 nohz=on CONFIG_RCU_FAST_NO_HZ=y nohz_full=3

checking the effect of this

cat /sys/devices/system/cpu/isolated : I can see the cores isolated…so Core isolation works…HTOP shows this as well nicely when the processor column is activated

BUT
cat /sys/devices/system/cpu/nohz_full gives me the error
cat: /sys/devices/system/cpu/nohz_full: No such file or directory

…so no nohz_full activated…

Is this potnetially a x86 only feature ? Not there for ARM ? I searched but could not find anything on that…

except: [GIT PULL] nohz: Full dynticks for 32 bits and arm support

…so if that got into any official version (was 9 years ago) it should work on an ARM as well…