Vienna Symphonic Library Forum
Forum Statistics

182,161 users have contributed to 42,207 threads and 254,681 posts.

In the past 24 hours, we have 1 new thread(s), 14 new post(s) and 44 new user(s).

  • How to best use VEP - multiple instances or few with more VI?

    Hi there,

    I've been a long time VEP user and absolutely love it!

    However, I'm still a bit in the dark as to what is the most cpu effective way of using it.

    As far as I can see, the options are:

    -Fewer instances of VEP connections (in the DAW), with many VI's in one instance on the Slave (requiring lots of outputs and midi channels)


    -More instances of VEP in the DAW with more connections, with fewer VI/Kontakts per instance, requiring less outputs per instance.

    i.e one instance of VEP in the DAW, the Slave has loads of Kontakts in the once instance, or multiple instances of VEP in the Daw, with loads of instances on the Slave machine, but fewer Kontakts/other per instance.

    Has any testing on this been done, and what is the most efficient way? Does having multiple VEP instances in the DAW increase the latency?




    ps: I'd love someone from VSL to chime in

  • I'm curious to hear what VSL reccomends in terms of performance.  I think on this and other forums I have read that VSL reccomended single instance whenever possible, but then I later read that they say it can work perfectly fine either way.  So I'm not sure we have a great idea about which way is more CPU efficient.  I think VSL will basically avoid taking much of a stand on that since LogicPro users are hamstrung by limitations in LogicPro, unable to use giant instances by default.  VEP7 will have thea bility to see CPU use per instance, which will be interesting and telling and might even inspire more multi-instance usage as a good way to work in terms of being able to see where the CPU is being used, move things around, disable instances, etc..  Also don't forget that network use and memory use are also important aspects of performance, not just CPU. 

    Myself I think it comes down to personal workflow preferences.  There are pros and cons to using multi's versus single instrument per track...  with single instrument per track and VEP you end up with MANY instances.  I don't like that so I don't work that way.  But someone else may like that perfectly well and prefer single instrument per track.  Using one giant instance can be problematic with LogicPro, but not some other DAW's.  There are pros and cons to that also.  one super huge mixer can be a lot to scroll through, though you can use folders and mix busses to consolidate sections as needed.  So there can be benefits to that.  I have usually been keeping it down to half a dozen or less instances...with sections per instance...and I have found that very workable, including with LogicPro, and I like that each instance is no more than about 32 channels each, some quite a bit less.  Its a way or organizing things that works for me, but folders could also do it.

    but if you have ginormous templates with thousands of instruments loaded in VEP, I just don't see how you could do that effectively without a significant number of instances...for me it would simply be an organizational thing.  

  • I've seen VSL address it but not deeply, that adding an instance in and of itself is somewhat negligibly more resources use; ie., dozens of instances, a hundred of 'em may become meaningful.

    For me it's organization and the visual,  too much more than I can display without scrolling and I'm thinking new instance. Then I kind of create families for instance but not severely.


    I have a hypothesis that the threads per instance feature might work best with the one instance approach.

  • last edited
    last edited

    @civilization 3 said:


    I have a hypothesis that the threads per instance feature might work best with the one instance approach.


    Good hypothesis...would love to hear from VSL about that.

  • I asked a question similar to this a long time ago and the response I got from VSL was that it is generally less taxing on a system to host individual VI instances in a single VE instance rather than having say individual VI instances for Violins then another instance for 2nd violins, Violas, etc. The samples also load faster if you have to leave the project and come back to it later.

    Also, the advantage to using VE to host your VI's is that you can build and save templates (Strings, Brass, etc) which can be used again and again for future projects so as to avoid the necessity of having to reinvent the wheel time and again.  Does that make sense?

  • There is no reason to use multiple instances of VE unless you want to keep groups of instruments separate for some reason.  Like one might use a Dimension strings group on a different computer so then it would make sense because it is easy to move all at once.  But unless you are doing some very arcane separate treatment of groups of instruments, it makes no sense otherwise to use multiple instances of VE since it is basically designed to host VI instances - that is the whole point of VE - and has no limit on the number of instruments other than CPU/memory.  

  • The main reason I use 3 or 4 instances if it's this large a project is I do extensive automation, and distributing that visually in Cubendo is better because I can minimize instances and just be looking at one; all four is scrolltastic. I would be pushing the limit of parameters lately, as well.

  • from p24 of VEP 6 Manual English v3.1:

    "Vienna Ensemble Pro Server will generally perform best when running as few instances as possible."

    I would suggest reading the section A Note on Multiprocessing on p24. It talks about how you should configure # of threads if you want to use more than 1 instance.

    Anyway, my reading of it is your default should be 1 instance, and if you want more instances to support your workflow then go for it. But multiple instances is purely for workflow, not for performance gains.

  • Thanks for that clarification.  And that makes complete sense...  If nothing else, the threads per instance perference will have a much more optimizing effect with one instance.  For example if you're using 4 instances on a 12 core system, then you probably need to set that pref to 5 threads, give or take.  If you have one instance, then you could set it to 20 threads.  In the 4 instance case, if two instances are sitting idle, the other two active instances are then allegedly only using 10 threads, when 20 could be available.  etc..  using a single instance lumps them all together instead of having to divide up the resources.  So to me that seems VEP is definitely written to work somewhat more efficiently with a single instance.

    On top of that, if you have multiple instances, then you will have multiple VEP plugins in the DAW communicating at the same time in parallel to 4 different instances in whatever manner it does through interapplication communication.  With only one instance, then there is a lot less of that communication overhead.

    Aside form workflow desires...many in the LogicPro camp are forced to use multiple some cases MANY multiple instances to get around limitations in LogicPro where it doesn't support multiport.  So there is that too.  

  • last edited
    last edited

    @jorisdeman said:

    the options are:

    -Fewer instances of VEP connections (in the DAW), with many VI's in one instance on the Slave (requiring lots of outputs and midi channels)

    You technically do not need more than one stereo out no matter what you do, unless your particular use case demands it. If you need to print multiple stems you do need the output.


    I do from 2 to 4 stereo outs, that's my preferences setting, '8 Audio Outputs'; I mix using Automation in VE Pro and typically I do print some channels but not en masse; so this is my use case, I print the instrument's channel and its return in the Master channel as a wet channel for mixing. A less demanding aspect is I may want some control over the Instrument Channel in Cubase individually at the level of Master (where the instance's reverb resides); Pitched; Percussion; and sometimes another special one. I find that a lot of Audio Outputs (or Inputs) uses CPU to an extent I would rather not do since there's not real need.

  • I'm using for Rock-n-roll, moslty effects and some VST instruments.  With that said, Cubase is a pain because if I put 1 instance with 5 different reverbs on different outputs, in Cubase, if I turn off an output for the Epro instrument track, it will rename it back to "output 1/2" - 

    What I mean is - once i turn on an output for the Epro output, in the mixer i can rename it from "output 1/2" to "Roomworks".  But if I turn off that output, Cubase clears the name because it's no longer in the mixer.  If I turn them back on, Cubase doesn't remember the previous name - it renames it back to "output 1/2".

    Thus, I'm sort of forced to create 1 instance for 1 effect if my names in Cubase are to remain.  I say this because I don't want to turn on tons of outputs in Cubase.  But if I turn them off, then all I see in the mixer is "output xx".  PAIN!

    So I'm guessing 20-30 instances may be the way to go.

    Any suggestions?

  • You didn't say why you keep turning off outputs in the Cubase rack. Yeah, stop doing that, if that's creating a need for all these instances, it's not a need. You can simply disable a channel in VE Pro that you don't need or simply disconnect from the instance, which does not take it out of the mixer. What you're doing, you may as well just plug the reverbs into Cubase.

  • Along this topic of honoring a 1:1 ratio of instruments to players for performance/CPU threading reasons ... what if you had, for example, four instruments in a Kontakt Multi, 4:1, but only one is used at any one time. Would you still get the thread you desire, or do you really need the strict 1:1 ratio?

  • AnyKenny,

    Yea, that's the question in a nutshell.  I'm currently running abotu 15 instances for effects busses and it's working just fine.  But I'm going to try doing about 40 (1 effect per instance) and see if I get any different performance (audio pops,clicks / latency).

    I'll post up whatever happens.


  • One other question on this issue:  Does turning off instances change anything regarding CPU load?

  • So I'm using about 33 instances and I don't see any cpu load issues at all.  Stable. 

    I'm using 1 effect on 1 instance for FX bus in Cubase.