Modwheel XFade in TX16Wx, can it be done?

Official support for: tx16wx.com
RELATED
PRODUCTS

Post

Hi, I know my way around this sampler a little bit but this part eludes me. I don't know if I should use the matrix or something else or if it is even possible.

The samples are from bass drum rolls and are divided into 6 layers of dynamics (PP to FF). What I need to do is to have ALL the samples triggered on keypress, and with the modwheel, fade in and out of each layer at their crossing points.

Any help?

Post

Sorry, I've though on it, and I can't come up with a workable solution for what you want to do. Basically, you want to divide the range 0-127 for mod wheel into 6 ranges, each driving a 0->1->0 curve (bell), and then drive a volume for each of these. I'm not even sure how you'd represent this in a workable way in the ui. :-)

But it is a worthwhile problem to think on.
TX16Wx Software Sampler:
http://www.tx16wx.com/

Post

Hi elcallio,
thanks for taking the time on this!
The only way I imagine this could be achieved is by using curves in the modtable. Then drive each zone's volume through them. Have you ever thought of implementing such a feature?

Post

The problem is that normally when you curve map, you still map a nominal 0->1 range into another range (typically also 0->1, but with a different slope). However, in your case, you want to map a _subset_ of the original 0-1 (basically 0->1/6, 1/6->2/6, etc) to a range, and have the curve yield zero outside this range. It makes for an oddly specific mapping case.

Fwiw, TXv3 has user controllable curves to control things like env behaviour, controller and velocity response etc, but again, this does not really help your case.
TX16Wx Software Sampler:
http://www.tx16wx.com/

Post

Modwheel cross-fading is scripted for instruments in many orchestral sample libraries and would enable very cool features in TX16WX. Here is a crossfade script for Kontakt: http://www.nilsliberg.se/ksp/scripts/sc ... #crossfade
H E L P
Y O U R
F L O W

Post

I knew of Kontakt scripting but I only have Kontakt Player and I am not keen on investing on the full scale product. I purchased TX16Wx because its a no-nonsense sampler with amazing capabilities and I appreciate it for what it is. :tu: However, I write sfz patches for my symphonic samples for that reason and load them to sforzando instead.
I think it is not far fetched to employ some Gaussian function envelope and have the user control the width and the center (or even the height) of the bell - much like a parametric EQ.
Is not a request per se, more like a "why not?" for the TX16Wx.

Post

Agreed. The Kontakt script is an example.
H E L P
Y O U R
F L O W

Post

Hello! I'm sorry for digging up an old topic, but I feel that XFade issue still has to be properly addressed :)

First, there is a solution for a simple case (two velocity layers) right now. If you map two layers across 0-127 velocity spectrum, so that they completely overlap, you can then modulate Amp or Volume with Modwheel using +1 for loud and -1 for quiet layer. Quick and simple.

This isn't perfect, because you can't limit crossfade area to a specific velocity range, but it works pretty well. This is perfect for instruments with limited dynamic range (e.g. recorder) or for instruments with more-or-less homogenuous timbre across different dynamics (e.g. medium-quiet to medium-loud in string section). You can additionaly use filter and effects to exaggerate low/high extremes and kinda simulate having 2+ layers.

If you want more real layers you can split the instrument into two separate patches for pp-mp and mf-ff, some older libraries (like Miroslav) use this approach. If you have Pro version, you can store several pairs of layers in one patch and use group switching to alternate between them. It will work fine, unless you absolutely have to make a perfect continuous pp-ff cresc./dim. (though you can work around it).

Second, I think I know a solution for complex cases in future versions (using curves). Instead of mapping every layer to a different velocity range, and then having to deal with this 1/6, 2/6 etc subsets issues elcallio mentioned, we can make layers completely overlapping, like in my example above. If all the layers share the same velocity range, we can Modwheel->Amp/Volume on every layer, using curves to make gain non-linear (e.g. bell curves in some specific parts of the 0-127 range).

If I'm correct in my assumption, this method would allow for as many layers, as there are curves (give use more than two, please!). It would also solve the corner case of having two layers, but limiting crossfade zone.

I hope my first solution helps someone. I also hope elcallio will prove I'm not completely off with the second solution :)

Best regards!

P.S.: Though honestly, 6 layers for a modulator with 7 bits of precision is ridiculous, this would prevent any possibility of smooth mixing, thus defeating the purpose of having more than two layers in the first place (that is to have more detail and smooth dynamic transitions). I think 4 or 5 is as far as you can reasonably go; beyond that it really makes sense to split the patch. I hope we'll have those 4-5 curves, and not like just two :lol:

Post

The solution for this is modulation mappers/shapers, which enable you to adjust the scaling/curvature for a modulator from the default 1->1 linear to whatever you want (either in 128 steps, like a table of values, or via Beziers). It's also not a problem to visualize it on the GUI.
Magdalits wrote:P.S.: Though honestly, 6 layers for a modulator with 7 bits of precision is ridiculous, this would prevent any possibility of smooth mixing, thus defeating the purpose of having more than two layers in the first place (that is to have more detail and smooth dynamic transitions). I think 4 or 5 is as far as you can reasonably go; beyond that it really makes sense to split the patch. I hope we'll have those 4-5 curves, and not like just two :lol:
It is absolutely possible to have it smooth even with 7 bits of precision if the modulators are lagged (slew limited). Here it is all in one place, easy:

Image


All this with exactly ZERO scripting! :party:

Post

Well, I think I proposed exactly that. As far as I understand, the curves feature from the upcoming version IS exactly the modulation shaper you talk about. The reason elcallio said it can't be done is because they were talking about layers split across different velocity ranges, in which case it becomes quite tricky.

As for precision, it is, indeed, possible to implement smooth interpolation using lagging modulators. Mb it can be done in Kontakt, I'm not sure. In current TX version any CC change seems pretty instant to me, though its definitely would be a good feature request :)

Post

Lagging modulators was in Kontakt for over a decade. See those LAG fields :) Super mega turbo useful feature. If TXv3 is getting mod shapers, that is absolutely great - lag should be there as well :)

Also there's one thing regarding Kontakt's mod shapers where it's not really that good - they are unipolar ONLY. Meaning you can't easily convert a unipolar mod source into a bipolar one or vice versa. UVI Falcon offers that possibility, so it would be great if TXv3 would follow suit.

Post

I second that! Making them bipolar would absolutely make a world of difference.

(BTW, I don't know about Kontakt, because I never made a Kontakt patch myself. The commercial libraries I had a chance to try, either didn't use interpolation, or used it incorrectly, because any CC1 adjustments in the lower end resulted in an instant and significant change in sound, which seems to be an obvious consequence of low precision.)

Post

Seems E.D. wants to up the ante here. :-)

I had considered allowing setting mapping curves, essentially beziers, on external controllers, to allow mapping 0->1 (or subsection thereof) into the -1->1 range. This would not be instant gratification though, since you'd still need to use 6 external controllers to map 6 velocity layers (though they could all share CC).

I did not intend to put mapping curves on modulation entries directly, mainly for speed reasons. Though I guess I could see the appeal of that too.

As far as "LAG" goes, that is essentially a low-pass filter for modulation value. TXv3 already does lpf smoothing of most destinations, such as amp/volume and pitch, so I think that should already be covered (as far as antialiasing of 0-127 goes).

It could be interesting to, instead of curves, use paintable steps, more or less like the step sequencers for user defined curves.
TX16Wx Software Sampler:
http://www.tx16wx.com/

Post

By "speed reasons" you mean performance or development time? Will using paintable steps be a significant improvement in either case? Because direct mod mapping seems quite important to me, and steps over Beziers would be a reasonable compromise, if it speeds up introduction of this feature.

By the way, what is the schedule for TXv3? I didn't find this info on the website.

(And thanks for quick reply. It adds to the awesomeness of your work :) )

Post

elcallio wrote:As far as "LAG" goes, that is essentially a low-pass filter for modulation value. TXv3 already does lpf smoothing of most destinations, such as amp/volume and pitch, so I think that should already be covered (as far as antialiasing of 0-127 goes).
Is that automatic, without user adjustment? If so, I'd like user adjustment, please. :) Per modulator assignment is the only proper way to do it, honestly. Kontakt allows two different lag curves (linear (slew limiter) on negative LAG values and exponential (lowpass) on positive). Both useful for different things.
elcallio wrote:It could be interesting to, instead of curves, use paintable steps, more or less like the step sequencers for user defined curves.
So yeah, basically like Table mode in Kontakt's modulation shapers, also shown in the GIF above. Both are useful - steps and Beziers - for different things, so having both (on every modulation assignment) would bring TXv3 up with the big boys :) This is really important for more intricate patches, speed be darned (seems it's very efficient in Kontakt, though).


One thing - Kontakt's GUI for editing this is sadly constrained to that window area shown above. Falcon allows to pop-out a zoomed in view, which is much more comfortable for editing, especially the Table mode with 128 steps...

Post Reply

Return to “CWITEC”