Is monitoring of the fader level offset possible?

Started by norfolkmastering, July 24, 2025, 02:55:10 PM

Previous topic - Next topic

norfolkmastering

Hi Alexey

I am beginning to use the fader level offset control quite a lot in complex mixes.

So e.g. I have an organ part which needs fader automation to make it more prominent at various parts of the song.

Then I decide I need to offset the organ level by a few dBs without affecting the automation curve.

CBB and Sonar offers this offset facility.

The problem I have is that fader offset is not available as a control in AZ Controller under the Strip Action Configuration.  This would not matter when using a conventional hardware control, but as I'm using the fader position feedback to control my external mixer channel levels, then I am sending the wrong level to my PIC when any offset is applied.

Can you tell me if any offset functions are exposed in the API which might be possible to bring into AZ Controller?  The Cakewalk function button is labelled 'Envelope/Offset Mode'.  Detecting which state this button is in might allow a practical means of storing the offsets.  Then I should be able to do the rest of the work in the PC.


Regards
Robert

azslow3

Hi Robert,

It is not exposed, till I have overseen something in IDL.
Please ask Mark what he thinks.

Alexey.

norfolkmastering

Hi Alexey

I contacted Mark today and they have agreed to expose the button labelled 'Envelope/Offset Mode' in the API.  Details from Mark are as follows:

------------
ControlSurface.h, EProjectParam is now:

typedef
enum EProjectParam
    {
        EPP_SNAP   = 0,
        EPP_OFFSETMODE   = ( EPP_SNAP + 1 )
    }    EProjectParam;

Calling ISonarProject::GetProjectState( EPP_OFFSETMODE, &bValue )  will result in BOOL bValue containing the offset mode status.  TRUE means it's in offset mode, FALSE means it's not.  I'll update the idl / tlb / header in the public SDK when I get the chance, but for the moment just changing this in the header should suffice.
---------------

I should be able to test this new feature in the next Beta from tomorrow.

Please let me know if you need any further information from Mark in order to be able to add this to AZ Controller.

Regards

Robert

azslow3

Hi Robert,

Mark was quick, so I will try to be quick as well ;)

Please try the "test" version (b427M). It should have "Is on"/"In offset mode on" Function (these function return "success" when true, so if you "play" the action and offset mode is on, you should see it in the "Overview" tab, otherwise you should see nothing there).

I have not checked myself since I have not installed new beta.

Alexey.

BTW I am using .idl only, I am not using standard Cakewalk .h or API wrapper classes since AZ Controller is written in 'C', not 'C++'. But from the header it is obvious what I had to change.

norfolkmastering

Hi Alexey

Yes the function works as you expected.  Thank you.

Do you need to do more work on the update so I have a way to derive a Feedback output for this function?  I need to send a MIDI message to the PIC which reflects the state of the Envelope/Offset button.

If not, can you tell me how to derive a Monitor of the button state please.

Regards
Robert

azslow3

A bit tricky, but...

Define "Offset" Set with "Off"/"On" States.

Create control "OffsetMonitor" with:
Set State Offset Off
Function Is Offfset Mode On
Last action:OK Set State Offset On
Text State of Offset
Monitor Command feedback

In the Monitor (feedback):
Set State Offset <Set to monitored>
... actions which send MIDI based on Offset On/Off


norfolkmastering

Thanks Alexey, that works!
I'll do the work on the PIC software and let you know how it all works together.
Regards
Robert

norfolkmastering

Hi Alexey

It took some time but I got the PIC software code adapted to work with fader value inputs from both envelope and offset modes in Sonar.

The only compromise is that I need to always auto-switch Sonar into envelope mode when Sonar is in play, so that the dynamic fader envelope data is read during playback.

Thanks for all your help with this.  Mixing using both fader modes is a lot better!

Regards
Robert

norfolkmastering

Hi Alexey

Some time ago you helped me to set up an AZ control which would report on the state of the Sonar Envelope/Offset button.  This works just fine thank you.  I use the software state 'Offset' for this purpose as you set out in one of the earlier posts on this topic.

I want to set up an associated function so that, when any change of software state 'Offset' is detected, then another Software State (let us call it 'inhibit') will set to ON for 50ms then set back to its default state of 'OFF'.

The purpose of the function is to prevent feedback outputs from all faders and pans when the Sonar Envelope/Offset button is pressed but just for 50ms.

It is any change of the state of the Sonar Envelope/Offset button I want to detect and then execute the action described above.

Is this 50ms time limited change of state possible using AZ Controller?
If 'yes' can you help me with the control structure please.

Regards
Robert

azslow3

Hi Robert,

Create a separate control, let say Inhibit, with the only Action:
Monitor Timer Once

In the feedback of that Monitor Timer, put:
Set state Inhibit OFF, set engine state



In the structure before, at the end (so near "... actions which send MIDI based on Offset On/Off"), add
Set state Inhibit ON, set engine state
Monitor Reset Inhibit::Timer in X cycles/seconds

Adjust X to whatever you need, note that "seconds" are still the number of cycled, for 75ms Refresh Frequency (I remember you have it smaller).

--------------
The explanation: original "OffsetMode" monitor is triggered on any change. So it is a good place do set Inhibit=ON. Another "Timer Once" is never triggered by itself, it can be triggered by "Reset monitor" only. So we schedule its execution after required time, to reset Inhibit into OFF.

If you want, you can place "Timer Once" into some existing control. I have proposed a separate control for clear naming only.

Alexey.