Guru Session #3: The Data Array Actor (March 25th, 2020 - 6pm CET)
-
Dear Community,
As mentioned in my previous session, we're going to alternate between advanced topics (Wednesdays) and more introductory topics (Fridays) during each guru session. All levels are always invited to join these sessions, but today we're going to tackle the Data Array actor which is very powerful for managing data, but is also kind of high on Nerdtastic™ scale.
6pm CET (Europe)
5pm GMT (UK)
1pm EDT (East Coast USA)
10am PDT (West Coast USA)Live Stream URL will be posted here and on social media at 5:50pm CET. I'm looking forward to seeing you there!
Best Wishes,
Mark -
Here's the download link for the file that accompanies this session. URL for the live stream at 5:50pm CET.
-
URL for the live stream. (Also works for viewing later!)
-
@markthanks so much for your sessions really helping a lot !
I'm just trying to achieve this
"no reset position if easy IO not finished" function that your were evoking,
but I can 't remember the equivalent of "one bang" as called in max,
an actor that blocks input trig(a) if another trig(b) has not been input before repeating...so I build this I suppose it ' s not ideal cos not really working as expected.. maybe a priority question, I'm sure there s simpler to find...
-
Actors that came to my mind: comparator actor and Multi Blocker actor. Not sure if they work for that you want to achieve
-
Hello guys, I was a little bit disappointed, when Mark told about the new 'triangled' values.
I actually once had a patch with alot of selector actors in one user actor. And as I sometimes had to increase the number of possible values for all of them, depending on the project. Instead of setting em bit by bit, I connected the value number input to a user actor input and changed it there once for all. If I understand it right, this isn't possible anymore?
It was kind of a preset system for a lot of output actors which had all the same parameters, but might have different values on the same preset. As sometimes I had new ideas for some new parameters, I had to increase the number of all values at the selectors.
It isn't an big deal, as I haven't used the patch for a while, anyway. But I wanted to speak against, it would never make sence to have the possibility in changing this value dynamically. Though it might not be to often that someone may need it this way.Best
Dill
-
The logic demonstrated in the sample patches provided with this 'home school' edition is enlightening. I mean, to think in a way that produces such efficiency and with such a deceptively simple implementation. It defies me.
-
@dillthekraut said:
But I wanted to speak against, it would never make sence to have the possibility in changing this value dynamically. Though it might not be to often that someone may need it this way.
Well, I stand by this statement. I'll expand on our reasoning behind this decision my points on this. Let's consider the Selector actor.
1) In the example below, the 'inputs' input has been increased from 3 to 6. The first three linked inputs still work. But the three that have been added do not have links, so no data can be passed from 'value 4', 'value 5', and 'value 6'. Given that these inputs cannot pass data, and that you cannot have Isadora create new links except through user interaction, what do you gain by changing this value from within the patch?
2) In the example below, the 'inputs' input has been reduced from 3 to 1. The first linked input still works, but the two that removed are gone now, as are the links that were connected to those two inputs. Furthermore, if you set the 'inputs' value to 3 again, the links that were previously there are not restored. (It's been that way since Isadora 1.)
Again, given that Isadora does not have a "Create a Link Between Actors" actor, how could a real-time input to the something like the 'inputs' input of the Selector ever be useful in a real-world situation?
I can tell you what was not useful: the number of support incidents where more novice users crashed Isadora and lost work when the unknowingly connecting a Wave Generator to inputs like this.
In your example, you could add or remove inputs to several Selector (or similar) actors using one number. If you had a bunch of links in place and you reduced the number, I suppose that could save a bit of time -- the unneeded links would disappear but the existing ones would stay in place, and then you could copy and paste this system to a new patch, etc. If, however, you increased the number, you'd still have to manually create links to the new inputs, so for sure there is no substantial amount of time saved in that case.
I'm honestly not trying to be argumentative here. I can tell you, this was discussed among the team extensively before we made this decision and we did not see a downside. We definitely saw an upside in terms of support tickets and reducing user confusion.
Best Wishes,
Mark -
@bennnid said:
but I can 't remember the equivalent of "one bang" as called in max, an actor that blocks input trig(a) if another trig(b) has not been input before repeating.
I just looked up the documentation for "onebang" in Max. Here's a user actor that I think achieves the same functionality.Best Wishes,
Mark -
dear @mark thanks for your one bang, I'll try this -;)
I tried this other way maybe you can tell me why it doesn't work? -
@mark said:
I can tell you what was not useful: the number of support incidents where more novice users crashed Isadora and lost work when the unknowingly connecting a Wave Generator to inputs like this.
+1 students do this all the time. Sometimes I dont even have to walk over and see what they did - I can tell by the look on heir face.
Its difficult because sometimes I think this is a design flaw but more often than not I don't. It's the beauty of real time interactive software. Sometimes we have to crash so we understand how/why not to do it again.
You can do lots of things like this in Isadora like connecting a wave generator to the movie index of a movie player for example!
-
Hi
I couldn't be there live but watched it today. @mark great class again.
I've been using a system to read and play values for a couple of years now. I only use one value that is a text input so I can store json strings. (I have user actors that convert all my midi controllers to a json string and also most of the video effects are in user actors that read json strings so I can connect everything with one line.)
with these two actors I can store and read json strings.
It has a resolution of how many points per second have to be stored. This is also stored in the data array.
When this is read by the value reader it is possible to play the data slower, faster backwards,...The only problem is that it slows down my system if I use it intensively.
Maybe someone can make it better. (sorry I havent commented my patch yet.)
With kind regards
Gertjan Biasino
-
@gertjanb said:
Hi
I couldn't be there live but watched it today. @mark great class again.
I've been using a system to read and play values for a couple of years now. I only use one value that is a text input so I can store json strings. (I have user actors that convert all my midi controllers to a json string and also most of the video effects are in user actors that read json strings so I can connect everything with one line.)
with these two actors I can store and read json strings.
It has a resolution of how many points per second have to be stored. This is also stored in the data array.
When this is read by the value reader it is possible to play the data slower, faster backwards,...
The only problem is that it slows down my system if I use it intensively.
Value player.iua3
Value recorder.iua3
Maybe someone can make it better. (sorry I havent commented my patch yet.)
With kind regards
Gertjan BiasinoO yes if you want to try this out, fist make a folder called "Data" next to the Isadora file I always store all the data in this folder.
-
Hi Mark, Has anyone successfully used the Data Array Actor to generate a unique wave form? My show in September is going to be at the Museum of Water in Lisbon if the Goddesses smile upon me. My live sound person is using Max to create a live interactive undercurrent of sound. Now I've got Max and Isadora playing nicely so that is awesome. Crystal also uses live ocean level data to modulate sound in her performances (Max again) It would be cool if I could do something similar with data from the museum to modulate the video in places. I think live is above my pay grade or math/logic ability but it would be great to create a wave form based on a tide table or something. I see below someone who is teaching Isadora saying his students are crashing their patches attempting to do this. I'd love to know if anyone has actually made this work. It's not urgent. The patch is in great shape already given that the show is four months away, but since the Biennial do Ambiente is all about art and science it would be nifty to incorporate some of that.
-
Hi @nandada
The data array is going to be very helpful for what you want to do. I would suggest you determine where your data is coming from and what form it is in. One thing about ocean tides is that there are a number of variables, for example location, time and height. So you would need to consider how to represent the data in a way that is appealing for you and your audience (you may already have that worked out). What are all the variables you want to use? There are parameters you could add such as water temperature, wave height ... so the diversity of data can be interesting to increase/decrease to recreate sonically or visually.
You can access data on the internet through data providers such as those listed as free API sources in this GitHub: https://github.com/public-apis/public-api
Storm Glass has a free plan for up to 50 data requests per day, after that it gets expensive: https://stormglass.io/
It is then about your patch configuration to make sense of how to work with the data collection over time - and this is where the Data Array can be implemented.
If you are interested I have made a demonstration patch that has used free open data from online sources. You are welcome to download it here: https://community. https://github.com/public-apis/public-apis.com/topic/6591/sharing-a-demo-patch-getting-and-parsing-data-from-api-url-s
It requires the JSON Parser plugin provided by @mark here: https://community.troikatronix.com/topic/6503/json-parser-actor-for-macos-and-windows-public-beta
Kind Regards
Russell