Tweaking the audio performance Rpi3
Posted: 05 Jan 2017, 23:22
Hi all.
I have been working on tweaking the runeaudio/rpi3 player software to get the best audible sound quality, and now I think I have made some progress. My tweaks is not very advanced, as im not that keen to linux software in general.
My setup is this :
Rpi3 with Aboes modifications to the power supply. This means that I have supplied the rpi with a linear psu on both 1.8v , 3,3v and 5v.
This is absolutely worth the effort and boosts the overall sound performance, even when used with a USB dac. This actually surprised me, as I didn't expect much from this tweak
The amplifier/dac is a Gato audio DIA-400.
Usb cable is a Black Rhodium Star
All my music is on a separate NAS (synology).
here is my list of tweaks:
- Isolate a CPU core and separate MPD to run on only this core (as Frank as described the the rpi3 Thread)
- Enable the kernel optimizations by entering DEV branch.
I prefer the OrionV2 setting.
- use SOXR to upscale to 192Khz/24bit ( this really depends on the DAC, some will get better performance as the SOXR is a better resampler than some of the integrated ones)
This can be done like this :
chattr -i /etc/mpd.conf
Nano /etc/mpd.conf
Add this to the active source:
format "192000:24:2"
samplerate_converter "soxr very high"
then :
Chattr +i /etc/mpd.conf
Then browse to runeaudio.local/dev and restart MPDservice
- Modify the voltage and clock frequencies on the Rpi in config.txt.
- Disable the HDMI output in config.txt
- Disable pvt (temperature mesurements in DRAM) in config.txt
- Disable the PWM_PLL in config.txt
- Add these tweaks to bootcfg.txt: (some are there already)
I have tried without any luck to isolate USB IRQ handling to a separate core, but this is unfortunalty not possible with a Rpi
My config.txt has these lines :
Notice, that when the ARM voltage is lower than -7, then the integrated WIFI stop working. I normally dont use wifi, but if necessary, ill use a edimax dongle for wifi. But going below -7 is quite noticeable.. perhaps it is because of the internal wifi/bluetooth is then disabled
Please report back if anyone tries this
Im hoping that the developers (Orion) is working to optimize the kernel optimizations to the new Rpi3 and the current kernel, because I remember how much of a difference it did on the first Rpi. On Rpi2 and Rpi3, the changes in sound is much more subtle.
Kind regards,
Rune Frost
I have been working on tweaking the runeaudio/rpi3 player software to get the best audible sound quality, and now I think I have made some progress. My tweaks is not very advanced, as im not that keen to linux software in general.
My setup is this :
Rpi3 with Aboes modifications to the power supply. This means that I have supplied the rpi with a linear psu on both 1.8v , 3,3v and 5v.
This is absolutely worth the effort and boosts the overall sound performance, even when used with a USB dac. This actually surprised me, as I didn't expect much from this tweak
The amplifier/dac is a Gato audio DIA-400.
Usb cable is a Black Rhodium Star
All my music is on a separate NAS (synology).
here is my list of tweaks:
- Isolate a CPU core and separate MPD to run on only this core (as Frank as described the the rpi3 Thread)
- Enable the kernel optimizations by entering DEV branch.
I prefer the OrionV2 setting.
- use SOXR to upscale to 192Khz/24bit ( this really depends on the DAC, some will get better performance as the SOXR is a better resampler than some of the integrated ones)
This can be done like this :
chattr -i /etc/mpd.conf
Nano /etc/mpd.conf
Add this to the active source:
format "192000:24:2"
samplerate_converter "soxr very high"
then :
Chattr +i /etc/mpd.conf
Then browse to runeaudio.local/dev and restart MPDservice
- Modify the voltage and clock frequencies on the Rpi in config.txt.
- Disable the HDMI output in config.txt
- Disable pvt (temperature mesurements in DRAM) in config.txt
- Disable the PWM_PLL in config.txt
- Add these tweaks to bootcfg.txt: (some are there already)
- Code: Select all
nano /boot/cmdline.txt
- Code: Select all
dwc_otg.microframe_schedule=0
dwc_otg.nak_holdoff_enable=1
dwc_otg.fiq_fix_enable=0
smsc95xx.turbo_mode=N
dwc_otg.lpm_enable=0
I have tried without any luck to isolate USB IRQ handling to a separate core, but this is unfortunalty not possible with a Rpi
My config.txt has these lines :
- Code: Select all
nano /boot/config.txt
- Code: Select all
max_usb_current=1
# memory options
gpu_mem=64
# Overclocking options
force_turbo=1
avoid_pwm_pll=1
arm_freq=666
over_voltage=-10
gpu_freq=333
# sdram overclock
sdram_freq=333
sdram_schmoo=0x02000020
over_voltage_sdram_p=-5
over_voltage_sdram_i=-14
over_voltage_sdram_c=-6
disable_pvt=1
# HDMI disable
hdmi_blanking=2
Notice, that when the ARM voltage is lower than -7, then the integrated WIFI stop working. I normally dont use wifi, but if necessary, ill use a edimax dongle for wifi. But going below -7 is quite noticeable.. perhaps it is because of the internal wifi/bluetooth is then disabled
Please report back if anyone tries this
Im hoping that the developers (Orion) is working to optimize the kernel optimizations to the new Rpi3 and the current kernel, because I remember how much of a difference it did on the first Rpi. On Rpi2 and Rpi3, the changes in sound is much more subtle.
Kind regards,
Rune Frost