384 kHz/32bit Kernel support


Is DietPi supporting or planning to support 384 kHz/32bit audio via ALSA?

More and more HiFi DACs are coming out that support 384 kHz/32bit from HW side, but seems only moodeaudio is having kernel compiled to support this audio resultion on Raspberry Pi.




Hi Janis,

The limitation with 384khz is at kernel level. The Raspberry Pi kernel only supports 192khz max at this time: https://www.pi-supply.com/product/justboom-dac-hat/

Please note that due to Linux driver restrictions, max frequency is limited to 192kHz on the Raspberry Pi

I did try and implement 384khz myself, but failed to follow the gravy train. I’am not too knowledged with the kernel source code, so, unfortunately, we’d have to wait for RPi devs to make the change.
Another user attempting to push 384khz to kernel source code: https://github.com/raspberrypi/linux/pull/1460

The Odroid’s kernel support 384khz, however, we currently experience half playback speed in MPD. This could be an issue with the MPD we compiled, but not sure at the moment. Will need to take another look.


FYI, I just downloaded and tested Moode v3.0.

384 kHz/32bit audio, when switched to Linux Kernel - Advanced, works perfect even for basic user setting up the system in web interface.

So, it is possible to achieve it and easy to use.

Have a look - would be great if you could add the same to DietPi!

I’d be very surprised if 384Khz is actually outputting 384Khz. You can check by playing a some music and listing the ALSA stream values:

cat /proc/asound/card*/pcm0p/sub0/hw_params

Moode looks impressive, however, its a complete and custom image. So, unless we know every customization/setting made for the Moode image, we cant add it to dietpi-software. Also looks like there is no documentation, or sourcecode for this either: https://github.com/moodeaudio

I don’t have 384 files, but I have a lot of 352, and DSD 64, 128, 256 music that are down converted to PCM 352 for playback by Roon.

So, I tested ALSA stream values, and can confirm it really works. I also have Allo Kali reclocker that shows status with LEDs and confirms correct I2S 352 signal being fed to it on HW level.

This is on both 352 and DSD over PCM 352 playback:
pi@moode:~ $ cat /proc/asound/card*/pcm0p/sub0/hw_params
format: S32_LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 7056
buffer_size: 14112

This is on 176 file playback:
pi@moode:~ $ cat /proc/asound/card*/pcm0p/sub0/hw_params
format: S32_LE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 3528
buffer_size: 7056

This is on 192 file playback:
pi@moode:~ $ cat /proc/asound/card*/pcm0p/sub0/hw_params
format: S32_LE
subformat: STD
channels: 2
rate: 192000 (192000/1)
period_size: 3840
buffer_size: 7680


Well, i’am surprised :smiley: lol.

I’ll download and try moode, now i’am curious :slight_smile:


When using the 4.4.30 kernel from moode on DietPi:

root@DietPi:~# cat /proc/asound/card*/pcm0p/sub0/hw_params
format: S32_LE
subformat: STD
channels: 2
rate: 384000 (384000/1)
period_size: 16384
buffer_size: 65536

Works a charm, full credit to Moode.

I’ve uploaded their 384khz kernel, you can install it on RPi 2/3 (ARMv6 not supported) with:

# - Prevent kernel/firmware/bootloader upgrades from Raspbian repo
apt-mark hold raspberrypi-bootloader raspberrypi-kernel libraspberrypi-bin

7z x -aoa package.7z -o/
rm package.7z

@Fourdee - genial!!!

Just did it also in my DietPi installation. It works.

Roon Community will love you. The super light DietPi now 384/32 and DSD compatible - this is ACHIEVEMENT!
Would be great if you could add this to your next release dietpi-config options. I will already now report this achievement in Roon Community forum for members to start using and testing.

One more thing you could simply fix is the issue of AirPlay and Squeeze coexistence on same RPI.
See a lot of discussion on it in your forum.

I found the key "-C " in Squeezelite v1.8 settings that allows to release audio card if not used by Squeezelite.
Squeezelite v1.8, Copyright 2012-2015 Adrian Smith, 2015-2016 Ralph Irving.
Usage: squeezelite [options]
-C Close output device when idle after timeout seconds, default is to keep it open while player is ‘on’

Unfortunately, the Squeezelite version you have added to DietPi is different and missing this -C key.
However, in the moode I managed to use this key successfully “-C 5” with 5 seconds release, and I had the Room, AirPlay, and Squeezelite all three coexisting & working perfectly on the same RPI.

Please have a look, I hope you can change the Squeezelite to v1.8 also on DietPi?

In our next update v138, 384kHz kernel can be installed from dietpi-config > Audio Options

Please have a look, I hope you can change the Squeezelite to v1.8 also on DietPi?

Yep, i’ll take a look, git ticket: https://github.com/Fourdee/DietPi/issues/620

EDIT: You may be interested, also coming in v138, CAVA audio vis: https://dietpi.com/forum/t/dietpi-software-details-for-all-installation-options/22/80


See my post in Roon Community

Please engage with Allo and Audiophonics teams to get their DACs in DietPi configuration menu.
They are not broadly known HiFiBerry or IQaudIO, but certainly are outperforming these two mass market brands in HiFi quality.

Allo has two amazing DACs:

Boosted by Allo reclocker:

Audiophonics has average performing DAC (better than HiFiBerry DAC+ Pro but worse than both Allo DACs in my hearing):

However, Audiophonics has new promising DSD compatible DAC coming out hopefully Dec 2016 (not yet shipping, as they yet are struggling to finalize firmware):


Just tried out queezelite and airplay on the same raspberry pi.
Now with v138 is works perfectly on the same client device!!!

Thank you for fixing it so fast!

Amazing job!

With v138 update, now it is fixed - both squeezelte and shairport nicely coexist and play one after other on the same Raspberry Pi.

THANK YOU Fourdee for getting it fixed so prompt !

So if I somehow make Dietpi stick to the next newest kernel ( don’t know how I could avoid the update, but I could play with that or if some of you had a quick idea) and upgrade to the 384 kernel, would it possible work also with the Allo Boss (for use with Roon?)