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
Member
Posts: 11
Joined: Fri Mar 25, 2011 12:36 am

DSD issue: Xcore 200 with USB Audio 2.0 Ref software

Postby shaw » Wed Jun 13, 2018 10:41 pm

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,
Attachments
XmosMods.txt
(1.55 KiB) Not downloaded yet
XmosMods.txt
(1.55 KiB) Not downloaded yet
User avatar
mon2
XCore Legend
Posts: 1087
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Postby mon2 » Thu Jun 14, 2018 12:25 am

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

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

Postby shaw » Thu Jun 14, 2018 11:42 am

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
Experienced Member
Posts: 113
Joined: Sun Feb 23, 2014 11:30 am

Postby AlexAdvice » Fri Jun 15, 2018 10:30 am

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
Member
Posts: 11
Joined: Fri Mar 25, 2011 12:36 am

Postby shaw » Fri Jun 15, 2018 11:09 am

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
Experienced Member
Posts: 113
Joined: Sun Feb 23, 2014 11:30 am

Postby AlexAdvice » Fri Jun 15, 2018 12:19 pm

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
Member
Posts: 11
Joined: Fri Mar 25, 2011 12:36 am

Postby shaw » Fri Jun 15, 2018 2:07 pm

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
Experienced Member
Posts: 113
Joined: Sun Feb 23, 2014 11:30 am

Postby AlexAdvice » Sat Jun 16, 2018 7:30 am

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
Member
Posts: 11
Joined: Fri Mar 25, 2011 12:36 am

Postby shaw » Mon Jun 18, 2018 10:59 am

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
Experienced Member
Posts: 113
Joined: Sun Feb 23, 2014 11:30 am

Postby AlexAdvice » Mon Jun 18, 2018 9:55 pm

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__

Who is online

Users browsing this forum: No registered users and 3 guests