How to get the current value of an executor fader?

BECOME PART OF THE COMMUNITY - Sign up here
  • I didn't find any way to do it.
    I found an ugly hack workaround.

    I turn on OSC out, and I use an external app to listen for OSC, and for each fader value received I send back an OSC Cmd message. This Cmd can either call my LUA plugin with that value, or set a UserVar, so the plugin can get the value when it needs it.

    But this is something I can only use myself, I cannot deliver my plugin to users an expect them to run an external App for this.

  • Andreas
    Hi Andreas,
    I promised you a free plugin, and I finally released the Pool Browser yesterday.
    I don't have your contact to send you your free plugin coupon code.
    If you are interested, please write me at :
    hepi [at] ma3-pro-plugins [dot] com

    Thanks again 🙏

  • I have modified the code provided by Mr. Button, which currently sends fader values for executor 201-208 and 301-308 every half second in a continuous loop, within the range of 0-16368 (I am using the BCF2000 in Mackie mode).

    For my convenience, in case there is no information available, I send a value of -1.

    To complete my requirements, I also need to read whether, for example, executor 201 is active and send OSC feedback in the form of OSC key "Key201" with a value of 1 for active or 0 for inactive or disabled.

    I found an example of how to read the active sequence, but I am not proficient enough in Lua to connect it properly.

  • please try these two versions of your main function and watch the system monitor

    Code
    local function main()
        local executor_table = {201,202,203,204,205,206,207,208,301,302,303,304,305,306,307,308}
        while true do
            Echo('this code fine')
            coroutine.yield(0.5)
            for i, name in ipairs(executor_table) do
                Read_Fader_Send_OSC_nn(name)
            end
        end
    end
  • Hi,

    Well the issues with sending Exec active state are:

    1) You need to resolve the Sequence to which an executor is assigned to.
    2) You need to hook the Executor for changes, in case the user assigned a different sequence to that exec.
    3) Although a Seq object has a "CURRENTCUE" property, when you hook the seq for change, the callback is NOT trigger when the current cue changes )-:
    4) So the only way I found to get notified when a sequence active state is changed, is to add commands to all the cues and to the OffCue. And use these commands to do whatever you want.

    So for conclusion.
    Too complicated for the value you'll get from all this.

  • I found such a way

  • I have modified the code provided by Mr. Button, which currently sends fader values for executor 201-208 and 301-308 every half second in a continuous loop, within the range of 0-16368 (I am using the BCF2000 in Mackie mode).

    For my convenience, in case there is no information available, I send a value of -1.

    To complete my requirements, I also need to read whether, for example, executor 201 is active and send OSC feedback in the form of OSC key "Key201" with a value of 1 for active or 0 for inactive or disabled.

    I found an example of how to read the active sequence, but I am not proficient enough in Lua to connect it properly.

    Thank You Andreas

  • Krzysztof Korzeniowski
    Yeah, that's the way to get the associated sequence.

    I personally don't like a solution that involves polling (sending the fader values every 0.5 second).

    So if you are going into resolving each exec's sequence, then you don't need polling to get the faders' values.
    You simply need to listen for the outgoing OSC messages of the sequences's MasterFader. )Oh, but what if the exec is a Temp fader.... you need to listen for a TempFader as well? I need to chan that)


    But in my opinion, if you go for resolving sequence, then you need to listen for changes in the assigned sequence of an executor.
    Or you can use your polling solution to resolve the exec=>seq mapping every 0.5 a second. Or maybe eve every 5 seconds. Or even, just make a plugin/macro that the user needs to run whenever they change the exec's target object (exec's sequence)

  • In my earlier projects that communicate via webremote - polling the "server" is more frequent - so ledfeedback is practically instantaneous.

    I know this solution is not very elegant - but it must be read quite often - so that the faders don't go back to their previous position.

    Therefore, the possibility of pressing and sending the status - in this case, is out

    Listening to OSC - I did - but unfortunately you are not always able to decode whether something is running or not.

  • I mean these OSC output messages

    The numbers tell you which sequence it is.
    The last number is the sequence number (2 in the attached example)

    I managed to get what I wanted - maybe not in a very elegant way - but it works fine.


    BCF2000 in Mackie mode

    Encoders 301-308 - work on any page with ledfeedback

    Executors 301-308 - work on any page with ledfeedback

    Executors 201-208 - work on any page with ledfeedback

    Faders 201-208 work on any page with posfeedback

    I finished the demo for today

    The right side of the buttons will remain unprogrammed for now - I have to come up with an idea what to do with it

    < PRESET > of course switch pages - +

    Thanks again Andreas for your help!


    ArtGateOne/ma3bcf2000: use bcf2000 to control ma3 faders OSC (github.com)

  • while it is fine to poll every half second, actually sending OSC should only be necessary if something has changed since last poll?

  • while it is fine to poll every half second, actually sending OSC should only be necessary if something has changed since last poll?

    Tested - but not work ---
    on the screen you can see the commands from my plugin - green - from your version they are white - ???


    Code

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!