-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timed vs Transformer objects #23
Comments
This aspect changes quite a lot, depending on the final ofxVPParameter implementation. #22 Some quick thoughts on this : The current parameters draft uses references, so values are always up-to-date, used on-demand in the nodes update() cycle. (No need to make them flow, by default.) Both parameters and node objects will define how data flows, depending on their respective individual nature. We'll have to define how data is sampled, synced and/or converted, if needed. And how to keep a continuous data flow. All this seems a little far away, would these rather be optimisation questions for later ? (in terms of optimising the computation flow) |
Some more thoughts, some re-says : Above of this, parameters could have an optional ParamModifier to sample data, average, smooth, etc. values. To bring in an example : |
About the data sampling/smoothing, i think it's better that ofxVPParameters just handle the raw data coming from wherever, and then having specific objects to clean/smooth/sample etc.. the data. This will guide the users to adjust the data speed depending of his/her needs while obviously depending of the machine capabilities. Right now Mosaic run on the draw side at 60 FPS ( ofSetVerticalSync is active on the main window, while deactivated on projection windows ) while the update thread runs at the FPS the user set in System/FPS ( default at 60, with the upper limit will be the machine maximum FPS, depending on the patch load ) The issue about limiting the main window with ofSetVerticalSync is because, without setting the FPS internally with OF, i was having Mosaic running at maximum speed all the time ( on my laptop with linux i had more than 1000 FPS with an empty patch ), and that was reflecting in multiple threads consuming 100% of various cores ( a lot of heat, basically a computer destroyer ) So i choose this synching mechanism, without using the OF framerate, so i could control the processor resources, but having maximum speed on the update and on the render of projection windows ( the output window object ). Now, your proposal is interesting, filter/map data depending on the receiving speed, we could plan different scenarios and think to something, but first i think would be better to give the current release some practical use testing, doing some complex patches, integrating different protocols and interfacing multiple data streams, then find the current weak points of the current mechanism and think of something better. I think that will help us a lot. Feedback from other users too could help a lot, having multiple new pair of eyes trying stuff. Anyway, we'll leave this issue open, let's see where we'll land. |
Ok, thanks, lots of useful information in your post, sounds fair. |
Right now every object is a "timed object" synced with internal (not OF) fps, the idea is to add an alternative model that update instantly (next available cycle) only when data content change, a "transformer object"
The text was updated successfully, but these errors were encountered: