VST3 Presets

So the answer to this one depends on the synth and the compromises you are willing to accept. Depending on what you’re doing and what options you have set in Gig Performer, you could have have thousands of rackspaces.

For example, I just created a rackspace using The Legend (a decent Minimoog emulation) and Lounge Lizard (a physical model of a Rhodes) and duplicated it 99 times – as you can see from the image below, the audio CPU cycle usage is at 1% (it would be at zero except that I left Reverb enabled on Lounge Lizard and effects processing often uses CPU cycles even when there’s no audio)

Further, the total RAM usage of Gig Performer (which includes GP itself and all plugins) is 5.65 Gb on my Mac

In this scenario, you can jump at random (or by using program changes) to any rackspace and have instant response (i.e, different sounds on each rackspace)

Just for grins, I loaded 70 (I got tired pressing the duplicate rackspace keystroke before I got to 100 :slight_smile: ) rackspaces with Kontakt, with the Woodwind Ensemble loaded in every rackspace. In this scenario, my Mac reported about 8Gb used.

Now, that said, if you’re using samplers that load all samples into RAM (or maybe you want 1,000 rackspaces) or you are just using a lot of plugins in every rackspace then you’re going to have a problem.

But then you can use Gig Performer’s Predictive Loading feature. Here, with the same gig file (70 rackspaces instances with Kontakt) we are now only using about 1G and that value will go up VERY slowly as you increase the number of rackspaces. The compromise here is that you will only get instant loading when you select a rackspace that is “near” (you can control how many is ‘near’) an already loaded rackspace, otherwise you might have to wait a few seconds for the rackspace to load. But that’s a very small compromise and gives you a lot of flexibility.

5 Likes

Wow - this is incredibly impressive! Thank you.

With all the VST’s ie:guitar/bass/drum/orchestra/electronic that include patterns, Gig performer can function as the ultimate live virtual arranger keyboard and compete - I dare say blow the hardware units away considering the quality of sample libraries that can be accessed. Hence my attempt to have access to presets (patterns within the vst’s) to blend into an incredibly powerful live arranger keyboard.

1 Like

This is exactly how I use GP. I have Strike 2 as a rhythm unit, Ujam basses, and Real Guitar supplying picking and strumming as required. All these VSTs have auto play mode and follow chord input. And I have gig files with sometimes close to 500 rackspaces. With predictive loading set to three, it all works fine using minimal ram. Predictive does slow loading of some rack spaces to 8 or 9 seconds, but others will load in 3 or 4 seconds. It all depends on the ram used and the number of plugins. I am using a Surface Pro 8, i7 with 16 gig of ram.

FYI here is Keytar Jeff demonstrating Real Guitar at NAMM 2022 and he’s using Gig Performer as his host after switching to it from MainStage.

4 Likes

I totally agree. Strike 2 is amazing. It has heaps of patterns with heaps of kits, and you can import samples. Ujam has five different basses with hundreds of patterns. And I have everyone of Music Labs Real Guitars, also with dozens of patterns. With so many choices, its easy or see why I sometimes spend three days working on a song. All I can say is - it’s great to be retired!!

I learned this lesson the hard way with a crashing plugin. Created separate rackspaces and GP is stable.
However, I too am an improvising player. For my top controller, I have 16 buttons mapped to plugins in the global rackspace via widgets. I had to use scripting to turn the buttons into radio buttons. Therefore, with Bypass plugin, only one instrument plugin is active.
My problem is I’m finding 16 sounds is not enough and I want pages or banks. The global rackspace doesn’t have variations. I don’t know how to implement this concept.

You could use a second instance of GP.

1 Like

If I understand you correctly, you are using some separate rackspaces but you also have 16 synths in global rackspace and you just use one at a time.

If that’s the case, what is stopping you from having more than 16 synths in the global rackspace? If you’re only using one at a time, then you’re unlikely to have any cpu issues as well behaved plugins won’t suck up cycles when they’re bypassed?

A dedicated instance of GP for each keyboard? Have to think about this, but it would work. For the second instance, have rackspaces for each page/bank of 16 sounds instead of using the global rackspace for that purpose.
I’ve been scared of using multiple instances of GP: not sure if cpu/memory is affected adversely or if the two instances would not interfere in some way with each other (e.g. common midi channels)

Each GP Instance runs on a separate core.
This way you can use more power of the CPU
But on windows make sure you use an ASIO multiclient driver

3 Likes

I can definitely add as many plugins (instruments) as I want. I have 16 controller buttons, and those buttons are mapped via the button widgets to the respective 16 plugins.

I don’t know how I would implement a “bank change”. I could map a controller knob to a widget whose value determines a “bank” number but after that I am unsure. I guess implementation might be the following:

  1. Add 16 more button widgets for each bank where each widget is also MIDI tied to the respective hardware controller buttons.

Pressing the controller button though would send activate messages to multiple widgets. Therefore:

  1. Adjust the rackspace script to examine the bank widget to determine which bank is active and do not allow a plugin to activate unless the activated plugin is part of the current bank. For example, plugin 15 should not activate if controller button 15 is pressed, widget 15 receives activate, and the bank number is 2. However, widget 31 also receives activate, and plugin 31 should be allowed to activate.

Perhaps a better approach for scripting is to assign a MIDI Channel Constrainer plugin to each bank and have the output go to each set of 16 plugins. Then to disable a set of 16 plugins when switching banks just block all MIDI traffic in every Constrainer that is not associated with the current bank.

A minor issue is the global rackspace is getting rather cluttered even with the 16 plugins, the MIDI input wiring and the audio output wiring. A small laptop screen makes it difficult to manage. If my approach works, I’m trying to figure out how to manage the wiring screen. The Kontakt plugin in particular is huge with many outputs and takes up a lot of screen space.

Yes, I use many rackspaces for my bottom keyboard. It’s the top keyboard that I want the freedom to choose which sound to use. Therefore, I’ve used the global rackspace and scripted radio buttons for this purpose.

If i have 3 instrument plugins played with 3 different controllers and each has 8 preset each…think about how many rackspaces i would need to build to have the all possible combinations of the 8 different presents for 3 instruments!

That is a real achademical problem, not all what is possible is needed.

well @pianopaul as an improvising musician on stage i control different virtual instruments with several different controllers (1 Arturia Keystep, 2 Roli Seaboard Blocks, 1 Korg NanoPad2, 1 Korg NanoKey2, 1 piano action keyboard with MIDI which i ask in the backline because i can’t travel with any big controllers). Each virtual instruments is connected to some virtual fx in quite complex chain. Every virtual thing i use has my custom presets that i have to reach in the fly if the musical situation of the moment calls for a particular preset. This is not academical at all…it’s usual and real stage life…

Ok, recalling a GP preset via scripting is easy to do.
But what about layers and splits?
Sure all can be done with clever widget assignments.
But you have to avoid hanging notes.

probably i could do some kind of script that send an all note off event before the program change

This is such a relief. I’m programming for a musical theatre gig, and I’m only on song 2 and already have 37 rackspaces, minus variations. I was getting nervous…

37 rackspaces for 2 songs?
What songs are you playing?

At a minimum, whenever you are using the same “sound”, you should reuse the same rackspace (not duplicate the rackspace, which is what I originally did).

Also, you should make some effort to learn how to use variations to use rackspaces with more instruments loaded in a single rackpspace and use widgets to bypass unused instruments.

Some suggestions to consider. (Sorry if these are obvious).

Jeff

1 Like

I’m doing Beauty & the Beast, but there’s a ton of patch changes. I do variations where I can, and this is also my first time using Gig Performer. I still have 19 songs to go, and I’m going to try more complex wiring, so I can rely more on variations. It’s second keyboard, so I wander all over the registers more than Keys 1, but after getting this far, I do think I can make cleaner rackspaces. So far, I’m only using 6 GB of RAM, but I only have 32 to work with. If I’m not careful, I’m going to blow everything before the first act is done.