INTERACT FORUM

Please login or register.

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

Author Topic: WDM driver latency  (Read 3981 times)

andrewt

  • World Citizen
  • ***
  • Posts: 137
WDM driver latency
« on: September 20, 2015, 11:34:08 pm »

I'm just starting to use MC's WDM driver to upsample audio from another program (called "Transcribe") to 48khz. I'm using the optical TOSLINK output from my keyboard (Korg Kronos) into my audio interface/DAC (Presonus Firestudio Project) to play along with the songs I'm working on. Unfortunately the keyboard only outputs 48khz, which is the reason I need to upsample the audio coming from the Transcribe program.

I'm getting ~3 second delay from hitting play in the other program until the audio starts playing in MC. Is this normal because it's WDM and not ASIO, or is there something I can do about this?

Any insight is appreciated, thanks!

(I could just use the analog inputs of the audio interface but much of the time those are taken up by microphones, so I'd like to use the digital input)
Logged

stewart_pk

  • Citizen of the Universe
  • *****
  • Posts: 658
Re: WDM driver latency
« Reply #1 on: September 21, 2015, 10:25:17 pm »

I think you're a bit confused. For your output device from JRiver it's still going to be ASIO or WASAPI or DirectSound.

Me personally I use ASIO because it has a bit less delay than WASAPI.

But yes if I enable upsampling on my output device from JRiver when using the WDM driver I get delay which would be around the 3 second mark. So I have upsampling turned off when using the WDM driver. If you have use multiple zones then you can turn upsampling on for all other zones other than the one you want to use the WDM driver with. I have three zones Audio, Video and IPC (WDM).
Logged

andrewt

  • World Citizen
  • ***
  • Posts: 137
Re: WDM driver latency
« Reply #2 on: September 21, 2015, 10:39:51 pm »

You're right, I was a little bit confused. I'm using ASIO in MC's output settings, and using the JRiver driver as the output in the other program. I still get the same delay whether I'm upsampling or not. Is that to be expected?
Logged

stewart_pk

  • Citizen of the Universe
  • *****
  • Posts: 658
Re: WDM driver latency
« Reply #3 on: September 21, 2015, 10:56:43 pm »

Well I don't know what's to be expected, I guess that depends on your hardware.

But I can confirm I get very little if any noticeable delay with ASIO.
I get a little bit of noticeable delay with WASAPI.
I get lots of delay with either ASIO or WASAPI if I have upsampling turned on.

But now that I think of it, I think I needed to set the sampling rate in Windows for the JRiver sound device to match what is being inputted from the application(s). By default it's set to 16bit-44Khz so I set it to 24bit-48KHz to match Netflix application and Cyberlink PowerDVD. I guess this prevents Windows from upsampling and then causing delay.

I hope this helps!
Logged

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5241
  • "Linux Merit Badge" Recipient
Re: WDM driver latency
« Reply #4 on: September 22, 2015, 07:34:00 am »

You're right, I was a little bit confused. I'm using ASIO in MC's output settings, and using the JRiver driver as the output in the other program. I still get the same delay whether I'm upsampling or not. Is that to be expected?

There's two issues here: 1) the delay for initialization of the WDM driver, and 2) the actual loopback latency of the WDM driver. 

There is always a short (few second) delay before audio playback starts with the WDM, but the driver discards a second or two of audio to"catch up" very quickly to the actual time at which things are playing.  The WDM driver is not good for listening to short intermittent sounds, but if you're trying to monitor on an ongoing basis you shouldn't have 3 seconds of delay at all times. 

The buffering settings for the driver determine what the "real-time" latency is once the driver has "caught up" (at least in a pure software loopback situation); with well-behaved devices you can get the latency down to 10 or 20 milliseconds. 

FWIW you may be adding significant latency by using a hardware loopback. Why are you using a hardware loopback instead of just routing the outputs in software or in your device's software mixer?  For example, why not have transcribe output to the WDM driver and have JRiver output directly to the Presonus's mixer instead of getting the keyboard involved?
Logged
Pages: [1]   Go Up