WMC polls tuners for EPG data, and at other times I believe. Maybe when it isn't doing this, perhaps after a recent EPG download, you get a good recording. When WMC is running on the network, and MC is recording, it could interfere.
Huh? Do you have a reliable source to back this up? I've never heard anything about WMC polling tuners for EPG data and there's no need for it to as WMC gets its EPG data from a web service that it downloads from daily. But in order for it to retrieve data from a tuner, it would have to actually tune to a channel which would show up as a connection in SiliconDust's Config app. I can assure you that I've checked the SiliconDust software numerous times to be absolutely certain that nothing other than JRiver is accessing a tuner when running tests.
Are you sure about this? Over on the Kodi forum one poster was saying that they have uninstalled the SiliconDust software from all Client PCs and only left a copy on their workstation to do firmware upgrades. That would imply no driver on the individual Client PCs. Maybe because Kodi uses the Default BDA Compatibility mode it is different. These are HDHomeRun Prime tuners, correct? Or at least network tuners?
I'm not absolutely positive, but I'm pretty sure it's a per-PC setting. Anything else wouldn't make any sense as the tuners are designed and intended to be shared with multiple devices within a home network and not tied to just one dedicated purpose.
My SiliconDust tuners are a mix of OTA (a mix of 2 x DUAL and 3 x Connect models, for a total of 10 tuners) and CableCard (3 x Prime models, for a total of 9 tuners) devices. All SiliconDust tuners are network tuners.
There is a new August 15, 2017 firmware. It has a lot of new stuff in it, including "Improvements to system logging and diagnostic logging". Perhaps get that, and start looking closely at the diagnostic logs.
That's the firmware version I updated to recently.
I think that there is enough evidence to warrant this testing. Either that or break your pool into two, one for JRiver and one for WMC. You need to test MC without WMC trying to use, or having access to, any of the same tuners.
You can't really break the pool into 2 other than telling each PC to only use certain tuners and configuring the order each PC makes use of the tuners. As I've said before, I've gone to great lengths to make sure that the 3 PC's using the tuners access them in different orders to minimize the chance of a conflict.
I will run a test with the WMC PC's physically disconnected from the network (unplugging the network cables will be more convenient than shutting them off and should be sufficient), but I need to find a convenient window to do so while I'm awake and not otherwise occupied that won't result in any lost recordings.
That would only prove MC is capable of recording with PCIe tuners. My system does that fine. I guess if it didn't work it could indicate a problem with your source signal, but you are confident about that.
If it didn't work, it would confirm that the issue is something very specific to the JRiver installation, though I'm still leaning toward that being the case. For the heck of it, I ran the test this afternoon, switching back and forth between enabling and disabling one of the PCIe tuners (so switching back and forth between using a SiliconDust tuner and a PCIe tuner). I consistently got bad results when using the SiliconDust tuner and consistently got good results when using the PCIe tuner. This at least tells us that a good chunk of the JRiver functionality is working OK, but we have seen in the past that JRiver has had to make changes to resolve issues working with specific tuners. If I had seen the same problem with both tuner options, that would have been good in some respects as it presumably would have narrowed the scope of the problem significantly.
Mind you, I am not totally convinced that MC doesn't have some issues with recording quality. There have been enough reports of issues to be suspicious, and I have seen some very minor pixelation in a few of my recordings, mostly at the beginning. But I have no way of knowing if that was an electrical spike, lightning, the neighbour runnings a large electric motor, something else on the PC, or MC. However, an awful lot of the reported problems just go away after some time and a lot of unanswered diagnostic questions. So testing in such a way to isolate the problem helps all future users who see something similar.
Quite frankly, I'm not at all convinced that MC doesn't have some issues with TV recording that are relevant here. Given that 1) WMC recordings have been nearly perfect (minor glitches are to be expected with broadcast and cable TV signals) all along and 2) the SiliconDust Viewer app works perfectly fine on the JRiver PC I'm having a really hard time believing that the issue could be anything but JRiver. Of course, I was asked to disable logging in JRiver as a diagnostic step, so I've got no JRiver logs to work with though I'm not sure how much info is in those logs that would be useful here anyway.
I just checked the logs for all of the SiliconDust tuners. There really isn't a lot of detail in those logs, but of significance there are no errors other than a few rejecting a request for a tuner because all tuners were in use from when I ran the big test yesterday ("20170902-00:59:40 HTTP: rejecting request from 192.168.1.206 - all tuners in use"). Here's a sample from the first CableCard tuner I have configured for JRiver to use (192.168.1.205 is one of the WMC PC's and 192.168.1.206 is the JRiver PC; requests for tuners from .205 only got to this device because I was making use of ALL the tuners for the big test last night):
20170902-00:40:46 Tuner: tuner2 tuning 553 FX HD (EAST) (auto:861MHz-727)
20170902-00:40:46 Tuner: tuner2 streaming rtp to 192.168.1.205:5003
20170902-00:40:47 CableCARD: tuner2 553 FX HD (EAST) (auto:861MHz-727) access = subscribed
20170902-00:41:02 Tuner: tuner2 rtp stream ended (stop request)
20170902-00:41:04 Tuner: tuner1 tuning 553 FX HD (EAST) (auto:861MHz-727)
20170902-00:41:04 Tuner: tuner1 streaming rtp to 192.168.1.205:5003
20170902-00:41:04 Tuner: tuner2 tuning 568 WGNA HD (auto:117MHz-716)
20170902-00:41:04 Tuner: tuner2 streaming rtp to 192.168.1.205:5004
20170902-00:41:04 CableCARD: tuner2 568 WGNA HD (auto:117MHz-716) access = subscribed
20170902-00:41:04 CableCARD: tuner1 553 FX HD (EAST) (auto:861MHz-727) access = subscribed
20170902-00:41:20 Tuner: tuner1 rtp stream ended (stop request)
20170902-00:41:21 Tuner: tuner0 tuning 553 FX HD (EAST) (auto:861MHz-727)
20170902-00:41:21 Tuner: tuner0 streaming rtp to 192.168.1.205:5003
20170902-00:41:22 CableCARD: tuner0 553 FX HD (EAST) (auto:861MHz-727) access = subscribed
20170902-00:41:31 Tuner: tuner0 rtp stream ended (stop request)
20170902-00:41:46 Tuner: tuner1 tuning 576 NESN HD (Boston (auto:639MHz-627)
20170902-00:41:46 Tuner: tuner1 streaming rtp to 192.168.1.205:5003
20170902-00:41:47 CableCARD: tuner1 576 NESN HD (Boston (auto:639MHz-627) access = subscribed
20170902-00:42:20 Tuner: tuner0 tuning 512 CW WLVI-DTV (auto:519MHz-3110)
20170902-00:42:20 Tuner: tuner0 streaming rtp to 192.168.1.205:5005
20170902-00:42:21 CableCARD: tuner0 512 CW WLVI-DTV (auto:519MHz-3110) access = subscribed
20170902-00:59:40 HTTP: rejecting request from 192.168.1.206 - all tuners in use
20170902-01:07:54 Tuner: tuner0 rtp stream ended (stop request)
20170902-01:08:09 Tuner: tuner1 rtp stream ended (stop request)
20170902-01:08:54 Tuner: tuner2 rtp stream ended (stop request)
20170902-01:10:24 Tuner: tuner0 tuning 550 USA HD (auto:135MHz-660)
20170902-01:10:24 Tuner: tuner0 streaming rtp to 192.168.1.206:56582
20170902-01:10:25 CableCARD: tuner0 550 USA HD (auto:135MHz-660) access = subscribed
20170902-01:10:25 Tuner: tuner0 tuning 550 USA HD (auto:135MHz-660)
20170902-01:10:25 CableCARD: tuner0 550 USA HD (auto:135MHz-660) access = subscribed
20170902-01:10:25 Tuner: tuner0 rtp stream ended (new request)
20170902-01:10:25 Tuner: tuner0 streaming rtp to 192.168.1.206:55448
20170902-01:10:53 Tuner: tuner0 rtp stream ended (stop request)
20170902-01:11:10 Tuner: tuner0 tuning 550 USA HD (auto:135MHz-660)
20170902-01:11:10 Tuner: tuner0 streaming rtp to 192.168.1.206:56582
20170902-01:11:10 CableCARD: tuner0 550 USA HD (auto:135MHz-660) access = subscribed
20170902-01:11:11 Tuner: tuner0 tuning 550 USA HD (auto:135MHz-660)
20170902-01:11:11 CableCARD: tuner0 550 USA HD (auto:135MHz-660) access = subscribed
20170902-01:11:11 Tuner: tuner0 rtp stream ended (new request)
20170902-01:11:11 Tuner: tuner0 streaming rtp to 192.168.1.206:55456
20170902-01:11:46 Tuner: tuner0 rtp stream ended (stop request)
20170902-14:36:52 Tuner: tuner0 tuning 550 USA HD (auto:135MHz-660)
20170902-14:36:52 Tuner: tuner0 streaming rtp to 192.168.1.206:56582
20170902-14:36:52 CableCARD: tuner0 550 USA HD (auto:135MHz-660) access = subscribed
20170902-14:36:53 Tuner: tuner0 tuning 550 USA HD (auto:135MHz-660)
20170902-14:36:53 CableCARD: tuner0 550 USA HD (auto:135MHz-660) access = subscribed
20170902-14:36:53 Tuner: tuner0 rtp stream ended (new request)
20170902-14:36:53 Tuner: tuner0 streaming rtp to 192.168.1.206:53880
20170902-14:37:24 Tuner: tuner0 rtp stream ended (stop request)
20170902-14:45:26 Tuner: tuner0 tuning 551 TNT HD (auto:717MHz-601)
20170902-14:45:26 Tuner: tuner0 streaming rtp to 192.168.1.206:56582
20170902-14:45:27 CableCARD: tuner0 551 TNT HD (auto:717MHz-601) access = subscribed
20170902-14:45:27 Tuner: tuner0 tuning 551 TNT HD (auto:717MHz-601)
20170902-14:45:27 CableCARD: tuner0 551 TNT HD (auto:717MHz-601) access = subscribed
20170902-14:45:27 Tuner: tuner0 rtp stream ended (new request)
20170902-14:45:27 Tuner: tuner0 streaming rtp to 192.168.1.206:62014
20170902-14:45:48 Tuner: tuner0 rtp stream ended (stop request)
20170902-14:45:58 Tuner: tuner0 tuning 554 Spike HD (East) (auto:855MHz-646)
20170902-14:45:58 Tuner: tuner0 streaming rtp to 192.168.1.206:56582
20170902-14:45:59 CableCARD: tuner0 554 Spike HD (East) (auto:855MHz-646) access = subscribed
20170902-14:45:59 Tuner: tuner0 tuning 554 Spike HD (East) (auto:855MHz-646)
20170902-14:46:00 CableCARD: tuner0 554 Spike HD (East) (auto:855MHz-646) access = subscribed
20170902-14:46:00 Tuner: tuner0 rtp stream ended (new request)
20170902-14:46:00 Tuner: tuner0 streaming rtp to 192.168.1.206:62022
20170902-14:46:10 Tuner: tuner0 rtp stream ended (stop request)
20170902-20:37:03 Tuner: tuner0 tuning 44 WGBX 44-DT (auto:471MHz-3317)
20170902-20:37:04 Tuner: tuner0 streaming http to 192.168.1.206:59054
20170902-20:37:04 CableCARD: tuner0 44 WGBX 44-DT (auto:471MHz-3317) access = subscribed
20170902-20:37:13 Tuner: tuner0 http stream ended (remote closed)