lintweaker / xmos-native-dsd Goto Github PK
View Code? Open in Web Editor NEWnative DSD playback support on Linux for USB DACs
License: GNU General Public License v2.0
native DSD playback support on Linux for USB DACs
License: GNU General Public License v2.0
I have TEAC NT-503 USB DAC, and I tried the native dsd mode.
Finaly I did it. (I confirmed the 2.8M, 5.6M, and 11.2M native mode.)
My Environment:
OS: Ubuntu-studio 16.04
kernel: 4.4.0-51-lowlatency (x86_64)
Player: mpd-0.19.19 + patch"mpd-dsd-019"
DAC: TEAC NT-503 (perhaps, UD-503 and UD-501 are also OK.)
Point:
Altsetting"3" is the native dsd mode on TEAC NT-503. -> modify kernel module.
XMOS U8 chip, it supports native mode up to DSD256 under windows. Should be able to support native dsd.
Checked the USB ID code it is different from XMOS code from lintweeaker's code, however it is still XMOS.
Tried the compiled MPD with native dsd support and it is not working. I suppose it is the ALSA part that's not picking it up?
Can you help add this support to the kernel or provide a way to patch it ?
I am currently running RPI 2 with debian based Volumio
updated to kernel
Linux volumio 4.1.4-v7+ #808 SMP PREEMPT
Thank you very much.
Gustard X20
USB ID 20b1:000a XMOS Ltd
Hi!
lsusb
Bus 002 Device 002: ID 20b1:2012 XMOS Ltd
Ustars Audio at usb-1c1c000.usb-1, high speed : USB Audio
If do not edit quirks.c I hear noise when switching modes DSD Native mode 0/2
If i add
/* XMOS based USB DACs */
switch (chip->usb_id) {
case USB_ID(0x20b1, 0x3008): /* iFi Audio micro/nano iDSD */
case USB_ID(0x20b1, 0x2008): /* Matrix Audio X-Sabre */
case USB_ID(0x20b1, 0x300a): /* Matrix Audio Mini-i Pro */
case USB_ID(0x20b1, 0x2012): /* ULTRAS DAC */
if (fp->altsetting == 2)
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
break;
case USB_ID(0x20b1, 0x000a): /* Gustard DAC-X20U */
case USB_ID(0x20b1, 0x2009): /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
case USB_ID(0x20b1, 0x2023): /* JLsounds I2SoverUSB */
case USB_ID(0x20b1, 0x3023): /* Aune X1S 32BIT/384 DSD DAC */
case USB_ID(0x2616, 0x0106): /* PS Audio NuWave DAC */
if (fp->altsetting == 3)
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
break;
default:
break;
}
section
case USB_ID(0x20b1, 0x2012): /* ULTRAS DAC */
when dsd native mode = 0
Ustars Audio at usb-1c1c000.usb-1, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 392
Momentary freq = 384001 Hz (0x30.0008)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 2
Format: SPECIAL DSD_U32_BE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 3
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
002/002
20b1:2012
USB Mixer: usb_id=0x20b12012, ctrlif=0, ctlerr=0
Card: Ustars Audio at usb-1c1c000.usb-1, high speed
Unit: 10
Control: name="Ustars Audio Output Playback Volume", index=1
Info: id=10, control=2, cmask=0x0, channels=1, type="S16"
Volume: min=-32512, max=0, dBmin=-12700, dBmax=0
Unit: 10
Control: name="Ustars Audio Output Playback Volume", index=0
Info: id=10, control=2, cmask=0x3, channels=2, type="S16"
Volume: min=-32512, max=0, dBmin=-12700, dBmax=0
Unit: 10
Control: name="Ustars Audio Output Playback Switch", index=1
Info: id=10, control=1, cmask=0x0, channels=1, type="INV_BOOLEAN"
Volume: min=0, max=1, dBmin=0, dBmax=0
Unit: 10
Control: name="Ustars Audio Output Playback Switch", index=0
Info: id=10, control=1, cmask=0x3, channels=2, type="INV_BOOLEAN"
Volume: min=0, max=1, dBmin=0, dBmax=0
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: USB Audio
name: USB Audio
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 0
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 384000 (384000/1)
period_size: 32768
buffer_size: 131072
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: USB Audio
name: USB Audio
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 0
state: RUNNING
owner_pid : 4927
trigger_time: 6609.441464067
tstamp : 0.000000000
delay : 107696
avail : 23808
avail_max : 129024
-----
hw_ptr : 1400079
appl_ptr : 1507343
tstamp_mode: NONE
period_step: 1
avail_min: 32768
start_threshold: 98304
stop_threshold: 131072
silence_threshold: 0
silence_size: 0
boundary: 1073741824
*Any ideas?
*
Hello,
I'm going to try out to listen to DSD on my ubuntu, but before I start patching my kernel I want to ask if these patches are compatible with the Debian/Uubuntu kernel sources?
I have Debian and Ubuntu machines for the test.
I'll use JLSounds XMOS board.
The question may be stupid, but as far as I see there are only RPMs in the repo, so I wanted to ask before I start.
Any ideas? Someone did this?
Is there any way to directly feed dsd data to hdmi?
So that AVR can decode it & play it
I’ve got Aune T1se (this is the third iteration of T1 that was released recently):
[http://en.auneaudio.com/index.php?s=Home/Article/detail/id/124.html]
and recent mpd-dsd from https://aur.archlinux.org/packages/mpd-dsd/ :
$ mpd -V
Music Player Daemon 0.19.12-dsd
Copyright (C) 2003-2007 Warren Dukes <[email protected]>
Copyright (C) 2008-2014 Max Kellermann <[email protected]>
This is free software; see the source for copying conditions. There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Database plugins:
simple proxy upnp
Storage plugins:
local smbclient nfs
Neighbor plugins:
smbclient upnp
Decoders plugins:
[mad] mp3 mp2
[vorbis] ogg oga
[oggflac] ogg oga
[flac] flac
[opus] opus ogg oga
[sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
[audiofile] wav au aiff aif
[dsdiff] dff
[dsf] dsf
[faad] aac
[wavpack] wv
[modplug] 669 amf ams dbm dfm dsm far it med mdl mod mtm mt2 okt s3m stm ult umx xm
[ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg opus psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve
[pcm]
Output plugins:
shout null fifo pipe alsa ao oss pulse jack httpd recorder
Encoder plugins:
null vorbis opus lame wave flac
Archive plugins:
[bz2] bz2
Input plugins:
file alsa archive curl ffmpeg smbclient nfs mms cdio_paranoia
Playlist plugins:
extm3u m3u pls xspf asx rss soundcloud cue embcue
Protocols:
file:// http:// https:// mms:// mmsh:// mmst:// mmsu:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps:// smb:// nfs:// cdda:// alsa://
Mpd starts playing dsf files as usual, but I get no sound.
$ lsusb -d 20b1
Bus 002 Device 002: ID 20b1:3023 XMOS Ltd
$ cat /proc/asound/DAC/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 22050
buffer_size: 88200
$ cat /proc/asound/DAC/pcm0p/sub0/stream0
aune T1 USB DAC at usb-0000:00:12.2-1, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 3
Packet Size = 228
Momentary freq = 176376 Hz (0x16.0c08)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL DSD_U32_BE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Let me know if you need something else. Thanks!
http://oppodigital.com/headphone-amplifier-ha-1/
Is Xmos based: http://www.xmos.com/blog/xmos/post/customer-focus-oppo-digital
What do I need to provide to get it supported? (DoP works OK)
Thanks!
Will really appreciate if anyone share the way to get 48 KHz out of Anamero combo 384. the default seeing is always providing 44.1 kHz with the clock prescalar of 1. Thanks in advance..
Oppo 105D seems to have the same XMos interface as HA-1, but the USB ID (22d9:0451) is different.
Could you add this USB-ID too xmos-native-dsd too?
Thank you much and Liebe Grüße
Hi! Can you crate global patch for all dsd dacs?
I have a TEAC-UD501 and am willing to do some testing. I looked for the 'archived' issue but couldn't find it.
Would it be possible to add support for the Moon Neo 230HAD?
cat /proc/asound/card1/stream0
Simaudio Ltd. MOON USB DSD HD Audio at usb-lm1-1.2, high speed : USB Audio
Playback:
Status: Running
Interface = 2
Altset = 1
Packet Size = 448
Momentary freq = 352910 Hz (0x2c.1d20)
Feedback Format = 16.16
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
lsusb -s 1:3 -v
Bus 001 Device 003: ID 2397:000d
Device Descriptor:
idVendor 0x2397
idProduct 0x000d
iManufacturer 1 Simaudio Ltd.
iProduct 2 MOON USB DSD HD Audio
Hello :
I use Gustard DAC-X20U(0x20b1, 0x000a) in linux and play music fail if the file is 16bit or 24bit without any resample ,here show some information about this card as below list:
~ # cat /proc/asound/card0/stream0
XMOS HIFI-Ref at usb-platform-1.1, high speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 2
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 3
Format: S32_LE DSD_U32_BE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
from these message ,there is not interface which can support "S16_LE or S24_3LE",I want to know if there are some special setting at usb audio driver layer to compilcance with S16_LE/S24_3LE?
thanks !
Hi Lintweaker,
JLsounds converter boards supports DSD native up to DSD256.
Could you please include it to the list of supported converters if it's possible?
The USB ID of JLsounds is 20B1:2023
Kind regards
Lyuben
I have new DAC
(0x27f7, 0x1301): /* like Wyred DSD
add to
case USB_ID(0x29a2, 0x0086): /* Mutec MC3+ USB /
case USB_ID(0x20b1, 0x2005): / Denafrips DAC /
case USB_ID(0x27f7, 0x3002): / W4S DAC-2v2SE /
case USB_ID(0x27f7, 0x1301): / Wyred DSD Interface */
if (fp->altsetting == 3)
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
break;
default:
break;
But allways S32_LE
Kernel realtime 4.4.3_rt9
Kernel standard 4.4.5
Alsa 1.1.0
Distribution: Archlinux
Is seems that DSD play is broken on these kernels (at least DoP, maybe also native)
In two different computers checked with MPD and HQPlayer
iFi micro iDSD led confirms receiving DSD signal, but right channel is muted.
Hi, I'd like to mention that FiiO K3 is also based on XMOS U30881C10 (according to its amazon page) and supports native DSD on windows with ASIO driver.
The usb ID is 2972:0047
Thank you.
I am trying to patch quirks.c for DSD native output ONLY. Since this DAC is using the Gustard USB interface I have made this modification:
case USB_ID(0x20b1, 0x000a): /* Gustard DAC-X20U /
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
break;
case USB_ID(0x20b1, 0x2009): / DIYINHK DSD DXD 384kHz USB to I2S/DSD /
case USB_ID(0x20b1, 0x2023): / JLsounds I2SoverUSB /
case USB_ID(0x20b1, 0x3023): / Aune X1S 32BIT/384 DSD DAC /
case USB_ID(0x2616, 0x0106): / PS Audio NuWave DAC */
if (fp->altsetting == 3)
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
break;
default:
break;
}
Result: DoP is working, but native DSD output only noise
DAC is displaying PCM 176.4 when playing DSD 128 and PCM 384 when playing DSD 256 while this noise is happening
Some suggestions?
Hi!
My pleasure!
Can you some more expanded told about new method of dsd native support!
THANK YOU!
Maybe I am asking too much... but, since I have the last DIYINHK XMOS xu216 card capable of DSD1024, I would like to know how to enable it in linux. Thanks.
Hello! There is an idea to check the Native mode with this DAC. But unfortunately it locally, I can not do that. I can only prepare OS system in advance and send the person to be tested.
Maybe someone will tell USB_ID?
Maybe some like USB_ID(0x2616, 0x0106): /* PS Audio NuWave DAC */
ref.: http://www.amanero.com/drivers/nativeDSD.txt
It seems that with new firmware Amanero Card is supporting DSD native in linux. These are the data given by Amanero:
OEM Combo384 default VID=0x16d0 PID=0x71A
To enable/disable native DSD on Combo384 an USB Control request must be sent to endpoint 0. This procedure is supported on all firmware versions.
On firmware_1099rc1 an USB alternate settings "2" with a native DSD endpoint is supported.
The control request is of type Vendor to the Device.
bmRequestType=0x40,
bRequest=0xB1,
wLength=sizeof( struct VAD_DATA ),
Data is a variable of type struct VAD_DATA
struct VAD_DATA {
unsigned int command;
unsigned int length;
unsigned int buffer[64];
};
To enable native DSD
command=0x8000
length=0
buffer=undefined values
To disable native DSD
command=0x10000
length=0
buffer=undefined values
Possible to support? Thanks!
I really love your work! What do you think if we work together to integrate this in Volumio?
Some people are reporting some messages like this when this dac (in theory uac2 compliant) is connected to USB:
[ 246.137526] usb 3-1: Not enough bandwidth for altsetting 1
[ 246.137527] usb 3-1: 2:1: usb_set_interface failed (-22)
[ 246.141100] xhci_hcd 0000:02:00.0: ERROR: unexpected command completion code 0x11.
Do you think this is a driver problem?
The Armature Hecate interface is close to (maybe even identical to) the Singxer F-1.
It support up to native DSD 256 on its USB input. It has an I2S output which always produce a native DSD data flow. I'm using it with success up to DSD 128 with a NanoPI Neo or a RPI3 with DietPI and RoonBrdige. The Roon support team told me to look at this project, and it seems that here is a solution.
However the Armature Hecate is not in the supported list. The command lusb produce the following:
root@DietPi:~# lsusb -d 20b1:
Bus 001 Device 002: ID 20b1:3086 XMOS Ltd
I noticed that 20b1:3086 is neither 20b1:3008 nor 20b1:2009.
Not sure it is the correct place (by raising an issue here) to ask this update, correct me if I'm wrong, sorry in advance.
Is it possible to have an update of the lintweaker/xmos-native-dsd project that would support the Armature Hecate board ?
Thanks and congrats for this initiative 👍
Card specifications:
card1 USB Audio card usb6 --> 152a:85dd SMSL SMSL M8A
The output of this dac from /proc/asound is
``SMSL SMSL M8A 1.1.2 at usb-0000:00:1d.0-1.3, high speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000 Data packet interval: 125 us
It should have support for DSD native up to DSD512. The patch should use Altset3?
Hi,
this integrated amplifier:
https://www.mission.co.uk/778x/
advertises native DSD support up to DSD256 but I'm currently unable to take advantage of this with Linux because it's not recognized:
Its PRODUCT_ID:VENDOR_ID are:
# lsusb
...
Bus 001 Device 004: ID 2622:0011 MISSION MISSION USB Audio 2.0
...
According to this review:
https://hxosplus.gr/reviews/amps/mission-778x-review-test/
it should have as XMOS USB interface chip and the ESS DAC.
Actual "cat /proc/asound/M20/stream0" output:
MISSION MISSION USB Audio 2.0 at usb-0000:01:00.0-1.2, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 392
Momentary freq = 384049 Hz (0x30.0190)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 0x01 (1 OUT) (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Bits: 24
Channel map: FL FR
Sync Endpoint: 0x81 (1 IN)
Sync EP Interface: 1
Sync EP Altset: 1
Implicit Feedback Mode: No
Interface 1
Altset 2
Format: S16_LE
Channels: 2
Endpoint: 0x01 (1 OUT) (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Bits: 16
Channel map: FL FR
Sync Endpoint: 0x81 (1 IN)
Sync EP Interface: 1
Sync EP Altset: 2
Implicit Feedback Mode: No
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 0x01 (1 OUT) (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Bits: 32
DSD raw: DOP=0, bitrev=0 <---------
Channel map: FL FR
Sync Endpoint: 0x81 (1 IN)
Sync EP Interface: 1
Sync EP Altset: 3
Implicit Feedback Mode: No
Any suggestion how to add support for this device?
Vendor offers only a WIndows driver and is unresponsive to requests....
Has some figured out what is needed (and if possible at all) to support the D1100 of McIntosh? Playback right happens via PCM-convert through ffmpeg to 32bit/352.h kHz :-(
Thanks!
I have just checked kernel 4.4.3-rt9-1-rt, mpd-git, Alsa 1.1.0 and iFi micro iDSD DAC, playing a DSD 128 dsf file.
Both MPD and HQPlayer are working fine, led on iFi DAC is signalling DSD. Sound is right.
Alsa, strangely, is giving
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 32768
buffer_size: 131072
Mpd configuration is
audio_output {
type "alsa"
name "DSD"
device "hw:0,0" # optional
auto_resample "no"
auto_format "no"
mixer_type "disabled"
dsd_usb "yes"
}
But I am sure that only DSD is arriving to the DAC, since mpd cannot convert to PCM!
I have the same result using HQPlayer with the options DirectDSD, DoP, SDM
How do you explain this?
Hi,
Is this patch still necessary with Ubuntu 18.04 and ALSA 1.1.9?
Do we still need to compile Kernel to add native DSD support?
Thank you.
Juno
Hello Lintweaker,
I've followed your latest work on Linux, especially on Github and I tried to contact you on DIYaudio on 14th February 2016 but got no response till now. I came here to ask for a bit of your time and help me add WaveIO board in the list of devices that are supported in Linux OS as per this link:
https://github.com/lintweaker/xmos-native-dsd
This WaveIO board does not have same USB VID as XMOS like many other competing boards do because it does provide a fully featured driver in Windows and for that, I was forced to acquire a Microsoft Authenticode certificate along with different USB VIDs than those used by XMOS.
In case are needed:
WaveIO USB VID = 0x20A0
WaveIO USB PID for HS USB Buses = 0x4143
I'm assuming that you only need PID for USB High Speed bus still I have the other one for FS if needed!
As for testing, I'm only using Windows... -as the worse thing happened in my life- but I have a friend of mine who can run whatever tests we have to conduct to fulfill this request.
Thank you for your time and patience,
Lucian (Lorien on DIYaudio forum)
Brinkmann Audio Nyquist DAC is also XMOS based and supports up to DSD256 native.
VID: 0x20B1
PID: 0x3093
Can the Primare Prisma DAC be supported?
First rows of lsusb -v;
Bus 001 Device 002: ID 24a4:0002
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x24a4
idProduct 0x0002
bcdDevice 6.f2
iManufacturer 1 Primare
iProduct 3 Primare_DM35_v1.06
iSerial 0
bNumConfigurations 2
Playing a ordinary 16 bit FLAC-file;
cat /proc/asound/card1/stream0
Primare Primare_DM35_v1.06 at usb-0000:00:14.0-3, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 2
Packet Size = 72
Momentary freq = 44102 Hz (0x5.8340)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Bits: 16
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Bits: 32
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Bits: 32
Hi,
I have an Aune S16. I'ts XMOS receiver appears to be the same as the Aune X1S which has support on the linux kernel:
lsusb gives the following:
lsusb -d 20b1:
Bus 001 Device 006: ID 20b1:3023 XMOS Ltd
If I have understood correctly, there should be DSD_U32_BE for this receiver too, however aplay -l output is:
Card 1, ID DAC', name
S16 USB DAC'
Device 0, ID USB Audio', name
USB Audio', 1 subdevices (1 available)
2 channels, sampling rate 44100..384000 Hz
Sample formats: S32_LE
BTW, I am also an owner of a DIYINHK XMOS based dac, where everything is fine:
Card 1, ID D20', name
DIYINHK USB Audio 2.0'
Device 0, ID USB Audio', name
USB Audio', 1 subdevices (1 available)
2 channels, sampling rate 44100..384000 Hz
Sample formats: S16_LE, S32_LE, SPECIAL, DSD_U32_BE.
I use latest odroid kernel which as far as I know has latest code backported with regards to the DSD format:
https://github.com/hardkernel/linux/blob/odroidc2-3.14.y/sound/usb/quirks.c
Regards,
Michael
I can not in any way get the lack of clicks on my DAC, even using DSD_Native mode.
my Ustars Audio XMOS AK4495 dsd DAC ( #8) work with your patch
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 88200 (88200/1)
period_size: 11025
buffer_size: 44100
I read that in contrast to DoP mode, DSD Native does not have these problems.
I ask not to close this task!
I wrote to the developers MPD (and email to ALSA devs)
http://bugs.musicpd.org/view.php?id=4320#c9858
But no one even wants to take on this problem!
I am sure that this problem is also related to this issue by implementing support DSD_Native!
As one of the variants of the solution, I see
add delay to 500ms in
a) When start dsd files!
b) When rewinding dsd files!
c) When switching dsd -> dsd or pcm and stop!
Or add this variable in the configuration file!
I do not know who to contact! I have written to all of whom could have help , but nobody wants to deal with this problem. Thank you!
Hi!
I use kernel from https://www.kernel.org/ linux-3.18.25
unpack to directory /usr/temo/linux-3.18.25
but
/usr/temo/linux-3.18.25# sudo patch -p1 < /usr/temo/git/SRPMS/patches/kernel/alsa-add-dsd-u32-le-v5.patch --dry-run
checking file include/sound/pcm.h
Hunk #1 FAILED at 183.
1 out of 1 hunk FAILED
checking file include/uapi/sound/asound.h
Hunk #1 FAILED at 219.
1 out of 1 hunk FAILED
checking file sound/core/pcm.c
Hunk #1 FAILED at 215.
1 out of 1 hunk FAILED
checking file sound/core/pcm_misc.c
Hunk #1 succeeded at 160 with fuzz 2 (offset 12 lines).
Did I understood correctly that each device has to be explicitly added to your patch?
I have:
Linux 4.1.10-rt11-1-rt #1 SMP PREEMPT RT (compiled few days ago) (Arch Linux)
I have your latest 0.19.10 patch for MPD (btw it doesn't compile because I have automake 1.15 and it expects 1.14 so I had to tweak this)
My outputs are:
C-Media Electronics Inc. Hegel USB Audio B at usb-0000:00:1d.0-1.7, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 2
Packet Size = 156
Momentary freq = 192000 Hz (0x18.0000)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
and
aune X1S USB DAC at usb-0000:00:1d.0-1.7, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 392
Momentary freq = 352804 Hz (0x2c.19b8)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us
In mpd log I get:
Nov 09 09:21 : alsa_output: opened hw:0,0 type=HW
Nov 09 09:21 : alsa_output: format=S32_LE (Signed 32 bit Little Endian)
Nov 09 09:21 : alsa_output: buffer: size=90..131072 time=255..371520
Nov 09 09:21 : alsa_output: period: size=45..65536 time=127..185760
Nov 09 09:21 : alsa_output: default period_time = buffer_time/4 = 371519/4 = 92879
Nov 09 09:21 : alsa_output: buffer_size=131072 period_size=32768
Nov 09 09:21 : output: opened plugin=alsa name="Card0" audio_format=352800:32:2
Nov 09 09:21 : output: converting from 352800:dsd:2
for aune and
Nov 09 09:16 : alsa_output: opened hw:0,0 type=HW
Nov 09 09:16 : alsa_output: format=S24_3LE (Signed 24 bit Little Endian in 3bytes)
Nov 09 09:16 : alsa_output: buffer: size=48..174762 time=250..910219
Nov 09 09:16 : alsa_output: period: size=24..87381 time=125..455110
Nov 09 09:16 : alsa_output: default period_time = buffer_time/4 = 500000/4 = 125000
Nov 09 09:16 : alsa_output: buffer_size=96000 period_size=24000
Nov 09 09:16 : libsamplerate: setting samplerate conversion ratio to 0.54
Nov 09 09:16 : output: opened plugin=alsa name="Card0" audio_format=192000:24:2
Nov 09 09:16 : output: converting from 352800:dsd:2
for Hegel
Playing the same file.
What should I do? Where to look next?
Is there a way to get alsa drivers detailed log to see why it insists on conversion?
Thanks for your work on the patch!
Regards
Željko Vranić
(zeljkovranic at gmail)
No longer applicable
Hi, could you add native DSD support for FiiO K3? It is based on XMOS U30881C10. Under Linux, it only supports DoP up to DSD128. Under Windows, it supports native DSD up to DSD256. The usb ID is 2972:0047.
Thank you.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.