USB Audio 2.0 DJ Kit Questions/Debug

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
Post Reply
User avatar
jjlm98
Member++
Posts: 31
Joined: Tue Aug 26, 2014 11:00 pm

USB Audio 2.0 DJ Kit Questions/Debug

Post by jjlm98 »

Hi folks - just a few questions regarding this kit.

1) I have this kit up and running on Windows 7 64-bit. I have successfully compiled and ran the 2ioxx configuration of the app_usb_aud_skc_su1 application, however I cannot seem to enable any channels beyond simple stereo playback and record. When attempting to enable 4-channel record in Audacity, the GUI only offers me two stereo input channels. Similarly, I have some 7.1 test .wav files (http://www.jensign.com/bdp95/7dot1voiced/) that I believe should exercise multichannel playback, but I cannot hear the excerpts that I believe reside beyond the first 2 channels over the OUT3-4 jack using a line-level analyzer. Stereo playback works just fine. I am using the freeware Thesycon multichannel driver. Can anyone offer some troubleshooting tips, or where to look?

2) Can anyone confirm the actual XMOS device in this reference design? The literature online goes back and forth between calling it an XS1-U8A and XS1-U6A. The packmark on the reference design I have appears to be that of an XS1-U8A.

3) The USB_VBUS input of the XMOS device does not appear to be connected, despite the XS1 series data sheets instructing to do so. Is that because this board is USB powered, such that there is no case where the board is powered without USB present?

Thanks in advance.


User avatar
Ross
XCore Expert
Posts: 962
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

jjlm98 wrote:Hi folks - just a few questions regarding this kit.

1) I have this kit up and running on Windows 7 64-bit. I have successfully compiled and ran the 2ioxx configuration of the app_usb_aud_skc_su1 application, however I cannot seem to enable any channels beyond simple stereo playback and record. When attempting to enable 4-channel record in Audacity, the GUI only offers me two stereo input channels. Similarly, I have some 7.1 test .wav files (http://www.jensign.com/bdp95/7dot1voiced/) that I believe should exercise multichannel playback, but I cannot hear the excerpts that I believe reside beyond the first 2 channels over the OUT3-4 jack using a line-level analyzer. Stereo playback works just fine. I am using the freeware Thesycon multichannel driver. Can anyone offer some troubleshooting tips, or where to look?

2) Can anyone confirm the actual XMOS device in this reference design? The literature online goes back and forth between calling it an XS1-U8A and XS1-U6A. The packmark on the reference design I have appears to be that of an XS1-U8A.

3) The USB_VBUS input of the XMOS device does not appear to be connected, despite the XS1 series data sheets instructing to do so. Is that because this board is USB powered, such that there is no case where the board is powered without USB present?

Thanks in advance.
1) Try using ASIO, with a player such as foobar. (Though multi-channel recording has been in the Thesycon driver since v1.65)

2) You can use either, suggest the u6 since you can only run 6 cores when running HS USB.

3) Ideally you should connect it in all cases. However, you are correct that this board does get away with out it since it is only ever bus-powered (so can assume VBUS only ever present when it is powered up!).
User avatar
jjlm98
Member++
Posts: 31
Joined: Tue Aug 26, 2014 11:00 pm

Post by jjlm98 »

Hi Ross - thanks for your quick and thorough responses. Some follow-up questions, numbered with respect to my original set:

1) DJ Kit debug:

a) Is an ASIO-based solution an alternative to the Thesycon driver, or am I not even on the correct page? I'm happy to walk down any troubleshooting path you suggest, but I'd like to first understand what I'm doing fundamentally wrong to prevent the advertised and canned solution from working.

b) If that's an acceptable path, here's an update: without understanding what I did to produce an improvement, I can hear all 8 channels of the aforementioned 7.1 test track from the OUT1-2 jack of the slice board. Previously I could only hear some of the channels, as would be the case when played from my stereo sound card. Given that I'm able to hear excerpts beyond what a typical stereo playback solution provides, I have some confidence I'm exercising multiple channels. However, I would have expected to hear some of the excerpts out of the OUT1-2 jack, with the remaining from the OUT3-4 jack; is that reasonable? Or do all four I2S playback channels get mixed upstream before playing out of a single stereo CODEC on the slice board? How can I independently exercise both I2S playback pairs?

c) Maybe a better question is, what behavior should I ultimately expect from this reference design? Is there any sort of out-the-box quick-start guide and environment where I can easily evaluate this platform? Recommended steps, test tracks, explanation of expected output, etc?

d) Playback behavior is the same as mentioned in (b) on Mac OS X Mavericks. However, on the Mac, all four record channels are selectable in Audacity. On PC, only 2 continue to appear. Any thoughts?

2) Understanding that either the XS1-U8A or XS1-U6A will work for the solution, my preference would be to copy the reference design exactly (if nothing else out of paranoia), especially since both parts are listed for the same price on Digi-Key. Can you confirm that the XS1-U8A is indeed what's used on this platform? If the DJ kit does indeed use the XS1-U8A, why use a part with a higher core count in an application in which not all cores can be used? Why wouldn't the design simply use the XS1-U6A out of brevity?

3) With regard to the DJ kit not connecting the USB_VBUS pin despite the data sheet's mandate to do so, but understanding that the DJ kit represents only a bus-powered case, why would USB_VBUS not still be connected to the 5-volt supply? If USB_VBUS is floated, is there not some risk that the XCORE device pulls the D+/- pins in some fashion, or is this VBUS detect behavior a feature that can be overridden in firmware?

Thanks for bearing with me.
User avatar
jjlm98
Member++
Posts: 31
Joined: Tue Aug 26, 2014 11:00 pm

Post by jjlm98 »

I'm all set now; just posting my solution here in case it helps anyone else out.

It's important to note that multichannel playback is NOT supported by Audacity. This is stated in Audacity's documentation. Multichannel playback can be accomplished in Windows with Foobar (as suggested by Ross) or QuickTime on Mac.

Audacity does facilitate multichannel record, however. On Mac, this is natively supported. However, the Windows APIs accessible through Audacity do not support multichannel record (some sound cards could be, but not the XMOS+Thesycon solution). This is why Audacity on Mac allows you to select 4 channels, but Windows only allows 2.

Multichannel record in Windows requires the use of the ASIO interface (also suggested by Ross), but Audacity as it is distributed does not support ASIO due to licensing issues. It is possible to compile Audacity with ASIO support yourself. Instead, I found that Reaper, while taking longer to learn, has direct ASIO support and can exercise multichannel record in Windows.

Finally, the OS sound configuration must be set up to support multichannel playback, in the same way you would enable surround sound. This is an important step beyond simply selecting the XMOS hardware as a playback device. In Windows 7, one would open Playback devices, highlight the XMOS hardware in the "Speakers" list, then hit the Configure button. Similarly, on Mac, one would open the Audio MIDI Setup under Applications -> Utilities, then click the Configure Speakers button after having highlighted the XMOS hardware. In both cases, one would select "Quadraphonic" for the 4-channel DJ kit, 7.1 for an 8-channel solution, and so on.

Cheers!
User avatar
Ross
XCore Expert
Posts: 962
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

jjlm98 wrote: 2) Understanding that either the XS1-U8A or XS1-U6A will work for the solution, my preference would be to copy the reference design exactly (if nothing else out of paranoia), especially since both parts are listed for the same price on Digi-Key. Can you confirm that the XS1-U8A is indeed what's used on this platform? If the DJ kit does indeed use the XS1-U8A, why use a part with a higher core count in an application in which not all cores can be used? Why wouldn't the design simply use the XS1-U6A out of brevity?

3) With regard to the DJ kit not connecting the USB_VBUS pin despite the data sheet's mandate to do so, but understanding that the DJ kit represents only a bus-powered case, why would USB_VBUS not still be connected to the 5-volt supply? If USB_VBUS is floated, is there not some risk that the XCORE device pulls the D+/- pins in some fashion, or is this VBUS detect behavior a feature that can be overridden in firmware?

Thanks for bearing with me.
Thanks for posting, its really good to share. I think you have managed to answer all questions apart from these two.

2) U6 is fine - We didn't have U6 parts when the board was designed. U8 is also fine, but you cannot use two of the cores whilst you are using USB (the USB lib needs 80+MIPS to operate correctly). If your product has a USB and a none-USB mode maybe a U8 might be usefully (a fairly unlikely scenario I suppose!)

3) Ideally connect it. The firmware can deal with it not being connected (see pwrConfig param to XUD_Manager()) but in general it should be connected.

The main reason for connection is for compliance reasons on a self-powered device - the device must not enable it's pull-up until it detects a valid VBUS from the host. Of course you can "get away" with it a bus-powered device that is not powered up until VBUS is present...

Current recommendation is to connect it on all designs, we currently support not-connecting it in firmware since not connecting it was an omission in our early boards - as such some designs replicated this and we would ideally like not to break them :)

There are no current plans to pull the plug on this firmware mode - but you never know..
Post Reply