News:

CWP2Song, public beta.
My  DAW is Reaper
YouTube channel

Main Menu

Loading AZ presets

Started by norfolkmastering, June 24, 2025, 03:59:57 PM

Previous topic - Next topic

azslow3

1) all monitors, except of type "Timer Once", are checked on AZ Controller activation. Checked means Logic block containing them is executed in "Monitor checking" mode. And if it comes to Monitor itself (the execution is not abandoned by Action flagged Final and Conditions for Monitor Action itself are ok, it is triggered. In other words, AZ Controller knows when Monitored entity is "undefined". In case of "Context", initial value is "undefined", "NoProject" is a different State and it will be triggered.

You get that monitor triggered (assuming Logic Actions are not preventing that): (1) with "NoProject" (2) "Console"/"Track"/"Plugin" when the project is loaded (2...n) when you change focus between "Console"/"Track"/"Plugin" (n+1) with "NoProject" when you close the project (also in case that is implicit during Sonar exit).

My proposal for "Project" Set is to avoid (2..n) triggers, which will simplify your preset.

(2) everything you set in Logic is executed in "Monitor checking" mode. It is very close to feedback mode, but "Set engine state" flag is working differently from Feedback. All initial states are "real", just changes of them during "Monitor checking" are discarded (after Monitor execution, if triggered, so changes can be "saved" explicitly in Feedback).

Context:NoProject will work correctly during any "Monitor checking". In other words, "Context"  (and all other system states) is  changed by AZ Controller PRIOR executing any "Monitor checking".

norfolkmastering

Hi Alexey

I am returned from my travels, so I spend time today to implement the final handshaking elements based on your advice.

It is mostly working well except for one issue which I will try to describe carefully.

Default states are as follows:
Device, Offline
Hello, active

I use a Logical 'Context' Control to sense when the project is closed.
Monitor, Monitor State, Context
with the action condition, Device: Online

This triggers the following Feedback actions:
'Context:NoProject' - Device -> Offine, set engine state
'Context:NoProject' - Hello -> active, set engine state
'Device:Offline' - Ch:15 CC:14 Value (14bit)@ 3f80

The problem is that the 'context' control is only triggering every second time the project is closed.

Here is the simplified sequence:
- Load Sonar
- Load Project (PIC receives Hello message from AZ and PIC sets Hello -> inactive, PIC sets Device > Online)
- Close Project - 'Context' control triggers correctly.
- Load Project (PIC receives Hello message from AZ and PIC sets Hello -> inactive, PIC sets Device > Online)
- Close Project - 'Context' control does not trigger
- Load Project (PIC receives Hello message from AZ and PIC sets Hello -> inactive, PIC sets Device > Online)
- Close Project - 'Context' control triggers correctly
- Load Project (PIC receives Hello message from AZ and PIC sets Hello -> inactive, PIC sets Device > Online)
- Close Project - control does not trigger

This sequence continues over and over.

If I remove the action condition 'Device Online' then the 'Context control works every time.
I am using 'Set engine state' for all Set state actions.

Do you have an idea why this is happening?

Regards
Robert


azslow3

So, something set "Device->Offline" before Context Monitor is called...

You have not mentioned where you set "Device->Online". Also you have "Device:Offline", but not "Context:" when sending hello from the monitor. Context can be triggered during project working (as I have explained before, you can avoid that by using new "Project" Set), may be that unexpectedly triggers something.

norfolkmastering

Hi Alexey

I did some experimentation.

If I reload the AZ preset after loading the project, then the 'context' control triggers every time the project is then closed.

So the issue I described seems to be related to the AZ preset not being 'refreshed' every time you close a project then open the project again.  (But only every other time as I described before).

Does that give a clue to what is happening?

Regards
Robert

norfolkmastering

Hi Alexey
Further to my previous post this evening.

I made a simple test preset which shows the same issue as I described, please see attached preset.
It has one user software set called 'Device' with default state 'inactive'.

Here is how I did the testing and the results:

Load Sonar
Open project
Set 'Device' to 'active'
Close project
Logic action 'Test Context' triggers
Feedback actions follow: 'Device -> inactive, set engine state
'Device Inactive' Ch1, CC0 Use Value

Open project
Set 'Device' to 'active'
Close project
Logic action 'Test Context' does not trigger.
Instead the Logic Action 'Fader 1' triggers (proving that the Logic action 'Test Context' did not trigger)

Open project
Set 'Device' to 'active'
Close project
Logic action 'Test Context' triggers
Feedback actions follow: 'Device -> inactive, set engine state
'Device Inactive' Ch1, CC0 Use Value

Open project
Set 'Device' to 'active'
Close project
Logic action 'Test Context' does not trigger.
Instead the Logic Action 'Fader 1' triggers (proving that the Logic action 'Test Context' did not trigger)

So every second time the Logic action 'Test Context' does not trigger.

I hope this helps to identify the reason for this issue.

Regards
Robert

azslow3

State Monitors are CHECKED when corresponding state is changed. Once. So if you later change Conditions (like set Device->Active), the monitor will not be checked again till corresponding state is changed (f.e. you switch from tracks to console in the project).

Also State Monitor keep silence when in was last time triggered with the same state, even if it was changed in-between (when conditions have prevented triggering).

So:
Load Sonar -> Not triggered (Device inactive)
Open project -> Not triggered (Device inactive)
Set 'Device' to 'active' -> Not triggered (Device is active, but no Context change!)
Close project -> Triggered with 'NoProject' (Device is active, Context change to 'NoProject' from 'Undefined')

Open project -> Not triggered (Device inactive)
Set 'Device' to 'active' -> Not triggered (no Context change)
Close project -> Not triggered! (Device is active, but Context is changed to 'NoProject' and so there is no changes for THIS Monitor)

Open project -> Triggered with 'Console/Track/Plug-in'! (Device is still active, Context is changed from 'NoProject')
Set 'Device' to 'active' -> Not triggered (no Context change)
Close project -> Triggered with 'NotProject' (Device is active, Context is changed, last triggered with different state).

I hope that explains.




norfolkmastering

Hi Alexey

Thanks for the explanation.  It's more complicated than I thought!

I'm going to try and simplify the protocol and hopefully find a better way forward with this challenge.

Best regards
Robert

azslow3

Well, if you introduce "Project" Set, as I have explained in my post #12, it will be relatively simple.
The only point from your last attempts - do not condition State Monitors, condition what they do when triggered.