AT-modulated sustain issue

Hey folks, so I am trying to set up a seemingly basic thing in Pigments - a polyphonic aftertouch-modulated sustain, followed by a release. Simple thing, right? Set Sustain to zero, assign maximum AT modulation to it, and you get an infinitely sustained sound, and you can control the volume with the aftertouch. Then you set up the lengthy release, and the sound should linger for a while after you stop pressing on the key.
Well… the problem is, as soon as you release the pressure, the sustain immediately goes to zero, and the release part of the envelope just doesn’t trigger.
The way I was able to work around that, somewhat, is this:
Combinate 1, set to Lag on top of AT.
Combinate 2, set to Crossfade between Cominate 1 and AT, modulated by AT.
Then modulate the Sustain by Combinate 2.
Which is a horrible roundabout way of doing the most basic polyphonic AT thing that should have just happened naturally. It has the following issues:
It consumes 2 out of 3 Combinates, which you can no longer use for anything else.
The Lag is symmetric - it takes time both to ramp up, and to die down. So when I’m playing short notes, they have virtually no release. When I am playing long notes, eventually the Lag kicks in, and I am able to achieve a somewhat lengthy-ish release after I do my sustain vibrato.
Meanwhile, the ADSR envelope in BitWig Grid just does what I want without any extra steps. It starts applying the Release curve while I’m still removing my AT pressure.
Ideally I’d like to have one or both of these things in Pigments:

  • A polyphonic AT-friendly ADSR envelope similar to what I have in BitWig Grid.
  • An asymmetric Lag Combinate option that has a shorter lag on the way up, but longer lag on the way down.

But, I am a new user of Pigments. Maybe I missed something obvious. Please let me know if there’s a better way of doing the same thing. Is anyone else having similar issues?

That’s because when you route your AT to determine the entire sustain value, and you release your key, your sustain has reached 0.

When whatever you are trying to modulate has a value of 0, where it it supposed to travel after you release your key? It can’t go lower than 0.

The release determines how long it takes to go from sustain value X to 0, but when your X is already at 0, you’re moving from 0 to 0, which equals nothing.

You would need to set the sustain amount to a higher fixed lowest value like 20, 30 or 40, so that when you release a note, the release can kick in from there on.

May I ask what you exactly want to achieve that would require to modulate the sustain value?

2 Likes

If you want Aftertouch to modulate the volume of the sound playing, the VCA Sustain doesn’t seem like the best way to do that. Try modulating the Output Volume instead.

Maybe a bit of a background is in order - I have the Linnstrument keyboard. Which is pretty much always transmitting AT messages.
I want the AT messages to translate into the volume of the sound. I press the key softer, the sound should be barely audible. I press the key harder, the sound becomes louder.
Then when I release the key, the sound should start at the same level it was recently, go gradually softer and softer, then die out due to Release.
I tried setting the Sustain amount to a higher value. The problem with that is, if I set it too high I am sacrificing the expressiveness. And if I set it too low, when I release the key, it immediately drops to the barely audible value, then only the Release triggers.
I want the Release to start at the same volume I had while I was still pressing on the key. Which is how the BitWig ADSR envelope behaves.

But, modulating output volume is going to have the exact same issue, but worse. I press the key harder, the volume will go higher. I release the key, the volume drops back, and there will be no hope of triggering the Release at all. The output volume doesn’t have a concept of Release.
No, it should be Sustain, and the ADSR envelope should work more similar to how it works in BitWig.

Just to clarify: It sounds like you want Aftertouch to modulate volume while in the Sustain stage, but if you release the key completely (Note Off), you want it to not have reacted to that as Aftertouch anymore and continue Release from whatever the last non-zero volume level was?

1 Like

Basically I want the Release curve of the envelope to trigger when I start releasing the Aftertouch. Not when I have completely released it.
Which is how the BitWig ADSR envelope behaves.
Even when I release the AT pressure, say, from 100% to 50%, the Release curve in BitWig seems to gradually play out delay the corresponding drop in volume.
But Pigments only triggers the Release when I completely let go of the key, and by that time my Sustain modulation is gone, very abruptly

Hi @Pupkin ,. Welcome to the community.

Sustain is a level parameter and release is a time parameter. If there is no level at release, then there is no sound in the release time. Release is what happens when a key is released and not while it’s being released.
I can’t see how this should be different in Bitwig grid, unless the sustain is lagged or the settings are’nt the same as in Pigments. Perhaps Bitwig have something speciel going on?

In Pigments:
If you don’t want to or can’t set the Sustain fixed above Zero to get the effect you are looking for, then you can try to just lag AT in a combinator at full Amount. Then use that combinator as modulator for Sustain - and similar for Release for that matter. Only one Combinator is needed to lag the AT modulation. All modulations should be positive including the Release Time i think - depending on the effect you are looking for.

Is it something like this you want?

Hey @LBH.

So, to start with, I don’t believe I am crazy, and the Release part of ADSR does in fact work differently in BitWig.
There is absolutely nothing special going on. I am not an advanced enough user to create intricate setups. I have a wavetable oscillator, an ADSR envelope, a basic filter, and a reverb, nothing else. The Sustain is set to zero, and is modulated by the AT pressure of my Linnstrument controller. I press a key, do some basic amplitude vibrato, release the key, and the sound lingers for a while. The BitWig ADSR envelope is actually showing me with a floating dot how the Release curve applies to the original Sustain value, and not the current Sustain value (which is zero). So BitWig does trigger the Release curve when I start releasing the Sustain modulation, and not when I completely let go of the key.

The reason it should work like that is, it’s one of the most obvious and basic setups in the MPE world. Sustain is the most obvious thing that one would want to map AT to. The tone, I can map to the MPE Y axis, I don’t need the AT for that. The pitch is mapped to the X axis. I can do the pitch bends and vibrato by wiggling the finger, I don’t need the AT for that either. So what do I map the Z axis (the Aftertouch) to? Obviously it should be Sustain. I press the key harder, the sound should get louder, I press it softer, it should get quieter.
The reason it does work like that in BitWig is - well, I can only speculate, but I think they’re two steps ahead of Arturia when it comes to MPE support. They not only realized what the most obvious MPE setup is, but they already took steps to support this setup in the software. They’re banking pretty hard on MPE support as one of their selling points. Meanwhile here I am on the Arturia forums, trying to even explain that this issue exists.

“Lag AT in a combinator at full Amount, then use that combinator as modulator for Sustain” - nope, that won’t work because the lag will work against me on the way up as well. When I increase the AT pressure, I want it to take effect immediately. I don’t want this secondary “attack” to be slow, I want the Sustain to immediately respond to my fingers on the way up for sure, which is why I am using the second Combinate right now.
Maybe I can get rid of the second Combinate if I modulate the lag amount by the negative AT value? Let me try how this works…
But I don’t think this will solve my issue (or is it an accidentally interesting feature?) with the lack of Release on the short key presses. Because the Lag will not have enough time to ramp up during that short key press. Because Lag is symmetric on the way up and down…

In any case, I am somewhat baffled that I have to do this advanced Combinate math in Pigments to imperfectly reproduce the most basic MPE setup from BitWig…

I also don’t see how sustain and release could work simultaneously.

Technically, release is reducing sustain until it’s 0. Modulating the sustain upwards while the release is trying to get it downwards would not only be counterproductive, but also lead to big audible bumps in volume. It’s like trying to do + and - in the same time.

Bitwig must have a custom script that works differently specifically for AT keyboards.

The only thing I can think of is that they would always automatically retrigger the R each time the AT value changes the S (maybe with a threshhold at what strength levels the R will be triggered), but this would require the synth to always stop the release when AT is pushing upwards and then smoothly blend the volume back up, which needs clever scripting for a smooth experience.

This would require developers to implement it as a feature through hard code, I don’t think there is a way to simply program that into a synth through the mod matrix.

What you can do however is to modulate other elements in Pigments with AT, such as the filter amount, to allow expressive performance through AT, without getting into the way of the ADSR.

I’m not normally a Bitwig user, but I do have the basic version of it. Is there anything you can export and attach here that I can load into Bitwig as an example of what you’re describing, so I can see/hear it myself?

Almost. I experimented with it a bit more, and I think I have a better understanding of what’s happening.
BitWig is retriggering the Decay curve every time the Sustain modulation changes. Essentially in BitWig, the Decay is doubling down as the Pigments Lag combinator, by default.
BitWig ADSR envelope is tracking the target Sustain level separately from the current Sustain level.
Every time I decrease the target Sustain by relaxing the AT, the current Sustain level jumps on top of the Decay curve, and eventually slides down to the target Sustain.
Every time I increase the target Sustain by pressing the key harder, the current Sustain jumps on top of the inverted Decay curve, and eventually glides upwards to the target.

So far, the Pigments is actually more flexible than BitWig - because you can configure the Sustain glide separately from Decay via the Lag combinator. In Pigments, you can have a long Decay, combined with a fast energetic Sustain modulation. In BitWig ADSR, Decay affects the Sustain response. I can see how it’s not necessarily desirable.

The problem in Pigments happens when I release the key completely.
BitWig in this case stops tracking the target Sustain level (the key is released, there’s no target Sustain anymore), and activates the Release curve from the current Sustain level. Which works perfectly for my use case. I configure a relatively fast Decay, so I can do my fast Sustain vibrato, but when I release the key, the Release curve takes over completely and the Sustain modulation stops. So I can have a long lingering Release.
Whereas Pigments is not tracking the current Sustain level separately from the target Sustain level. To Pigments, they appear to be the same thing. So when I configure the lengthy Release, it is getting affected by the Sustain modulation that is still ongoing.

Even when I add a Lag on top of AT in Pigments, it seems the lag and the Release are dragging the volume down together.

So ultimately I’d like the Pigments Release curve to be “sticky”. Unaffected by any further Sustain modulations once the Release is triggered. There’s no Sustain anymore, I have released the key. I think it’s a fairly minimal change that should make Pigments a lot more usable with MPE keyboards.

I have the MPE Y axis and two expression pedals for that… MPE Y axis maps into Macro 1 by default, which is typically linked to the filter.

And if I do map the filter to AT, it’s again a similar problem, but worse.
Let’s say I map AT to the low-pass filter frequency, and configure a long Release. So I play around with AT, open up the filter to get the buzzy sound, release the key quickly, and the sound immediately becomes dull as hell. Because releasing the key sets the AT back to 0, immediately.
OK, I could add a Lag on top of the AT. Then the sound doesn’t become dull immediately during the Release - it becomes dull gradually. But I don’t want it to become dull at all. I want it to remain exactly as it was while I was pressing the key.
I don’t even know how to solve this problem with AT.
But it is solved automatically if I map the filter to the MPE Y axis. Because the Y value is not changing while I’m releasing the AT.

See what I’m saying?
So no, the timbre (the filter etc.) goes to MPE Y axis or an expression pedal, the AT goes to Sustain… Which should stop getting modulated as soon as the key is released.

Unfortunately I think the Grid requires a full version of BitWig.
But here’s a screenshot showing what I described in my previous posts - see how the BitWig is tracking the current Sustain level? I highlighted that dot in red and shown its path with a red arrow.
And meanwhile the target Sustain level is at zero on the screenshot, because I have already released the key. But it’s no longer affecting the current level because the key has been released and the Sustain is irrelevant.

By the way the similar thing is happening with the rest of the Arturia plugins, like my favorite Prophet-5 V.
I can do a slow Release there.
I can do an AT-modulated Sustain.
But I can’t do them together.
If I release the key quickly before the envelope goes into Sustain, I get the proper Release.
If I do a longer key press, and do an AT-vibrato, everything’s working fine, but when I release the key there’s zero Release again.
And there’s no Combinate workaround either, because the plugin is supposed to be simple and you don’t have any of these fancy tricks.
Well, at least the Prophet-5 V has basic MPE support and AT modulation, some other plugins don’t even have that.

Hi @pumkin,

Hi

I have tried to find videos with sound doing what you want. I have not found anything. Can you point at a video, where this modulation is seen, heard and explained?