WDM Driver: Difference between revisions

From wiki.jriver.com
Jump to navigation Jump to search
No edit summary
Line 4: Line 4:


#In versions of Media Center after 20.0.95 the WDM driver is disabled by default. To enable it go to Options-->General-->Features and check '''WDM Driver.''' Then restart Media Center and the driver will install
#In versions of Media Center after 20.0.95 the WDM driver is disabled by default. To enable it go to Options-->General-->Features and check '''WDM Driver.''' Then restart Media Center and the driver will install
#Once the driver is installed, go to the windows control panel, and then to the '''sound''' menu item. You should see all of the Audio devices on your system listed. Select the one labelled '''JRiver Media Center 20''' and click the '''Set Default''' button at the bottom of the menu.
#Once the driver is installed, go to the windows control panel, and then to the '''sound''' menu item. You should see all of the Audio devices on your system listed. Select the one labelled '''JRiver Media Center 20''' and click the '''Set Default''' button at the bottom of the menu.[http://i.imgur.com/rEcsUiw.png]

[http://i.imgur.com/rEcsUiw.png]

#Make sure that, in Media Center, your setting under Options-->Audio-->Audio Device is '''not''' "Default Audio Device." You need to set your audio device to whatever your actual physical output device is. Because the WDM Driver is now the system default, setting JRiver to output to the system default just creates a closed loop.
#Make sure that, in Media Center, your setting under Options-->Audio-->Audio Device is '''not''' "Default Audio Device." You need to set your audio device to whatever your actual physical output device is. Because the WDM Driver is now the system default, setting JRiver to output to the system default just creates a closed loop.



Revision as of 19:16, 3 May 2015

JRiver Media Center version 20 for Windows introduced a WDM Driver (a kind of virtual audio driver), which can be used to re-route windows sounds through Media Center. This allows full use of Media Center's DSP stack for streaming content, and allows better integration with external audio sources, like streaming video services or video games.

How to Set up the WDM Driver

  1. In versions of Media Center after 20.0.95 the WDM driver is disabled by default. To enable it go to Options-->General-->Features and check WDM Driver. Then restart Media Center and the driver will install
  2. Once the driver is installed, go to the windows control panel, and then to the sound menu item. You should see all of the Audio devices on your system listed. Select the one labelled JRiver Media Center 20 and click the Set Default button at the bottom of the menu.[1]
  3. Make sure that, in Media Center, your setting under Options-->Audio-->Audio Device is not "Default Audio Device." You need to set your audio device to whatever your actual physical output device is. Because the WDM Driver is now the system default, setting JRiver to output to the system default just creates a closed loop.

Now whenever windows sounds or other system audio play (whether from web browsers, apps, or video games), they'll play to the JRiver driver. This re-routes the audio through JRiver's DSP stack to whatever output device you have selected as an audio output in JRiver.

Troubleshooting Common Issues

Clicks, Pops, and Static

Clicks, pops, and static are typically caused by buffer underruns, and because the WDM Driver is re-routing sound in real time, it is more sensitive to buffering settings than normal audio playback. There are two buffers that are important to WDM performance:

  • The output buffer, found at Options-->Audio-->Device Settings, and
  • The input buffer, found at Options-->Audio-->Advanced-->Live Playback Latency

If you are experiencing clicks and pops, try different combinations of settings with these two buffers. It is important to note that a larger buffer will not necessarily work better. Different hardware configurations work best with different combinations of settings, so try different combinations large and small until you find settings that resolve your issue.

Lipsync

Because the WDM driver requires some buffer to function, it necessarily adds some latency to audio. For pure audio applications, this is irrelevant, but for streaming video (or video games), too much latency can cause lipsync issues. If you're experiencing these issues, you can adjust the two buffers listed under Clicks, Pops, and Static above. The total added latency is close to the sum of those two buffers, so you want to try and find the combination of buffer settings that creates the lowest total latency, but doesn't cause audio drop outs as described above.

The recommendation for lipsync in film is about 22ms; the recommendations for television are about 45ms. Most delays below 45ms will not create visible lipsync issues, and higher latency may or may not be noticeable to all viewers. If your combined buffer settings are below this threshold, and you still have noticeable lipsync issues, there may be other factors contributing to your latency other than the WDM Driver, such as that native latency of your audio device or using certain DSP modules (such as Convolution).

What is IPC?

The WDM driver's output appears in JRiver's playing now as a library item named IPC. It stands for "inter-process communication." If you see it in your playing now, it's proof that the WDM driver is working.

Erasing Playing Now and/or Focus Stealing With JRiver's Internal Browser

Because of the way JRiver's Playing Now is structured, the WDM driver can sometimes have unintended consequences, and this section provides some workarounds for those issues.

For example, if playback is stopped and you're queueing up tracks to play by adding them to playing now, and a windows sound plays (engaging the WDM driver), you may find that the playing now is now suddenly empty except for IPC. That happens because the WDM driver acts just like any other library item you click play on, replacing playing now.

Similarly, you may find that if you use JRiver's internal browser to navigate to a streaming video website, when you click play, the WDM driver will engage and steal focus, effectively stopping video playback.

Neither of those situations is desireable, but there's an easy fix: setup an extra zone to receive WDM input, and setup a zoneswitch rule to automatically route WDM output to that zone. Properly configured, it will protect your playing nows, and also prevent the WDM from stealing focus from web video. Here's a step by step adapted from the forum:

  1. Setup the WDM driver as described above
  2. Go to Player-->Zone-->Add Zone. In the dialog box that pops up name the zone something like loopback, and in the second box choose to copy your current working zone (it may be named "Player" if you haven't edited it). Click "ok"
  3. Now right click on the new zone under playing now, and click on the "ZoneSwitch" context menu item. If you already have zoneswitch rules, you'll need to add a rule that routes WDM driver output to the new zone; if you've never used zoneswitch before, do this:
    • In the dialog box, press the add button. Then name the rule something like "loopback," and enter the following rule [Name]="IPC" Then tell it to play in the loopback zone and stop playback in your normal zone.
    • Add a second rule, and name it something like "normal," and enter the following rule -[Name]="IPC". Then tell that rule to play in your normal zone and stop playback in the loopback zone.
  1. Some people have reported that they had to change their Jump on Play (audio) settings under Options-->General-->Behavior to none for best results, but it typically works fine with most other settings under that option.

Once configured, if you try to play a streaming video service from inside JRiver's internal browser it should work fine. Just make sure to start playback from your normal zone, and not the loopback zone. The primary limitation with this method is that volume control isn't easy to manage because the zone you're playing the video in won't be playing the audio so the normal volume controls may not work as expected. However, you can still adjust volume in the streaming video service's on screen volume control and it should work; it's just JRiver's volume control that can be hard to manage. Another good solution is to make sure to set the default volume in your loopback zone to the volume at which you you normally like to watch streaming content, so it's close to correct by default.

Resources