I need improved Router Actor with several Inputs.

  • Can anyone help me? I need improved Router Actor!

    Simple task: I want to create User Actor with same logic as Router Actor, but switches from set of inputs(one or more inputs) to certain group of outputs.

    For example, i have two, three or more movie player actors and i want to operate them by one controls group(play, speed, bin, position, etc) and chanel selector(which selects movie player to control).
    How to do this, without creating many of router actors(because each control channel i need to route to corresponding input of movie player)? I think will be better if _router Actor_ could able to route several inputs to corresponding group of outputs.
    **In simple words**, i need same actor as Router Actor, but it also will consist "_number_of_inputs_" parameter and "_number_of_output_groups_"(instead Outputs) parameters. It will directs all inputs signals to one of output group(with same count of outputs).
    _Total Number of outputs_ will be _Number_Of_Inputs_ x **Number_of_Groups**
    _"Select"_ parameter will determine which group of output will be used.

    14afe5-2016-02-16-19.48.06.png cfae6d-2016-02-16-19.58.36.png

  • Tech Staff

    I think, if I understand correctly. You can use 'Selector' connected to your 'Router'

  • How i can use this combination(selector+Router)?

    I need to connect group of inputs with one of group outputs(with same number & order of outputs as inputs). Now it looks like this(see attachment). On pics streamController performs this functionality only for two groups of output(to VS1 & VS2). On Stream Actor pic a lot of routers performs same operation - switch to output! **Its terrible and uncomfortably**
    In case of existance "group router" actor, i haven't to create StreamController at all! 
    Maybe best way is to create custom actor, based on java or FreeFame? But i have no any documentation for creating.

    7186cd-.png b4793b-.png

  • Each of input must be connected to corresponding group of outputs,

    I.e. Input1->G1_Out1 or G2_Out1 or G3_Out1 and so on...
          Input2->G1_Out2 or G2_Out2 or G3_Out2 and so on...
    "Select" parameter will determine group to output(G1 or G2 or G3 and so on).

  • Please let me know if you know how to solve it! It still doesn't solved!

    How to route several inputs(not single, as current Router Actor does) to output group?


  • Tech Staff

    Connect a selector to a router. With the selector you can choose your input. And with the router you can choose the output.

  • @DusX: Suppose, that you still don't understand me.

    I will try to explain more clearer. Look at attached picts. Suppose, that i have 7 inputs which control each of movie player parameters. I have 2 Movie Players. 
    **Look at Second picture**(with two routers). It shows how i solve this task now: i connect each input channel through router which redirect input to one of movie player(determined by ChannelSelector output value). I didn't complete this actor, just shows you how i connect only first two inputs.
    In case of three or more movie players this scheme became unreadable!
    **Look at First Picture**: It Shows how suggested Actor will looks like(try to imagine, that it is single Actor on pict). All Of 7 inputs connected to one of inputs of new router. Outputs connected to each of movie player in same order, as inputs. 
    "Select" parameter of suggested Router will determine which of media player will recieve inputs.
    Of course it must have "inputs" parameter(which determine how many inputs will be. 
    "output" parameter will determine quantity of group to output (inputs x output).
    I hope now everything is clear.

    7550b8-.png c87e77-_.png

  • Izzy Guru


    I know what you mean but it looks like you have to do this the "messy" and hard way. Maybe this would be possible with JavaScript but I am not an expert for that.

    Best Michel

  • Izzy Guru


    See attached image, I guess this is what you want. For example have 7 inputs and output them to output 1-7 or 8-14 or 15-21 or 22-28 or 29-35. Now the question is how the JavaScript for that goes :-(.

    Best Michel

  • @Michel: Thanks for answer! I also try to understand how to use Java. Are there examples which use several inputs and outputs on Java? 

    I think that code will be very simple. But i don't know how to use several inputs and outputs on Java code.

    I send feature request also. I think that Router(maybe Selector also) Actor improvement will be very useful and much more comfortable to create Isadora projects. If such improvement possible, i hope that it will be included in future version of Isadora.

  • Don't confuse Java and JavaScript. They are completely different languages.

  • @mikhail

    I agree with Michel, Javascript would be the good choice, You just need 1 more input, to choose the output…
    I made a quick sample, 4 inputs, 3 x 4 outputs.
    Here is the javascript, easy to extend for more inputs/outputs and easy to make the code more compact… And also the izzy patch
    function main()
    var00 = arguments[0];
    var01 = arguments[1];
    var02 = arguments[2];
    var03 = arguments[3];
    var04 = arguments[4];
    out = [];
    switch (var00)
    case 1 :
    out[0] = var01;
    out[1] = var02;
    out[2] = var03;
    out[3] = var04;
    case 2 :
    out[4] = var01;
    out[5] = var02;
    out[6] = var03;
    out[7] = var04;
    case 3 :
    out[8] = var01;
    out[9] = var02;
    out[10] = var03;
    out[11] = var04;
    	return out;


  • Izzy Guru

    Thanks @jhoepffner

    I knew it wasn't to complicated but if you don't know JavaScript its not so easy. To learn JavaScript is on my list for this year :-)

    Best Michel

  • Try using the Set Global Value and Get Gobal Value actor. It has multiple ins and outs and would be a good way to clear up some patch cord cludder. You may need to use the Number To Text actor with the name input to select using number values.

    Does that help? Let me know if you need an example patch.

  • Thanks for all recomendations.

    I will try to use all methods you are suggested. After, I will give a comments. But I believe, that [jhoepffner](http://troikatronix.com/troikatronixforum/profile/15/jhoepffner)'s comment will be best solution for this task.
    Anyway, I hope that router improvements will be included in future version of isadora. By the way, It can be updated with "backward campatibility", because in simple conditions(1 Input) it will be operate as current router Actor!

  • @Mikhael

    I think it's not a router improvement but another task.
     For me what you want is not very clear, principally what append to the not choosed output? Old value? Zero (as I made with javascript)?
    To help you, we need a little bit more about how you want to use the "superRouter".

  • I made another proposition with global values 47b364-multirouter02.izz

  • As I described before try to do simple task: 
    * I have 5 movie players in project.
    * I have Bin Selector, Play, stop, Speed buttons. Also I have RadioButton Control, which select movie player to operate(only selected player will be recieve commands from these buttons). Only this group of controls will operates all of these 5 movie players, by selecting one of player in radiobutton control.
    Try to do this now. Very simple way is to do this by Router Actors for each control, which does same operation. It will be "messy" of connectors and actors in your project.
    I suggest update Router Actor, to route several inputs to several outputs. **It will be compact & plain! **
    Each inputs will be connected to appropriate control, "Select" parameter wil be connected to Radiobutton Control. 
    1-5 outputs will be connected to appropriate parameters(with same order as inputs) of first movie player, 6-10 Outputs - to second player, 11-15 - to third, and so on till 21-25 outputs, which will be connected to fifth movie player.
    Here I also have explained all in pictures: http://troikatronix.com/troikatronixforum/discussion/comment/16054/#Comment_16054
    Also i made additional pics(see attachment) of control group, i mentioned above(which control all af thes 5 movie players).
    @[jhoepffner](http://troikatronix.com/troikatronixforum/profile/15/jhoepffner) >>>For me what you want is not very clear, principally what append to the not choosed output? Old value? Zero (as I made with javascript)?
    Not selected outputs haven't to change at all! They will store last changed values. **Same logic as current Router Actor**


  • I think Router Improvement will be better, because, i suppose, that Java-based script can't route GPU or CPU video, but i also can  give you example for such task.

  • If such improvement is possible for Isadora Router Actor, please note the same improvement for Selector actor also.