(!) VST Bank/Program Changes and Max for Live (Ableton 10)

Learn about building and using Max for Live devices.
Post Reply
Andycode
Posts: 27
Joined: Thu Apr 05, 2012 11:33 am

(!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Andycode » Mon Jan 21, 2019 4:00 pm

I've recently noticed a problem when adding a MaxforLive device before an Instrument rack which has all it's VSTs on/Offs switches macromapped to it's correspondent chain.

In a typical scenario where on/off switches of VSTs are macromapped to a knob in order to save cpu so that only one VST at the time is active, program/bank change messages start do behave incorrectly IF a Maxforlive Midi Effect is added.
So Instead of jumping to correct preset, most of the times it will jump to another random one.

This only happens if a Max for Live Midi Effect is added before and instrument rack.
So if for example you have a device like I do that controls program/bank changes on VSTs in an instrument Rack, the presets will only jump correctly if VSTs buttons are always ON.
If for cpu reasons you try to macromap the VSTs On/Off switches in order to save CPU, than program changes will stop working correctly.


If "Reduce latency when monitoring" is active and an empty MaxforLive Midi Effect device is added before an Instrument rack which has all it's VSTs on/Offs switches macromapped to it's correspondent chain it will also behave incorrectly.


The only way I found so far to have Programs and Banks change flawlessly between VSTs in an Instrument rack (with on/offs macromapped) is by:
-> Making sure "Reduce Latency when monitoring" is OFF (Delay compensation being On or Off doesn't seem to affect this)

The sad conclusion is that you can't use MaxforLive devices that send Program/bank changes, UNLESS you leave all VSTs always active in an instrument rack, compromising therefore CPU...
So inevitably you'll have to select programs and banks from within the clip (which 1st is not so practical and 2nd you lose the ability to change presets inside the same midi clip)

Curiously, am I the only person here who has came across this issue? I'm surprised to see no one talking about this and even more since I'm led to believe that this problem has always been around since the addition of MaxforLive in Live 9.


Additional Notes:

NI Massive works fine because it works with pre-loaded banks, but for example u-He Plugs that allow for Bank changes on the fly don't work when trying to map the on/off switches.
Tested: Repro-1, Repro-5, Hive and Diva

Could you guys also try to test this please and let me know the results?
Thanks

scheffkoch
Posts: 593
Joined: Thu Jan 08, 2015 12:37 pm

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by scheffkoch » Mon Jan 21, 2019 4:23 pm

...i didn't have such problems when i was working instrument racks...try grouping the instrument rack + the m4l (program change) device...
macbook pro m1pro, macos monterey, rme multiface via sonnet echo express se I, push 2, faderfox mx12, xone:k2

Angstrom
Posts: 14921
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Angstrom » Mon Jan 21, 2019 4:24 pm

This may not help at all, as I don't quite use the program change in the same way, but ...

have you tried the "chain filters midi control" menu option?
Its a right click on the chain selector bar.

Probably wont accomplish what you need, but it's possible

Andycode
Posts: 27
Joined: Thu Apr 05, 2012 11:33 am

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Andycode » Mon Jan 21, 2019 4:53 pm

Angstrom wrote:have you tried the "chain filters midi control" menu option?
Its a right click on the chain selector bar.
Hi Angstrom! I tried activating it now but still the problem remains.

I've never needed to map the on/off switches of VSTs that's why I've never came across this problem, but this week I bought Repro-5 which is a very demaing Synth in terms of cpu, and because I have 7 synth tracks each one loaded with a couple of VSTs I was trying to add 7 instances of Repro-5 and also Repro-1 but the only way I can do this without hitting an high cpu load is if I only have one active synth per track active at the time, so that's why I need to have the on/off VST buttons macromapped now.

I wonder how people that work with a lot of VSTs in an instrument rack, along various tracks, deal with this issue, because to my understanding and from all the tests I've been doing for these last couple of days it is impossible! As soon as you add a Max for Live midi Effect BEFORE and instrument rack, Program and Bank changes will start to behave wrong...

I don't know if you have any u-He plugs but if you do and you have some spare minutes could you maybe try to test this too? Because I think I'm going nuts feeling like the only person who has ever came across this huge problem.

Here's a screenshot for reference: https://imgur.com/ZgBNxBb
When any Max for live Midi Effect device (like this one in the picture) is added, program changes sent in the midi clip will no longer work as supposed.

hoffman2k
Posts: 14718
Joined: Tue Jun 15, 2004 6:40 pm
Location: Belgium
Contact:

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by hoffman2k » Mon Jan 21, 2019 5:33 pm

The MFL effect has to actually allow PC messages to pass. If it sends them, it'll likely block those coming from the clip. If its a note effect, it might be built to only pass notes. There isn't a standard for the effects and you can only be 100% sure by looking at it in the editor.

Andycode
Posts: 27
Joined: Thu Apr 05, 2012 11:33 am

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Andycode » Mon Jan 21, 2019 5:55 pm

hoffman2k wrote:The MFL effect has to actually allow PC messages to pass. If it sends them, it'll likely block those coming from the clip. If its a note effect, it might be built to only pass notes. There isn't a standard for the effects and you can only be 100% sure by looking at it in the editor.
It does. I’ve made it and I’ve been using it for more than a year but right now i’m not even using it for the purposes of this test. As a matter of fact it’s irrelevant what max for live midi effect is added it will always mess the program changes. I even dragged an empty max for live midi effect so see if this was related to my device but it’s not.

If I macrommap the on/offs this will always happen.

hoffman2k
Posts: 14718
Joined: Tue Jun 15, 2004 6:40 pm
Location: Belgium
Contact:

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by hoffman2k » Mon Jan 21, 2019 6:09 pm

So you're using the chain selector to select the tracks, is it possible you got the order wrong?
Program changes from the clip are sent at the trigger of a clip, so the chain selected at the start of the clip can not receive that message.
With your device, you are able to send the program change with automation after the chain is selected.

And you need to account for API latency, the mapped on/off buttons respond slower than you want. Instead of sending the PC after turning a device on (and selecting the chain), you need to get the state right after setting it and confirm its on before sending the PC.

Andycode
Posts: 27
Joined: Thu Apr 05, 2012 11:33 am

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Andycode » Mon Jan 21, 2019 6:20 pm

hoffman2k wrote:So you're using the chain selector to select the tracks, is it possible you got the order wrong?
Program changes from the clip are sent at the trigger of a clip, so the chain selected at the start of the clip can not receive that message.
With your device, you are able to send the program change with automation after the chain is selected. And you need to account for API latency, so instead of triggering the PC just after changing the chain, you need to trigger it after you observe the chain being changed (with observer or a get message right after the set message). Otherwise the PC message will still go out too fast. Same applies to the on/off buttons. The API delay is often overlooked.
Forget my device, even with an empty max for live device this happens.
As right now I'm not even importing my device and I'm only trying to change programs the typical way which is inside each midi clip.

As soon as I add any max for live device prior to an instrument rack program changes stop loading correctly in some clips.

My only guess is that there must be some sort of delay happening between in Max an Ableton that is only a problem as soon as you start mapping the On/Offs button of VSTs.

Can anyone please make this test? I've tried this in 3 machines already, 1 PC running windows 10, a macpro I have at the studio and my macbook pro. In all machines this same problem appears as soon as On/Offs are mapped and a Max for Live device is added before an Instrument Rack. Check it for yourself and see this problem happening before your eyes :O

Image

Angstrom
Posts: 14921
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Angstrom » Mon Jan 21, 2019 6:43 pm

Hmm, your case seems a little odd as I just tested it and it the basis of it worked fine.
But I don't think deactivated devices will ever, or should ever receive program change. As they are not actually running, so they can't respond to anything.

What I did :
I used Massive, which requires a "program List" to accept program changes from Live as it doesnt use bank messages
I tested that Massive was responding to extern Program Change messages from my master keyboard. Yep
I put a Max Midi effect (default) in front of Massive and checked that the Prog Change messages were still functional = Yep
I put Massive in a rack and set the chain selector to be where MAssive wasn't active
I changed presets, Massive reflected the changing presets despite its chain not being active

What will not work: trying to change programs on a deactivated device.
if you turn off Massive using the device deactivator it will not ever receive any messages of any kind because it is not running the code at all.

So I can only assume that there is a race condition happening. If you are sending a program change to a deactivated device and then moving the chain to that device and activating that device (in that order) it will not work.

You need to have the device computing to understand that it must change programs.

MY SUGGESTION;
Assuming your patch switcher is of your own design, re-write it to ensure that any patch that is about to receive patch change is pre-emptively activated.

logic order:
Patch change comes in, logic happens to determine rack patch to change, activate device chain, change patch, change chain
Last edited by Angstrom on Mon Jan 21, 2019 6:49 pm, edited 1 time in total.

Andycode
Posts: 27
Joined: Thu Apr 05, 2012 11:33 am

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Andycode » Mon Jan 21, 2019 6:47 pm

Angstrom wrote:Hmm, your case seems a little odd as I just tested it and it worked fine, as I understand what you re trying to do:

What I did :
I used Massive, which requires a "program List" to accept program changes from Live as it doesnt use bank messages
I tested that Massive was responding to extern Program Change messages from my master keyboard. Yep
I put a Max Midi effect (default) in front of Massive and checked that the Prog Change messages were still functional = Yep
I put Massive in a rack and set the chain selector to be where MAssive wasn't active
I changed presets, Massive reflected the changing presets despite its chain not being active

What will not work: trying to change programs on a deactivated device.
if you turn off Massive using the device deactivator it will not ever receive any messages of any kind because it is not running the code at all.
I previously said right at the top of this post that MASSIVE works because it doesn't allow for bank changing on the fly. To change banks in MASSIVE you have to manually open the file.
In u-He plugs on the other hand, like many other plugs, you can actually change banks on the fly.
The problem appears to be precisely regarded to Bank changing rather then Program changing.

Do you have any VST there that allows for Bank changing? If so do the same test with that VST. Create a bunch of Clips and then start launching them and eventually you'll notice that sometimes presets will sound different than the ones you've previously selected.

Angstrom
Posts: 14921
Joined: Mon Oct 04, 2004 2:22 pm
Contact:

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Angstrom » Mon Jan 21, 2019 6:55 pm

Ok, tests with Arturia MiniMoog

bank switching test: OK
racked mini, with chain deselected : OK
MaxMIDI device (default) with racked mini, with chain deselected : OK

Any case where the MiniMoog Device is deactived: no patch change response, for obvious reasons : an expected negative]

sorry thats all the time I have for testing

Andycode
Posts: 27
Joined: Thu Apr 05, 2012 11:33 am

Re: (!) VST Bank/Program Changes and Max for Live (Ableton 10)

Post by Andycode » Mon Jan 21, 2019 7:05 pm

Angstrom wrote:Ok, tests with Arturia MiniMoog

bank switching test: OK
racked mini, with chain deselected : OK
MaxMIDI device (default) with racked mini, with chain deselected : OK

Any case where the MiniMoog Device is deactived: no patch change response, for obvious reasons : an expected negative

Did you test this with just the Arturia Minimoog on an instrument rack or did you add more plugs to make the full test where Programs and Banks are constantly changing across different VSTs?

If I do the same test with just one plug that accepts bank changes it will work too. It only doesn't work as soon as more plugs are added into the question, like in this case where I have 4 different plugs at the time that all accept bank changes.

If don't map the On/Offs it will work flawlessly across all my plugs, which in my case in every one of these I have 127 Banks* 127 Preset p/Bank *4 which gives me per track 64516 presets accessible at any given moment.
This is why It's so import for me for this to work with the On/Off switches mapped also. Can you test with more plugs? Or if you don't have could you try like loading 4 instances of Arturia and creating like 8 clips , each clip in a different Bank and Program and across the 4 Instances of the Arturia?

Post Reply