Skip to content
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

Data Object messages need unique tags #180

Open
weefuzzy opened this issue Jan 2, 2025 · 1 comment
Open

Data Object messages need unique tags #180

weefuzzy opened this issue Jan 2, 2025 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@weefuzzy
Copy link
Member

weefuzzy commented Jan 2, 2025

Long-standing enhancement need: currently the actions attached to methods on the various data objects can only cope with one action per method in flight at any one time:

s.reboot 
(
~ds = FluidDataSet(s); 
~buf = Buffer.alloc(s,1); 
~ds.addPoint(\1,~buf,{"Never called :-("}); 
~ds.addPoint(\2,~buf,{"I get called twice?".postln}); 
)

In the above, the action for ~ds.addPoint(\2... will zap the previously stored one. This rears its head when folk are, e.g. calling kNearest or similar on a fitted model from different places (such as synths fire back to language OSCFuncs that then query the tree), or slower methods like fit are called quickly in succession.

I think the least awful fix is that, for the purposes OSC traffic, each message-response pair needs its own ID, supplemental to the ID of the object instance, and then an OSCFunc can be listening to just that particular message. This means changes to both the C++ and sclang code.

The conceptually simpler alternative of 'just' maintaining a queue of message handlers language side is (a) about as much work and (b) not robust to a packet getting dropped

@weefuzzy weefuzzy added the enhancement New feature or request label Jan 2, 2025
@weefuzzy weefuzzy self-assigned this Jan 2, 2025
@weefuzzy
Copy link
Member Author

weefuzzy commented Jan 2, 2025

I think #167 (which we never responded to, sorry) is probably a symptom of this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant