DSD issue: Xcore 200 with USB Audio 2.0 Ref software

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

DSD issue: Xcore 200 with USB Audio 2.0 Ref software

Post by shaw »

To help with the development of a new product, we wanted to run some tests on the xCORE 200 MC audio 2v0 platform, with the latest USB Audio 2.0 Reference software, to get some experience.

I've attached a list of the ONLY modifications that we have made so far, to the USB Audio 2.0 ref software (v 6.15.2rc1). Mods were made with mon2's guidance and allowed for successful playback of audio files recorded up to 384Khz sampling rate (using Jriver MC 24 with TUSBAudio ASIO driver). I have verified that newly installed Thesycon eval driver, v4.11.0.0 , is loading when firmware is running under debugger control (xTIME composer v14.3.3, via Xmos xTAG 3 1v2 ) . Device manager indicates that it has enumerated as "XMOS USB 2.0 Audio Device".

So the issue is that we can play wav files up to the MAX_FREQ of 384Khz, but we can't get DSD64 and DSD128 dsf files to play successfully. Jriver is setup and enabled to output dsf files in DoP format. When I try to play dsd files, Jriver indicates that it is playing, but no audio is output. TUSBAudio Control panel shows the correct sample rate when both files play (176400 Hz and 352800 Hz respectively).

Any tips on a direction to begin looking is appreciated.

Thanks,
You do not have the required permissions to view the files attached to this post.
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am

Post by mon2 »

Hello again. Please review this document and post your results:

https://www.xmos.com/support/appnotes/AN00103
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

I have reviewed AN00103 and broke it into a series of requirements, that I have listed below. Steps 1 - 7 are required to allow DSD 64 and DSD 128 to play. Additionally, steps 8 - 10 are required to then allow DSD 256 to play. I wanted to work towards getting DSD 64/128 working first. Once DSD 64/128 was working, move on to DSD 256.

I have indicated below how I have tried to address each of the first seven steps. After completing all seven steps, I still haven't been able to get playback to work for DSD 64 / 128 files (unchanged from description in original message). I'm not sure which steps I may have missed?

1: Baseline firmware to support DSD playback is required: USB Audio 2.0 Reference software (v 6.15.2rc1)
2: Enable DSD: -DDSD_CHANS_DAC=2 was added to Makefile XCC_FLAGS for the configuration being built. See original attachement
3: Enable 384 Khz sampling rate support: See original attachement for all changes made. (384Khz operation was verified to work)
4: XTIME composer 13.2 or later: (v14.3.3)
5: Appropriate platform with hardware to support sampling rates upto DSD 128: xCORE 200 MC audio 2v0 platform
6: Provide Audio playback media center capable of playing DSD formatted as DoP: Jriver MC 24, setup and enabled to output dsf files in DoP format.
7: Provide Appropriate Driver for Player / Device interface and setup player accordingly: Thesycon eval driver, v4.11.0.0 on a Windows 8 machine
--------------------------------------------------------------------------------------------------
8: Enable 768 Khz sampling rate support:
9: Implement dummy I2S routine(s) for unsupported PCM sample rates :
10: Hardware mute when PCM mode is enabled?:
AlexAdvice
XCore Addict
Posts: 147
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

shaw wrote:
8: Enable 768 Khz sampling rate support:
9: Implement dummy I2S routine(s) for unsupported PCM sample rates :
This you only need if you want to play DSD256 also in DoP mode.
For just Native DSD256 - not need.
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Thanks Alex. At this point I have not been able to even get DSD64 to play successfully. Effectively, the only two changes that I have made to Original USB Audio 2.0 Reference software is setting maximum sample rate to 384Khz and enabling of DSD. It should now play DSD 64 and DSD 128 in DoP format, but it doesn't on my setup.

I was hoping that someone who has DSD experience/knowledge with this code base, see's something that I am missing.
AlexAdvice
XCore Addict
Posts: 147
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

shaw wrote:Thanks Alex. At this point I have not been able to even get DSD64 to play successfully. Effectively, the only two changes that I have made to Original USB Audio 2.0 Reference software is setting maximum sample rate to 384Khz and enabling of DSD. It should now play DSD 64 and DSD 128 in DoP format, but it doesn't on my setup.

I was hoping that someone who has DSD experience/knowledge with this code base, see's something that I am missing.
Maybe the problem is not your board related?
PC Player should also read dsf/dff file and sent is to you board as DoP (or Native).
Also all windows sound features MUST be off and the Mater Volume and Volume in mixer MUST be 100%.
Otherwise this will corrupt the markers in DoP.
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Alex, I quickly verified in Sound settings that Xmos device level was set for 100%, as was system volume level. The Jriver player (same configuration) does successfully play DSD64/128 dsf files in DoP format to another non-Xmos dsd capable device.
AlexAdvice
XCore Addict
Posts: 147
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

I have one guess.
Try to comment -DU208_ONLY in your makefile and tell us what happened.
May we see the oscillograms of the I2S/DSD signals?
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Alex, I am running USB Audio 2.0 Reference software on the CORE 200 MC audio platform based on XE216 device. I am building app_usb_aud_xk_216_mc. There is no reference to the device -DU208 in this applications makefile. Am I missing your intent?

I am out of the office for a few days. When I get back to office I will connect to logic analyzer and report back with waveforms.
AlexAdvice
XCore Addict
Posts: 147
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

shaw wrote:Alex, I am running USB Audio 2.0 Reference software on the CORE 200 MC audio platform based on XE216 device. I am building app_usb_aud_xk_216_mc. There is no reference to the device -DU208 in this applications makefile. Am I missing your intent?
.
OK, try this - put in module_usb_audio\audio.xc in the beginning, after all includes:
#undef __XS2A__