• The move to the new server is done. There are some software and database maintenance updates in process. This has us passing the hat around to help out. We appreciate any donations. Seriously, even a dollar helps. The payment page may be found here - https://www.audiokarma.org/support.html

Windows based Media Server: Experiences & Insights

For a media server, boot/hibernate/sleep aren't relevant. A server is turned on, and left on. It shouldn't go into hibernate or sleep.

Windows (non-Server Edition) certainly won't go into hibernate/sleep mode if you configure the Power settings to prevent it. Most of Windows is geared toward 'Laptop Use Cases' and defaults to those settings to extend battery life. For a dedicated Media 'Player', all-power-all-the-time is the best approach.
 
Windows (non-Server Edition) certainly won't go into hibernate/sleep mode if you configure the Power settings to prevent it.
Yes; that's how you should configure a server. I was trying to say that you don't want a server configured to hibernate or sleep; "A server is turned on, and left on. It shouldn't go into hibernate or sleep." The 'notable tweaks' text discussed the pros and cons of hibernate & sleep: those are not relevant to a server; turn those modes off.
 
For a media server, boot/hibernate/sleep aren't relevant. A server is turned on, and left on. It shouldn't go into hibernate or sleep. Power mode: balanced; turn down the clock when not doing anything, and bring it back up when the server needs to serve...
it absolutely is relevant because , out of the box windows has them turned on and they need to be turned off

turn down the clock on the server and you get a delay when it is called upon. but that's your choice.

i also leave my mech drives always on because i do not want the delay.
 
Yes; that's how you should configure a server. I was trying to say that you don't want a server configured to hibernate or sleep; "A server is turned on, and left on. It shouldn't go into hibernate or sleep." The 'notable tweaks' text discussed the pros and cons of hibernate & sleep: those are not relevant to a server; turn those modes off.
re-read what i posted. it is not pro-hibernate, it is the opposite. he even tells you "why i recommend not using......."
 
I stumbled onto another good Windows Optimization Guide from Gig Performer. Covers much of what we are discussing.

 
Now, here's another site that gets deeper into the Tweaker's Zone, even though this is entitled 'Basic Tweaks' by Melody!

What got me thinking about their tweaks is this one: Tell Windows to stop tolerating high DPC/ISR latencies.

What is DPC latency?​

Many audio problems on a computer can be caused by high DPC latency. But what is DPC latency? DPC stands for Deferred Procedure Call. In its purest form, it is the part of your Windows system that handles driver efficiency. If a driver takes longer than usual to process, it may prevent other drivers from being processed in time (latency). If you’ve tried uninstalling and reinstalling drivers, tried different ports and cables, and you’re still having issues, checking the DPC latency can help narrow down the core issue. Some common symptoms of high DPC latency on your Windows PC can be stuttering video playback or inconsistent performance with your peripherals (mouse, keyboard). However, the most common symptoms are audio dropouts, clicks, and popping.
When you have high DPC latency on Windows, your computer’s audio drivers (either built-in system soundcards or external audio interfaces) won’t respond in time. This causes clicks, pops, distortion, and dropouts.
Now, this get's into the world of 'Driver Sliming', which is perhaps going a bit off the deep end. Gamers seem to only want to load up what they need. Since I use an NVidia GPU I have used NVSlimmer and it does what it says it does, loads up only what you designate.

And to get down to what is really going on with Latency, LatencyMon will give you some insight:
 
Last edited:
i've been disabling user account control for about as long as i've been doing computers.

no reason not to disable it if you are the only user and you know what you are doing. but it's not for everyone as we all know that not everyone knows what they are doing.
 
care to elaborate?

Since I only hear about RCE and various other exploits after they've been published....I'll give an example.

Let's say there was an exploit for FLAC decoders that allowed you to do what most overflow exploits do...break something and then execute some arbitrary code. Let's say that code wants to just erase the Windows directory. It's a 0Day..maybe only 12 people know about it; but they've decided to just throw some files out there. So..let's say I decide to play this file because like 99.999% of people...I don't know this exploit is a thing. I attempt to play the file...I get a UAC prompt. This....is not normal and shouldn't happen. I click cancel. File doesn't play. I'll try other players...same result. Thankfully I didn't give in and click OK...becuase there's absolutely zero reason my music player should be throwing a UAC prompt attempting to play a FLAC file.

Now...if I disabled UAC...then the code would have just eaten Windows without question.

No..this is a pretty lousy example and is no way meant to be indicative of a real scenario. You wanted elaboration...that's my elaboration. UAC is there to protect you from what you don't know about more than it is to be an annoyance "for noobs". I can count at least two times where a random UAC popup that I could not explain and then denying those prompts prevented something malicious no one knew about from completely infecting my system.
 
it is not pro-hibernate
I didn't say it was pro-hibernate. I said it discussed the pros and cons of hibernate; what it is for, and why it is used.

I didn't phrase myself very clearly with my 'irrelevant' comment; I should have said 'inappropriate'; hibernate and sleep should not be enabled for a server. To me, that seems perfectly obvious...
 

It’s all about Latency, and why it is important!​

Well, this has been an eye-opening experience. I upgraded my system to what most would call the latest & greatest; NVMe Drive, 32Gb of RAM, 12th Gen Intel Processor and one of the latest B760 chipsets. And when I took a look at what LatencyMon had to say, well, I was a bit bewildered! :idea:

1698174891346.png

So, in the next few threads I will try to capture the things I did to get my system to look something like this: :music:

1698174877855.png
 
1698180408664.png

this is my music pc, nothing special, its been running for days
when i installed win 11 i shut off all the normal crap and bloatware.
power management is full on always, never sleep
it runs optical to bluetooth,usb to dac, hdmi to avr. all at the same time
 
Last edited:

CPU Processing is the key!​

Now, I had followed pretty much all of the guides and links posted previously, but obviously was still struggling with latency issues. I searched around for folks that had done some improvements to the output from LatencyMon and ran into this YouTube video from a guy named NeoFirox.

He’s definitely a gamer, and I believe he may be German, so sometimes his accent comes through. He does struggle at times to put things into ‘plain English’ and he goes through things pretty fast. I will also say he at times just ‘wings’ a setting and says he doesn’t exactly know why he did something, but it works for him. I guess I get it, he’s compiling a bunch of known tweaks. But these are the bits I think really helped me:

Get the BIOS straightened out.​

  • He makes the point of making sure you are on the latest release of your BIOS, and I get it. Newer boards/chipsets will have drivers that may still be evolving at the time of release.
  • My MSI board came with a BIOS v1.4 and just the other day they released v1.6 to fix some issues with the CPU utilization.
  • The point is, for the first year or so of your motherboard’s release, it is important to keep your BIOS updated.
  • Disable anything that has to do with virtualization. Virtualization has made it into client OS’s for development and also to support VDI, but it has no place on an Audio Platform.
  • So, be sure to disable Intel Virtualization support including Intel VT-D.
  • Also disable Hyper-threading, your CPU cores should only be processing a single thread and shouldn’t be ‘switching’ to attempt multi-processing.
  • I disabled Intel Speed Shift Technology to allow the OS to control P-States. And I also disabled Intel Turbo-Boost Technology so that the CPU maintains its frequency of processing. My position is that you want a very stable platform for processing a digital stream and don’t want the CPU cores to fluctuate with power/speed.
  • The final piece of the puzzle in the BIOS for me was to disable the C-States so that the CPU cannot control any of the core power settings.

Get your power settings SET.​

  • I had ‘unveiled’ the Core parking setting in the Ultimate Power Plan, but there we are couple other settings I had not seen before like:
  • Processor idle demote threshold (set @100%)
  • Processor idle promote threshold (set @100%)
  • Minimum & Maximum Processor State (set @100%)
  • And since I don’t have an integrated GPU on my processor, I found the NVidia tweaks to be informative.
  • And finally, the Message Signaled-Based Interrupts (MSI) tweak for my NVidia driver revealed that it wasn’t running in MSI mode. So that got fixed!

Conclusions & Opinions​

That about covers the things I put in place from this video and it definitely improved my latency. I haven’t played around yet with setting up the CPU Affinity, but that’s next on my list of to-do’s to see if I can reduce the latency even further.

I will say that my sound quality (SQ) has improved as I’ve gotten further into these tweaks. My soundstage is broader, instruments have more separation and depth, and the overall detail has improved.

I haven’t tested Fidelizer since I started doing these tweaks, but I’m wondering if I’ll really notice much difference now. Is Fidelizer doing much of this under the covers, or is it prioritizing the Audio process even further? Who knows?

I will say one last thing about latency, and this is my personal opinion; because we have separated the DAC from our Transports with a Media ‘Platform’, I believe that even with buffers in place for output and input, it’s the old garbage-in-garbage-out scenario.

If the timing of the feed to the DAC buffer gets skewed in any way, it’s not possible to re-establish the proper timing. And this is why latency is so important for presentation from any source. You need to establish a stable, consistent timing of the feed. Yes, you can point to it being an ‘asynchronous’ interface between the Media Center and the DAC, but that doesn’t mean it doesn’t matter.

That’s my personal opinion, and I’m sticking with it! :thumbsup:
 
Last edited:
Oh, and one other thing, I noticed when I was using the 'SMSL Kernel Driver' in JRiver my ISR/DPC went up for the Kernel Mode Driver, which makes sense. So I switched to the 'SMSL WASAPI Driver' and everything settled down. I don't notice any real SQ difference, so I'm sticking with WASAPI. YMMV.

1698181296916.png
 
And one last thing! I have my Page Swap manually set at 16Mb min - 1024Mb max. I noticed I was getting a ton of Hard Page Faults. This tweak seemed to clean that up quite a bit.

Disable 57-bits 5-level paging, also known as "Linear Address 57". Only 100% effective on 10th gen Intel. 256 TB of virtual memory per-disk is way much more than enough anyway.

bcdedit /set linearaddress57 OptOut

bcdedit /set increaseuserva 268435328

Here's the beef!

Also look at this:
DisablePagingExecutive

Key: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
REG_DWORD: DisablePagingExecutive
Data: 0

Prevents pageable "User-mode and kernel-mode drivers and kernel-mode system code" from getting paged out (from memory) to disk (page file). This one is used by many and do "work" (i.e. it's not bogus). The MS documentation for workstation OS (2000/XP) mainly points to it's usefulness for debuging purposes, the server documentation also points to improved performance. However don't expect any miracles (if anything) and certainly nothing near what's often claimed by many tweak apps and guides.
How to stop the NT Executive from paging to disk

User-mode and kernel-mode drivers and kernel-mode system code is usually written to be either pageable or non-pageable. In cases where drivers or system code is pageable, you can use the following registry entry to keep this pageable code in RAM, but this is only advisable on systems with extremely large amounts of RAM.

This entry specifies whether user-mode and kernel-mode drivers and kernel-mode system code can be paged to disk when not in use. If the value of this entry is 1, the drivers and kernel must remain in physical memory. If it is set to 0, they can be paged to disk as needed.
 
Last edited:
Minimserver software feeds files from the PC's drives into our home network just fine. Also feeds streams from the Internet into the home network.

I keep all music files in one folder (which has some subfolders). I select and copy files for a listening session or two into another folder. Make sure the latter folder is set in Windows to Share. Minimserver makes the contents of the latter folder available for DLNA/Upnp playback.

BubbleUpnP on an Android tablet controls playback.
 
Minimserver software feeds files from the PC's drives
Thanks for that share, hadn't really heard of Minimserver player. I use JRiver as a player, but they are both players on a PC. What we are getting at hear I believe is that a file is just a container, be it FLAC, WAV, APE, whatever. That container has the data for the song that has to be converted to a PCM (pulse code modulation) stream within the PC.

This process of conversion and then streaming to an external DAC I believe (in my opinion) is very sensitive to time based distortion. I've heard it!

The closer you can place the source of conversion (the PC) to the decoding of the PCM stream (DAC) the better for SQ. That's why long, long ago in a land far, far away, we had dedicated transports (CD/SACD/HDCD players) with everything built inside so that the reading from the laser and the transfer of the stream to the DAC could be very closely controlled.

Now we rip our digital content into a lossless file container and move it around as a file. But it still has to get unpacked and presented to a DAC. And now, very much removed from that DAC.

I'm not saying that using a network with ethernet switching and all of the handoffs (Wifi, Bluetooth) doesn't work or doesn't sound good. What I'm saying is that there is a lot of testing (and audible comparisons) that has been done with direct connections like USB, HDMI & S/PDIF. But I've yet to see ethernet really included in any of these comparisons to fully understand what impact any latency has on the SQ of that stream.

My point in my comments above is once the file is unloaded from the container and converted to a PCM stream, that stream is sensitive to any disruption or latency. You can say your interface is asynchronous, but that just means there's a buffer on either side and timing is controlled within the DAC. However, if there is any latency built into the timing of the PCM stream itself you end up with not only drop-outs and clicks, but I believe a level of 'micro-stutter' that can alter the SQ.

My opinion and I'm sticking to it!
 
Last edited:
Back
Top Bottom