Dear all,
I've based my code on the USB audio reference design and got the DSD64, DSD128 and DSD256 native(raw) DSD working. I also got the DOP DSD input formats running.
I would like to see my data output as raw/native DSD only. Is this already implemented in the reference firmware? Otherwise I have to convert DOP to Native by myself.
Can you please help me further?
I already tried something with these lines below;
#define NATIVE_DSD (1)
//#define OUTPUT_FORMAT_COUNT (3)
//#define NATIVE_DSD_FORMAT_NUM (3)
//#define STREAM_FORMAT_OUTPUT_3_DATAFORMAT (UAC_FORMAT_TYPEI_RAW_DATA)
Regards,
JW
USB audio reference design DOP to Native DSD
-
- Member
- Posts: 9
- Joined: Mon Jan 25, 2016 3:39 pm
-
Verified
- XCore Legend
- Posts: 1156
- Joined: Thu May 27, 2010 10:08 am
Hi - Don't fully understand the question.. By
do you mean data going to the DAC? If so, the ref design already does this. Native DSD outputs raw 32b words out and DoP strips off the DoP headers and reassembles into a 32b DSD serialised word..I would like to see my data output as raw/native DSD only
-
- Member
- Posts: 9
- Joined: Mon Jan 25, 2016 3:39 pm
Thanks for your answer, yes i meant the data to the DAC. I've got it running using the latest usb audio reference firmware (6.14B).
I've defined these lines below;
#define I2S_CHANS_DAC (2)
#define DSD_CHANS_DAC (2)
#define NATIVE_DSD (1)
Thanks again.
JW
I've defined these lines below;
#define I2S_CHANS_DAC (2)
#define DSD_CHANS_DAC (2)
#define NATIVE_DSD (1)
Thanks again.
JW
-
- Member
- Posts: 9
- Joined: Mon Jan 25, 2016 3:39 pm
I'm sorry, it's still not working... Which defines do I have to set in order to get native DSD out to the DAC with DOP input? I have no output right now with DOP input. Native DSD does work...
-
Verified
- XCore Legend
- Posts: 1156
- Joined: Thu May 27, 2010 10:08 am
Hi,
DoP detection is enabled whenever DSD_CHANS_DAC != 0 (see audio.xc - DoP is completely handled down at the I2S level as you may expect).
Perhaps you are not getting DoP sent to the device properly? Any gain/attenuation etc. will destroy DoP data and headers.
Can you confirm that DoP that all volumes are maxed out?
If you play with the volume when playing back DoP, you will get very feint noise until you hit max volume when suddenly the DSD audio will suddenly play.
DoP detection is enabled whenever DSD_CHANS_DAC != 0 (see audio.xc - DoP is completely handled down at the I2S level as you may expect).
Perhaps you are not getting DoP sent to the device properly? Any gain/attenuation etc. will destroy DoP data and headers.
Can you confirm that DoP that all volumes are maxed out?
If you play with the volume when playing back DoP, you will get very feint noise until you hit max volume when suddenly the DSD audio will suddenly play.
-
Verified
- XCore Legend
- Posts: 1163
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
DoP (DSD over PCM) vs "Native" DSD is just the way DSD data is transferred to the DAC, the DSD data remains the same in all cases.
Suggest taking a read of: http://dsd-guide.com/dop-open-standard
Suggest taking a read of: http://dsd-guide.com/dop-open-standard
-
- Member
- Posts: 9
- Joined: Mon Jan 25, 2016 3:39 pm
Thanks for the replies,
I can confirm that all gain/attenuation settings are correct, so no atenuation/gain change.
Yes Ross, I understand the difference between native DSD and DOP format.
First of all a summary of what I have working yet;
- When declared I2S_CHANS_DAC (not declared dsd_chans_dac);
* DOP input from FOOBAR player to XMOS I2S output (in DOP format)
* Native dsd not working (offcourse)
- When declared dsd_chans_dac (& I2S_CHANS_DAC) ;
* Native dsd working (on output xmos, to DAC)
* DOP input from FOOBAR player to XMOS NOT working (no data at all at XMOS output)
I would like to have a DSD only connection to the DAC, so DOP-NATIVE "conversion/ header strip off" inside xmos. Which declares do I have to use and which not? And which ports do I have to declare?
- I2S_Chans_DAC?
- native_DSD?
Thanks in advance
I can confirm that all gain/attenuation settings are correct, so no atenuation/gain change.
Yes Ross, I understand the difference between native DSD and DOP format.
First of all a summary of what I have working yet;
- When declared I2S_CHANS_DAC (not declared dsd_chans_dac);
* DOP input from FOOBAR player to XMOS I2S output (in DOP format)
* Native dsd not working (offcourse)
- When declared dsd_chans_dac (& I2S_CHANS_DAC) ;
* Native dsd working (on output xmos, to DAC)
* DOP input from FOOBAR player to XMOS NOT working (no data at all at XMOS output)
I would like to have a DSD only connection to the DAC, so DOP-NATIVE "conversion/ header strip off" inside xmos. Which declares do I have to use and which not? And which ports do I have to declare?
- I2S_Chans_DAC?
- native_DSD?
Thanks in advance
-
Verified
- XCore Legend
- Posts: 1163
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Its seems like you have the code correctly built for DoP to work. So this would point to a config issue in Foobar being incorrect (since i'm not aware of any issues with the xCORE DoP implementation). What headers are you using from foobar?
-
- Member
- Posts: 9
- Joined: Mon Jan 25, 2016 3:39 pm
Hi Ross,
The DOP in-DOP out seems to work fine, so the foobar settings should be fine.
I would like to have a DOP in - Native out setting, but can't get it to work, what are the correct defines for this application?
Thanks
JW
The DOP in-DOP out seems to work fine, so the foobar settings should be fine.
I would like to have a DOP in - Native out setting, but can't get it to work, what are the correct defines for this application?
Thanks
JW
-
Verified
- XCore Legend
- Posts: 1163
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
Im very confused now.. the xCore strips off the DoP headers before it sends the data to the DAC..