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,
DSD issue: Xcore 200 with USB Audio 2.0 Ref software
-
- Active Member
- Posts: 60
- Joined: Fri Mar 25, 2011 12:36 am
DSD issue: Xcore 200 with USB Audio 2.0 Ref software
You do not have the required permissions to view the files attached to this post.
-
- XCore Legend
- Posts: 1913
- Joined: Thu Jun 10, 2010 11:43 am
Hello again. Please review this document and post your results:
https://www.xmos.com/support/appnotes/AN00103
https://www.xmos.com/support/appnotes/AN00103
-
- Active Member
- Posts: 60
- Joined: Fri Mar 25, 2011 12:36 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?:
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?:
-
- XCore Addict
- Posts: 147
- Joined: Sun Feb 23, 2014 11:30 am
This you only need if you want to play DSD256 also in DoP mode.shaw wrote:
8: Enable 768 Khz sampling rate support:
9: Implement dummy I2S routine(s) for unsupported PCM sample rates :
For just Native DSD256 - not need.
-
- Active Member
- Posts: 60
- Joined: Fri Mar 25, 2011 12:36 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.
I was hoping that someone who has DSD experience/knowledge with this code base, see's something that I am missing.
-
- XCore Addict
- Posts: 147
- Joined: Sun Feb 23, 2014 11:30 am
Maybe the problem is not your board related?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.
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.
-
- Active Member
- Posts: 60
- Joined: Fri Mar 25, 2011 12:36 am
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.
-
- XCore Addict
- Posts: 147
- Joined: Sun Feb 23, 2014 11: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?
Try to comment -DU208_ONLY in your makefile and tell us what happened.
May we see the oscillograms of the I2S/DSD signals?
-
- Active Member
- Posts: 60
- Joined: Fri Mar 25, 2011 12:36 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.
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.
-
- XCore Addict
- Posts: 147
- Joined: Sun Feb 23, 2014 11:30 am
OK, try this - put in module_usb_audio\audio.xc in the beginning, after all includes: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?
.
#undef __XS2A__