Mainstage RAM Management

Prior to using MS as a live playing host I used Logic along with a very complicated environment setup. In logic and every hardware sampler I've ever owned you could load up one sample only once and then use it multiple times with different instrument settings. Mainstage will not allow for this unless you load a sample set at the concert level but then that is flawed since you can only have it set one way - can't change the keyrange from one patch to the next or anything else.

Lets say you want to have simply one fabulous instance of Ivory or similar ram hungry VI for every instrument setup you use piano with different keyranges from patch to patch. You can't do this in MS without having separate instances or the VI along with a huge penalty to RAM footprint. This is a huge limitation. You can do this in Logic but not MS. Even a simple EXS string instrument cannot be used in more than one patch without it being loaded into ram for each time you use the instrument. Logic will let you load up 20 EXS patches all using the same sample set, have every one of those EXS's with different envelopes and filters etc and only load the sample set ONCE into memory - and will allow you to apply different plugins on each without upsetting ram requirements.

MS also insists on keeping ALL virtual instruments including samplers loaded ALL the time chewing up big chunks of ram for no reason. It would be great if Apple simply offered a preference to unload the instruments that weren't being used in the current patch. I understand this may mean slower load times for each patch but most of the time slower loads is fine with me so why not offer the choice and it would take care of the RAM wastage issue.

This is my one big wish for MS. As a version 1 program it truly is well on it's way to being the answer to my performing prayers and features like being able to remap all the faders, wheels, pdeals and knobs on my controller to just what I want in every patch is truly great but without that memory management handled it will always fall short.

I've been meaning to write my MS impressions for a long time. Hopefully I'm not the only one who has such a big issue with the memory management because then maybe Apple will do something about it. I'll be sending this post to the Apple Feedback form as well.

Kind regards


:::::::::::::::::::::::::::::::::::::::::::::::::::
Paul Najar
Jaminajar Music Production
<edited by host - see the [Terms of Use|http://discussions.apple.com/help.jspa#terms], section 2.6.3>

Mac OS X (10.5.7)

Posted on Jun 11, 2009 9:30 PM

Reply
21 replies

Jun 11, 2009 11:12 PM in response to jaminajar

Of course you can change key range of a Concert level instrument, by overriding it: create another instrument and check the "Override Concert" check box in the inspector. That will replace Concert Level sound by Patch level in the new instrument's zone.
And if you need more than one Concert Level instrument (like Ivory or Kontakt or so) did you consider putting it at Set level ?
The only limitation is that you should not be able to layer Concert or Set level instruments with patch level instruments.. but in fact you can ! If interested, tell me and I'll be explaining because it's a little psychic...and would take some time !
ANd about memory limitation, EXS 24 has no memory limit so use it first if you can.
However, I'm running a big setup at the moment on the biggest show here in France, crammed with Omnispheres, Symphobias, Râ, Kontakt 3 stuff. It works perfectly, we had not a single glitch from the beginning... but it's a big computer: Nehalem, 16 Gigs, 4 disks..

Jun 12, 2009 3:43 AM in response to Sarl Apaxx Designs

Thanks for your response Sarl. Perhaps I was not clear enough. Yes you can change the keyrange of a concert or set level instrument but you can't change it (or any other parameter) on a per patch basis. If you change it to suit one patch those setting won't suit the next split or layer you might want in another patch. Using patch instrument override is at best only a partial solution to this suiting only some situations.

You rightly point out that you cannot layer a concert level instrument but then you suggest that perhaps you've got a workaround? If you have the time I would love you to explain this...

A Nehalem with 16GB ram is very nice indeed. I'm using a recent MacBook Pro with 4GB - which is not a slouch but not in the same league as yours.

One again I wish Mainstage had decent memory management. As it stands now having 4GB ram is only about as useful as having 128MB 15 years ago in a hardware sampler that DID have decent memory management. My one big wish...

Jun 12, 2009 12:04 PM in response to jaminajar

You are right. These are just workarounds and better memory manager is highly desirable for me too.
Set level should be reserved to kind of static plugins ou multitimbral:
Ivory is a good candidate, as would Kontakt, Symphobia or the like.
As for Layering here is the workaround:
Go to Layout and create a second keyboard, with the same settings as your original one (I suggest All Channels) and this one will be used as a ghost in this manner: if you want to layer in a set patch, choose your first Kbd to be assigned to the Set level Instrument and the patch instruments should be connected to the 2nd virtual Keyboard with overriding on for all channel strips. The trick is how to have pedals working in both levels at the same time: in layer mode, assign them to the main keyboard, not to All.

Works fine, but I never heard of that anywhere. Just tried, and it works perfectly !!

Cheers,

Jean-Louis Hennequin

Message was edited by: Sarl Apaxx Designs

Jun 12, 2009 4:28 PM in response to Sarl Apaxx Designs

Nice work around for the layering Jean-Louis. Thanks for that. I'll check it out. Sorry for calling you Sarl last time. It was the only name I could see.

I guess I had a small hope that by opening this thread that someone might tell me I was wrong about the memory management. Sadly that's not going to happen. I've posted my original comments at the Logic Pro feedback page as well. Bring on version 2...

Kind regards

Paul Najar

Jun 12, 2009 10:24 PM in response to jaminajar

In fact, the RAM management we dream of exitsts, but just just for EXS 24.
EXS 24 never loads the same sample twice and is not limited to 4 Gigs of RAM like all the others third party plug ins. Which makes it very special... some manufacturers find it a little bit unfair, but it's probably because EXS is part of MS audio engine. And for the 4 gigs limit, with Snow it will no longer be a problem.

Did you consider using your most RAM-Hungry instruments in their standalone fashion outside MS ? SO you can adress 4 Gigs to each of them... if you have RAM enough it works. But you'll have to rely on their internal FXs or treat them separately with a mixing desk.

Jun 13, 2009 5:17 AM in response to Sarl Apaxx Designs

Are you completely sure on this RE EXS? I'll check again but I could swear that the simple string ensemble sample set I was using in EXS last week loaded up separately each time I used it in a different patch.

As to whether EXS can use it's disk streaming capability in Mainstage I've not checked...?

My problem is not that 4GB ram is not enough - in fact if Mainstage had anything like reasonable memory management it would be heaps of ram - because then Ivory style instruments would happily stay loaded only once no matter how many patches I wanted to use it in. My only workaround is to have only one nice piano instrument for serious piano playing - then anywhere else I might need just a few octaves of a piano in a split or a split & layer instrument I resort to using a small EXS piano sample just to manage memory.

Seriously though Apple need to think of this as two different features needing to be added. One is the memory management we discuss and the other is giving the user the choice of whether Mainstage keeps ALL its instruments loaded all of the time OR simply have it only load up the instruments for the patch required at the time. I know this can mean slower loads for each patch but the user should have the choice here...

Jun 13, 2009 8:59 AM in response to jaminajar

Of course MS would be much easier to use without those memory issues...
Mainstage uses EXS streaming with no fuss. But since you cannot open EXS Editor in MS you cannot turn it off. And I'm positive about EXS dealing with sample redundancy.

And about having Ivory in some patches for small splits and even layers, that's where Set Level comes in: create your Ivory on set level and then build patches "inside" this folder.This way, Ivory will be available to every patch within this particular set.

Then make your splits in patch, override set settings for patches instruments, and everywhere else, you hear your Set level instrument, in that case Ivory. And if you want to layer Ivory with some patch instruments, then use my dual kbd trick.

I know this just a workaround but it works, and for a piano, you may not change your settings in everysong. And if you have to, route Ivory to a separate output and process it in an outboard mixer.

See what happens in MS 2 😉

JL

Jun 27, 2009 1:51 AM in response to jaminajar

I think this is a totally ridiculous problem. Two members of my band are running our instruments out of mainstage (keys and drums) -- they keyboardist sometimes plays 2-3 instruments at once. This means that even with 4 gigs of RAM (maxed out), my memory in mainstage is maxed out when I have a set with about 9 songs in it. this is absurd!

i use battery 3 in every single patch. all i really need mainstage to do for me is load one instance of battery, and switch between the kits it loads in each song. instead i have to load 9 instances of battery for the 9 songs i'm going to play. this is ridiculous. if i'm wrong or missing something, let me know.

mainstage has the features i want, but this memory management limitation combined with some other errors that cause me to lose saved changes all the time, makes it almost unusable. when on earth is apple going to update this program?

Jul 13, 2009 2:38 AM in response to gilapuki

I have bought Logic with the idea of moving from hardware keys to computer software based rig. Benefits being working and programming away from the pit, on the bus etc.
So, am i getting this right? Typically I have about 70 or 80 patch changes per set, and often up about 200 per gig (musicals) only using about only about 18 different patches, foot switch cycles through the patches.
So I have to load up every patch even if it uses the same sound? That is so ridiculous. I can do this in logic by simply copying tracks and assigning a pedal to move from one to the next but not in main stage?
Please tell me I am wrong!???

Jul 13, 2009 8:58 AM in response to Sarl Apaxx Designs

Ehm, "some manufacturers find it a little bit unfair"? What? That the EXS24 has some features, they don't have?

*There is no reason*, why 3rd parties could not implement the same features the EXS24 has: supporting more than 4GB and reusing samples across instances. I think that the latest version of Kontakt supports more than 4GB.

Also SnowLeopard has nothing to do with this limit.

Aug 3, 2009 1:52 PM in response to lrizzo2001

Just ignore the memory display in MainStage, it is a bit "confusing", because it displays the available free memory of the complete system.

As a confirmation for that, do this: launch "Activity Monitor" and check the "free memory" on your system in relation to the overall memory. On my 8GB machine I currently 1.7GB of free memory - without MainStage running! If I now launch MainStage, the memory bar displays the same: around 80% plus the memory MainStage actually uses => the bar is almost red.

But that is just a status display and not related to MainStage using way more memory. Again: in my case 80% of the memory is already used before I even launch MainStage.

Aug 3, 2009 1:58 PM in response to Blueberry

Blueberry wrote:
MainStage 2 is more optimized to make better use of the memory, while still allowing instant patch changes.


Is there a preference somewhere to make the patch changes instant? As I mentioned in another post, in what I would consider a fairly light Concert of only about 7 patches (mostly single instruments with few layers), there is a definite pause between every patch change that I made.

Aug 3, 2009 2:03 PM in response to Blueberry

Blueberry wrote:
Again: in my case 80% of the memory is already used before I even launch MainStage.


I guess this is where we need to figure out how to eliminate as many non MainStage apps / processes as possible. Is there a list some place of what processes are absolutely essential to run MainStage so we can eliminate the rest? I would like to create another user ID on my system that I can log into that has only the bare minimum loaded so that MainStage is free to use the maximum resources.

Aug 3, 2009 2:28 PM in response to msteveng

The patch changes happens probably in 1 ms or so. How long is the "pause" for you? How does the "pause" happen? MIDI is late, audio is late? Did you contact Apple regarding this?


But there are also a few special things:

(a) the previous patch will continue to sound as long as notes are pressed, the previous reverb will also continue to fade out (depending on the "Silence previous patch" preference in the audio setting). This behavior can be disable on a per-patch base in the "Attributes" tab in the patch inspector

(b) the patch change be deferred with the "Defer Patch Change" preference in the "Attributes" tab in the patch inspector. This only works in Perform/Fullscreen mode! The actual patch change is deferred till all notes have been released.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Mainstage RAM Management

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.