# Westgate Modular Series Flute legato patch with modwheel crossfade



## andreasOL (Oct 21, 2010)

Hi,

I recently started exploring Kontakt scripting and Nils Liberg's KSP editor. My first major task involved one of the legato patches of the Westgate modular series. I tried to re-program the legato script. I think I understood how the original script is working. Then I took a deeper look at Nils Liberg's crossfade script and combined both.

I now have a working legato patch for the solo vibrato flute with dynamics crossfading via mod wheel (or another selectable CC). I also reprogrammed the key switch logic for the same note repetition mode (D2 and D#2), the release samples (F2 and F#2) and the ghost note mode (G2). I will add the selectable legato threshold time today or tomorrow.

Velocity now controls the attack portion on every non-legato note.

You must have the solo flute of course for the samples used in this patch. If you put it at a location where Kontakt cannot find the samples automatically (e.g. the "Flute_Long Notes + Legato" directory) please direct the missing samples dialog to the flute directory because otherwise it might find samples with identical names in other westgate directories in case you have other instruments as well.

Unfortunately I cannot attach the file because it's size is more than 128KB, so I uploaded it to a (German) file hoster. The link is http://www.imagenetz.de/f0cb9bc07/12-FL_Legato-V_Vel-Att-Xfade.nki.html

Comments and suggestions are welcome.

EDIT: I use Kontakt 4.1.1

regards,
Andreas


----------



## andreasOL (Oct 21, 2010)

...reply to my own posting...ummm...English is not my mother tongue

with "re-program" I meant something like "re-invent" or "re-cap". Obvisouly, because the original script is password locked and cannot be combined with the crossfade script the normal way.

back to work...Andreas


----------



## Patrick de Caumette (Oct 21, 2010)

Thanks so much Andreas, this one is sitting on my desktop and I will give it a go soon.
Keep them coming! :mrgreen:


----------



## andreasOL (Oct 22, 2010)

Thanks, Patrick!

I implemented the legato threshold time parameter yesterday evening, but want to test it some more today.

This script should easily be adapted to the other westgate legato instruments. I have almost all of them and will do this soon. I'll also try to find out whether it is possible (regarding phasing problems) to combine vibrato and non-vibrato in one patch.

Cheers,
Andreas


----------



## Mr. Anxiety (Oct 22, 2010)

I will check out your script on the weekend. I am excited about the prospects for I too use this library and own all the instruments.

I have a variation on this, but I am using multiple instruments to achieve, a workaround of course.

I have vibrato/ non-vibrato on a cc and switch between them that way. I also have the short notes on cc64 (65-127) , with the others all on (1-64).

So it's all on one track in the DAW, but occupies 4 instrument slots in Kontakt, which isn't good for me.

I/We appreciate the work!

Mr. A.


----------



## andreasOL (Oct 22, 2010)

Hi!

I started adding the non-vibrato group to the patch and it looks good so far.

@Patrick and Mr. A.: Looking forward to hear from you

@all: Happy weekend... :D 

Andreas


----------



## andreasOL (Oct 23, 2010)

Hi

here is my next version. It now includes the legato threshold knob AND crossfade between non-vibrato and vibrato sustain. Only tested for a brief moment.

http://www.imagenetz.de/f5517ddd4/12-FL_Legato-V-NV_Vel-Att-Xfade.nki.html

Cheerio,
Andreas


----------



## andreasOL (Oct 24, 2010)

Hi Mr. A.

thank you very much for your feedback. Great!

Adapting this patch for the other instruments will not be much work. As far as I have inspected the other legato patches they have the same group organization. Then I'll only have to adjust the key range coloring, and maybe adjust the velocity layer boundaries for the crossfade scripting part.

I'm glad you like the non-vib. vibrato crossfade. It's done with same means as the vel. crossfade, i.e. equal-power mixing between both sustain groups. Big kudos to Nils and 'Big Bob'. His math stuff is really amazing.

Before releasing this new patch from "beta status"  I'm still pondering about a few more additions.

1) The dynamics range now is chosen so that it's about the same as in the original velocity controlled westgate patch. I could easily show a knob (it's already there but hidden at the moment) to extend or diminish this range. The highest volume would stay as it is, but the lowest could be adjusted to be louder or more silent. Does this make sense?

2) Possible choices for the "non-vibrato to vibrato ratio" controller should include aftertouch and maybe "always vib." and "always non-vib.". Aftertouch would be a very natural way of adding vibrato to a held note. Wallander instruments and XSample do it that way.

3) Setting the highest vel. necessary to give "full attack". I noticed that it's much harder now to get full attack because (at least with my master keyboard) it's not very easy to hit a key that hard to get a velocity of 127. I'd introduce a knob for a "Full Attack Velocity" parameter with values between 0 (well, maybe some higher value, because 0 is nonsense) and 127 which determines the velocity range that's mapped to the attack volume. Notes played with velocity values higher than that value would, of course, still mean full attack.

Can you fancy other things?

I think putting short articulation stuff in this patch would clutter it to much.

Andreas


----------



## Mr. Anxiety (Oct 24, 2010)

Hey Andreas,

Yes, you could probably do some of these tweaks.
You could also add the shorts as a 2nd instrument on the same midi channel, and have the legato instrument play on cc64 (0-64) and the shorts instrument play on cc64 (65-127). This way it's not cluttering up the Legato patch and doesn't require additional scripting.



1) The dynamics range now is chosen so that it's about the same as in the original velocity controlled westgate patch. I could easily show a knob (it's already there but hidden at the moment) to extend or diminish this range. The highest volume would stay as it is, but the lowest could be adjusted to be louder or more silent. Does this make sense? 

I think so, it's like changing the velocity curve in a way, correct? I usually draw my own curve for the velocity so it matches my keyboard controller/ my playing style.

2) Possible choices for the "non-vibrato to vibrato ratio" controller should include aftertouch and maybe "always vib." and "always non-vib.". Aftertouch would be a very natural way of adding vibrato to a held note. Wallander instruments and XSample do it that way. 

Agreed... I just got the Xsample chamber orch and the WWinds are great; a great match to the Westgate, so matching controllers would be excellent.


3) Setting the highest vel. necessary to give "full attack". I noticed that it's much harder now to get full attack because (at least with my master keyboard) it's not very easy to hit a key that hard to get a velocity of 127. I'd introduce a knob for a "Full Attack Velocity" parameter with values between 0 (well, maybe some higher value, because 0 is nonsense) and 127 which determines the velocity range that's mapped to the attack volume. Notes played with velocity values higher than that value would, of course, still mean full attack. 

Hmmm.... I'm not getting the need for this one. When would you use this feature; what application musically? Maybe I don't understand it's function. Are the issues with the velocity response due to the velocity curve used in Kontakt in the patch? 

Can you fancy other things? 

I think this would cover it for my uses........ I'm always trying to keep my instrument count down, since I've been using K 4.2 standalone, and have all my Brass in this as well. I easily run out of slots, so I might consider adding some of the other articulations into this patch as KSwitches, like trills and crescendos. I currently do the above mentioned cc64 switch between Longs and Shorts, but I have the shorts in the same instrument, which adds a lot of groups to the patch......which might create issues with the patch's performance.

Again, nice work and I'm glad to hear that adapting this to the rest of the library will not be too demanding workwise.......... I'm a scripting noob, so I can't help...... if there's anything else you need help with, let me know.

Mr. A


----------



## andreasOL (Oct 24, 2010)

Hi Mr.A.



Mr. Anxiety @ Sun 24 Oct said:


> Yes, you could probably do some of these tweaks.
> You could also add the shorts as a 2nd instrument on the same midi channel, and have the legato instrument play on cc64 (0-64) and the shorts instrument play on cc64 (65-127). This way it's not cluttering up the Legato patch and doesn't require additional scripting.



To make sure I understand it right...you mean adding the shorts to _this_ patch and the cc64 distinction is done by e.g. group start options?
Which shorts do you use?



> 1) The dynamics range now is chosen so that it's about the same as in the original velocity controlled westgate patch. I could easily show a knob (it's already there but hidden at the moment) to extend or diminish this range. The highest volume would stay as it is, but the lowest could be adjusted to be louder or more silent. Does this make sense?
> 
> I think so, it's like changing the velocity curve in a way, correct? I usually draw my own curve for the velocity so it matches my keyboard controller/ my playing style.


Hmmm...I'll put it in for a test and call it "Extended Dynamics range". For me it's not a velocity curve that's being adjusted because that would not change the lowest and highest _achievable_ instrument response (btw, we have to be careful with the terms, it's no longer velocity that controls the dynamics level but a CC value). It's rather the difference between minium value and maximum value that is actually achievable with the instrument that can be controlled by this parameter.



> 2) Possible choices for the "non-vibrato to vibrato ratio" controller should include aftertouch and maybe "always vib." and "always non-vib.". Aftertouch would be a very natural way of adding vibrato to a held note. Wallander instruments and XSample do it that way.
> 
> Agreed... I just got the Xsample chamber orch and the WWinds are great; a great match to the Westgate, so matching controllers would be excellent.



Great. That's an easy one.



> 3) Setting the highest vel. necessary to give "full attack". I noticed that it's much harder now to get full attack because (at least with my master keyboard) it's not very easy to hit a key that hard to get a velocity of 127. I'd introduce a knob for a "Full Attack Velocity" parameter with values between 0 (well, maybe some higher value, because 0 is nonsense) and 127 which determines the velocity range that's mapped to the attack volume. Notes played with velocity values higher than that value would, of course, still mean full attack.
> 
> Hmmm.... I'm not getting the need for this one. When would you use this feature; what application musically? Maybe I don't understand it's function. Are the issues with the velocity response due to the velocity curve used in Kontakt in the patch?



My motivation for this comes from the fact that I cannot easily produce velocities above 100 with my keyboard because the keys are heavy weighted. So I would never reach the maximum audible attack portion without going into my DAW's editor and raising the velocity value manually. This here indeed would be something I'd call velocity curve adjustment because it changes the mapping of incoming velocity to the value needed for a certain event (here: attack sample volume).



> Can you fancy other things?
> 
> I think this would cover it for my uses........ I'm always trying to keep my instrument count down, since I've been using K 4.2 standalone, and have all my Brass in this as well. I easily run out of slots, so I might consider adding some of the other articulations into this patch as KSwitches, like trills and crescendos. I currently do the above mentioned cc64 switch between Longs and Shorts, but I have the shorts in the same instrument, which adds a lot of groups to the patch......which might create issues with the patch's performance.


I'd say the scripts are executed no matter whether any triggered groups have their own conditions which prevent them from producing sound, so if the scripts are heavy cpu-wise it's a performance penalty.

I have the idea of bringing some of the other long articulations in the patch (trills, flutter, 16th, triplets) and selecting them with a one-shot key switch (like G2 for ghost note). This way they could be seamlessly embedded in the monophonic/legato concept.



> Again, nice work and I'm glad to hear that adapting this to the rest of the library will not be too demanding workwise.......... I'm a scripting noob, so I can't help...... if there's anything else you need help with, let me know.
> 
> Mr. A


Done hereby  

It's time for bed now over here. I'll see what I can do tomorrow evening and post my next version. I'd like to get the whole thing done in the next days and then transfer it to the other instruments.

To sum up my questions: Which shorts do you use?

Bye,
Andreas

PS: I hope this is interesting for other westgate users, too. I'm open to suggestion and ideas.


----------



## Mr. Anxiety (Oct 24, 2010)

Andreas,

I use the All Short Notes from the same library, so it's the same sound.

There is a keyswitch between staccato and marcato(?)


Yes, I use the Group Start option and have them all together in one big patch. Then it its all on one sequencer track!!

When discussing the velocity curve issue, I'm speaking of how the Attacks are tracking velocity, since yes, the dynamic switching is on the mod wheel.

I generally want a curve that has no attack thru the first third of the range, then the attacks come in for the last 2/3rds as we play harder. This also allows you to have control over detache or portato style playing, using the sustain patch. You can have longer notes than what the short notes patch has, so it gives you more flexibility.

Your situation, not being able to get to the upper velocities via your controller performance, is another matter, and wouldn't a different "curve" achieve that. Drawing in the curves is a pain in Kontakt, but you can do it.

Again, this velocity talk is only pertaining to the added Attack, that was on the mod wheel originally.

Another note........... Since this patch could get huge when adding more articulations., it might be best to make a few variations for CPU relief.

Legato 
Legato + Shorts
Legato + Shorts + Trills + Flutter
Legato + Everything

Only if this hasn't created tons more work, I guess you could save these as you add the articulations..... make it the routine to building the largest patch.

Thanks,

Mr. A


----------



## paoling (Nov 2, 2010)

Ops. I was going around this thread and I wanted to press "REPLY", but I pressed on "REPORT". I don't have any reason for reporting this thread. It was my mistake :-/

Hi Andreas! Thank you for this script. I've noticed that I can take two groups from the NV patches (sustain and another one that I don't remember now), rename them with NV at the end and I can make your script work with the others instruments.

Is it all alright? I think it's a very useful script, I'm planning to leave out woodwind sections in my template and use only single instruments of different (possibly dry) libraries. In this way you can apply the LASS concept of divisi and achieve a convincing overal sound. Your script for legato is simply amazing!


----------



## andreasOL (Nov 2, 2010)

paoling @ Tue 02 Nov said:


> Ops. I was going around this thread and I wanted to press "REPLY", but I pressed on "REPORT". I don't have any reason for reporting this thread. It was my mistake :-/
> 
> Hi Andreas! Thank you for this script. I've noticed that I can take two groups from the NV patches (sustain and another one that I don't remember now), rename them with NV at the end and I can make your script work with the others instruments.
> 
> Is it all alright? I think it's a very useful script, I'm planning to leave out woodwind sections in my template and use only single instruments of different (possibly dry) libraries. In this way you can apply the LASS concept of divisi and achieve a convincing overal sound. Your script for legato is simply amazing!



Hi

yes, you're right with the NV groups  
I was working last week on this patches and with the help of Mr. A. they have
already grown to something nice. Watch out for updates. I'll post something soon.

LASS divisi...that's another story. There's already a divisi script in development...
see http://vi-control.net/forum/viewtopic.php?t=18318

Do I have to take actions regarding the "report"?

Cheers,
Andreas


----------



## paoling (Nov 2, 2010)

andreasOL @ Tue Nov 02 said:


> paoling @ Tue 02 Nov said:
> 
> 
> > LASS divisi...that's another story. There's already a divisi script in development...
> ...



Well, I don't have really interest in automatic divisi, because I like to play all my parts one by one.. What I like is the sound I get using different libraries (and slightly different versions of the same family instruments, like Vienna Horns and French Horns), to get a more convincing sound. I'm using MIR, and with that I can match my different libraries with not so much efforts 

http://www.box.net/shared/lk9pod7aix
This is a very short snippet I've done some days ago. I'm quite happy with my setup.
But I'm going off topic 
About the report, some moderator will ask me: why would you report a such nice thread? And I will excuse for my mistake


----------



## paoling (Nov 2, 2010)

Andreas; is there a way to redefine keyswitches for release, repetition and ghost key..? Because I'm using your script with other instruments, such as the horns and so, but the keyswitches are in the range of the instruments, so the notes won't be played.

Another thing. Do you think it's possible to vary the legato speed, with TimeMachine feature of Kontakt? Like Tonehammer Requiem legato or Lass one. This could be an huge improvement because Legato in Westgate sounds a bit short to my ears.


----------



## andreasOL (Nov 2, 2010)

paoling @ Tue 02 Nov said:


> Andreas; is there a way to redefine keyswitches for release, repetition and ghost key..? Because I'm using your script with other instruments, such as the horns and so, but the keyswitches are in the range of the instruments, so the notes won't be played.
> 
> Another thing. Do you think it's possible to vary the legato speed, with TimeMachine feature of Kontakt? Like Tonehammer Requiem legato or Lass one. This could be an huge improvement because Legato in Westgate sounds a bit short to my ears.



Hi,

you anticipate my next steps  As soon as I have completed the flute patch I will adapt the script for the other instruments (I have almost all of the Westgate instruments). My sources are modularized and I have already tried it with the solo oboe. Of course it's written with KScript Editor. The final version in the patch is hardly maintainable. For the moment: there should be some const declarations starting with KS_ for the key switches. I'll post my most recent versions soon.

Regarding legato speed...that's an interesting thought. The legato samples and the sustain samples are triggered simultaneously now. If you play a note outside the legato threshold instead of the legato sample which provides the binding sound, an attack sample is played simultaneously with the (attack-less) sustain sample. To change the legato speed, make it longer, the legato sample itself must be processed through time machine and the sustain sample must be started after an appropriate delay.

I'll see what possibilities are there. I'll get back to you about this.

Good idea.

Cheers,
Andreas


----------



## andreasOL (Nov 2, 2010)

...forgot to anwer this:



paoling @ Tue 02 Nov said:


> ... LASS divisi...
> 
> Well, I don't have really interest in automatic divisi, because I like to play all my parts one by one.. What I like is the sound I get using different libraries (and slightly different versions of the same family instruments, like Vienna Horns and French Horns), to get a more convincing sound. I'm using MIR, and with that I can match my different libraries with not so much efforts
> 
> ...



Okay, I understand what you meant. The principal possibility to do divisi instead of having only a section.

I'll listen to your snippet later (still at work now).

regards,
Andreas


----------



## JT3_Jon (Jan 23, 2011)

Thank you so much for doing this. I cant wait to check it out! I LOVE the westgate sound but have always been frustrated by the programming, in particular the fact that there is no midi CC 11 support for volume, making the legato patches a pain to use! I'll often resort to using the X-fade patches because of their expressiveness. 

Its nice to see someone take it upon themselves to not only improve it, but share it with our community!! Its very much appreciated!!

Cant wait to try it out. Thanks again, and hopefully this can be done for all the westgate instruments!!

edit: it appears to be for Kontakt 4? I'm still on 3.5, but as soon as I update I'll try this out and post my thoughts here! Thanks again!!


----------



## José Herring (Jan 23, 2011)

andreasOL @ Thu Oct 21 said:


> Hi,
> 
> I recently started exploring Kontakt scripting and Nils Liberg's KSP editor. My first major task involved one of the legato patches of the Westgate modular series. I tried to re-program the legato script. I think I understood how the original script is working. Then I took a deeper look at Nils Liberg's crossfade script and combined both.
> 
> ...



It would be good of you to kontakt westgate and perhaps they could hire you to reprogram all their instruments. I'm sure it could be a big boost to their sales.

I might do it for you too.


----------



## jamwerks (Jan 23, 2011)

I know absolutely nothing about scripting (not even sure how to spell it correctly), but would love to get some use out of my dorment Westgate Horns. I remember liking the overall tone for some stuff.

Thanks for the info! o-[][]-o


----------



## Ned Bouhalassa (Jan 23, 2011)

Andreas, works like a charm - thanks a lot! A couple of things:
- The repetition and release keys 'stick'. If I turn on either one, I can't turn it off. I'm on K4.
- Would it be difficult for me to modify the patch so that velocity switching is controlled by CC11, and vibrato by CC1?


----------



## JT3_Jon (Jan 23, 2011)

Ned Bouhalassa @ Sun Jan 23 said:


> Andreas, works like a charm - thanks a lot! A couple of things:
> - The repetition and release keys 'stick'. If I turn on either one, I can't turn it off. I'm on K4.
> - Would it be difficult for me to modify the patch so that velocity switching is controlled by CC11, and vibrato by CC1?



+1!


----------



## DynamicK (Jan 24, 2011)

Thanks for your hard work.


----------



## jamwerks (Jan 24, 2011)

DynamicK @ Mon Jan 24 said:


> Thanks for your hard work.



+ 1 o-[][]-o


----------



## andreasOL (Jan 24, 2011)

Hi,

started writing the documentation. Will post asap.

regards,
Andreas


----------



## Ned Bouhalassa (Jan 24, 2011)

andreasOL @ 24/1/2011 said:


> Regarding the last two questions...
> 
> The CC# for dynamics and vibrato crossfade are selectable via the user interface, aren't they?
> 
> What do you mean by "the keys stick"? There are pairs for on and off as in the original Westgate patch. One activates the feature (release sample or repetition mode) and the other deactivates it. Hmmm...



Thanks Andreas! I didn't 'get it' the first time I checked out the UI. Let's just say it's been many years since I used Westgate winds!


----------



## andreasOL (Feb 3, 2011)

Hi,

posted a follow-up in the Sample Talk section

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

Andreas


----------

