Microsoft Windows 10 Update Will Let You Use More Virtual Instruments & Effects In Your DAW

Microsoft has released a preview build for Windows 10 that promises to dramatically increase the number of plugins that you can run in your DAW.

The company is testing a ‘FLS Slot Limit Increase’. Here’s what they have to say about it:

“As PCs get more powerful, musicians have created increasingly complex projects with more tracks, more instruments, and deeper effects chains. As a result, some of those musicians were running up against a FLS (Fiber Local Storage) slot allocation ceiling that prevented them from loading into their DAWs (Digital Audio Workstations) as many unique plugins as they’d like.

This build greatly raises that per-process FLS slot allocation ceiling, allowing loading potentially thousands of unique plugins.

Beyond musicians, this change will positively impact any application that dynamically loads hundreds or thousands of unique DLLs that have statically-linked Visual C++ runtimes, or otherwise allocate FLS slots.”

We asked Microsoft Windows Pro audio and music person Pete Brown to help us understand what this update means for musicians. He explained that the current limitation has been there for years, but musicians are now running into it, because they’re using beefier systems and creating more and more complex projects:

Microsoft’s Pete Brown

“What was happening was that the DAW was using, say 40 slots itself, and then people with really complex projects were using many unique plugins (not instances, but completely different plugins) in their projects, and were running into problems loading the last ones that would have put the FLS count > 128.

That’s typically a very complex project on a pretty beefy system, but some folks were actually hitting that. The DAW would simply refuse to add an instance of that next plugin. They could use new instances of existing plugins in the DAW, because the code had already been loaded and initialized, but new plugins (new DLLs that haven’t already been loaded into the project) would just fail.

Now, we’d really like developers to dynamically link the runtime so that we could service it (bug and security fixes) without requiring developers to recompile their plugins. But we know that’s not likely to happen anytime soon, and for old plugins: never. So we changed the limit of slots from 128 to just over 4000.

Developers don’t need to do anything, but end users will no longer have their DAW plugin count capped by this limitation. The new count means that, today, users will run out of memory and processor time before they run out of FLS slots. But we’ve made it much easier for us to change in the future if/when we need to make it more than 4000.

The limitation goes back to the Vista and XP timeframe. The reason folks are running into it now, is PCs have gotten so powerful, that musicians are hitting this limit where before they would simply run out of memory or CPU.”

We also asked Brown to give us a layman’s summary of what the FLS change means for musicians:

“It’s a bit hard to put this completely in layman’s terms because it’s a change to the kernel code in Windows. But here’s a shot:

FLS slots are how we manage small in-memory storage locations for what are called “Fibers”. Fibers are lightweight threads. Threads are bits of code that execute in parallel, sometimes on different processor cores. Almost everything done in parallel in a DAW is using either Fibers or Threads to allow that code to be run. How that is handled differs from DAW to DAW.

DAWs are a process that can load external code (plugins) that are contained in DLLs. DLLs (Dynamic Link Libraries) are compiled code that is packaged specifically to be loaded by other processes. DLLs are the main way code is shared on Windows.

Most VST plugins for Windows are compiled using a version of Visual C++. Visual C++ has a runtime library full of functions that are used by anything compiled with it. That runtime library allocates (depending upon version) one or two FLS slots per instance of the library loaded in a process.

Now, for convenience and ease of installation, most plug-in authors statically link that runtime. That means that the runtime code is included inside the plugin DLL, instead of referenced from another DLL. So, if you have 50 different unique plugins loaded in the DAW, and each plugin statically links the runtime, there will be 50 copies of that runtime code loaded into the DAW process. Each copy of that runtime code will allocate one or two FLS slots, so you can end up with between 50 and 100 FLS slots used just by the runtime.

If the plugin dynamically links the runtime (that is, the plugin references a runtime DLL that is installed with the plugin, or is already present on the system), only as many copies of the runtime will be loaded in the DAW process as there are unique versions of that runtime. So, if there are 50 plugins in the process, but collectively they use, say, 5 unique versions of the runtime, there will be only 5 copies of that code loaded into memory. This is obviously better for memory usage, but also better because there will only be between 5 and 10 FLS slots used.

There’s a bit more complexity here based on how the runtime is installed (app local, global, etc.) and the versions available, but this captures the gist of it.

The DAW itself also tends to use a number of FLS slots. This varies significantly by product. The slot may be just for a variable used in the fiber to, say, keep track of a pointer into an audio buffer, or something else.”

If you’re a technically knowledgeable user and have hit this limit in the past, you can test the update. Since it’s pre-release software, Microsoft says that you should use the Insider build on a non-critical PC to test it out. Details are available at Microsoft’s site.

For other users, Microsoft expects to release the change in their upcoming ’19H1′ release. There’s no date set for this release yet, but the name means “first half of 2019”.

35 thoughts on “Microsoft Windows 10 Update Will Let You Use More Virtual Instruments & Effects In Your DAW

  1. Inevitably, many will read only the headline, “Microsoft Windows 10 Update Will Let You Use More Virtual Instruments & Effects In Your DAW”, and misinterpret this to mean that this windows update will somehow increase overall plugin processing power. Indeed, the wording of the headline seems intended to create exactly that (false) impression.

    1. You must have read this in your own special way. It simply says “allows you to use more virtual instruments & effects”

      NOT

      “It allows virtual instruments & effects to use more processing power”

      1. I also interpreted the title as meaning performance improvements for plugin processing. I guess the few of us are just special.

    2. The same what I thought when reading the article. Title sounds like MS improved processor handling, ASIO output or whatever so that we can use more plugins now.
      Title is clickbait. “use” should be replaced by “load”.

  2. And the curse of static linking continues, only offset by the curse of dynamic linking. As an ex-microserf, this just brings back the nausea of guiding people through builds.

    1. completely agree. “Sweet dreams…”, the masterpiece from Eurythmics, was created with an old Teac 8 tape tracks, few synths and few effects. Maybe someone has to learn the approaching method used by Mike Oldflied in Tubular Bells…

      1. So, so true… I’m glad you posted this comment Luca… same goes for Jarre cobbling together Oxygene with old synths on his kitchen table in his apartment … Just goes to show what you can do with limited gear and a bit of imagination.

    2. Keep in mind though that not everybody has the same application for their DAW as that – writing pop songs. I find that for film scoring, it totally makes sense to keep plugins open as each piece of music might literally chang all the time (e.g. with a new cut), and turnovers are very tight. So you might have to recommit complex effects chains when cutting / editing audio doesn’t yield a good result. I must admit that limits to track numbers are a bigger problem than number of different plugins though.

      1. An orchestral piece may use many plugins (128 plugins isn’t the issue in any case – it’s 128 FLS slots with some VIs or FX using more than one slot). One can easily use that many for instrument VIs – instances of Kontakt or the like and FX in that setting. (Not necessarily individual instruments in an orchestra, but samples from different sources used to create section blends can bump the numbers up very quickly). In addition, per track one might well have an EQ, a panning plugin, possibly compression (less an issue with orchestral instuments but still useful for peak taming, etc.) It’s not hard to use double that number in complex arrangements – which is why folks tend to offload processing for example in that setting to VSL on secondary or tertiary systems to spread the load as well.

        1. They said it’s not about several instances of a plugin, but DIFFERENT plugins. You won’t use a different EQ or compressor on every track.

    3. there are people that make other things than music in their daw’s, like sound design for video games or film, 128 different plugins is a rarity, but it is possible to hit that limit, also some people use templates on beefy machines that has almost everything they need loaded instantly, so you just focus on composing.

  3. FLS Slot Limit Increase

    As PCs get more powerful, musicians have created increasingly complex projects with more tracks, more instruments, and deeper effects chains. As a result, some of those musicians were running up against a FLS (Fiber Local Storage) slot allocation ceiling that prevented them from loading into their DAWs (Digital Audio Workstations) as many unique plugins as they’d like. This build greatly raises that per-process FLS slot allocation ceiling, allowing loading potentially thousands of unique plugins. Beyond musicians, this change will positively impact any application that dynamically loads hundreds or thousands of unique DLLs that have statically-linked Visual C++ runtimes, or otherwise allocate FLS slots.

  4. Like I said above, some plugins use quite a bit more than 1 or 2 slots, and the host typically uses 20-40 itself. It’s not about using 128 unique plugins. Although, for sure, if you’re doing a huge score and don’t want to bounce tracks, there’s no reason the OS should limit you on this.

    No, developers do not need to change their code to take advantage of this; it’s all in the OS.

  5. It seems that the existing problem is caused by some plugins that are very greedy when it comes to using FLS slots (it’s not one plugin per slot) so it is actually quite easy to hit the limit when using certain plugins. This would seem to be a very welcome update from Microsoft.

  6. Thanks to last Win10 update breaking overclocking , at least for Broadwell E chips , I will be LESS able to run more plugins unless they have fixed this . Thanks Microsoft for crippling my build .

  7. Just to clarify, this is not a total number of plugins but the number of FLS slots. As noted above by some others, some plugins are very greedy. I recently hit this. I had started a DAW, loaded just *16* VIs and could not load any more. This on a current generation system with a 12-core (6 real) CPU and over 16GB of RAM. The main culprit was the latest version of the Arturia V suite’s Analog lab which used up a large number of the slots all by itself.

    I have been working mostly on macOS a lot for a good while (and Win 7 – see below), but had recently switched to using Windows 10 temporarily recently and hit this brick wall right away.

    Interestingly, I had not hit this issue in my Win 7 studio setup where I can still load dozens (literally dozens) of VIs with a 10-year old Quad core CPU and only 8GB RAM. However, the problem still apparently affects Win 7 as well. Perhaps the older versions there were not using as many slots.

    There’s a tool at the link below that will show you FLS slots in use. You can use it to monitor how many each plugin is using as you add them.

    http://planetnine.jp/wp/2018/03/25/fls-checker/

    1. Thank you. This is very useful information.
      Perhaps the Artiria Analog Lab loads all of the DLL’s for each model in the library?
      I wonder if this is one of the reasons why Waves uses the Waveshell plugin, and loads their own algorithms inside the Waveshell.

  8. I have been working with DAWs and Mixing for nearly 20 years, dealing with Hardware and Software limitations, way, way back in the day (1998-2010ish). Yes, Computer Hardware and OSes are so much more powerful and efficient, but I was trained to manage resources on any system. It is great that the FLS limit has been raised.

    But, I never saw the point of loading a crap load of plugins into a DAW, any system is going to get Taxed. You can use Busses, for example, for Basslines or Drums / Percussion tracks, wich cuts down the load…. Or you can simply Bounce Down to Multiple Stems and Re-order back into the DAW or DAWS. -Depending how organized your productions are setup in the Box.

  9. Since about 10 years Merging’s Pyramix is using a real OS alongside Windows: Windows is allocated some Cores of the CPU while the real time OS uses some other cores for audio processing. That set-up opened a limitless ceiling of audio processing power, which alongside improvement in CPUs means say a 10 fold increase in number of tracks, busses, plugins, you name it. Windows is still needed for GUI and VST stuff.

  10. M$ should absolutely concentrate on ever since lasting Windows 10 latency issues when using any DAW/ any plugin with a Core i7 CPU. It’s ridiculous that my freshly installed 1.400 USD monster i7 ThinkPad isn’t able to play longer than 1 minute without dropouts (Reason/Tracktion/Ableton, any Audio Interface, any Asio driver), a task my 10yo AMD 4-Core was doing easily. Problem is known (see eg. http://yaturl.net/8ae7) and M$ is actually recommending doing a virus scan. Should have invested in a Macbook, if I`d knew this before…

    1. I had performance issues with a recent PC purchase and all Google searches were pointing to a CPU/GPU problem, when I actually got to the bottom of it was SATA HDD which I replaced with SSD and have had no issues since. Anyone having latency or audio stutter issues on Windows should see if their internal HD is Seagate brand and change that out first.

      1. Thanks for the tipp, much appreciated. The notebook got 16 Gigs of RAM with 512 GB Samsung SSD PM981 with 8 channel controller, really shouldn’t be the bottle neck. All I found out in hours spent with reading forum posts and Microsoft advisories is that Core i7 8550U Kaby Lake really has an latency issue on Windows 10 causing drop outs. Tried clean installs, deactivated the AMD GPU, stripped down the system only to vital drivers with no success. By the end I got a Windows 8.1 dual boot OS that is doing a solid job (need to deactivate network connection since M$ is bugging you with “not compatible” popups) and spent some money in hardware synths (DM12, Streichfett, Ulimoog, Roland JV 1010). Those fellows brought much fun into the ballpark 🙂

Leave a Reply