How would you achieve this string of program changes?

Comapadres,

Further to the suggestion of using a ‘flush tail’ preset to tame problematic plugins, I though it would easy enough to set up something in Bindings.
Then I remember… Binding status is not stored with states. The only time Bindings change is between Songs.
Now I have to admit - I am finding some areas of Bindings a little confusing, especially the terminology. I have no idea what to expect with ‘Select State Scaled’, for example.
I guess I could ferret around but it would be so useful to have some examples of this stuff in action.
Any of the Gurus got this sussed?
And does anyone know how to call a Song Part with a midi string of Program Change + delayed Program Change, and have that same string available with variable PC numbers for other States?

What bindings would you like to be able to set up? I’m unclear as to exactly how you want to use bindings to access these “flush tail” presets.

Neil

It’s not a Binding at all, really.
I’d like to trigger a series of program changes, with delays, that occur when states are loaded and unloaded.
I would have previously have used a trigger in C2, with the ability to turn it off and on with the sub-session.
How is that achieved now?

Thanks Neil.

Hi @Ade

You can control binding across states - it’s just that by default all the state behaviours are disabled for binding:

Yes, unfortunately some of the docs for this are missing.

For this particular term “Scaled” it means to stretch the controller value across the range of target values. eg: suppose you bind a normal CC controller (0-127) to Select State Scaled and the song (or rack) has 10 states. Moving the controller from 0 to 127 would switch the song across all 10 states.

(Not terribly useful, but kept for compatibility with v2 which had it.)

Not really following what you’re after here.

All the previous trigger functionality has now been subsumed into bindings. Everything you could do before should still be possible including delayed triggers:

and enable/disable per-state (as described above)

Thanks @brad
I must have missed something when I was experimenting. I definitely flipped that states field to ‘on’ and couldn’t get a result.
So I did a quick forum search, hoping to get some info and up came this from a post you made back in June, I think:
“Just reading through the comments here one thing I should make clear is that bindings are “stateless” and don’t have the same smarts that MIDI routes do to prevent stuck notes.”

Once I read that, I thought right - that explains that … doesn’t work with states.
After that my expectation changed ha ha !
I’ll give it another bash tomorrow.

Thx!

1 Like

Hi @brad
OK, so here’s the conundrum;
I want to issue a ‘flush’ preset to synth1 so that, when it switches on, the tail of its last use is not heard.

The first thing I have to acknowledge is that suspending a plugin cuts off its ability to read incoming data, so the solution has to rely on keeping the plugin active to receive the commands.
I figured that sending a program change On Unload would allow the flush preset to be issued.
It doesn’t work.
Setting it to trigger On Load does work.
Is this a bug?
If it is, I don’t need to drive meself nuts looking for another route.:flashlight:

you mean something like this?

  • first binding sends PC 127 to a rack when loading any song state; assuming this is a “reset” sound,
  • next binding sends a different PC to your rack 500 ms later; by selecting “Target” in State Behavior, you can choose a different PC for every song state (just remember to update the state to save the different PCs per state)
  • last binding sends a “reset” PC to your rack when leaving the current song state

I guess this is not really useful in practical terms (wouldn’t want to wait for half a second until I can play my sound), just wanted to show a quick setup to illustrate the mechanism.

Hope this provides a useful starting point for experimentation!

Cheers,

Torsten

Thanks for that, Thorsten.
You’re getting the program change on Unload to work?
That’s where I’m left scratching my head.
Load works, Unload doesn’t.
I’ll retrace my steps and look for what I must be doing wrong.

Hmm, just set up a MIDI Monitor on the input route of my rack. Interestingly enough, the binding on Unload never fires. I’ve changed it (for testing purposes) to send a MIDI note - no effect either. I can get it to fire manually just fine, so the connection to the rack seems to be OK. And I’m not changing rack states between the two song states, so there’s no reason for the PC or the note to get lost.

@brad: could it be that something is broken with the “on unload” binding for song states?

Cheers,

Torsten

@brad: See here:

I’ve opened a MIDI monitor on the input route of my rack. The only binding that has any state behavior enabled is binding 2 → different program change between Part 1 and Part 2.

Now I switch back between Part 1 and Part 2 multiple times. I always get the “OnLoad” Program changes, but the “OnUnload” note is never sent. The highlighted NoteOn in the Midi Monitor is just one I created by manually firing the binding (clicked on the triangle) - so the connection does work.

Did a different test: instead of sending a MIDI command to a rack, I set the OnUnload binding to execute an external program (Notepad.exe) - never triggered either!

So some checking of the “OnUnload” mechanism might be called for…

Cheers,

Torsten

Hmm, another update for @brad: I just changed to a different song - now the SongState->OnUnload DID fire! Looks like it is mixed up with the “Song->OnUnload”

-update: it also triggers when turning off the audio engine or opening “Tools->Options”, which also stops the audio engine. Something’s definitely fishy here…

1 Like

Thanks guys - I’ll check it out.