assurance-tunnel
assurance-tunnel
assurance-tunnel
assurance-tunnel

Duplicate with input connections



  • It would be great if you could duplicate an actor with its input connections. In my work, I find myself reconnecting dozens of actors with the same inputs. I change one parameter (for example, an index), but the connections are all the same.


  • Tech Staff

    @jtsteph

    Could you provide a screenshot or a little more detail to help me visualize this better?

    Also, I'm not sure if my thread necromancy on this post from three years ago might interest you and save you some patching time on this project.

    Best wishes,

    Woland



  • Oh, wow. This has the potential to save me a bunch of time. I have a massive user actor with all the values from my BCR2000 on it and am going to organize it into discrete, indexed, global value segments. Using your input, @Woland, from another thread, I am separating the controller values into global value groups indexed by controller rail, channel (track), and scene. At the moment I am working on using your technique to produce the indexes for the global values with the the format text actor. There will be 8 groups of 13 and 1 group of 4 values for each track. Then I have to build patches for a launchpad and MM-1 to receive values from as well.

    In this current example, I will need to duplicate the text formatting actor 9 times to creates my groups. Each time, I have to reconnect its inputs.

    I suspect that your Java Script method would be the better way to do this. The goal is to have all the controller values on the top level so that I can snapshot them to store a setup.

    The BCR MIDI out Actor has 108 values on it.

    Thanks again for your input.


  • Beta Platinum

    Hi there,

    What I personally do with my Presonus Faderport 8 (Bit the same as a BCR) is use JavaScript to encode the values into JSON with a 'Formatter' and then use a 'Parser' to select the 'Fader' that I wish to receive.

    What is great about this setup is that I get all the data that I need in a single User Output called 'out data' that I then can connect all over the place with a Broadcaster / Listener or even record it as you wish with a 'Trigger Value' actor (Raw data output) and then just 'trigger' the text value to a 'Parser' and continue like that :)

    EXAMPLE FILE


  • Tech Staff

    @jtsteph

    I made an example Patch just now while I was thinking about this particular idea. I wonder if it will be useful to you.

    Check out this new forum post for screenshots and the files

    Best wishes,

    Woland



  • On first perusal, this looks amazing, @Woland, I will certainly dig into this.

    I am just starting to play with the Group/Ungroup actors and think that this will be the key to everything here. I was intrigued by @Juriaan 's method of using a "parser" to select the fader(s) that he wanted. I imagine it is a question of defining the index or range of indexes for the array value(s) for the Javascript Parser. I will have a hack at it - I'm not super familiar with JS but I'll see what I can come up with. I will spend some time with your outline tomorrow.

    Thanks for all of your input.

    - J



  • Well I couldn't stay away and have run through your explanation. I'll pick up any questions about this system in your new thread. I will say that this rings of efficiency, which I love. Also, I figured out how to parse out a single controller value in your JS "Ungroup Node". It's a stone's throw for me to modify this if I want any number of values instead of just one.

    The JS node will need two inputs: one for the JSON string and one for the index.

    function main()
    {
        var parsed = JSON.parse(arguments[0]);
        var array = [];
        var arrayindex = arguments[1];
        array.push(parsed [arrayindex]);
        return array;
        }

    UPDATE

    Here's the JS for selecting a range. Input 1 is the JSON, Input 2 is the start index, Input 3 is the end Index.

    function main()
    {
        var parsed = JSON.parse(arguments[0]);
        var array = [];
        var indexstart = arguments[1];
        var indexend = arguments[2];
        var i;
        for (i = indexstart; i<= indexend; i++) {
        array.push(parsed [i]);}
        return array;
        }
        
       

    Thanks again,

    - J 


  • Tech Staff

    @jtsteph said:

    Well I couldn't stay away and have run through your explanation. I'll pick up any questions about this system in your new thread. I will say that this rings of efficiency, which I love. Also, I figured out how to parse out a single controller value in your JS "Ungroup Node". It's a stone's throw for me to modify this if I want any number of values instead of just one. The JS node will need two inputs: one for the JSON string and one for the index.

     Exciting! I look forward to hearing about the results (if you're comfortable sharing them).


  • Tech Staff

    Just adding the link to the official Troikatronix tutorial on JavaScript Grouping and Ungrouping.

    https://support.troikatronix.c...