I need improved Router Actor with several Inputs.
-
@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. -
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
-
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.
-
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 patchfunction 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; break; case 2 : out[4] = var01; out[5] = var02; out[6] = var03; out[7] = var04; break; case 3 : out[8] = var01; out[9] = var02; out[10] = var03; out[11] = var04; break; } return out; }
-
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".Jacques -
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_16054Also 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.
-
I believe the best solution is to create a User Actor, that you can reuse for your purpose.
Its a great way to simplify a patch, and create reusable modules.If you take a look thru my tutorial on creating a video sequencer, you will see how I create custom User Actors that contain the Router actor and accomplish another similar function as you have inquired about.http://www.dusxproductions.com/blog/create-a-video-sequencer/ -
I am not an Izzy Guru, but I think your task is very specific and, as said by DusX, User actor is the perfect object to do what you want and to reuse it. As you can see, even in javascript or user actor, it's difficult to have mixed input/output (int, float, video etc.) and different persons would need different in/out.I think also Data Array can be a perfect way to do the task. -
to DusX : I've wached your tutorial, thanks. I'm already have made user actor, but drawback of this method is low flexibility. I have to create defferent User Actor for each count of Inputs.
Actually i wonder, why such simple functionality of Router Actor still doesn't included in Isadora.to [jhoepffner](http://troikatronix.com/troikatronixforum/profile/15/jhoepffner) : I think, it's another case. This improvement could give more fexibility for Isadora. I don't think that it is specific and rare task for end user. They have to create custom User Actors with "messy" of connectors and routers, because Isadora doesn't offer simple way to implement such simple task. -
@Mikhail mutable inputs and outputs on user actors is definitely something that would be great ie the ability to have a variable number of inputs and outputs that follow a pattern and are initialized with a variable when you place the actor (javascript does take care of this a lot though). For this there is also the SDK if you want to make a more solid solution. Remember that Isadora is a kind of programming language and user actors are ostensibly part of that and a very important part. The main idea is to give all the building blocks so you can achieve what you want (you would not want a complete airplane as a single block of lego, the point is you have all the blocks you need to build an airplane). Most users begin to collect a variety of user actors that they use regularly as shortcuts to save time and space (like any programmer collects snippets of code or libraries so they don't have to type the same thing over and over again). Of course there are systems that have no user actor capabilities if you are looking for a more pre-made solution, however if you want to try to do something complex, those systems will not help. Any which way you flip it you will have to do some of the making and if all the bits are there then you have your solution. I understand that you don't feel you should have to make a unique actor for each task, but that is how the system works, in the end it is not very time consuming and you will learn a lit of tricks along the way to make you quicker.
I think a mutable input output pattern system for user actors is a great feature request, but a multi IO router (as you need in this case) is not, the multi IO router can already be built from existing actors, if Mark were to code a new actor every time someone encountered something time consuming no new features would ever arrive. Mutable IO user actors would allow many new and interesting things to be made.Another feature request that would help you would be bundled connections- you could make a list of parameters, video feeds and text (whatever you want) and bundle these into a single cable. In fact this has come up before and would make Izzy a million times more flexible so I am going to do a feature request now.These kind of underlying features are much better to think about as new things we need than a single use case actor.One less elegant approach is for you to make a big router actor using global variables or even the old sender receivers, make it as big as the biggest you need and then embed it in another user actor to save space, this way you have a very small task to do each time you want to adjust the number of outputs and inputs, or you can just always use the biggest one and not utilise the extra ins and outs.It is not uncommon for people to have user actors 20 or more layers deep containing hundreds of logic operations and nested user actors with the same complexity (this is why it is not so important that the Izzy design screen is small, you nest and nest and nest etc, it also makes your patch much more readable and faster to change.This is the work of a media technician or artist, if it was easy anyone would do it and we would all be out of a job. The creative part comes in understanding how to push the logic of the system, there is always a work around.I disagree that Izzy does not offer a simple way to implement this task, it is easy, just takes a while of connecting stuff. Some of the more advanced patches folks have made overcome much more complex logic problems than this simple task. I do agree that the wires can get messy but that is the basis of Isadoras function. -
@Fred : I know advantage of user actor and I already use it in my projects. I have enough expirience in programming, and I know advantage of User Actors to build project by blocks, when possible. Also I undersand what you mean, by nesting of User actors.
I just can't understand why so native functionality of Router Actor still doesn't implemented! As programmer(in past) i suppose, that such impovement should not be so difficult(to implement), but gives flexibility for project developers, also simplify some tasks. I don't ask to create new actor especially for my usage! No! I suppose that this functionallity(to route several inputs, not single) finds lot of usages for other developers. Of course, I could build custom router, BUT think once again about **flexibility for project creating**. I think Router have to had such functionallity as basic! I wonder why such omission taking place!I don't understand about "bundled connections". so, i can't comment it.Where I can find SKD on java actor(or what you mean)?Thanks for your recomendation and comments! I will try to use each method you're suggested. -
Not to be rude, but we (Dusx, Michel, Fred, me, other) are trying to help you. I just note there is few thanks from you for all the time and energy we give to understand your problem and help you…The way to write in bold is not very friendly. We have understood that you wish to have a different router actor. You can fill a feature request for your idea, perhaps Mark and his staff would be interested, but please, be more friendly with us.There is no SDK for java actor, because there is no java but javascript. It's easy to understand, there is some example and I just uploaded some for subtitle that you can easily understand "As programmer(in past)"All the best,Jacques