libossia icon indicating copy to clipboard operation
libossia copied to clipboard

[ossia-max] [ossia-pd] should we allow absolute and global addresses in all objects ?

Open avilleret opened this issue 8 years ago • 8 comments

It's obviously yes for remote and view (and should work). but what about parameter and model ?

avilleret avatar Jul 26 '17 10:07 avilleret

what do @bltzr @jcelerier et al. think ?

avilleret avatar Aug 15 '17 19:08 avilleret

I would tend to say yes

jcelerier avatar Aug 15 '17 19:08 jcelerier

what would global addresses mean for parameters and models ? e.g. what would that do if I'm giving someNonExistingDevice:/param as a name to my param and this device doesn't exist ?

For absolute addresses, that seems a bit strange, but why not... I guess that could create some confusion, but if that's properly documented, maybe that would be useful ? do you see an use-case where that would be useful ?

bltzr avatar Aug 15 '17 19:08 bltzr

what would global addresses mean for parameters and models ? e.g. what would that do if I'm giving someNonExistingDevice:/param as a name to my param and this device doesn't exist ?

~~hmm... for me "global addresses" don't include devices, it's just an address such as /foo/bar/baz (unlike a relative address which would not have a leading /)~~ maybe the distinction between global and absolute should be documented somewhere ? I'd say yes for "absolute" (/foo/bar) and no for "global" (device:/foo/bar).

do you see an use-case where that would be useful ?

yep, if for instance you're five patches deep and want to quickly add a global debug message at top level ? or maybe if you want to make "parallel" hierarchies without having two ossia.model ?

e.g.

/foo/filter/band.1 /foo/filter/band.2 /foo/filter/band.3

/foo/filter/Q.1 /foo/filter/Q.2 /foo/filter/Q.3

could be done with a patch that looks like

myeq.maxpat:

[ossia.model /foo] (maybe?)
[ossia.parameter /foo/filter/band.1]
[ossia.parameter /foo/filter/Q.1]

main.maxpat

[myeq] [myeq] [myeq]

jcelerier avatar Aug 15 '17 20:08 jcelerier

e.g. what would that do if I'm giving someNonExistingDevice:/param as a name to my param and this device doesn't exist ?

it just doesnt register and stay quarantinized until someNonExistingDevice appear

do you see an use-case where that would be useful ?

quite capillotracté but if you have an abstraction you use several times and want to add a parameter only to one instance for whatever reason, then use an absolute address might make sense

avilleret avatar Aug 15 '17 20:08 avilleret

@jcelerier global means absolute address with device name, as opposed to absolute and relative it used to be called super-absolute but this term didn't reach much popularity

avilleret avatar Aug 15 '17 20:08 avilleret

if you have an abstraction you use several times and want to add a parameter only to one instance for whatever reason, then use an absolute address might make sense

but that would create several instances anyway, wouldn't it ?

bltzr avatar Aug 16 '17 07:08 bltzr

@jcelerier in your example, why doesn't duplicating the patchers create new instances for /foo when it does for the parameters ?

though, I have to admit that there seems to be some esoteric shared logic to both of your proposals.... could you exoterize them ?

bltzr avatar Aug 16 '17 07:08 bltzr