[SOLVED] Router decrementing input value... strange
I have another obscure strange issue between a User Actor Input and a Router.
I checked that all the types and min/max are correct, but I'll include some screenshots to show what I saw. Perhaps I'm missing another subtlety in how Routers work.
I have a User Input that is an integer. That value is used as a 'select' in a Router as well as an input to a bunch of Selectors.
In this demonstration, the User Input value is Integer 9.
All of the Selectors receive the 9 properly, but the Router seems to subtract one from that number and sets it to 8.
It doesn't seem to be a min/max thing since when I set the input to 5 it changes it to 4.
When I pass it through a calculator and say to add 0 to the number, it passes the original number through correctly.
Perhaps you can pass along a pointer.
Here's what I was seeing. Those other links from the User Input go to Selectors that are all showing 9 as the value.
My hack is adding a calculator and adding zero to the number, now the router receives the 9.
Here are the details of the User Input and the Router select
Remove the Router and put a new in one in. It clearly seems to have some kind of scale going on with the behavior that you are describing. But when I find such an issue in my patches I really could not care less and just use a fresh one, attach the cords correctly to it (so first insert new one, connect cords from the first one to the second one, remove first one)
jfg last edited by
so far I can see you have 11 connections to the selector and the user input show as Limit max 12 what is not normal if you had connect the input to the router. It should show 10.
I think you have first connected the input to a selector with 12 inputs and then to the router with 10. In this case the input get 12 as maximum and scale between 12 (the initial value from the selector) and 10 (the select input of the router).
You must add a new user input, first connect to the router and then to the selector but you will get other problems if your selector has more or less input than the router. It will also scale the number for the selector and give you another number as your input.
That did the trick. I'm climbing this learning curve and I'll watch out for router/selector input/output counts. It's great that isadora does range checking like that, but it must be hard for it to also change as the number of input/outputs change.
Thanks for your help
Thanks for your help. Creating a new router and rewiring solved the problem. I'm still learning about how izzy manages its range checking and this is something I'll continue to look out form.
Whenever you have a Min and Max value (other than 'MIN' + 'MAX') set on both ends of a Link, the value sent from the output is scaled to the range of the input.
So you have an output (the User Input) defined as an Int of the range 1 thru 12, going to an input defined as an int of the range 1 thru 10.
So the value is scaled down in value a little bit, because the range is smaller.
This is demonstrated clearly by using the same numbers in a 'Limit-Scale Value' actor.
My solution to this issue would be to change the Min and Max values on the User Input to 'MIN' and 'MAX'.
That will stop the value from scaling to ANY input it is connected to.
thanks for the clear explanation. it's nice to see the clear explanation. it makes sense.