The GFX are certainly part of it, however they cannot account for the high RAM usage alone because the entire 'resources' folder for the DX7 V is only 157MB (183MB on disk) and not all thats in there is images. (There are circa 3MB of other stuff.)waltercruz wrote:I think that the high RAM usage is the images of the GUI. It's something that happens on all >V5 Arturia synths.ENV1 wrote:It eats quite a bit of RAM too.waltercruz wrote:I found the CPU usage very high.
Observe:
DX7 V, circa 245MB per instance. A gig of RAM gives you ~ 4 instances.
To compare: FM7, circa 30MB per instance. A gig of RAM gives you ~ 34 instances.
PS: This is on a 32bit system. On 64bit its probably a smidgen more.
So even if everything in the resources folder was loaded into RAM, there are still circa 79MB that must come from elsewhere. If we assume that the presets are being copied from disk into RAM as well then circa 24MB could be attributed to that, which would leave about 55. These 55 are then probably attributable to DLL decompression (the main DLL is circa 9MB filesize), DLL imports, etcetera. A small part of that (in my GIFs) would be attributable to whatever SAVIHost used. (Too lazy to check the exact details but it seems like a plausible scenario.)
At any rate, its higher than it needs to be. There is no doubt in my mind that this could be optimized quite a bit, and this goes for diskspace usage as well. (There is absolutely no good reason why 157MB worth of images should take up 183MB of diskspace.) A good start would be to use image strips for animations rather than a single image for each frame multiplied by the amount of available UI sizes. (Which is whats causing all the wasted space.) With 'convert' and a 1-line terminal command you can stitch a whole folder full of single images in under 1 second, and with a second line (just make a .cmd file for repeated use) you can even have the resulting image strip moved to the desired location automatically, still in under 1 second. So its practically no extra work/time, but the gain would be significant, especially considering that we are not only talking about one plugin, but many. (And some of them are way bigger than the DX7 V, the CMI for instance has a resources folder more than twice as large and a presets folder more than 6 times as large.)
The next step would be to make one hi-res 'master UI' (i.e. the 100%-size UI) and then simply scale that down on-the-fly for the smaller sizes. (This has been proven to work very well if done right.) To still have the sharpest-possible text for labels and stuff just generate it during runtime rather than baking it into the images. That way it wont be a problem even if one of the smaller UI sizes is being used on a bigger screen since the text will be rendered at its original size with full anti-aliasing rather than being shrunk with the images and thus suffer from unsightly blurring.
With these 2 things taken care of, both RAM usage and diskspace usage would be but a fraction of what it is now.
