davidicus wrote: ↑18 Sep 2019
I haven't had this problem before. It started a few months ago, and is making it incredibly frustrating to record or mix.
I have a 7th gen i5 laptop. Even if I use no VSTs or effects, I'll get a periodic dropout. It does seem to get worse as I add effects.
I've tried:
- swapping my audio interface (which does seem to help--the worse problems might be with generic ASIO drivers?),
- killing background processes (there are few, since this machine is lean and dedicated to music production),
- ensuring there's as much memory and drive space as I can muster (16GB RAM, 200+GB free on SSD),
- updating Windows and all my drivers
It seems to love waiting for a particularly good take and then dropping momentarily in the middle of it, and it's killing me.
I would say that if these or similar projects are critical, use something more mature to record, and possibly mix as well.
Reason does not appear to have parallelism. Possibly the gorilla engine in 10.4 has changed that but I don't know. Without parallelism, things are iterative and can fall victim to "blocking code", meaning code that can't run until the previous code has finished executing.
This I think is the heart of a lot of these problems with dropouts. The more code that's trying to run in sequence, the less time there is for the processor to complete everything that's running. Eventually the CPU stalls out because the amount of things to execute exceeds the amount of time it can complete those tasks in.
Reason effectively allocates the maximum amount of memory for a given device. It doesn't take into account whether you aren't using most of the behavior that would require that memory, it just reserves as much memory as would be required to utilize every single bell and whistle of that device at once. That makes sense to have it on hand in the event that you want to make use of any of those things, but it does this for ever instance of device as well -- even if they're the same kind of device.
This means that memory consumption is based more or less on running devices inside of discreet "containers" that are internally recognized as distinct from one another. The contrast to that would be pooling resources in one place within memory, then recognizing devices as instances of a given type that can then tap into that one place in memory to calculate whatever they need to do at scale.
Further, these containerized devices that don't optimize memory are loaded into a "has many" linked list style graph that can also have loops in it. Meaning performance gets hit again by having to mitigate the potential for endless stack frames of recursion in some cases (like audio feedback in the cables).
The cherry on top is that, without being specific, resources are loaded in that consume memory but are never used. That's a whole rabbit hole of its own.
To sum it all up, even though I don't have x-ray vision to see the entirety of these glaring problems with unabridged clarity, I wouldn't recommend trying to make Reason suit your professional needs. The core of the architecture is unoptimized to a legendary level -- even now.
Fun creative play space, not professional workspace.