For maximum performance, you need to use the native Linux-ALSA stack! Please avoid PulseAudio if you want to obtain the best audio quality from your Tone2 Pro or Tone1.
NOTE: You can skip this step if PulseAudio not installed in your system. To check, use the command:
which pulseaudio || echo PulseAudio not installed
If PulseAudio is installed, it is very easy to create a custom configuration file!
sudo tee /etc/udev/rules.d/89-pulseaudio-usb.rules <<END
Now just re-plug your Tone2 Pro or Tone1 device to your machine for the new configuration to take effect.
Enter the following command into Terminal:
grep -H DSD_U32_BE /proc/asound/card?/stream0 && \
Your Linux system is using an old kernel! Please check your kernel version using the command
uname -r, and check this topic https://forum.khadas.com/t/does-the-v2-00-firmware-sound-better/10176/6, and then upgrade your Linux kernel.
Get a list of all supported audio file formats using Terminal:
grep "" /proc/asound/card?/stream0
Khadas Tone2 Pro at usb-0000:03:00.4-1, high speed : USB Audio
Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.
- Maximum performance - YES
- Bit-perfect audio playback - YES
- Native DSD playback - YES
sudo apt-get install mpd mpc ncmpc
Create music folders and the mpd config file (your music library must be accessible from these folders)
mkdir -p ~/mpd/music ~/mpd/playlists
MPD searches for a config file in
/etc/mpd.conf or … read more
$ nano ~/.mpdconf
# ~/.mpdconf - minimal mpd configuration for bit-perfect DSD playback
aplay -L|grep -A1 ^hw:- full list
aplay -L|grep -A1 ^hw:|grep USB -B1- only usb list
aplay -L|grep -A1 ^hw:|grep Tone -B1|head -n1- only for Tone board
The system will automatically start the MPD service, we need to restart this service with ordinary users
$ sudo systemctl stop mpd
mpc is a command-line client for the Music Player Daemon (MPD). It connects to a MPD and controls it according to commands and arguments passed to it. If no command is given, the current status is printed (same as “mpc status”).
mpc add DSD_test_512.44100.2.dsf
cat $(dirname /proc/asound/card?/stream0)/pcm?p/sub?/hw_params
Native 512-DSD output example:
- mpc - command-line client (must have)
- ncmpc - common console GUI (must have)
- M.A.L.P. - android client
- A MPD client for iOS - iOS player
- full list - https://www.musicpd.org/clients/
All are welcome to give comments, replies and suggestions for improvement!