Vienna Symphonic Library Forum
Forum Statistics

194,730 users have contributed to 42,932 threads and 258,001 posts.

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

  • Kontakt Multi with KS Router in Vienna Ensemble Pro 7 to Ableton Live 11 via KeySwitch & Expr Map

    last edited
    last edited

    Hello everyone,

    [fwd of my post from VI-control]
    Seems a neat idea for resource management:
    1) make several Kontakt-Multis from single-articulation patches per instrument group in one instance of Vienna Ensemble Pro
    2) bundle outputs of the patches contained in each multi with the KS Router https://www.orangetreesamples.com/blog/ ... ultiscript into one channel
    3) at the other end (in Ableton) "convert" the patches of the respective multi with the "KeySwitch & Expression Map" https://www.swub.de/en/keyswitch-expres ... -0-update/ into keyswitch automation

    So far I can make this work for only one Kontakt Multi from inside each VEP7 instance: the Piccolo & Horn 1 in the screen recording: https://www.dropbox.com/s/dhz84nl57wr13 ... n.mov?dl=0
    The 2nd Kontakt multi of the 1st VEP instance doesn't react to the Max device: Flute 1 stays on articulation/channel 2 & ignores automation.

    I guess I miss something with the routing. Is it the alleged lack of handling more than one MIDI-port in Ableton? Channels from 17 up are not available...
    What else can you think of??


  • KS Router needs to be in a different slot for each Kontakt multi


  • Yeah, with only the one MIDI port you'll run into a wall.
    There is no such designation 'Channel 17' but once you run out you need more ports, so if Ableton doesn't do that you need another host for this.


  • I'm not understanding quite exactly what you are doing..  

    But...if you want to access more then 16 channels per Kontakt instance, its only possible if you use kontakt multi-scripting to convert midi messages into A-D port assignments.  I have done this in LogicPro by using PC messages.  In the multi script, the PC message will route messages to different kontakt ports A-D.

    Here is an example KSP script I wrote for this purpose:

         https://gitlab.com/dewdman42/kprouter/-/blob/master/pc2port.ksp

    In your situation it sounds like you are using ExpressionMap to route articulations, so basically you would include a PC message for each articulation in the Expression Map, in addition to channelizing....and the PC messages 1-4 will be converted by the KSP to route notes to the right port.

    Since you're already using another multi-script, I think that means you may have to integrate this KSP code together into yours in some way.  This KSP is quite simple so it should be possible.


  • Norberto, I've not found any sensible, useful and reliable way of routing more than 1 MIDI port through a single VEPro7 VST3 plugin in Ableton Live 10; I've had to assume there is no such way. As for Live 11, I believe it's still the same but I suggest you ask Ableton's tech support for a definitive answer.

    For DAWs that do support multiport MIDI routing, using Kontakt's multiport feature in VEPro is easily done by using Audiogrocery's "VEP Multi Instance", which you can check out here:–

    http://audiogrocery.com/vep-multi.htm#separator1

    [BTW, there are countless footloose nerds out there who'll claim that their free JavaScript or similar software patches are just right for this or that job. But alas, long experience shows that too many of them appear to suffer from serious shortcomings in the quality, integrity, sensibility, responsibility and accountability departments. For most of us here it's just not worth the risk, IMO.]

    I'd add that whilst Kontakt's multiport feature may seem like a "neat idea", in actual practice, sticking with Kontakt's 16-channel limit as a conventional multi is by no means any serious hardship or limitation; that's important in weighing the pros and cons of changing to a different DAW just in order to use this "neat idea".

    Lastly, if what floats your boat is just using 'off-grid' software to try to mess with the normal operational envelope of proprietary software, then please consider the possibility that other forums may be better suited for that type of discussion.


  • I posted response to Vi-Control thread.  better formatting options over there.


  • last edited
    last edited

    @Another User said:

    that's important in weighing the pros and cons of changing to a different DAW just in order to use this "neat idea"

    I was aware of a sampler that uses 4 ports before Kontakt was even a thing. That's so glib and dismissive.
    I would have ten times, twenty times more instances of VE Pro through that, and have a very much less elegant organization of projects - ie., squalor - so it may not be life-threatening but I will say I consider it hardship.


  • For a lot of DAW's, even using VePro in VST3 or AU3 for multi-port midi...the articulation sets and expression maps don't have any way to route articulations across ports.  In Cubase the routing in the DAW forces you to send the output from a midi track to one (and only one) midi port.  LogicPro is more flexible...but the articulationSet itself can't specify port on a per articulation basis, you can only do it using Scripter...

    All of that is separate approach from kontakt.  I mean you can always put 4 instances of Kontakt on 4 VePro ports right?  But still the problem is about how articulation sets and expression maps work.

    Putting 64 articulations inside one single KONTAKT instance requires that you somehow route those 64 channels through a single VST3/AU3 midi port.   (which also means you can use VST2/AU2 and also would work with Cubase's routing limitations mentioned above).

    So the nice thing about using some kind of KSP approach to this is that the articulation set or expression map doesn't have to know about ports...the cubase routing will work....any other DAW should work too, as long as you have a way to insert the keyswitch-driven channel-routing events somehow..

    I have posted a possible solution just now on the VI-control thread.  

    and I agree..this is certainly a doable situation, I think particularly relevant if and when you have a single instrument that needs more than 16 articulations spread across kontakt instruments.


  • last edited
    last edited

    @Macker said:

    Lastly, if what floats your boat is just using 'off-grid' software to try to mess with the normal operational envelope of proprietary software, then please consider the possibility that other forums may be better suited for that type of discussion.

    Are you moderating the forum now? 

    So, you don't know from Orange Tree Samples at all. I have used his Mind Control for years to "mess with the normal operational..." because it opens up a possibility that is needed. Let's say I want to make a legacy library that was originally Gigastudio kind of resemble a VI Pro instrument. I'm going to need some help doing it in Kontakt via its banks (the instrument is the Preset; the matrices are the banks). The banks are selectable by keyswitch or by other conditions set. This doesn't exist in Kontakt out of the box. It exists, and works, nothing is harmed, by the OTS multiscript. There are numerous third-party scripts for Kontakt, made by people who fully understand what they do which some of use have used for decades. You should consider.


  • My post didn't mention Orange Tree Samples, which in fact doesn't appear 'off-grid' to me, nor was it intended to be a target of what I was talking about, Civilization 3.

    As for moderation, I most certainly hope I haven't strayed into the delusion that I have that authority, lol. And I do hope you accept that I can express my opinion and make suggestions (within the usual constraints of the forum). 

    BTW I was all over Kontakt 1 when it first came out, so I don't count myself a noob on that front. Careful who you try to patronise.

    Since you seem to need me to speak more literally:– the "proprietary software" uppermost in my mind when I made that comment is of course VEPro and Ableton. But maybe they're largely irrelevant? Maybe they were cited in the thread header as just a convenient cover for discussing a quite different main topic at enormous length (oh yes, it happens a lot), and that topic appears to be scripting? Direct enough for you?

    Now I guess you'll have got the right hump (as we say in the UK). Well, can't please everybody.

    Anyway I'll repeat - other forums may be (and in this case very probably are) more suitable.


  • "So the nice thing about using some kind of KSP approach to this is that the articulation set or expression map doesn't have to know about ports..."

    This, very definitely. I ran into a very irritating situation I had to work around with Cubase where it wants to send the drum map to a target, a channel and there's no specifying a port, so it appears to (I've had conflicting results and am possibly stupid) take the port as that channel. The workaround is dedicating a port (to BFD3). The conflicting result is at times it works with no target, at times it doesn't get the data there. Also were I to want to deal with a controller automating. Off topic a bit, but Cubase does not seem fully cognizant of multiple ports.

    Personally I would decide to do something else than 64 single articulation nkis in one multi.
    I downloaded Greg's multiscript to use, I have one thing which is all of it that which doesn't use keyswitches and it's getting into too many instances of Kontakts to not be unwieldy.

    One thing I do sometimes, not the most elegant, with those single articulation libraries is to specify channel by note in Key Editor so I have one MIDI track for multiple parts, mutually exclusive parts obv. Let's say John Cage prepared piano, I don't want 10 or 20 tracks to handle it.


  • last edited
    last edited

    @Macker said:

    My post didn't mention Orange Tree Samples (which doesn't appear 'off-grid' to me), nor was it intended to be a target of what I was talking about, Civilization 3.

    Ok, what you did was segue from Greg's multiscript into something undefined, off-point and topic, and general. Perhaps I may be forgiven for expecting context follows. You brought something in so you could knock it down, then?

    You don't need my permission, I kept it shut when you found it appropriate to lecture us on the evils of Hollywood Liberal Agendae. I find what you did ironic. Other forums may be more suitable.


  • Thanks to Norberto for bringing this up


  • Ok Civilization 3, you've said your piece. That's your narrative. Not mine.

    It seems you've missed (or at least aren't addressing) my point, which I made quite indirectly because forum rules. I'm pretty sure others got the gist of it.

    But thanks for running your colours up the mast - that's helpful anyway.


  • last edited
    last edited

    @civilization 3 said:

    This, very definitely. I ran into a very irritating situation I had to work around with Cubase where it wants to send the drum map to a target, a channel and there's no specifying a port,

    Basically in Cubase, each midi track is routed to one midi port of one instrument plugin.  in the inspector on the left you choose which one.  The plugin could be in the rack or not...doesn't matter, but you have to specify somewhere to send the midi, and Cubase basically will take something like, for example, VePro.VST3 and will give you a list of 48 ports to choose from for routing that track to.  You have to choose one.  There is no way to dynamically route one midi track to two different ports at the same time, unless you can somehow sneak it through with tricks like this KSP trick.

    EDIT: To the above, there is actually possibly one sneaky way in Cubase to send to multiple ports using midi sends, but no way to specify that from the ExpressionMaps anyway.

    And also ExpressionMaps don't have any way to specify port either, it assumes you are working all expression map routing within the confines of a single midi port.

    But if you have some other way to route that can be triggered via keyswitch (like the KSP example), then you can add keyswitches to your expression map which will essentially route across ports.  The challenge still can end up being a factor of what expression maps do and don't do.  For example, ExpressionMaps don't resend keyswitches for every note...they only send the keyswitches when the articulation changes.  For example, if you have three staccato notes in a row, it will send the keyswitch once before sending all three notes after that with no more keyswitches until a new articulation is encountered.  That is generally more efficient..

    The KSP approach I shared on VI-control will work fine with that!  It just assumes the last port specified should be the one to keep using until another one comes along.  

    Another approach, would be to use the AU2 version of VePro plugin, which can use CC99 as a port keyswitch.  However, I believe (not sure), that requires CC99 to be in front of every single note...and whenever its missing it assumes port-1.  I can't remember now.

    But anyway, these are definitely getting in the realm of "is it worth it".  Sometimes it might be!  Sometimes not.

    I know I definitely like having one source track per instrument.  And sometimes I need more than 16 articulations...so..  That's where it all comes into play.

    LogicPro generally has more options with AU3, because basically all midi on a track gets merged into a single midi stream before going to the VePro plugin.  So you can use Scripter to move events across ports, etc.. so it can easily handle instruments with 17+ articulations with a little scripting.  Cubase, unfortunately, is more limiting in that regard.  And neither one of them make it very easy since its not built into articulation sets or Expression maps to do it.


  • I felt like learning a little KSP, here is an improved KSP router...full source included...should work for you Norbetto

    https://gitlab.com/dewdman42/kprouter/-/wikis/kschannelizer.ksp

    - The Nerd


  • last edited
    last edited

    My my, such dazzling displays of technical prowess we've been privileged to witness; the star being, of course, the one who always masterfully seizes the limelight: namely, @oozlumbird.

    I defer to Wikipedia for the best description:–

    "The oozlum bird, also spelled ouzelum, is a legendary creature found in Australian and British folk tales and legends. Some versions have it that, when startled, the bird will take off and fly around in ever-decreasing circles until it manages to fly up its own backside, disappearing completely, which adds to its rarity. Other sources state that the bird flies backwards so that it can admire its own beautiful tail feathers, or because while it does not know where it is going, it likes to know where it has been."

    Goodness me, I just fill countlesss pages in my "must try to learn this absolutely brilliant stuff" notebook every time this astonishing creature favours us with his presence.

    Indeed, thanks to oozlum's superlative tutelage, I see that the universal language of music is a thing of the past and irrelevant now, because it depended so heavily on other outdated and irrelevant things such as emotions, feelings, intuition, taste, empathy, morality and culture.

    Today we should all be totally focused on the wonderfully enlightened and awakening virtues of universal computer languages! Moreover, what used to be known as technical instrumentalilties should not serve, but should instead be ends in themselves. Then the gimps-on-top movement will flourish and at last come to fruition. All this is thanks to the very splendid example set by the legendary oozlum.

    Lololol

    P.S. Other forums may be more suitable.