[alsa-devel] [PATCH 0/3] ALSA: snd-usb: Some small fixes to make Playback Design products work

Daniel Mack zonque at gmail.com
Wed Mar 27 19:22:30 CET 2013

On 27.03.2013 16:08, Andreas Koch wrote:
> At 02:48 AM 3/27/2013, Daniel Mack wrote:
>> On 27.03.2013 06:50, Andreas Koch wrote:
>>> Hi Daniel
>>>> Ok. So we could define 3 DSD formats, for 8-bit, 16-bit and 32-bit. On
>>>> that three formats, arbitrary samples can be transported, and the
>>>> mapping between the configured sample rate and the resulting DSD rates
>>>> would be as follows (please tell me if I'm correct):
>>>>         352.8kHz       705.6KHz    1411.2KHz
>>>> 8-bit     2.8MHz         5.6MHz      11.2MHz
>>>> 16-bit    5.6MHz        11.2MHz
>>>> 32-bit   11.2MHz
>>>> So driver would mark a stream as DSD capable (8, 16, 32bit, depending on
>>>> the USB descriptors), and then leave it up to the application to do the
>>>> sample frequency determination according to the above table, and also as
>>>> stated in the DoP document. Other drivers for more sound cards
>>>> (presumable on other bus types) might follow.
>>>> I think it's ok to handle it like this, because after all, what an
>>>> application sets as sample rate for the stream is the number of actual
>>>> words that are transported, where as the DSD rate is referring to bits/s.
>>>> Jussi, for your application, that means that you'd have to add these 3
>>>> new formats, and teach your application that they can be used for DSD
>>>> right away.
>>>> The question is whether all DSD-capable USB DACs behave correctly in
>>>> order to make this logic work. Andreas?
>>> If I understand this correctly then your driver would send the DSD
>>> data in whatever format the DAC requests via its descriptors. The DSD
>>> rate would either control the word length (8,16,32) or the underlying
>>> sample rate (1x, 2x, 4x 352.8kHz). That would be the most flexible
>>> implementation and I don't see why any hardware implementation would
>>> have a problem with that.
>> The question is whether all DACs would assume the same DSD rate as in
>> the table above (ie, 8-bit, 352.8kHz == 2.8MHz DSD).
> I don't see how they could assume any different rate, so yes, that 
> seems a good assumption.

Ok, good.

>> And do we actually need a 32-bit format at all or is 8 and 16 enough?
> Clearly, main stream is 2.8MHz DSD. But there are new A/D and D/A 
> chips becoming available that support up to  11.2MHz. So far I 
> haven't really seen any performance gain with that, but one  never 
> knows what improvements will be made in the future. If that is a 
> problem on your side I wouldn't spend so much time on it, but if it 
> is a matter of just adding a few lines then why not.

It a bit in a 64bit field, so its a limited resource. If there's no need
for it, I'll leave it out for now.

I'll send out some trivial patches for DSD stream marking soon.


More information about the Alsa-devel mailing list