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

Support for sending multiple parameters via OSC #1483

Open
IcedQuinn opened this issue Jul 21, 2023 · 6 comments
Open

Support for sending multiple parameters via OSC #1483

IcedQuinn opened this issue Jul 21, 2023 · 6 comments
Assignees
Milestone

Comments

@IcedQuinn
Copy link

Hello! I am writing from an issue in another project which has OSC adapters. This project supports OSC endpoints however it uses bundles to send the parameters. So rather than something like /foo/volume you have to send /foo with a string and integer parameter. I'm already in talks with the other project to perhaps have a more traditional OSC interface added. But came over here to open a discussion about supporting bundled parameters as well.

@jcelerier
Copy link
Member

jcelerier commented Jul 21, 2023

hi!
yes actually it's not the only software which has this kind of OSC API... I have a long-term plan of enabling custom scripting for OSC devices to define exactly how the address that shows up within ossia is mapped to the outside parameter, kepping you posted

@IcedQuinn
Copy link
Author

actually it's not the only software which has this kind of OSC API

i have taken to calling it "RPC style" because it reflects how remote procedure calls and HTTP work more than traditional OSC. maybe it would be more appropriate to call it REST? not sure. would love to know if there is a proper name for this.

I have a long-term plan of enabling custom scripting for OSC devices to define exactly how the address that shows up within ossia is mapped to the outside parameter,

i might be around to brainstorm some interfaces. what other software is doing this? i might go take a look.

@IcedQuinn
Copy link
Author

Hello, Just waking this up to note that I'm still tracking the issue.

@jcelerier
Copy link
Member

hello! yes, sorry, not forgetting this - there's just a lot of small bugfixes to come before

@IcedQuinn
Copy link
Author

hello! it looks like there is still no way (outside of writing a fully custom device?) to interact with software that has multiple parameters? ex. /scene/item/move int int

@IcedQuinn IcedQuinn changed the title Support for sending OSC bundles Support for sending multiple parameters via OSC Jul 9, 2024
@jcelerier
Copy link
Member

I've made progress on this recently through the implementation of Bitfocus companion modules.
While doing it, it seems that the most meaningful way to do this would be to have a way to specify that a parent node's children are actually parameters.

e.g. given

/scene/item/move
/scene/item/move/index 1
/scene/item/move/position 3.5

then sending an impulse to /scene/item/move would send /scene/item/move 1 3.5

One thing that is not too clear to me:

  • For some addresses you'd want any change to any parameter to trigger an OSC message.
    e.g. most likely if you have an automation on /scene/item/move/position we want this to send messages every time

  • For some other addresses you really want all the parameters to be set before sending the message, e.g. something like

/filesystem/copy_file <from> <to>

you want both from and to to be set before sending the message.

Maybe there could be thus two attributes on nodes:

  • One to say: "children of this node are the parameters of this OSC message"
  • One to say: "changing this value will trigger a network message"

What do you think ?

@jcelerier jcelerier self-assigned this Jan 4, 2025
@jcelerier jcelerier added this to the release/4.0 milestone Jan 4, 2025
@github-project-automation github-project-automation bot moved this to To do in Protocols Jan 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: To do
Development

No branches or pull requests

2 participants