Vienna Symphonic Library Forum
Forum Statistics

182,191 users have contributed to 42,209 threads and 254,698 posts.

In the past 24 hours, we have 2 new thread(s), 19 new post(s) and 50 new user(s).

  • yep, feature requests already.

    Hi - getting ready to install VEPro 7, and just wishing (perhaps too soon) for a few things, prefaced of course by "maybe it's just me":

    I would love the ability to put a bunch of instruments in a folder, and be able to put some MIDI rules out ahead of the folder, controllable by keyswitches or CC, that would allow me to create a single-channel (to the sequencer) meta-instrument for all of the combining and layering that I do, but with controller-, note-range-, velocity-range- and transposition-modifying for each instrument, and perhaps the transposition-modifying could be constrained by a scale, and maybe even one that follows a key change map.  So one could, for instance, use a string library's sections, spread out across whatever range one chooses, but on the keyswitch for short staccato, add in the VSL Chamber shorts as well, with their volume controllable separately, and at a high velocity on that articulation add in brass shorts from Metropolis Ark - and because this could be following the scale pattern you have entered in, on one or two fingers you could harmonize a line very rapidly.   

    (I know one can do a lot of this already, but we don't all only use VSL libraries, do we? And wouldn't we rather program a host than program variations on a basic patch for twenty different instruments?)

    The reason I suggest this is because it seems to me that hosts ought to do this kind of thing - facilitate combination of libraries and add flexibility to them by modifying what they do with MIDI data.  I don't know if that would make it impossible to render faster than realtime, but if it didn't then why not have these features?

    Just thinking about it.


  • I'd settle for a midi plugin slot in front of the instrument slot on each VEP channel.


  • If that plugin included scripting that would be amazing.  I'd love to have legato offset scripts in there, though that might be done best in a sequencer host - not sure if a host could successfully report delay compensation to a sequencer, given the amount of time involved, on the order of hundreds of milliseconds as opposed to samples.  But I would settle for TransMIDIfier-style routing of incoming MIDI data.


  • last edited
    last edited

    @dragsquares said:

    If that plugin included scripting that would be amazing.  I'd love to have legato offset scripts in there, though that might be done best in a sequencer host - not sure if a host could successfully report delay compensation to a sequencer, given the amount of time involved, on the order of hundreds of milliseconds as opposed to samples.  But I would settle for TransMIDIfier-style routing of incoming MIDI data.

    All VSL needs to add is a midi fx slot, or a few of them (like FX slots, but above the instrument).  They can host VSTi or AUmfx plugins.  Then there are other 3rd party plugins, including midi scripters, that can be used for tasks like that.

    There can still be an advantage to being able to do this kind of stuff in VEP because you can easily put it on each channel.  In DAW's the routing for midi plugins is a PITA.

    Regarding latency adjustment, a scripting plugin would not let you change the reported latency, that I am aware of.  You could certainly use a scripter to delay all midi events by some amount, but you'd have to find a way to let the DAW know to send the events earlier.  There are other tricks you can try right now.  You can use Expert Sleeper's free "Latency Fixer" plugin which is a pass through plugin that simply reports a higher latency amount that you specify.  So you can force the host to apply plugin delay compensation.  So if you know a particular articulation on a particular channel is always using 23ms of latency to play a slow legato attack, then set the reported latency on that channel to 23ms and PDC should do the rest.  VEP should take that 23ms into consideration and add it to whatever latency it is already reporting to the DAW, but I don't know if VEP is sophisticated enough to look at the latency of each individual channel and if one channel has more latency, then delay the processing of all the other channels so they all line up.  I would hope so, but I don't really know.  If so, then that little trick would work.

    You can also use BlueCatAudio's patchworks, which will allow you to have 8 parallel plugin chains, and Patchworks does do proper PDC inside itself.  so you can put up to 8 different articulation on 8 internal channels in that thing and by using LatencyFIxer to specify the reported latency per channel, BlueCat will make sure to delay them all the right amount so that they all sound in sync.  If you use that directly in your DAW, it will work.  I don't know what would happen inside VEP because I'm not sure how extensive its PDC capabilities are in terms of  lining up all the VEP channels based on reported plugin latency.


  • Getting more fancy, on the latency topic.  If you have a single channel with keyswitched articulations..and each articulation has different attack latency......

    Then you basically use a script that will detect which articulation is the one being played and delay it by an appropriate amount so that all articulations sound late, but at least by the same amount.  Then you use that Latency Fixer plugin to report the largest extra delay used...and the host should make sure they line up with all the other channels, if its doing proper PDC.

    Yes that could all be done in VEP I believe, if there were some midifx slots in front of the instrument slot on each channel and IF, VEP does proper PDC between all the channels in an instance.  

    Ideally, in my view, you would want to send an articulation identifier event from teh DAW into VEP on relevant channels.  Say, CC100.  Then in your script you can use that to determine which keyswitches to send and how much to delay the note to account for latency as explained above.


  • Almost.  The issue is that when using a legato articulation, the first note is just like any sustain patch.  No delay required.  When an overlapping note is played, it triggers the legato transition, and it's this delay that must be addressed and compensated for.  So the script has to look for an overlap - a note-on before the previous note-on's note-off - and then do the script.  That's why it either has to be done in the sequencer, where the sequencer could read MIDI ahead, interpret articulations and overlap, and offset playback per note accordingly - OR... in a script in a host like VEPro, there's an overall delay to all notes, but for legato overlaps the delay is less.  So, say 1000ms for everything but if an overlap occurs the note-on delay is only 900ms if a fingered legato, 500ms if portamento, and so on.  So the offset for this script would be advancing 1000ms.  And this would obviously be a playback-only thing - useless and annoying for realtime performances, but great for output from Dorico or step entry or what have you.

    And one wouldn't be able to do all the fun things I was describing before (and also enjoy life) if one had to put a script on every instrument.  It would be better to have a folder with all of your targets for a given combination patch inside it, or just the ability to target any instrument that's loaded in RAM in one of these combined patches.

    Lots of these things can be done if you don't mind fifty steps.  It's just that we have these machines in front of us that can think like this all day long.  And I know I can figure out what average legato transition delays are - but I'd like it if the manufacturers would do that for me.  (One does.)


  • That’s one way of handling it but not how I would do it. The beautiful thing about a midifx slot is that different solutions can emerge.

  • A single-slot-only solution is extremely limited. Much more versatile if, rather than a single MIDI process addressing a single instrument, instruments were objects that could be addressed collectively if desired. There are already lots of ways to transpose, delay, arpeggiate and so on, and simply putting a plug-in before an instrument can be done in virtually every sequencer on the market. And I have done this kind of thing with Logic scripts, OrangeTree Mind Control, TransMIDIfier and just plain after-the-fact MIDI editing. What I’m describing here is something that is not being done in any plug-in host, or using any single solution, or in anything resembling an elegant way. But intelligent articulation time alignment is a basic need that’s not going away. Until it’s all modeled in real time, we will need to deal with samples that can think ahead. But while we are at it, there are other things we can do - if we change the metaphor from mixing board to network, we can do a lot more, in elegant and intuitive ways. Doesn’t mean you have to - but everyone doesn’t have to do it your way. If the system is flexible enough it should accommodate whatever metaphor the user wants. Maybe asking a lot of this software, but these are the people who built special rooms just to record orchestras in. They can make big moves to get big results. Maybe a starting place for them would be using the model of the Vienna Instrument or Synchron player- except that each cell would actually be able to be pointed at any MIDI destination in VEPro.

  • ok a few midi slots, even better.

    A couple of midi fx slots would be extremely useful and beneficial to me, and not that hard to add to VEP.  Cubase and Dp have absolutely lousy midi routing for this kind of thing and Logic forces you to funnel many midi tracks through a single instrument channel, making it very difficult to perform some simple midi filtering, and articulation management tasks.  Some midi Fx slots in front of the instrument slot in VEP would be GREATLY appreciated here.


  • I see you really like the slots idea. Great. Just saying it’s nothing new, and too close to what you can already do to be compelling. If that’s all you want, that’s cool. But is there some reason you [b]wouldn’t[/b] want more functionality that didn’t involve, say, twenty slightly different MIDI processes in slots when it could be done more elegantly with a more object-oriented system?

  • Sorry, but you are wrong.  Cubase and DP are a PITA to do this kind of midi processing on a channel by channel basis, and while LogicPro can do it, its also a PITA because you often have to funnel multiple midi tracks through a single instrument channel.

    I don't know why you are against imrovement, but to each their own...


  • I’m against improvement? Not so. I’m just unwilling to do it in a way that is only marginally better than what can already be done (in a cumbersome way, yes, as I have previously mentioned). I am for improvement, but we don’t think of it in the same way, that’s all. Good luck to you.