INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Asynchronous USB with Windows XP  (Read 10889 times)

Claudio1969

  • Member
  • *
  • Posts: 4
Asynchronous USB with Windows XP
« on: February 27, 2012, 05:49:39 am »

I have a USB DAC with asynchronous USB capability and 96 kHz / 24 bit music (DAC has no drivers). I have downloaded the trial version of Media Center and tried it on Windows XP and 7.
My trial version has expired now so my trials is over and I have to make a final decision. So I still have a question.
My best configuration for Windows 7 is WASAPI event style. Apparently I'm able to play 96 kHz/24 bit music and although event style is proprietary JRiver terminology I guess this means that I'm using the asynchronous USB interface my DAC is capable of.
With Windows XP I have had good results with Asio4all drivers but I'm not sure what is going on: I have read some blogs stating that kernel streaming cuts to 16 bit the resolution, JRiver wiki states that Asio4all is the same as kernel streaming (which is not working at all in my setup, silence), I have no clue whether asynchronous USB is really being used in this mode.
Since I would like to permanently dedicate my obsolete Windows XP PC to music player, before buying JRiver software I would like to know if that is really playing 24 bit asynchronous USB or whether I should look to a Linux installation with all the effort and the lack of good looking player like JRiver (7 is not an option because the hardware does not support it).
Logged

Vincent Kars

  • Citizen of the Universe
  • *****
  • Posts: 1154
Re: Asynchronous USB with Windows XP
« Reply #1 on: February 27, 2012, 07:06:07 am »

24 bit asynchronous USB is NOT a property of the audio drivers (WASAPI, ASIO4ALL, etc) but a property of the USB receiver in the DAC.
Feed it 16 bits words and it won’t play as it need 24 bits.
Likewise the synchronisation, you have no options on the PC site to control this.
Either the USB receiver is async or it is adaptive.
If you want to make sure download the Thesycon USB Descriptor Dumper
http://www.thewelltemperedcomputer.com/SW/AudioTools/TroubleShooting.htm
It will tell you exactly what the capabilities of your DAC are.

You can use ASIO4ALL but you can get XP to deliver bit perfect output without using ASIO4ALL if
•   the master volume control is set to 50% and the "Wave" to 100%,
•   1 and only one audio stream is playing,
•   the sample rate is supported by the audio device,
•   the bit depth is supported by the audio device.
 http://www.thewelltemperedcomputer.com/SW/HastalaVista.html

If you hear an improvement using ASIO4ALL, follow the instructions  here:
http://www.ayre.com/usb-jriver_setup_xp.htm
Don’t forget to clear the 16 bit checkbox!
Logged

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 71361
  • Where did I put my teeth?
Re: Asynchronous USB with Windows XP
« Reply #2 on: February 27, 2012, 07:07:20 am »

Welcome to the forum.  I assume you have MC17.  I'll move this to that board later.

If you're playing a 96/24 file and you're not using DSP Studio to convert it, then it is working as expected.
Logged

Claudio1969

  • Member
  • *
  • Posts: 4
Re: Asynchronous USB with Windows XP
« Reply #3 on: February 27, 2012, 08:01:09 am »

Thanks a lot to Vincent for welcoming me and to Jim for explanations.
There are two topics here.
1) Bit perfect streaming: thanks Jim, your links are very useful and now I understand how I could be sure to be bit perfect without ASIO4all but I understand that this is only possible by selecting Kernel streaming which is not working on my PC with JRiver (remains mute). Kernel streaming with Foobar works (but I'n not considering Foobar as a serious alternative to JRiver!). Anyhow since with Asio4all it works, how to avoid it is more a curiosity than a real need now. The important point for me was to assess that Kernel streaming or Asio4all were capable of handling high resolution music.
The problem of truncation to 16 bit of kernel streaming reported by some people is a mistake which comes from a former bug in Microsoft implementation as I read in one of the pages I reached with your links:
"In Windows 2000, a conversion error in the KMixer system driver causes 24-bit and 32-bit output samples to be truncated to 16 bits of precision. In Windows Me, KMixer has a similar problem (see Windows Me Support for WDM Audio). However, this problem does not occur in Windows 98 or in Windows XP and later."
So this doubt is COMPLETELY SOLVED thanks to your links.

2) Asynchronous USB: Thesycon USB Descriptor Dumper reports my DAC is capable of doing Asynchronous USB (thanks again for suggestion). You seem to be stating that whatever I do PC side, if DAC is capable of asynchronous USB, it will work in this mode and that would explain why nobody talks about this subject.
Nevertheless, I'm not 100% convinced because then I wonder what WASAPI event style means, then (available only with Windows 7 and JRiver). In JRiver wiki the difference between wasapi and wasapi event style is about pushing or pulling data which is exactly my understanding of Synchronous and Asynchronous USB but I'm probably wrong here. With my DAC both modes were working but the latter was much better.
Can you shed some light on this doubt as well?
Logged

Vincent Kars

  • Citizen of the Universe
  • *****
  • Posts: 1154
Re: Asynchronous USB with Windows XP
« Reply #4 on: February 27, 2012, 08:36:20 am »

A simple one: you can use WASAPI over USB but also using the onboard audio e.g. SPDIF
Obvious WASAPI has nothing to do with the synchronization mechanism used by the USB audio. My DAC has adaptive USB and I can use both WASAPI and WASAPI event style.
Once again, there is no relationship between the audio driver and the sync mode of the USB

The descriptor dumper will tell you what synchronization your DAC uses, you will see Isochronous transfer and either adaptive OR asynchronous synchronization, not both.
A bit more about USB audio: http://www.thewelltemperedcomputer.com/KB/USB.html
Logged

Claudio1969

  • Member
  • *
  • Posts: 4
Re: Asynchronous USB with Windows XP
« Reply #5 on: February 27, 2012, 09:46:43 am »

Thanks Vincent, it is clear now. Apparently after reading the new link (and much more) "event style" is just JRiver workaround to some messy Windows implementation between JRiver and WASAPI drivers, whereas what happens between WASAPI (or ASIO) driver and the USB interface entirely depends on DAC capabilities.
Be patient with me but still another little bit of information to complete the puzzle:
My DAC is stating to be able to do asynchronous + isochronous, so it will never work in adaptive mode. But is it possible to software control whether it runs in asynchronous or isohcronous mode? From what you say, it seems that ASIO or WASAPI or anything else my DAC will always run in asynchronous mode. Is there a way to force it to work isochronous and listen to the difference?
Logged

Vincent Kars

  • Citizen of the Universe
  • *****
  • Posts: 1154
Re: Asynchronous USB with Windows XP
« Reply #6 on: February 27, 2012, 10:02:44 am »

Your DAC comes without drivers.
This means it uses the native mode USB audio drivers as supplied by the OS.
In your case (24/96) this is USB audio class 1.
By design if one use the native mode USB audio drivers, the audio is send to the DAC using isochronous transfer mode. This is a (soft) real-time stream.
This is one of the methods in the USB standard to transfer data.
You don’t have any option to change this transfer mode.

As we talk about 2 ‘clocked’ events; the PC sending data at a certain rate and the DAC converting at a certain rate we need something to keep these 2 processes in sync to avoid buffer over/under-run at the DAC.
This synchronization can be done by the DAC by adapting the speed of the clock (as you might have guessed this is called adaptive mode) or by the DAC setting up a control loop regulating the amount of data. This is called asynchronous synchronization.

So when a DAC uses native mode USB audio drivers the transfer mode will be isochronous.
A adaptive USB DAC will run isochronous transfer with adaptive synchronization
A async USB DAC will run isochronous transfer with asynchronous synchronization
As all of this is programmed in the USB receiver in the DAC you have no user options to control this.

Logged

Claudio1969

  • Member
  • *
  • Posts: 4
Re: Asynchronous USB with Windows XP
« Reply #7 on: February 27, 2012, 10:21:40 am »

Thanks thanks thanks thanks. Now 100% clear!
Logged
Pages: [1]   Go Up