Page 2 of 3

Re: Disk space and performance

Posted: Mon May 30, 2022 8:38 am
by utdgrant
That's a BIG patch! :o
ThatsABigPatch.png
ThatsABigPatch.png (2.58 MiB) Viewed 6263 times
I suppose one general approach you could take is to isolate each 'thread', or 'signal chain' and save it as a unique patch. Run that patch in isolation and see how much processor load you are using. That way, you can narrow down the most processor-hungry element(s) of the total patch.

You can then concentrate more of your optimsation efforts on those parts to help reduce the impact on total CPU load.


Also, I did notice a couple of things which suggest that a bit of housekeeping is in order.
Redundant02.png
Redundant02.png (554.16 KiB) Viewed 6263 times
The Six-Input Mixer appears to be redundant, here. I'd be inclined to just patch the Oscillator's pulse wave straight into the Ladder Filter's input. It's a tiny saving by itself, I know. However, if you stay alert to these small savings while building a patch, it all adds up. It might make the difference between a complex patch just being able to run or starting to glitch.

Re: Disk space and performance

Posted: Mon May 30, 2022 9:23 am
by ColinP
OK, you seem to have half apologised for being so rude to people here, so I'm going to give you one more chance. Any comments similar to the obscenities you posted before and it's bye bye permanently.

Your i7 8700 does about 28 GFLOPS so is reasonable powerful. It's about 75% as powerful as my CPU and I can build patches with about 200 basic modules so you ought to be able to do some fairly crazy stuff.

However as Grant points out you need discipline to build large patches. Just throwing another module at a patch isn't going to make it automatically sound better.

Your patch has seven plug-in hosts. I haven't got time to look at exactly what you are running in them but each of those is potentially very expensive.

Your patch doesn't have obvious structure so you'll struggle to modify or debug it. Use a separate cabinet for each sub-system. Ideally label each cabinet using a notes module on the far left. You can also document other stuff with the notes modules so that when you come back to a patch a week or two later any obscure details that you've forgotten about can still be understood.

Your patch is about the limit of what is sane to do without breaking it down into some kind of hierarchy. Again as Grant advises you could isolate things and then look at CPU usage running things standalone. Although as I've stressed in the thread on metering it's difficult to really judge how close you are to buffer overrun without a meter.

Anyway one way to break through these problems is to modularize by using the plug-in host to run separate instances of VM. You can then build sub-patches, test them and optimize them as best you can in isolation and then build a master patch that connects together these sub-patches with relatively simple high-level wiring between plug-in hosts. This hierarchical approach is far easier to manage than doing everything in one flat space.

My LSSP Tutorial 5 uses this approach and might be worth reviewing https://www.adroitsynthesis.com/lssp-101-tutorial-5/

Re: Disk space and performance

Posted: Mon May 30, 2022 10:07 am
by utdgrant
ColinP wrote: Mon May 30, 2022 9:23 am Anyway one way to break through these problems is to modularize by using the plug-in host to run separate instances of VM. You can then build sub-patches, test them and optimize them as best you can in isolation and then build a master patch that connects together these sub-patches with relatively simple high-level wiring between plug-in hosts. This hierarchical approach is far easier to manage than doing everything in one flat space.

My LSSP Tutorial 5 uses this approach and might be worth reviewing https://www.adroitsynthesis.com/lssp-101-tutorial-5/
There is some really great stuff in there, Colin. Fantastic resource!

In particular, the Performance Tips page is required reading for all!

Thanks,
Grant

Re: Disk space and performance

Posted: Mon May 30, 2022 2:15 pm
by theWholeSandwich
There are no input trims on the console mixer, which creates clutter.

JUST doing what You guys suggested - and then opening each component separately in LMMS, will eliminate most of those plug-in hosts and samplers. The PLHs are dynamics mostly, bus compressors, saturation which can just go on the main channel in lmms

Re: Disk space and performance

Posted: Mon May 30, 2022 2:17 pm
by theWholeSandwich
utdgrant wrote: Mon May 30, 2022 8:38 am That's a BIG patch! :o

ThatsABigPatch.png

I suppose one general approach you could take is to isolate each 'thread', or 'signal chain' and save it as a unique patch. Run that patch in isolation and see how much processor load you are using. That way, you can narrow down the most processor-hungry element(s) of the total patch.

You can then concentrate more of your optimsation efforts on those parts to help reduce the impact on total CPU load.


Also, I did notice a couple of things which suggest that a bit of housekeeping is in order.

Redundant02.png

The Six-Input Mixer appears to be redundant, here. I'd be inclined to just patch the Oscillator's pulse wave straight into the Ladder Filter's input. It's a tiny saving by itself, I know. However, if you stay alert to these small savings while building a patch, it all adds up. It might make the difference between a complex patch just being able to run or starting to glitch.


Yikes, thanks for pointing that one out! And thanks a LOT more for the Idea! Once I separate the various components, I can open each one in LMMS like I normally do. Then I can actually record (or export rather) the song.

Re: Disk space and performance

Posted: Mon May 30, 2022 2:26 pm
by theWholeSandwich
ColinP wrote: Mon May 30, 2022 9:23 am OK, you seem to have half apologised for being so rude to people here, so I'm going to give you one more chance. Any comments similar to the obscenities you posted before and it's bye bye permanently.

Your i7 8700 does about 28 GFLOPS so is reasonable powerful. It's about 75% as powerful as my CPU and I can build patches with about 200 basic modules so you ought to be able to do some fairly crazy stuff.

However as Grant points out you need discipline to build large patches. Just throwing another module at a patch isn't going to make it automatically sound better.

Your patch has seven plug-in hosts. I haven't got time to look at exactly what you are running in them but each of those is potentially very expensive.

Your patch doesn't have obvious structure so you'll struggle to modify or debug it. Use a separate cabinet for each sub-system. Ideally label each cabinet using a notes module on the far left. You can also document other stuff with the notes modules so that when you come back to a patch a week or two later any obscure details that you've forgotten about can still be understood.

Your patch is about the limit of what is sane to do without breaking it down into some kind of hierarchy. Again as Grant advises you could isolate things and then look at CPU usage running things standalone. Although as I've stressed in the thread on metering it's difficult to really judge how close you are to buffer overrun without a meter.

Anyway one way to break through these problems is to modularize by using the plug-in host to run separate instances of VM. You can then build sub-patches, test them and optimize them as best you can in isolation and then build a master patch that connects together these sub-patches with relatively simple high-level wiring between plug-in hosts. This hierarchical approach is far easier to manage than doing everything in one flat space.

My LSSP Tutorial 5 uses this approach and might be worth reviewing https://www.adroitsynthesis.com/lssp-101-tutorial-5/

Great feedback...better than any customer service you can get online I suppose. I did order another 8G DIMM as well

Re: Disk space and performance

Posted: Mon Aug 22, 2022 2:14 pm
by TheGarnet
Why is this patch failing to load this plugin?

c:\program files\TyrellN6(x64).dll

Why is a VM configuration trying to directly load DLL's?

Is this a security breach?

Re: Disk space and performance

Posted: Mon Aug 22, 2022 2:53 pm
by utdgrant
TheGarnet wrote: Mon Aug 22, 2022 2:14 pm Why is this patch failing to load this plugin?

c:\program files\TyrellN6(x64).dll

Why is a VM configuration trying to directly load DLL's?

Is this a security breach?
No, just one (of the many!) plug-in hosts trying to load up a VST plug-in that was part of the patch.
Unless you also own that particular plug-in, VM won't load it.
I believe you'd have to jump through several (expensive) hoops in order to use this as a malware attack vector.

Re: Disk space and performance

Posted: Tue Aug 23, 2022 1:45 am
by Steve W
TheGarnet wrote: Mon Aug 22, 2022 2:14 pm Why is a VM configuration trying to directly load DLL's?
I don't know about this specific preset, but I use VM's Plugin Host and Mini Plugin Host extensively for dlls and vst3s, both FX and Instruments, and both in standalone mode and as a plugin. You might want to read about those modules and try them out, if you have them.

Not all plug-ins work within VM. I have TyrellN6. It produced an error message in VM and locks up Nanohost. I probably don't have it installed properly.

Re: Disk space and performance

Posted: Tue Aug 23, 2022 4:21 am
by TheGarnet
Steve,

Thanks a bunch for your hints. I am an old school programmer since before the days of DOS, and wrote my share of DLLs, but I am very new to modular and especially VM. It was funny to see a reference to my old friend the DLL! Directly referencing DLLs, what a way to create something that is not cross platform compatible!

- Garnet