GithubHelp home page GithubHelp logo

xmos-native-dsd's People

Contributors

lintweaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xmos-native-dsd's Issues

[Solved] TEAC-503 native dsd

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.

Need add support for Gustard X20

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

Ustars Audio XMOS AK4495 dsd DAC

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?
*

Debian/Ubuntu kernel patches compatibility?

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?

Aune T1se

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!

How to set up combo 384 for 48 khz Audio?

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

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

TEAC-501

I have a TEAC-UD501 and am willing to do some testing. I looked for the 'archived' issue but couldn't find it.

Moon Neo 230HAD support

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

"Gustard DAC-X20U" does not compliance with leagcy "S16_LE & S24_LE"

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 !

DSD native for JLsounds boards

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

DSD_U32_BE really gone in new alsa/kernel??

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

DSD play broken on kernel 4.4.x?

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.

support for FiiO K3

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.

Patch for DSD only dacs

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?

DSD1024 support

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.

PS Audio DirectStream DAC

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 */

Amanero card now supporting DSD native

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

Integration in Volumio

I really love your work! What do you think if we work together to integrate this in Volumio?

Nagra HD DAC

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?

Support of the Armature Hecate interface

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 👍

SMSL M8A support

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?

Is this repo the right way to add support for native DSD on Mission 778X?

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....

McIntosh D1100 support

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!

Alsa is giving format S32_LE with DSD stream

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?

Native DSD suport on Linux for WaveIO cards

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)

Support for Primare DM35 DAC?

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

No DSD_U32_BE when using Aune S16

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

Clicks/pops for XMOS DAC in DSD_Native mode

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!

update errors

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).

Support for aune X1S USB DAC and C-Media Electronics Inc. Hegel USB Audio B

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)

Native DSD support for FiiO K3

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.