[Not a bug] different results in Logic/Feedback tab output

Started by Hermu, May 18, 2015, 09:54:43 PM

Previous topic - Next topic

Hermu

after each bank switching, Logic tab output shows always 1 while monitor output shows the correct bank switching number.

Logic tab and Feedback tab uses the same command:
-State of 'Bank'

azslow3

#1
I can not reproduce. Can you attach the preset?

Well, got it.

The Logic block is executed 2 times, first time when you press the button and second time when you release it. Each Action has "Note:On" condition by default (not shown in the list, but assumed). The only action which is executed when you release the button it the first one (with Note:Off condition). It is changing the bank to "2". But Actions which update display do not have "Note:Off" condition, and so they are not executed.

So, when you press the button, both cells with have "1".
But after you release the button, the state is changed (and so Monitor pickup the change) while the rest in the logic list is "skipped". And you get what you see now.

I hope the explanation was not too cryptic...

Hermu

additional info:

1. block switching works correct corresponding to monitoring output - checked with Bank1 is for mute and Bank2 is for solo buttons
2. button for bankswitching is a toggle button and has only release values, first release = 1 and second release = 0

i have also noticed, that only each 2nd Bank toggle button release updates bank value message in Logic tab with the same value ...

azslow3

"Note: Off" in AZ Controller is not only real "Note Off signal". Whey you declare some controls as "Pad", also CC:0 is "Note: off". But cc:1 is "Note: On". Independent wither triggered by "toggle" or "momentary" buttons.

So, if you for whatever reason want process the whole logical sequence, Set the type let say to "Rotary" and remove "Note: off" condition.

Hermu

#4
Thanks for this Tip!

i have now set the Bank Select button to rotary and it works as expected

azslow3

One more comment.

In the original example, I do not understand why you process the state  change inside the logic list. "State Monitor" is better place for that (as you see inside my preset). That way you separate real button Action, changing the state (by the way, in your case you just can set the control type to "Rotor" in the original definition, leaving "Next Bank" instead of 2 actions with Value condition) and what is going to happened then. In that case you can also use "Overview" page to change the state manually with desired effect, you can change the state by other means and logic (for example, you set "Bank 1" every time you change some "Mode") without thinking about what else I should "copy" so it works.

Hermu

Quote from: azslow3 on May 19, 2015, 11:43:07 AM
One more comment.

In the original example, I do not understand why you process the state  change inside the logic list. "State Monitor" is better place for that (as you see inside my preset). That way you separate real button Action, changing the state (by the way, in your case you just can set the control type to "Rotor" in the original definition, leaving "Next Bank" instead of 2 actions with Value condition) and what is going to happened then. In that case you can also use "Overview" page to change the state manually with desired effect, you can change the state by other means and logic (for example, you set "Bank 1" every time you change some "Mode") without thinking about what else I should "copy" so it works.

the original example was only to demonstrate the difference, but in real version i send this values to a MIDI device with SysEx commands.

azslow3

And where is the problem doing that in the Monitor?

Also note that while not explicitly mentioned in Cakewalk documentation, "Logic" action list is executed "close" to the Sonar Realtime engine (in MIDI processing). While Monitors are executed in "relaxed" time. So any "slow, not time dependent" actions as Text display on your surface was thought to be done in monitors. That is why the tab is called "Feedback".

Hermu

Quote from: azslow3 on May 19, 2015, 01:09:49 PM
And where is the problem doing that in the Monitor?

Also note that while not explicitly mentioned in Cakewalk documentation, "Logic" action list is executed "close" to the Sonar Realtime engine (in MIDI processing). While Monitors are executed in "relaxed" time. So any "slow, not time dependent" actions as Text display on your surface was thought to be done in monitors. That is why the tab is called "Feedback".
first, i have done this in Monitor, but after hardware controller init this messages should not be shown.

azslow3

You can check in IQP preset.

I define Slow Timer with "Device: Online" condition ("Device" set has "Offline" (default) and "Online" states). You do whatever you want during initialization in that timer and then set Device to Online (with "Set engine state" flag set). If your controller able to answer on initialization, you change to "Online" on answer instead of in Monitor (as in MCU preset).