DSD recording implementation

Discussions about USB Audio on XMOS devices
User avatar
HerbieSundiver
Active Member
Posts: 32
Joined: Mon Dec 30, 2013 12:49 pm
Location: Germany

DSD recording implementation

Post by HerbieSundiver »

Hi,
Ross told me that native DSD recording is not implemented yet. I'd like to implement this but need some good advice where to look/start.
Sorry for this quite general sounding question but I quickly got lost in all the defines all over the place...

It would also help if I could first implement Int2 Alt2 with one Ep as a dummy...the endresult should look like this:
Image

Any help is welcome :-)
Thanks in advance!
User avatar
Ross
Verified
XCore Legend
Posts: 1163
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

You'll have to add items to the descriptors as you describe

The information relating to the descriptors will need plumping in - so throughout the device it knows the interface is running in DSD mode. Using the playback path as a reference.

The hardware interface will also need implementing (its just clock and data this is not hard)

Its quite a bit of work to be honest, it's not something we've really seen very many requests for.

One issue I can imagine coming up is, how to handle a host trying to stream PCM in one direction and DSD in another. Maybe there's an assumption this will never happen.

Maybe someone else on here has more experience as its not something I've looked into
Technical Director @ XMOS. Opinions expressed are my own
User avatar
HerbieSundiver
Active Member
Posts: 32
Joined: Mon Dec 30, 2013 12:49 pm
Location: Germany

Post by HerbieSundiver »

Hi Ross,
thanks for your thoughts!

Can you name some files of the playback path or pcm record path because I'm still struggling to get an overview of the whole codebase. Is it all in the audiohub and/or decouple?

The issue you mention is, at least for us, not important as we either use the interface in our ADC or as kind of a loopback.
User avatar
Ross
Verified
XCore Legend
Posts: 1163
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

I think you'll have have to modify the following files, at the minimum:
- xua_ep_descriptors.h
- xua_endpoint0.c (though the data format communication may already be implemented here)
- ep_buffer.xc (similar to above)
- decouple.xc (similar to above)
- xua_audiohub.xc
- audioports.xc
- audioports.c
- audiohub_dsd.h
- audiohub_initport.xc
Technical Director @ XMOS. Opinions expressed are my own
User avatar
HerbieSundiver
Active Member
Posts: 32
Joined: Mon Dec 30, 2013 12:49 pm
Location: Germany

Post by HerbieSundiver »

Thank you, Ross!
I've begun my jurney ;-)