# Cool Trick for Key Switching programs in "Instrument Banks"



## Thonex

The Instrument Bank feature in K2 is pretty cool. Someone told me about how they load all their string articulation programs into 1 instrument bank... and then key switch between them. How? By using the "input transform" of their DAW.... most of them have it now.... Cubase, Nuendo, Logic etc...

All you do is create an input transform that changes the Keys (say) C0 to a program change - 24 = 0 and then C#0 - 24 = 1 and so on

This way you can load up programs and not have to put all your favorite patches into 1 patch just to key switch it. Also... many midi controllers allow you to send program changes via the controller pads and even keys.

Anyway... I thought that was pretty cool.

T


----------



## kotori

That's indeed very useful! I haven't used Instrument Banks much so far since I find editing program changes so unintuitive in Cubase. Thanks for the tip.  

Nils


----------



## Dan Selby

Yes. See my post here:

http://vi-control.net/forum/viewtopic.p ... highlight=



> Sure. I'm using Cubase SX3. Nuendo works the same way but I am not sure if/how you would do this using any other sequencer.
> 
> So:
> 
> 1. Open Kontakt2, create a new bank and drop some instrument articulations into the first few slots. Create a midi track and route it to the instrument bank in Kontakt so it plays correctly and if you click on the different articulations loaded, the sound changes as it should.
> 
> 2. In the Inspector for your midi track, go to the "Inserts" tab and insert a Transformer midiplugin into Insert 1. Check that the field in the top left is set to "Transform" (it should be by default).
> 
> 3. Click the top "Add Line" button and leave it as it is (Type Is -- Equal -- Note)
> 
> 4. Click the same "Add Line" button again. This time, change the three fields (left click on them and select from the drop down menus) to: Pitch -- Inside Range -- C1/36 -- C2/48
> 
> This range is where you want your keyswitches, if you want to put them elsewhere (e.g. starting at C0) then do that.
> 
> 5. Now click the LOWER "Add Line" button and change the fields so they read: Type -- Set to fixed value -- Program Change
> 
> 6. Click the lower "Add Line" button again and change the new line so it reads: Value 1 -- Subtract -- 36
> 
> If you chose a different keyswitch range you will need to subtract a different number here.
> 
> 7. Click the "Store button" and save this preset with an appropriate name (e.g bank key switcher)
> 
> It should now all be working. keys C1 - B1 will switch between the first 12 slots in your bank. Keys above that will play as normal.
> 
> Enjoy!



But I in fact do something different now (works better for me). I have all my articulations in for, say 1st violins, in a bank but then have seperate midi tracks for the all the articulations. I worked out a way so that as soon as you play a note (or move a controller on any of the midi tracks, the bank immediately switches to the correct articulation in the bank. What is really nice about this too is that hanging notes from the previous articulation are NOT cut off when you switch track and play the new articulation.

Cheers,

Dan


----------



## FirmamentFX

Dan Selby @ Fri Aug 18 said:


> What is really nice about this too is that hanging notes from the previous articulation are NOT cut off when you switch track and play the new articulation.



Sorry, but to clarify - are you saying that when you change instrument in a bank, the previous instrument stays on until the MIDI note off (or sustain ped up) signal is received?

If so - cool! 

Not in front of Kontakt at the moment, but will try it later.

This is a very useful thread as I am currently redoing my sequencing temnplates. The only change I would make is to have each instrument split into 2 banks (I often layer stacc with legato articulations for example).

M


----------



## Dan Selby

FirmamentFX @ Fri Aug 18 said:


> Dan Selby @ Fri Aug 18 said:
> 
> 
> 
> What is really nice about this too is that hanging notes from the previous articulation are NOT cut off when you switch track and play the new articulation.
> 
> 
> 
> 
> Sorry, but to clarify - are you saying that when you change instrument in a bank, the previous instrument stays on until the MIDI note off (or sustain ped up) signal is received?
> 
> If so - cool!
Click to expand...


Yep, that's what I'm saying!


----------



## FirmamentFX

Horray! This has been my major problem converting from my Kurzweil based setup to a software one.

:mrgreen:


----------



## KevinKauai

This approach would seem to have the same problem as with KeySwitches -- if you work with scoring, those "transform" notes will show up and make you part look goofy. I prefer using the numeric keypad to change from articulation 1 to articulation 3 to articulation 2 and so on. I also frequently use the "MIDI editor" to check and/or change articulations through copy-paste as well, which, of course, you could also do with a note.

I really like Instrument Banks, but I'm using them along the lines of the "http://kevintweedy.net/K2T/K2_InstrumentBanks.htm (Constructing Your Own 'Instrument Banks')" that I did as a"community service". (There are also other Kontakt 2 http://kevintweedy.net/TUTORIALS.htm (TUTORIALS) there in a collector page which new Kontakt 2 users might want to check out.

i hope this helps ...  KevinKauai


----------



## kotori

KevinKauai @ Fri Aug 18 said:


> This approach would seem to have the same problem as with KeySwitches -- if you work with scoring, those "transform" notes will show up and make you part look goofy.


Hi Kevin
Isn't it possible to hide notes outside a certain range from the score? (I don't have any direct answer how to do it, I would just be a bit surprised if this wasn't possible)
Thanks for providing that tutorial, I've read it before. I think the discussion about controllers at the bottom is important for everyone considering using banks. 

I wish NI could implement instrument bank scripts. That would facilitate articulation switching and provide something similar to Vienna Instruments (although the user interface would be a bit more simplistic) and one could solve the controller problem (by buffering controller messages and resending them on program change).

Cheers,
Nils


----------



## Nick Batzdorf

"Isn't it possible to hide notes outside a certain range from the score? "

Not that I know of. That would solve a lot of problems, wouldn't it.


----------



## Dan Selby

...which is one of the reasons I have seperate midi tracks for each articulation that trigger the articulation changes in the bank... no keyswitches.



KevinKauai @ Fri Aug 18 said:


> This approach would seem to have the same problem as with KeySwitches -- if you work with scoring, those "transform" notes will show up and make you part look goofy. I prefer using the numeric keypad to change from articulation 1 to articulation 3 to articulation 2 and so on. I also frequently use the "MIDI editor" to check and/or change articulations through copy-paste as well, which, of course, you could also do with a note.
> 
> I really like Instrument Banks, but I'm using them along the lines of the "http://kevintweedy.net/K2T/K2_InstrumentBanks.htm (Constructing Your Own 'Instrument Banks')" that I did as a"community service". (There are also other Kontakt 2 http://kevintweedy.net/TUTORIALS.htm (TUTORIALS) there in a collector page which new Kontakt 2 users might want to check out.
> 
> i hope this helps ...  KevinKauai


----------



## Thonex

KevinKauai @ Fri Aug 18 said:


> This approach would seem to have the same problem as with KeySwitches -- if you work with scoring, those "transform" notes will show up and make you part look goofy.



Ok... you guys are missing the biggest point in this....

*The Key Switches are recorded to your DAW as program Changes!!!*

You play a key but a program change is recorded... so no goofy keys.

Since you have enabled Input Transform on your DAW... any key switching will automatically be converted to Prog changes... in fact....... if you leave "Chase Prog changes" ON.. it will even change the patches when the Key Switch was 48 measures ago...

carry on 

T


----------



## KevinKauai

Okay, Thonex. I think I get your point.

But the "big advantage" you then have is that you can press a keyboard key instead of a ten-key key and Enter? (Or is there a large population of MIDI keyboards which don't have a 10-key pad?) So your MIDI editor now shows the same thing that I would have gotten when I pressed "2" and "Enter" (which is clearly recorded as "Program Change 2" and I don't need to remember that it was C#1). I think I like the straightforward way a lot better!



Dan Selby said:


> ...which is one of the reasons I have seperate midi tracks for each articulation that trigger the articulation changes in the bank... no keyswitches.


That's PRECISELY what I mostly DON'T want. Who wants to see scores that have "Violin Arco" and "Violin Pizz"as separate staffs? No musicians that I know!

 KevinKauai


----------



## Thonex

KevinKauai @ Fri Aug 18 said:


> But the "big advantage" you then have is that you can press a keyboard key instead of a ten-key key and Enter?



Try doing that while transitioning between a legato patch and a staccato patch in mid performance :wink:  The whole point of key switching (at least to me) is to not break up the performance when you'replaying the parts in. Of course... if you can mouse around to the program-change edit field... hit 2 and then hit enter while your playing a performance... well... you're a better man than I :wink: 

But hey... variety is the spice of life.

Cheers,

T


----------



## nadeama

Thonex @ Fri Aug 18 said:


> Ok... you guys are missing the biggest point in this....
> 
> *The Key Switches are recorded to your DAW as program Changes!!!*
> 
> You play a key but a program change is recorded... so no goofy keys.
> 
> Since you have enabled Input Transform on your DAW... any key switching will automatically be converted to Prog changes... in fact....... if you leave "Chase Prog changes" ON.. it will even change the patches when the Key Switch was 48 measures ago...
> 
> carry on
> 
> T



Does anyone know if Digital Performer has that kind of conversion feature? I can't think of it but maybe I'm missing something?


----------



## Thonex

Logicology @ Sun Sep 03 said:


> So I set this up with Kontakt and Cubase. In Kontakt I have 4 instrument banks and in Cubase 4 MIDI tracks for each one. However when I do a keyswitch on one track, it changes the articulation in all 4 banks in Kontakt.
> 
> I have the Cubase tracks set to the correct MIDI port. Is there something else I'm missing.



Make sure not all the K2 instruments are set to omni midi channel... and make sure only the desired instrument Bank is set to ch 1 (per your screen shot of Cubase).

Hope this helps


----------



## hbuus

Just found this - it's brilliant!

For testing I made an oboe with legato on keyswitch C1 and staccato on C#1. What great fun it is to play this oboe live now! Also when I play back the sequence, I can sit back and watch as Cubase switches between the two articulations in the oboe instrument bank. It reminds me of the first time I saw videos of the Vienna Instrument-player. Very cool!

Thank you for the tip, Thonex! =o 

Best regards,
Henrik


----------



## Ian Livingstone

anyone finding this method of key switching in Cubendo more sluggish than real-programmed keyswitch patches?

Recently re-worked my template and introduced alot of instrument banks but I'm finding it lags slightly compared to other libraries with ready made KS patches.

Could just be me...

Ian


----------



## Stevie

Hey Ian,

did you re-program your patches to add KS?
Man, I should do that, too. But I am afraid this will a lot of work.


----------



## José Herring

Stevie @ Thu Apr 16 said:


> Hey Ian,
> 
> did you re-program your patches to add KS?
> Man, I should do that, too. But I am afraid this will a lot of work.



It's a lot of work at first, but then when you get the hang of it it get's easier. I'm reediting my entire template along with adding keswitching. At first it took me hours to do 1 patch. Now I average about 20 to 30 minutes for a patch.

Dig in. I can't recommend enough changing your template to match your style of working and your understanding of music. Makes a big big difference.

Jose


----------



## Stevie

That for sure!
Only thing I wonder is...
Which patches need re-programming usually?
I have the VSL Kontakt 3 version, and there are so many different patches, that should actually be one single instrument with 10 - 15 KS. Is it the same with other libraries or ist that an exception? I mean are other libs programmed the same (100 different instruments in one folder).


----------



## José Herring

Yeah most libraries are like that. Personally I'd never set up too an elaborate keyswitch on any one patch but bunch up articulations that go together. I personally don't mind using a separate patch for say, legato and pont tremelo as I know in practice that they wouldn't necessarily be taken up in the same phrase. But a switch from say fast slurred notes to short stacc ( in sample terms if it's fast you'd probably use the spicc patch) is common and would benefit from a keyswitch.

Like I said I'm in the middle of it now so I'm still figuring a lot out. Group banks may be a good way to go, though I like the idea of using the same midi channel.

best,

Jose


----------



## Stevie

Cool, keep us posted. Would be interessted in some workflows.


----------



## Dan Selby

Ian: I've just checked - no lag at all here. I've only checked on an empty project, though - not my full template or a running project. But I've never noticed any problems real world either. I'm using Cubase 4 and Kontakt 2.2.4


----------



## Ian Livingstone

Jose - I haven't tried to program my own yet but did you do that for a reason over vs instrument banks?

Dan - hmm....maybe it's just my imagination - but I keep finding myself having to press the KS twice or it's always one KS out if I'm playing alot together quickly.

I never get this with libraries like say SAM Classic with lots of pre-programmed KS patches.

Ian


----------



## Dan Selby

Like I say, I've never noticed a problem and I work with banks and the Cubase input transformer to generate program changes from key switches all the time.

Having said that, I'm still using Kontakt2 and I don't know if you have gone to Cubendo 5 yet (I'm still on 4) - either of these could give a difference.

Plus, I know you're a "proper" keyboardist so you'll be doing a lot more of using keyswitches on the fly... whilst playing fast stuff, at tempo with the other hand >8o

My quick test earlier was just that, in an empty project... but there was definitely no problem - I tried to make it fall over by hitting a KS as fractionally before hitting a note with my right hand as I could and it always switched properly.


----------



## Ian Livingstone

Cheers Dan - this was Nuendo4 with K3.5 although I had the same with K2


----------



## José Herring

Ian Livingstone @ Fri Apr 17 said:


> Jose - I haven't tried to program my own yet but did you do that for a reason over vs instrument banks?
> 
> Dan - hmm....maybe it's just my imagination - but I keep finding myself having to press the KS twice or it's always one KS out if I'm playing alot together quickly.
> 
> I never get this with libraries like say SAM Classic with lots of pre-programmed KS patches.
> 
> Ian



My intention is to get more playable instruments from my libraries. I chose keyswitching because I know how to do it. Yesterday I figured out bank changes and it seems to work a lot faster without adding that extra midi note to the track or having to setup a whole new track for keyswitches. So I'm going to put everything in a bank now. On my setup bank changes are actually working faster than keyswitches. I don't know why this would be.

Jose


----------



## Fernando Warez

josejherring @ Fri Apr 17 said:


> Ian Livingstone @ Fri Apr 17 said:
> 
> 
> 
> Jose - I haven't tried to program my own yet but did you do that for a reason over vs instrument banks?
> 
> Dan - hmm....maybe it's just my imagination - but I keep finding myself having to press the KS twice or it's always one KS out if I'm playing alot together quickly.
> 
> I never get this with libraries like say SAM Classic with lots of pre-programmed KS patches.
> 
> Ian
> 
> 
> 
> 
> My intention is to get more playable instruments from my libraries. I chose keyswitching because I know how to do it. Yesterday I figured out bank changes and it seems to work a lot faster without adding that extra midi note to the track or having to setup a whole new track for keyswitches. So I'm going to put everything in a bank now. On my setup bank changes are actually working faster than keyswitches. I don't know why this would be.
> 
> Jose
Click to expand...


Perhaps you're not aware of this but CCs don't follow when you switch instruments inside bank. So if you like to use CC 7 or 11 etc.. you're gonna have a problem. You should investigate this before. I wish NI would take care of that.

BTW, did you look into VST expression in Cubase5? This is going to be the standard IMO. You really should go on Cubase website and check out the video before reworking your templates. I seem to remember you were using Cubase so though i should tell you.


----------



## José Herring

Fernando Warez @ Fri Apr 17 said:


> josejherring @ Fri Apr 17 said:
> 
> 
> 
> 
> 
> Ian Livingstone @ Fri Apr 17 said:
> 
> 
> 
> Jose - I haven't tried to program my own yet but did you do that for a reason over vs instrument banks?
> 
> Dan - hmm....maybe it's just my imagination - but I keep finding myself having to press the KS twice or it's always one KS out if I'm playing alot together quickly.
> 
> I never get this with libraries like say SAM Classic with lots of pre-programmed KS patches.
> 
> Ian
> 
> 
> 
> 
> My intention is to get more playable instruments from my libraries. I chose keyswitching because I know how to do it. Yesterday I figured out bank changes and it seems to work a lot faster without adding that extra midi note to the track or having to setup a whole new track for keyswitches. So I'm going to put everything in a bank now. On my setup bank changes are actually working faster than keyswitches. I don't know why this would be.
> 
> Jose
> 
> Click to expand...
> 
> 
> Perhaps you're not aware of this but CCs don't follow when you switch instruments inside bank. So if you like to use CC 7 or 11 etc.. you're gonna have a problem. You should investigate this before. I wish NI would take care of that.
> 
> BTW, did you look into VST expression in Cubase5? This is going to be the standard IMO. You really should go on Cubase website and check out the video before reworking your templates. I seem to remember you were using Cubase so though i should tell you.
Click to expand...


Thanks for the info Fernando. Didn't know that about the CC info. I'll make sure to consider all the options. As far as reworking my template and samples it needs to be done no matter what. I'm tired of patches that are just poorly edited and that don't play well together. So I'm working all the patches that I use from the ground up.

Cubase 5. Don't understand the expression thingy that well, but I'll do some more research.

best,

Jose


----------



## Thonex

josejherring @ Fri Apr 17 said:


> Perhaps you're not aware of this but CCs don't follow when you switch instruments inside bank. So if you like to use CC 7 or 11 etc.. you're gonna have a problem. You should investigate this before. I wish NI would take care of that.



It's not such a big problem. I always have my hand on CC1 and CC11 (2 sliders) when I'm playing in my orchestral stuff... if you just make sure to ride the CC1 or 11 before you play the next note after you switch instruments... no problems.

It would be cool, though, if NI would make it so that when you do an instrument switch, there would be an option to do a quick CC burst of your previous instrument's CCs.

Cheers,

T


----------



## Fernando Warez

Thonex @ Fri Apr 17 said:


> josejherring @ Fri Apr 17 said:
> 
> 
> 
> Perhaps you're not aware of this but CCs don't follow when you switch instruments inside bank. So if you like to use CC 7 or 11 etc.. you're gonna have a problem. You should investigate this before. I wish NI would take care of that.
> 
> 
> 
> 
> It's not such a big problem. I always have my hand on CC1 and CC11 (2 sliders) when I'm playing in my orchestral stuff... if you just make sure to ride the CC1 or 11 before you play the next note after you switch instruments... no problems.
> 
> It would be cool, though, if NI would make it so that when you do an instrument switch, there would be an option to do a quick CC burst of your previous instrument's CCs.
> 
> Cheers,
> 
> T
Click to expand...


Hmmm! Maybe i should try this again. 

One the other hand, vst expression in C5 might completely solve this in an other way for me. I think VST expression will suit my work flow better. I cant wait to try it.

But I'll keep this in mind.

Thanks, T.


----------



## Fernando Warez

Jose, i think you should have a look at the thread below. It covers the problem i was talking about and has a solution for it that might interest you. Its an mfxscript that resends CC info as you switch inside a bank. It didn't wok in C4 here. Mmaybe because i didn't get it as usual. Anyway, have a look and see if that works for you. 
I think the link to this mfx script is still active. If not? try to contact Lee who is in this thread. He has it working in C3 a believe and seem to be very happy.

http://www.vi-control.net/forum/viewtopic.php?t=5531


----------



## Big Bob

I think it may be possible to write a Multi_Script that could re-send all CCs that have changed since the last program change. I don't use banks myself but if anyone thinks such a mulit-script would be useful, I can probably 'bang one out' :lol: 

If there is any interest in such a MS, I'll look into its feasibility.

God Bless,

Bob


----------



## Nickie Fønshauge

Big Bob @ 18th April 2009 said:


> I think it may be possible to write a Multi_Script that could re-send all CCs that have changed since the last program change. I don't use banks myself but if anyone thinks such a mulit-script would be useful, I can probably 'bang one out' :lol:
> 
> If there is any interest in such a MS, I'll look into its feasibility.
> 
> God Bless,
> 
> Bob


I am working on such a script; the prototype shows, that it is indeed feasible. It may be ready in a couple of days.


----------



## Cinemascore

Thanks Big Bob and Nickie for looking into this. I'm really hoping this new script will be able to live next to both the SIPS and/or TKT scripts.


----------



## Nickie Fønshauge

The script I am working on exists on the multi level, whereas SIPS and TKT reside on the instrument level. They shouldn't interfere with each other.


----------



## Fernando Warez

That's fabulous!

Thanks guys!


----------



## Big Bob

Meanwhile, I went off and wrote a MS of the sort that I described and was about to post it when I realized that I may not fully understand the problem. :? Then I noticed your post Nickie so maybe I should just drop this :lol: 

However, since I'm somewhat involved already maybe someone could explain the problem a little better for me. I wrote a MS to resend all CC changes that occur between program changes, each time a program change is received.

I tested it quickly and it seems to 'carryover' the last settings for any CCs that were changed, so I thought I was done. But then, just for kicks, I tried the same test without the MS and *it also carries over any CC changes*. :shock: 

So, will someone please describe precisely under what conditions the last CC values are not 'carried over' when a program change is issued?

Confused as usual,

Bob

EDIT: I guess as long as I've already written this MS, I'll attach it to this post and perhaps those of you who understand the problem with CC carryover can try it out to see if it solves your problem. If you don't know how to install a MultiScript you can use the same procedure described an page 73 of the SIPS 2 User's guide (section 7.2) except that instead of loading the *SIPS_KSP+.nkm *file you would load the attached file named *Inst-Bank CC-Chaser.nkm *file.

If this doesn't work, I'm sure Nickie's will because she probably understands all about this Instrument Bank stuff 8)


----------



## Thonex

Big Bob @ Sat Apr 18 said:


> So, will someone please describe precisely under what conditions the last CC values are not 'carried over' when a program change is issued?
> 
> Confused as usual,
> 
> Bob



As the creator of this thread, all I can tell you is what I know with regards to *Instrument Bank* patches. This is different than multies. So I'm not sure I'm understanding what Nickie et al are talking about, but what others (and I ) have observed is that when you have several patches in an Instrument Bank and you ride CCs on one patch and then do a prog change to another patch *in that same Instrument Bank*, the newly recalled patch will be oblivious to the CC values that were previously sent to the other patch *in the same Instrument Bank*. 

My solution (or work habit) is that I always ride CC1 and 11 anyway when I score... so when I do Instrument Bank Prog changes, the new CC values are usually transmitted to the new patch before I play a not.

Clear as mud?? :lol: 

T


----------



## Big Bob

Hi Andrew,



> As the creator of this thread, all I can tell you is what I know with regards to Instrument Bank patches. This is different than multies.



Admittedly I don't know beans about using Instrument Banks but, I do know what they are and how they differ from mulitis. It's just that I have seen this complaint about CC carryover with Inst Banks for some time now and I thought perhaps the problem could be solved with a MS.


> when you have several patches in an Instrument Bank and you ride CCs on one patch and then do a prog change to another patch in that same Instrument Bank, the newly recalled patch will be oblivious to the CC values that were previously sent to the other patch in the same Instrument Bank.



There is perhaps a sublety here that I missed. I thought the problem was that the KSP %CC array reset after a program change to switch instruments in the bank. But reading the above more carefully, I think you are saying that the instrument you switch to just doesn't know that the CC values have been changed until they change again. If so, the general idea of solving this with a MS is still viable but probably needs to be extended.

Are you saying that we need to resend all CCs that have changed since the last time any given instrument was deselected and then is reselected? In that case, the way I coded the MS would work properly for a Bank containing only 2 Instruments. However, we could modify the MS to remember the CC changes since the last time each specific PC occurs. However, this would then require 128 arrays of 128 elements each (if a MS can have that much data storage). Worse than that, I guess you could have up to 64 Instrument Banks in a multi in standalone mode, yikes :roll: Alternatively, I guess we could simply resend all 128 CCs each time a PC occurs (if we can stand the clogging).

Maybe you could try the MS the way it is and see if it works properly for a 2-instrument bank. If so, we can easily extend it.

God Bless,

Bob


----------



## Thonex

Hi Bob,

Ok... I think I understand now... the reason I'm not "hip" to multi scripts is because I make all my scripting backward compatible with K2 (because of my string Lib). I'll be releasing it in K3 but with a K2 format folder also for legacy users.

Maybe someone else could test it out. After I release LASS, I'll be much more available to come out and play :D


----------



## Big Bob

> the reason I'm not "hip" to multi scripts is because I make all my scripting backward compatible with K2 (because of my string Lib).



Multiscripts are not unique to K3, they work with K2 also. The one I posted was made with K2 so the .nkm should load with either K2 or K3.



> Maybe someone else could test it out. After I release LASS, I'll be much more available to come out and play



Of course my friend. I understand how busy you must be so, hopefully someone else can check it out. 

I think the biggest problem is trying to cover all CCs for each instrument. Perhaps only a few CCs are important and we could restrict the storage size accordingly. If everyone could agree on a set of maybe 10 CCs, it would be quite easy to do. However, if everyone wants a different set of 10, then the MS would have to be configurable. That's not quite so easy since to access the MS control panel requires toggling a registry value and re-launching Kontakt. Of course it could be done something like I did with the KSP+ MS by using a special 'Programming script' . That way, each user could select his own set of CCs to be chased.

Perhaps Nickie has already worked this all out, in which case I probably should just butt out :lol: 

God Bless,

Bob

BTW I retested with a 2-instrument bank and the script seems to do the job. But, other opinions are welcomed.


----------



## Thonex

Big Bob @ Sat Apr 18 said:


> Multiscripts are not unique to K3, they work with K2 also. The one I posted was made with K2 so the .nkm should load with either K2 or K3.



Ok... I really must have missed the boat on this one... :lol: 

Bob... where do the multi scripts go in K2?

I tried loading it into an instrument and there was syntax alert saying that such-n-such code can only be used in a multi script... (or something like that).

Cheers,

AK


----------



## Big Bob

Hi Andrew,

You can't load and compile the source code unless you first put K2 into the 'Show Multiscript' mode. We can discuss this later, when you have more time. For now, just load the .nkm file as a multi before you load your instrument banks, etc.

As I said in the post with the MS attached, follow the same procedure as for installing the KSP+ multiscript described in section 7.2 of the SIPS 2 User's Guide. If you can't find that, please let me know and I guess I can post the procedure for installing a MS.

God Bless,

Bob


----------



## Thonex

Thanks Bob... I'll look into this when I have some more time... I have the funny feeling I've been missing out on some fun :lol:


----------



## Big Bob

I'm attaching another MultiScript, V1.1, if anyone wants to try it. This one will work for any number of Instruments in any number of banks. But, it doesn't attempt to keep track of CC changes on an instrument by instrument basis. Rather, it simply notes the CCs that have changed since the multi (containing the instrument banks) has been loaded.

As long as not too many different CCs change during a session, the MIDI traffic may be acceptable.

If anyone needs more info about how to install a precompiled MS, let me know and I'll post some instructions.

Nickie, is this similar to the general scheme you are planning on using for your MS? If so, I didn't mean to 'steal your thunder' but, I just wanted to finish what I started :wink: Probably yours will be vastly superior anyway, mine may not even work for the intended application (of which my understanding may be dubious) :roll: 

Maranatha,

Bob


----------



## Fernando Warez

Big Bob @ Sat Apr 18 said:


> I'm attaching another MultiScript, V1.1, if anyone wants to try it. This one will work for any number of Instruments in any number of banks. But, it doesn't attempt to keep track of CC changes on an instrument by instrument basis. Rather, it simply notes the CCs that have changed since the multi (containing the instrument banks) has been loaded.



I'm not sure i understand that but I'm willing to give it a shot. Boy i would LOVE to solve that problem.




> If anyone needs more info about how to install a precompiled MS, let me know and I'll post some instructions.



I'm not sure what I'm suppose to do with this though. I have 2 files and one needs to be compile as any other ordinary script? And what about the nkm file? Do i load that with all instrument inside the banks that make use of CCs?

Cheers!


----------



## Big Bob

Hi Fernando,

I included both the source .txt file and the precompiled multi file. As I mentioned to Andrew, the source file is only for the benefit of those who know how to access Kontakt's MS mode and might want to make some custom edits.

All you really need to test the MS is to load the precompiled file with the .nkm extension. If you have the SIPS 2 User's Guide (section 7.2), you can follow the procedure outlined there for installing the KSP+ multiscript. However, since no one seems to pick up on this, maybe I'd better sketch the process here in this post.

After you launch K2 (or K3), drag the file named *Inst-Bank CC-ChaserV1.1.nkm * into the empty rack. Answer the query with yes so it will replace the default multi with the one in the new file. Along with the 'empty multi' this will load the custom multi-script.

Now load your instruments, instrument banks, etc. If you have already saved a number of instruments and/or banks in a multi, load the multi but in answer to the question whether or not to replace, say no. This will then just add your multi instruments and banks to the multi that contains the custom MS. If you answer yes, it will replace the custom multiscript with the default (or whichever MS you had previously saved with the multi). You don't want to do that.

Again, I suggest you re-read section 7.2 of the SIPS 2 User's Guide for more info on this process. When I get a bigger block of time, perhaps I could post a more detailed discussion of how to make and/or load multiscripts. I'll try to do that if it seems like there is enough interest in it.

God Bless,

Bob


----------



## chimuelo

I just bought Kontakt 3.0 and find this stuff fascinating.
Before I spend days pulling out my hair will the new SIPS V2.05 work in Kontakt 3.0/3.5 ?
I can't believe the possibilities this after market work brings to the table.
I am hoping to be able to apply these tricks to live performance.
I currently use a MIDI Solutions F8 and apply keyswitches to footpedals so my left hand comps can continue on another controller.
I swore I would never turn into a programming geek and keep things simple, but these tricks could also be applied outside of a sequencer I believe. 
My F8 can send SysEX strings and customized config info on 8 ports with 8 seperate options.
This could be a powerful combination and since expression pedals can dialed in w/ lag times and curves, etc. this might be the way for me to use large 3.5 templates live.
Do these tools work in Kontakt 3.0 and 3.5?

Thanks to everyone who spent time with this.
I have 2 x KS88's and with the F8 I can have 40 program changes sent in a single set up outside of the sequencer enviroment dut to the F8/KS88 combo.
This could be very useful w/ 3.0 / 3.5.


This is truly fascinating stuff. I have overlooked this too long.


----------



## Fernando Warez

Big Bob @ Sat Apr 18 said:


> Hi Fernando,
> 
> I included both the source .txt file and the precompiled multi file. As I mentioned to Andrew, the source file is only for the benefit of those who know how to access Kontakt's MS mode and might want to make some custom edits.
> 
> All you really need to test the MS is to load the precompiled file with the .nkm extension. If you have the SIPS 2 User's Guide (section 7.2), you can follow the procedure outlined there for installing the KSP+ multiscript. However, since no one seems to pick up on this, maybe I'd better sketch the process here in this post.
> 
> After you launch K2 (or K3), drag the file named *Inst-Bank CC-ChaserV1.1.nkm * into the empty rack. Answer the query with yes so it will replace the default multi with the one in the new file. Along with the 'empty multi' this will load the custom multi-script.
> 
> Now load your instruments, instrument banks, etc. If you have already saved a number of instruments and/or banks in a multi, load the multi but in answer to the question whether or not to replace, say no. This will then just add your multi instruments and banks to the multi that contains the custom MS. If you answer yes, it will replace the custom multiscript with the default (or whichever MS you had previously saved with the multi). You don't want to do that.
> 
> Again, I suggest you re-read section 7.2 of the SIPS 2 User's Guide for more info on this process. When I get a bigger block of time, perhaps I could post a more detailed discussion of how to make and/or load multiscripts. I'll try to do that if it seems like there is enough interest in it.
> 
> God Bless,
> 
> Bob



Perfect! A how to guide for dummy is how i like it! :lol: 

Seems easy enough. I'll give this a try an report back.

Cheers!


----------



## Big Bob

> Before I spend days pulling out my hair will the new SIPS V2.05 work in Kontakt 3.0/3.5 ?



SIPS V2.05 works fine in K3.02 but, the K3.5 public beta has a number problems, see this thread:

http://vi-control.net/forum/viewtopic.php?t=12262

I'm in the process of producing a V2.06 which will run properly with the 3.5 beta. But, I really wasn't planning on distributing it until the official K3.5 release. NI may actually fix some of the problems with the beta (as well as possibly introducing some new ones :roll: ). If they fix everything properly, then SIPS V2.05 should run OK as it is. If they don't, I will then release my V2.06 to accomodate what has changed. Eventually, I will probably release a SIPS V3 which will be more optimized for running in K3. But then, NI may also release K4 soon and that just might support real User Functions. If so, SIPS will need a major overhaul to properly take advantage of the situation. A bitter-sweet possibility if ever there was one. :lol: 

God Bless,

Bob


----------



## chimuelo

God Bless You Too Bob.
By the time I migrate everything over it will be early summer, so I will mess around w/ K3.0 and see the possibilities.
And I thought I would never like Kontakt as much as Giga......... :roll: 
With so many hardware PC messages connected to footswitches this could be the ultimate live sampler maybe.
Knowing LASS is hardwired and uses velocity and ModWheel is refreshing also.
One less app I have to worry about being bloated in the wrong way.

Have A Great Weekend.


JAV


----------



## Fernando Warez

I just gave it a quick run before bed time yesterday. I had CC 11 on a few instrument with in a bank and i think it works perfectly. But I'll do more testing today as i might have missed something. CC11 is constantly moving up and dn while switching instruments so I'm wondering if i may be solving this issue kind of like Andrew does. Call me stupid but i always have a problem getting head around this bug. :oops: 

I'll report back later. 

Cheers.


----------



## Nickie Fønshauge

My *Continuity Program Changer* multiscript is now done. It should work with K2.2.* and K3.*. If you use the .nkm multi (this doesn't require the *ShowMultiScript* flag to be set in the Windows Registry/the equivalent procedure on Mac) you must load it before any other multi; you cannot, for unknown reasons, merge it into an existing multi. The *...(KSE)* file is for use in *Nils' KScript Editor 1.3.1*+, whereas the *...(KSP)* file can be pasted directly into Kontakt's multiscript editor, in which case it is necessary to set the *ShowMultiScript* flag in the Windows Registry/the equivalent procedure on Mac.

The script keeps track of the CC's (Except CC#127), Channel AT and PW, that have been used since loadtime/engine restart and resends their last value each time a PC is received.

It can furthermore convert a CC to PC if you send CC#127 with a value, that includes "2" (along the lines of Bob's *KSP+* specification) followed by a CC#125 message containing the CC# of the CC that is to be converted to PC (this is global; one set of CC#127/CC#125 messages - regardles of the MIDI channel it is sent on - will affect all MIDI channels). In this case the converted controller is blocked. A new CC#127 message disables the feature. This feature can be useful for Sonar/K3 users; Sonar - at least Sonar 6.21 is - is notoriously incapable of sending dynamic Program Changes to VST plugins, making it impossible to use banks in K3.

I expect it is compatible with Bob's KSP+ multiscript - the CPC script ought to at least work in front of the KSP+ script.

I guess this pretty much sums up, what has to be said about the script. I hope you will find it useful.


----------



## chimuelo

Thank You So Much.

I am slightly confused about the term PW in your statement though....

" The script keeps track of the CC's (Except CC#127), Channel AT and PW ".

I am aware of the Channel Aftertouch, but am not sure what PW is.
Sorry for my ignorance, but you could clarify this for me.

Thanks.

JAV


----------



## Nickie Fønshauge

PW = PitchWheel


----------



## lee

PW usually means pitchwheel I think.

Anyway, I think I may not have to use that mfxscript idea that Fernando mentioned if Nickies or/and Big Bobs multiscript do the trick!

Very very much appretiated. Will test when I´m at my daw.

/Johnny

Edit:



Fernando Warez @ Fri Apr 17 said:


> Jose, i think you should have a look at the thread below. It covers the problem i was talking about and has a solution for it that might interest you. Its an mfxscript that resends CC info as you switch inside a bank. It didn't wok in C4 here. Mmaybe because i didn't get it as usual. Anyway, have a look and see if that works for you.
> I think the link to this mfx script is still active. If not? try to contact Lee who is in this thread. He has it working in C3 a believe and seem to be very happy.
> 
> http://www.vi-control.net/forum/viewtopic.php?t=5531



Yup, that ol page is still there.

Edit: http://hem.bredband.net/b807883/mfxscript/

/Johnny


----------



## chimuelo

Coolness, thanks for clearing that up.
I am used to seeing it as PBend, or PB. PW is new and cool.

Thanks Again.

JAV


----------



## Fernando Warez

Love you guys!

Thanks much!


----------



## Big Bob

Hi Nickie,

Somehow I knew that your MS would be a lot fancier than mine :lol: You've added some nice options that sound like they might be quite useful, especially for Sonar users. Since I haven't been using banks and I don't use Sonar, I wasn't even aware of the sluggish PC event thing.

However, at its core, it looks like your MS does basically the same thing as the V1.1 MS I posted. Specifically, keeping track of all CCs that changed since loading the multi. If we could find an economical way to keep track of CC changes for each bank instrument, it would result in the minimum bandwidth for resending CCs. I thought about this a bit but couldn't come up with any ingenious memory-sparing ideas but, I was kind of hoping you were going to come up with some clever way of doing this (without tons of storage arrays) :lol: . But then, I guess there is no free lunch :cry: 

As a practical matter, it may not be too important as long as the total number of CCs used during a session remain small. So far only Fernando seems to have tried our Multiscripts and he hasn't posted any detailed test results. I would be interested in hearing if these Multiscripts, either yours or mine, really solve this problem without a big MIDI clog for each Program Change event.

You have a lovely day my friend,

Bob


----------



## Fernando Warez

Guys, I'm just wondering if this is a problem or not. Let say you have a 1/2 note playing
and then you switch banks slot right after that 1/2 note start to play, are CCs suppose to work through that 1/2 note? Because it's not working here. A soon as i switch bank slot CCs stop moving. Is this the problem with bank and CCs? or do i just have to be careful and switch at the right time? 

It happens with both scripts.


----------



## Nickie Fønshauge

Hi Bob,

I'm sorry, I have not had time to look at your script so I don't know how alike they are. But, I did think of the possibility of keeping track of CC changes per bank instrument. Only I cannot see an economical way either. It would require a set of up to 64*128*128=1048576 variables; even with K3.5's enlarged arrays it would require 512 full arrays. Not very economical, I am afraid. Besides, a multiscript can't know if a CC is needed by all or only some instruments of a bank. It will have to fire all used CCs at any Program Change anyway, just in case.


----------



## Fernando Warez

Thanks, Nickie.

So i guess it's working then, and all i need to do is switch a the right time...

Soon I'll be using VST expression in cubase 5 and I'm guess vst expression will shift right before the new articulation is played. So it should solve this i guess.

Thanks for looking into it anyway. But don't work too hard on this either if all i need to do is switch at the right moment. I can leave with that no problem. I was just testing this so i didn't pay any attention where i was switching in time.

Cheers.


----------



## Nickie Fønshauge

Fernando,

I just uploaded version 1.1 (same link). It defers PCs until next Note ON. Try this.


----------



## Fernando Warez

Nickie Fønshauge @ Mon Apr 20 said:


> Fernando,
> 
> I just uploaded version 1.1 (same link). It defers PCs until next Note ON. Try this.



Yeae!!! It working! :mrgreen: 

THANK YOU! 8)


----------



## Nickie Fønshauge

My pleasure


----------



## Thonex

Nickie Fønshauge @ Tue Apr 21 said:


> My pleasure



Nickie.... will you marry me??!!!! 0oD 

Oh wait.... I'm already married.... ahhh... who cares.. marry me anyways!!! :lol: 

I haven't tried it yet.. but I know you... and I'm sure it behaves exactly as it should!!!

This will be a great thing Nicky. With Cubase 5's new VST Expression... you really have opened the door to a lot of things.

You deserve a big hand of applause.

Thanks Nickie!!! =o o-[][]-o o=< 

T


----------



## Fernando Warez

Guys, 

You have no idea how happy i am to have this solved. It's been a major pain in the butt for me here. 

I'm forever grateful! 8) 

Again, many many many thanks to you, Nickie.

And thanks to you Bob for giving it a shot! 

Cheers.


----------



## Fernando Warez

Thonex @ Tue Apr 21 said:


> Nickie Fønshauge @ Tue Apr 21 said:
> 
> 
> 
> My pleasure
> 
> 
> 
> 
> Nickie.... will you marry me??!!!! 0oD
> 
> Oh wait.... I'm already married.... ahhh... who cares.. marry me anyways!!! :lol:
> 
> 
> 
> T
Click to expand...


Hey! Thats MY girl! :wink:


----------



## Nickie Fønshauge

You guys flatten me :oops: 

And no need to fight - I could live with a harem :mrgreen:


----------



## Thonex

Nickie Fønshauge @ Tue Apr 21 said:


> I could live with a harem :mrgreen:



Well... you came to the right place then!!! :mrgreen: :mrgreen:


----------



## Nickie Fønshauge

nlundberg @ 24th April 2009 said:


> Hi,
> 
> this is a little OT, but while you are at it, why not make the MS cut off release samples between different patches? If you do a lot of switching between say a legato patch with release samples and a staccato sample you will get unwanted overlapping as it is now.



I don't know of any way a Multiscript can terminate an already playing release sample, and as to prevent a release sample from beginning to play it would have to be done by suppressing the note off, that starts it; not a very good idea, since the sample, the note off is intended to kill, would then keep playing, possibly forever (if it is lopped).

But, you may be able to achieve your objective yourself by combining my CPC script with Bob's KSP+ script trailing it. The latter can map Program Changes to CC#125 while at the same time letting PCs pass through. I am uncertain whether this CC#125 message is sent *before* the PC - thus going to the "old" program; if not, a small change of the KSP+ script could make it send the CC#125 message before the Program Change (and possibly also after the PC). If the CC#125 message is sent to the previously playing patch, you can program this to suppress Release samples upon receiving a CC#125 Program Change proxy message.

I hope this helps

Cheers,

Nickie


----------



## Cinemascore

Can one of you please tell me how Nickie's Continuity Program Changer Multiscript can be used at the same time as Big Bob's KSP+ (for SIPS 2) Multiscript? 

I'm not up on how Multiscripts work in Kontakt (I'm still using SIPS 1.51 but want to eventually move up to version 2.x)

Is this combination possible? If so, how?


----------



## Hannes_F

I want to hug Nickie too ... what is this thread about?


----------



## Big Bob

Cinemascore @ Tue May 12 said:


> Can one of you please tell me how Nickie's Continuity Program Changer Multiscript can be used at the same time as Big Bob's KSP+ (for SIPS 2) Multiscript?
> 
> I'm not up on how Multiscripts work in Kontakt (I'm still using SIPS 1.51 but want to eventually move up to version 2.x)
> 
> Is this combination possible? If so, how?



There are five MS slots just as there are 5 normal script slots. To cascade multiscripts that are compatible (I don't know if that is so for KSP+ and Nickie's MS, but they might be), you first have to launch Kontakt in the Multiscript mode. In windows this is done by toggling a registry value. I don't have time right now to elaborate any more on this but you might search this forum for threads discussing multiscripts. About a year or so ago, we had some rather lively discussions on the subject.

Alternatively, 'someone' could combine both multiscripts at the source level and then resave them as a .nkm file. For SIPS 2 you don't need the full version of KSP+ and the SIPS_KSP+.nkm is a greatly simplified version of the full=blown KSP+. To add the function of SIPS_KSP+ to Nickie's script would not be too difficult.

Now, all we need is 'someone' :lol: I'm sure Nickie could easily do this if she had the time but therein lies the problem :roll: . Also, as I have mentioned previously, someday (if I find the time), I may tackle writing a tutorial on how to write, edit, and load multiscripts; sort of a Multiscripts 101 but, time being what it is, please don't hold your breath waiting for it :lol: 

God Bless,

Bob


----------



## Fernando Warez

Hannes_F @ Tue May 12 said:


> I want to hug Nickie too ... what is this thread about?



Reed it it's worth it. ...If you use instrument banks that is... And if you don't then maby you should. :wink:


----------



## Cinemascore

Big Bob @ Tue May 12 said:


> There are five MS slots just as there are 5 normal script slots. To cascade multiscripts that are compatible (I don't know if that is so for KSP+ and Nickie's MS, but they might be), you first have to launch Kontakt in the Multiscript mode. In windows this is done by toggling a registry value. I don't have time right now to elaborate any more on this but you might search this forum for threads discussing multiscripts. About a year or so ago, we had some rather lively discussions on the subject.
> 
> Alternatively, 'someone' could combine both multiscripts at the source level and then resave them as a .nkm file. For SIPS 2 you don't need the full version of KSP+ and the SIPS_KSP+.nkm is a greatly simplified version of the full=blown KSP+. To add the function of SIPS_KSP+ to Nickie's script would not be too difficult.
> 
> Now, all we need is 'someone' :lol: I'm sure Nickie could easily do this if she had the time but therein lies the problem :roll: . Also, as I have mentioned previously, someday (if I find the time), I may tackle writing a tutorial on how to write, edit, and load multiscripts; sort of a Multiscripts 101 but, time being what it is, please don't hold your breath waiting for it :lol:
> 
> God Bless,
> 
> Bob



Bob,

Thanks for your, as always, informative reply. As you said - hopefully 'someone' :lol: can look into it and make the combination. I'm sure many of us would like to see that happen. Also, a Multiscripts 101 tutorial would be great if you can spare the time for it in the future. :D


----------



## Nickie Fønshauge

I have included a Multi (*CPC 1_1 - KSP+ 1_10.nkm*) in the http://foenshauge.dk/software/kontakt2/ ... hanger.zip file, that consists of the CPC & KSP+ multiscripts. I am guessing they are compatible but don't know it, since I haven't tested it. There's a job for you :wink:


----------



## ozmorphasis

*Transform midi in DP*

Does anyone know if you could do the whole transform midi commands technique in Digital Performer? I haven't found it yet, but am hopeful that it, or something similar, is possible in DP since the way that Thonex has described this method seems to make a lot of sense when using Kontakt.

Thanks,
O


----------



## Camus

Hi Andrew, Hi Nickie,

finally I managed to transform KS to Prgch in logic 8. Thanks for this trick, Andrew.
Thanks Nickie for taking care of the continous data.- it seems to work perfect on the first glance. I did not check it out in a real life situation yet. but I´m optimistic that I´m going to reduce my Logic setup from 200+ tracks to an amount that fits to my screen.
Nickie are you still in Andrews harem? otherwise......

Andrew, this seems to be very interesting for LASS also.

all the best and thanks again

Camus


----------



## Nickie Fønshauge

Camus @ 9th July 2009 said:


> Nickie are you still in Andrews harem? otherwise......


I think you got that one wrong: he's in my harem - and there's always room for one more :mrgreen:


----------



## Camus

life can be soooo easy, somedays :D


----------



## nlundberg

Damn. I can not get this to work! With the continuity script, as soon as I hit a note Kontakt goes into what I believe is a midi loop, and gets unresponsive. If I am able to get the mouse pointer over to the reset engine I can get things back to normal. Until I hit another note...

What could this be? I see nobody else with this problem.

Very thankful for help!

Nicklas.


----------



## givemenoughrope

Dan and Thonex, 

Is there any way to "print" notes to actual midi channels in a similar way in Cubase? Your method, using notes to record program changes, is great for Kontakt's banks. For something like PLAY, which only allows for slots for Midi Channels and keyswitches (not as solid as Program Changes or midi channels when sequencing, rewinding, etc.), it obviously wouldn't apply. I'm experimenting with sending those program changes to Bidule and remapping each to a midi channel, then sending either back to Cubase or to PLAY in standalone. There is a bit of latency. 

Anyone know how to do this same trick but with midi channels and in Cubase? I spent a whole day on it but couldn't figure it out. 

thanks

mike


----------



## Nickie Fønshauge

nlundberg @ 29th August 2009 said:


> Damn. I can not get this to work! With the continuity script, as soon as I hit a note Kontakt goes into what I believe is a midi loop, and gets unresponsive. If I am able to get the mouse pointer over to the reset engine I can get things back to normal. Until I hit another note...
> 
> What could this be? I see nobody else with this problem.
> 
> Very thankful for help!
> 
> Nicklas.


Don't know. Do you have one of the MIDI Out ports enabled (General Options | MIDI | Outputs)?


----------



## nlundberg

Hi Nickie!

Now it works most of the time, but I really do not know what the difference is. This time I loaded my multi and then applied the script, maybe that is the reason. Since my multi already had KSP+ I just added your script, not the combo. Sometime the cpu goes up to max and everything stutters though, but maybe that is because of my sequencer (Sibelius) sending out a lot of CCs on play and stop.

Anyway, this is awesome! This opens up so many possibilities for me. Thanks!

Nicklas.


----------



## Nickie Fønshauge

You are welcome


----------



## MNovy

Yes, the combination of *VST Expressions + Kontakt Banks* is perfect
and currently best practice. At the moment there is no better way to deal with
different articulations - which are not part of VSL VI etc.


----------



## KingIdiot

been doing this for a while now. On older machines, it actually would tend to add some CPU spikes if there was ALOT of data going through, but it works better on newer machines. I also started to use the input transform in Cubase for smoothing out the tracking on my guitar to MIDI pickup, for some passages.

I was thinking this last night, someone needs to build a keyboard with touch sensitive sensors on the keys so that if you play the tip of them they send out a Prg Ch, and if you play the Middle another, and if you play the top another. Hell touch sensitive strips that you can put on your existing keys would be awesome too.


----------



## sevaels

WOW

Threads like this make this place amazing!

THANK YOU!!!!!!
o-[][]-o o-[][]-o o-[][]-o o-[][]-o o-[][]-o


----------



## KingIdiot

If you're not into keyswitches, and like seperate tracks, and want to take advantage of the bank feature in kontakt: You can add a transformer effect to the MIDI send of your MIDI track to transform all notes to a specific program change. Then send that to the Kontakt bank. This will allow you to have separate tracks for each instrument in the bank. This works especially well for percussion instruments.

the only problem is when using Expression and Modwheel curves when layering instruments, as the CC data isnt transformed consistantly and will "jump around" there are ways around this, but it requires some reprogramming within the bank, and creating some more "transfrom" processes.


----------



## sevaels

Noticed a bug.

If you record a switch from a staccato note to a sustained note the staccato still sounds after the switch to the first sustained note.

Since the notes themselves prompt the change - the attack of the staccato (really the whole note) carries over.

_What this means is that your program changes have to be BEFORE the note off in the sequence for it to play back correctly. If you program change AFTER the note off you get the staccato and sustain combined UPON PLAYBACK. This is because Kontakt has to play catch up._

Any way to fix this?

This is in Logic 9.

Sev


----------



## nlundberg

Hi,

I encountered a problem.

I made this script:


> on init
> declare $accent_on
> declare ui_knob $acc_add(0,127,1)
> $accent_on := 0
> $acc_add := 20
> make_persistent ($accent_on)
> make_persistent ($acc_add)
> end on
> 
> on note
> ignore_event ($EVENT_ID)
> if (%CC[2]=127)
> play_note ($EVENT_NOTE, $EVENT_VELOCITY + $acc_add, 0, -1)
> else
> play_note ($EVENT_NOTE, $EVENT_VELOCITY, 0, -1)
> end if
> end on



This script raise the staccato sample velocity of a legato string program/patch.

It works, but if I send a program change (same patch) and then CC2/0 to get no accent the strong accent stays. If I remove the continuity program changer multiscript it works as intended.
I think that the multiscript buffers CC2 and then resend it so it always stays at 127.

Is there a way to fix this? Maybe I could write my script in another way?

Best


----------



## Nickie Fønshauge

I am not quite sure why you experience a problem, Nicklas. It is not CCs that are buffered - PCs are buffered until the next Note ON. CCs are just recorded as they arrive and then the most recent value is resent after the next PC, but *before* the Note ON associated with the PC.

So, you would get:
1: PC buffered (intercepted)
2: CC 2/0 recorded (not intercepted)
3: next Note ON occurs (temporarily intercepted)
4: PC sent
5: CC 2/0 sent to the new patch
6: Note ON sent to the new patch

This is what you want, right?

Btw, you are using CPC v. 1.1, yes?


----------



## nlundberg

Hmm. Yes I use the CPC v. 1.1/KSP+. Out of reading your explanation and looking at a midi dump I really can not see the problem. I attach the midi dump and maybe you could have a look at it? The sequence is a scale going from C up to G, and then back again. Accent is on first and then every other note. 
What happens is that it if I start playback on an accent there is no accent playback, but then on every note has an accent. If I start before, as soon as there is a accent every note thereon has an accent.

As I see it, here is what is going on:



> Note 1, accent:
> 
> Sibelius: Program 0 -buffered by CPC
> Sibelius: CC 2/0 (reset I guess) recorded by CPC
> Sibelius: CC 2/127 recorded by CPC
> Sibelius: Note on C3 -buffered by CPC
> CPC rogram 0 sent
> CPC: CC2/127 sent
> CPC: Note on C3 sent
> Sibelius: Note off C3
> 
> Note 2, no accent:
> 
> Sibelius: Program 0 -buffered by CPC
> Sibelius: CC 2/0 recorded by CPC
> Sibelius: Note on D3 -buffered by CPC
> CPC rogram 0 sent
> CPC: CC2/0 sent -but this does not seem to happen
> CPC: Note on D3 sent
> Sibelius: Note off D3
> 
> Note 3, accent:
> 
> Sibelius: CC 2/127 recorded by CPC
> Sibelius: Note on E3 -buffered by CPC
> CPC rogram 0 sent
> CPC: CC2/127 sent
> CPC: Note on E3 sent
> Sibelius: Note off E3
> 
> Note 4, no accent:
> 
> Sibelius: Program 0 -buffered by CPC
> Sibelius: CC 2/0 recorded by CPC
> Sibelius: Note on F3 -buffered by CPC
> CPC rogram 0 sent
> CPC: CC2/0 sent -but this does not seem to happen
> CPC: Note on F3 sent
> Sibelius: Note off F3



But please look at the midi dump since I am not sure I got it right.

Thanks a lot!
N.

PS. Is the CC122 going back and forth between 0 and 127 part of your script? If then, can you temporarily disable it? Because it is impossible to assign CC's to knobs when it is constantly sending. Just wondering.


----------



## Nickie Fønshauge

I gather you are using Bob's KSP+ script; it is this script that alternates CC#122 as a proxy timer. CPC doesn't treat CC#122 different than any other CC (except CC#127 and CC#125/proxy-PC_CC, which do recieve special treatment). I am not sure if KSP+ does anything to CC#2 - I never used it. Btw, I recommend you use CPC before KSP+ in the multi script rack.

Your interpretation of the MIDI dump is correct, but how, or rather when in the chain, did you record it? Before or after CPC.


----------



## nlundberg

Ok,
I think there is two versions of KSP+, one lighter that is only needed for SIPS. Is that the one you have included with CPC and KSP+?

How to I see the multi scripts? I am on mac/os x?

Nicklas.


----------



## Nickie Fønshauge

The KSP+ included in the CPC 1_1 - KSP+ 1_10.nkm file (which is the file you used?) is KSP+ v. 1.10, which I downloaded a while ago, when Bob announced it. Like I said, I never used KSP+ just as I never used SIPS, so I don't know if there is a special version for SIPS.

On WinXP you toggle a "showMultiScript" key (0=OFF/1=ON) in the Windows Registry. I know next to nothing about Macs, but I believe there is a Kontakt preference file, that corresponds to the Registry. Maybe... perhaps.... 

Btw, you can use Kontakt's "Midi Monitor" script in the patch (or better still, an empty instrument on the same channel as the bank) to se the exact string of MIDI data entering the bank. And if you manage to reveal the Multi Script rack, you can use Bob's "MIDI Monitor Plus" script in a similar way in the multi script rack (available from http://vi-control.net/forum/viewtopic.p ... lti+script).


----------



## rob morsberger

If I could bring down the brilliance of this thread to my level for a sec...if any logic
users could walk me through how to create the input transformer thingy, I would be
very grateful. The transformer always makes me feel a bit dim.


----------



## LHall

If you'd like, you can go here: http://logicprohelp.com/viewtopic.php?t=7539 and download the logic song that contains the transformer I created. Be sure to download the latest version, several posts down. You'll have to register at Logic Pro to see the download links. 

This uses keyswitches to change patches in the banks and works really well. 

I created this in Logic 7, but opens fine in L8 and I assume will in L9 as well. 

It accommodates 8 patches, and also has a version that puts the keyswitches at the top of the keyboard, which is good for things like Arco patches. 

Hope it will help.


----------



## rob morsberger

I so appreciate that bit of help! Thank you LHall.


----------



## nlundberg

Hey Nickie,
did you ever check out my last post in this thread? Am I totally wrong, is it not possible that this delay is because of CPC?
It breaks my heart if I cant use your nice script! 
N.


----------



## Nickie Fønshauge

Sorry, Nicklas, haven't had the time yet - been busy. All I can say is, that the script has behaved well for myself so far. I will try to find time to look into it this weekend, but can't promise anything.

I would be interested in knowing if anybody else can confirm your findings, though.


----------



## Nickie Fønshauge

Nicklas, I finally had a chance to test CPC. It does exactly what it is supposed to do: it resends the last recieved CC value upon Program Change. So, I am afraid I don't know what is causing you trouble; certainly nothing inherent in CPC.


----------



## nlundberg

Hi Nickie,

ok then, sorry for all the trouble. After all that is great news, for me.

Best,

N.


----------



## Nickie Fønshauge

Nicklas, could you upload a MIDI file, that doesn't work for you. I am a bit curious to see how it behaves in my DAW. Just a short note, CC, PC sequence, that has given you erroneous readings.


----------



## nlundberg

Hi Nickie!

This is what happens on my system. I think the problem starts when there is a program change message to the same number.

CPC loaded
Sibelius: Accent do not reset
Playback from top does not update modwheel
Exported midi file: Accent reset

CPC not loaded
Sibelius: Accent reset
Exported midi file: Accent reset

I have attached, midi file export from sibelius, a midi dump from sibelius and a midi dump from the midi file.
The difference between the two dumps is that Sibelius sends a program change (but still the same patch as before) right before the reset of the accent (cc2/64) and this is when CPC get confused (on my system) and sends the previous accent (cc2/127). I can see that this happens if I create an empty instrument on the same midi channel and load the midi monitor script.

So the midi file will play back correct, since it does not resend the program change.

Best,
Nicklas.


----------



## Nickie Fønshauge

Nicklas, you were absolutely right. When PC, CC and Note ON all happen at the same tick, Kontakt hickups! Apparently CCs have the lesser priority in this case even though they seemingly appear *before* the Note ON, so the script managed to resend CCs before the last CC value had been stored, ie the second to last value would be resent. My sincere appologies for all the inconvenience. :oops: 

I have upped the latency of PCs (and their associated Note ONs) from 1 micro sec. to 20 micro secs. This fixed the issue in the present case. Theoretically it may (?) happen again, if Kontakt gets swamped by CCs at the same tick as a PC and a Note ON. My guess is it is only a theoretical risk - and maybe not even that - as it would probably require a substantial number af CCs at the same tick as the PC and Note ON.

Anyhow, please re-download CPC.

And thanks for bringing the issue to my attention and helping me fix it o-[][]-o 

Cheers,
*Nickie*


----------



## nlundberg

Great! No problem, and thanks a lot and a lot once again. 

Nicklas.


----------



## Thonex

Nickie,

Just here to say you are the best!!!! o-[][]-o 

AK


----------



## Nickie Fønshauge

Thanks Andrew, but you are wrong. If I was the best I would have developed LASS


----------



## spotBuddy

More congratulations and thanks to Nickie:

In Kontakt 4, you can put their "Notes to Program Change" script in the first MultiScript slot and CPC in the second, and they both work. So far, the only difference I can find in CPC is that the program change happens immediately, instead of at the next note on. Controller info does seem to pass to the next patch with no problem.

Jon


----------



## spotBuddy

The immediate program change mentioned in the previous post happens in Logic. In DP, CPC seems to work as intended, with the program change happening at the note on.

Jon


----------



## Nickie Fønshauge

Jon, you made me realize, that I had forgotten to treat a Note ON with Velocity=0 as a Note OFF. I don't know what happens in Logic, but if your DAW sends a Note On/Velocity=0 (=Note OFF) each time it encounters a Prog. Change, it would trigger an immediate Prog. Change in CPC 1.1.1.

I fixed this issue in CPC 1.1.2 plus I added an option to manually set a PC proxy to overcome the problem where a DAW resets CC #127, which would switch a PC proxy off in CPC 1.1.1. If a PC proxy is set manually (shown as "ON*!*" on the button and as "LOCKED" in the message area) it can't be changed with a CC #127/CC #125 combination. This combination can only be used if the PC proxy is switched off (shown as "OFF" on the button) or has been set by another CC #127/125 combination (shown as "ON" on the button or "UNLOCKED" in the message area).

The manual PC proxy setting is of course cumbersome to use in K2.2.*/3.*, since you'll have to use the Registry hack to make the multiscript visible; I imagine it is much easier to use in K4.

So, please re-download to get CPC 1.1.2.

The "(PC_CC0)" alternatives all have PC proxy manually set to CC #0. It is OFF in the remaining alternatives.


----------



## DynamicK

Thanks for this update Nickie.


----------

