Cool. Thanks for working on this.
Yell if you need help scripting the startup sequence.
So I've been having some trouble on the start up sequence. Specifically, I'm having a hard time getting two instances of JRiver to load. My method was to copy the first registry startup entry and modify the command line, but I just wind up with one instance when I boot. I think I understand the command line parameters, I just can't seem to get it to load twice on start up. To be fair, I haven't done serious start up manipulation in a Microsoft OS since autoexec.bat and config.sys. I could easily write a batch file that would do it (I remember the syntax), but I'm not sure batch files are even still a thing in windows. I guess I've seen some batch to .exe converters, but my guess is that there's a much easier way to be doing this, and I'm not too proud to ask for help!
In the "good news" category, I tested the set up in some "high intensity" situations and learned a few more settings quirks. Specifically I watched a Blu-Ray and played Skyrim (launched from the steam client, which was launched from JRiver). Everything worked correctly. Sound was synced, and I noticed no significant degradation of performance. With all the settings turned up to Ultra in Skyrim, I got a little occasional framerate decrease, but I always get a little framerate dropping on Ultra, and "High" ran smooth as silk. So neither latency nor the additional processor load appear to be a problem in my system (your mileage may vary, for reference, my JRMark is in the low 4,000's on a good day). It appears that even videoclock continues to work correctly* (but see below).
Some little tweaks:
1) Make sure you don't have adaptive volume on in both places or you can get strange results.
2) You'll (sadly) need to turn off autoplay for CDs/DVDs/Blu Rays; otherwise both instances will fight to try and play them, and
3) I couldn't get the MADVR OSD to appear while playing the Blu Ray no matter what I did. I tried changing the key configuration, doing it when JRiver had focus (and when it didn't), when MADVR's control panel was up, tried different windowed and exclusive modes, everything I could think of. That may just be a more general glitch though, as I can no longer see the OSD even when one instance is running. The OSD was working four days ago, so I have no idea what's up with that, but I thought I'd report a potentially related glitch. That also prevents me from reporting authoritatively on Blu Ray performance. All I can say is that sound appeared to be perfectly synced and I couldn't see any dropped frames, etc.
Some "Bigger Picture" Thoughts:
I'm not a software developer (which should be obvious), but this seems to suggest that the JRiver folks could potentially implement what is essentially virtual-sound-device-like functionality without going to the trouble of creating a WDM driver, i.e. by just by creating a tray widget that's effectively a duplicate instance of JRiver that only loops back, but still allows DSP/audio output tinkering/etc. In addition to providing most of the functionality of a "proper" virtual sound output device, it would also allow for some DSP functions that currently cannot be accomplished in JRiver. For example, to bring up a previous issue I had, I can make dialogue more audible by boosting the center channel volume by a custom amount before the 5.1 gets downmixed to 2.1 because I have two bites at the output format with PEQ in between.
Thinking it through, the only problem (that I can think of) that a WDM driver would solve that a "tray widget" approach would not solve would be the use-case of folks who don't have a second disconnected sound card to send the loopback to. I'm not sure if that's an enormous problem or a non-problem. Most of the frequenters of this forum seem to have either a USB DAC, an internal soundcard, or are bitstreaming to a receiver. In most of those cases there's an unused MoBo soundcard literally built right in. But I can imagine there may be a significant number of less vocal folks who don't have a "dead" device for loopback.
I'm mostly just thinking out loud. I'm still kind of in awe of the fact that JRiver will tolerate (and function correctly) even in pretty "off-label" uses, like the one I'm experimenting with. Once again, I'm extremely grateful for the flexibility and stability offered by the software. The devs are doing impressive work.