keep actors values in and out synced (data array)
-
Hi,
I understand, I think, and it does sound annoying to have the Data Array in user actors that update saved changes from one instance to all other instances. It appears then that you need some kind of trigger that will reset the Data Array inputs - and I have had this issue before. I think tried to solve it by having a value loopback system from the Data Array outputs to the data array inputs, but I don't remember the exact patch and there must have been value delays and/or gates to separate updating the inputs from receiving new values.
Best Wishes
Russell
-
@DillTheKraut , perhaps that helps the screenshot shows a panel for an artist to fine tune position of projector surfaces. It isn't nested but the values are feed through.
best clemens
-
Good point, I wasn't realy aware of the fact, them getting updated every time you save changes of 'cloned' user actors. I most times don't use the internal save mode and try to have a function, which reads from txt files as often as needed. But I'll keep that in mind in future.
thank you for your example. I guess this is what I most times go with and what @bonemap meant with value loop.
This way another issue is solved, which is, that value changes are not directly reflected on the outputs.
Would it be a feature request worth, that would offer two new options?1. keep outputs updated with the inputs. If input is changed, it immidiately gets reflected on the output.
2. if using the recall value, not only the outputs are recalled, but the input values change to the loaded data. The index value would then still offer an edit of other indexes without changing the input data.
-
@dillthekraut said:
Would it be a feature request worth, that would offer two new options?
1. keep outputs updated with the inputs. If input is changed, it immidiately gets reflected on the output.
2. if using the recall value, not only the outputs are recalled, but the input values change to the loaded data. The index value would then still offer an edit of other indexes without changing the input data.#1 I don't think this makes sense, since the output should be providing data read from the Data array text file. When 'replace' is triggered the inputs are reflected in the outputs. This makes sense since now the text file contains these values. Any values entered as inputs are 'temporary values' until a Data Array operation (like replace) adds the values to the document.
Since the Inputs and Outputs are separate, it allows you to create feedback controls which show the current recorded values, the current input values, and compare them as required.#2 this would create a special case where Isadora doesn't work this way for any other actors, and I feel it might limit the flexibility of the Data Array in someway.
The demo file is great, it shows how you can logically break apart the inputs and outputs, thanks @m_theater :)
It might be a little more work but the separation really allows a lot of possibilities.We are considering some new data types (a table of data is one), this would likely come with Controls designed for viewing this data. The goal is to make it easier to deal with data sets, and to maintain the fastest possible processing of the data. I know Mark has been putting a lot of thought into this, but we can't offer any timeline just yet.
-
How did you reconnect the data array outputs to the inputs? Or didn't you?
To keep them in sync, I add an user actor which is only 'piping the data, as it is forbidden to reconnect output and input directly. At the same time it can be used for some extra logic to alter the data. You can see the highlighted connections in the first screenshot.
It is an example which is a surtitle text editor. There are three data array actor as I wanted to show the next and the previous title simultaniously and needed to see the previous and following title times (It was a timelined show).
This was the editor only. The player which played the texts (with up to three lines) had 15 separated surtitle player as there was 15 parallel projections. Therefor 15 seperated data arrays with up to 150 lines. -
Thank you for your opinion on this. I see your points, and saw them before as well, which is why I see these features as an option. Like a switch to choose how it works.
As you see in my previous post, the work around quickly at least tripples the editing time and makes it much more complex (I see, that this example is an extreme, anyway). Especialy if you have different data types (string, integer, etc.) you have to adjust all of them manualy. Let alone the naming of the in and outputs. -
in the example, the Value I/O connection is based around the control panel.
So i utilised the show linked value option in the x/y 2d slider. (and this is the feedback you asked for)
Using a "dummy" useractor to pipe through values to the beginning of the chain is something i did as well i other cases.But i am asking myself, if it would be better to filter the message for an change "kind of a feedback killer" attached is a screenshot what i mean.
-
@bonemap Hi Russell,
You indicate that there is a limit to the number of layers of user actors that may be nested and still updated. Have you an official number for this limitation?Thx
Aidan
-
Hi Aidan,
I don’t know the answer to that. Might need to get an official team member to fill in the blank.
Best wishes
Russell
-
@aidan said:
Have you an official number for this limitation?
I don't know.. I haven't hit it, but updates/saves can start to become slow once you have many large/deep user actors.
It's possible the number is 999 (as this is the limit on a few things internally) but I think @mark is the only person who can give you a definitive answer. -
@dillthekraut said:
the work around quickly at least tripples the editing time and makes it much more complex (I see, that this example is an extreme, anyway). Especialy if you have different data types (string, integer, etc.) you have to adjust all of them manualy. Let alone the naming of the in and outputs.
Unfortunately, this is kind of the only way I can think of, but you could use JSON Parser and JSON Bundler from the Add-Ons Page to make your life a bit easier (hopefully)
https://recordit.co/xRM4ojCDo8
Example file: wrapped-data-array.zip