Design Discussion: Actions to Optimize RAM While Using Logic Pro

I create music in Logic. When I'm in session, free RAM is key.

Running Dropbox with a 1.6GB memory footprint is not optimal. However, I do want the sync of my projects when I'm not in Logic.

One idea is to have a KM macro that (1) kills Dropbox and then (2) starts up Logic. Seems fairly easy from what I read in this forum.

However, to start the backup again when done with the Logic session, I could choose solutions to either:

  1. Trigger KM macro when Logic quits and start Dropbox again.
  2. Make a KM with the purpose of shutting down my Mac, but not until (1) Dropbox is started, (2) Dropbox has backed up and also (3) Time machine has backed up.

Has anyone done this and are there any considerations, I should be aware of? I see that tmutil as a --block argument, which makes it possible to wait for that operation to complete. But has anyone successfully waited for the Dropbox sync to finish syncing?

PS. I've been in contact with Dropbox support about this memory huge footprint, and the solution was to have, uh, less files in Dropbox :laughing::man_shrugging:t3:

Not a solution for your problem. But I have heard people giving praise til https://maestral.app as an alternative client for Dropbox. Should not be so resourcehungry.

1 Like

Hey Christer,

I doubt your white knight is going to show up and solve this particular problem, although I've been suprised before...  :sunglasses:

Poke around the forum for Dropbox and Time Machine and see what you can find.

https://forum.keyboardmaestro.com/search?q=Dropbox

https://forum.keyboardmaestro.com/search?q=time%20machine

Google's site-search may produce better results:

your-search-string site:https://forum.keyboardmaestro.com

Personally I would start out by creating a couple of global macros that watch for Logic Pro to start/stop and quit/launch Dropbox as needed.

I'm using Drafts as an example, since I don't have Logic Pro:

Download: Global Macro Group Macros.kmmacros (4.1 KB)
image

image

I like @JimmyHartington's idea of using Maestral, and I will look into that more when I upgrade my hardware. It's a lightweight client and has good command line support.

-Chris

Great tip, thank you. I'll look into that! Do you know if it offers context actions in Finder as the official application does (offline, online, share link etc.)

I don't.

Oh, definitely not expecting anyone to solve it, that would take the joy away from creating the macros myself! :blush: Just wanted to discuss solution models on a higher level, especially where it would be best to tactically "place" and trigger the different concerns.

But good advice to make small and simpler helper macros first, the build on top of that. Make the solution mode modular and re-usable :+1:t2:

1 Like

I do not know as well since my use of Dropbox is only through the webinterface.

Uhm, quick question. In your example, your AppleScript seems to be syntactically marked up. Doesn't happen in my Execute AppleScript action. Is there something I need to do to get the markup?

Never mind, updated when I changed to a different macro and back.

How much RAM do you have? I don't know your level of experience with Logic, so forgive me if I'm stating the obvious, but CPU speed and thread count are the audio performance bottleneck most of the time. RAM is mainly an issue if you use a lot of large sample libraries (Kontakt, etc), and even then, there are ways to optimise usage (purging/updating the sample pool, etc). If you are worried about 1.6GB, you likely don't have very much RAM to begin with, unless you're doing orchestral scores and pushing your mac to its limit.

You can also hit the Enter key when the cursor is in the script field.

Thanks for the concern.

I'm running on a MBP 2019 with 16GB RAM.

Fortunately, I don't currently work with very large orchestral templates. But I do oftentimes combine a string library with, say, Ample Sound guitar and bass, plus a piano, flute, sax, so things add up, sometimes 10-12GB - this is the reason why I'm looking into shutting down Dropbox, for example.

I do purge when needed (and when I can) and also keep it tidy with regards to loaded articulations.

I'm curious to know what you mean by "updating the sample pool", though? Does that relate to amount of loaded articulations or something else?

It's just the name of the option in Kontakt's Purge menu that unloads all unused samples. Often, if you're just playing a few notes from a multi-gigabyte library, it will be reduced to just a few megabytes (or even kilobytes!). Sounds like you're already doing that, so I'm surprised to hear that a handful of libraries would add up to 10-12GB. I realise AmpleSound haven't yet included a Purge function; are you mostly a Kontakt user aside from that?

Mostly Kontakt based, yep, and I do purge when things start filling up. In addition I sometimes use VSL Elite Strings (fairly purgeable, I believe) and Orchestral Tools (not purgeable outside cherry picking articulations).

Don't get me wrong, normally don't hit any hard upper limit where things truly grind to a halt, fortunately. I've also freezed tracks, but i prefer to do that as a last measure, because it gets in the way of flow. I prefer moving less prioritized applications out of memory first, Dropbox being one of them - their memory footprint is bananas...

1 Like

Ah, ok, good to know!

Just FYI: I actually have saved the Kontakt instruments I use the most saved as Logic presets, made right after having purged them, so that they start from the lowest footprint possible when I pull them into a project.

1 Like

I've done that with a couple and also have a macro that loads Kontakt, loads any library and then purges it. :+1:t3:

Very cool, what your starting point for the macro? Based on selected track, open instrument and find purge button by find image activity?

I select a library in the Finder then trigger the macro which uses PlugSearch to load Kontakt, waits for the Kontakt UI to appear, drags in the .nki and then uses found clicks relative to the UI window corner to purge.

Very cool. How is the dragging performed? Is there an activity for that?