Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:48

    jcelerier on master

    [tests] Fix more tests, fix an … (compare)

  • Dec 06 16:38

    jcelerier on master

    [examples] WIP of an OSC record… (compare)

  • Dec 06 02:51
    jcelerier assigned #757
  • Dec 06 02:41

    jcelerier on master

    [libmapper] WIP on mirroring de… (compare)

  • Dec 05 19:41

    jcelerier on master

    [perf] Improve sanitize_name pe… [tests] Fix FilterTest [perf] Allow to use ossia::gene… and 3 more (compare)

  • Dec 05 18:50
    thibaudk opened #757
  • Dec 04 14:42

    jcelerier on master

    [serial] baudRate options (compare)

  • Dec 04 14:42
    jcelerier closed #756
  • Dec 04 14:34
    thibaudk synchronize #756
  • Dec 04 04:31
    thibaudk opened #756
  • Dec 03 22:53

    jcelerier on master

    [examples] Fix examples build (compare)

  • Dec 03 22:36

    jcelerier on master

    Add mistakenly deleted dno [dno] Add dno library correctly (compare)

  • Dec 03 14:14

    jcelerier on master

    [libmapper] Enable it in config… (compare)

  • Dec 03 14:13

    jcelerier on master

    add dno format dno working dno (compare)

  • Dec 03 14:13
    jcelerier closed #746
  • Dec 03 04:55
    thibaudk ready_for_review #746
  • Dec 03 04:55
    thibaudk synchronize #746
  • Dec 03 04:54
    thibaudk synchronize #746
  • Nov 29 23:37

    jcelerier on master

    [audio] Allow to disable portau… (compare)

  • Nov 29 23:35

    jcelerier on master

    [musical] Fix off by one error … (compare)

Jean-Michaël Celerier
@jcelerier
Alex Norman
@x37v
okay, i'm getting underscores where i should be seeing slashes in the name but I'll verify that its not my end
@jcelerier so i have 2 protocols, oscquery and OSC UDP (output only) .. when I update a GET only param from software, I don't see an output on OSC (but via HTTP i can see the change), but when I change it to BI or SET i do get an OSC UDP message out..
I'm trying to hunt it down but maybe you can give me a hint for where to look?
seems like the logic is inverted there
Alex Norman
@x37v

see ossia::net::create_node here: https://github.com/ossia/libossia/blob/d8699824ad1adc54ff95f3f7e1ed5e6bf509cb9a/tests/Network/OSCTest.cpp

ahh, i'm using parent->add_child as I might not know the base address.. but I guess I can get that from parent->osc_address ?

Alex Norman
@x37v

@jcelerier so i have 2 protocols, oscquery and OSC UDP (output only) .. when I update a GET only param from software, I don't see an output on OSC (but via HTTP i can see the change), but when I change it to BI or SET i do get an OSC UDP message out..
I'm trying to hunt it down but maybe you can give me a hint for where to look?

looks like osc_protocol::push .. it filters out GET but I think it should filter out SET

Alex Norman
@x37v
@jcelerier ossia/libossia#732
Jean-Michaël Celerier
@jcelerier
agh
ossia/libossia#504 strikes again :)
so, regarding that get / set thing
Jean-Michaël Celerier
@jcelerier

in the feature async/protocols, which is likely getting merged by the end of the week-end as I just have a couple remaining CI failures, you'll find

https://github.com/ossia/libossia/blob/feature/async_protocols/src/ossia/protocols/osc/osc_factory.hpp

which allows to create more configurable instantiations of the OSC protocols; right now there are two options (host / mirror) which controls how the get/set thing is handled ; "host" can do everything (as it's, in the mental model of the thing, where the "actual" parameters are, e.g. it's a synth or something like that, while "mirror" is just a controller (which is what the original osc_protocol class is) ; as such, a controller can send messages to nodes that the host advertises as "set" (from the point of view of the controller, those methods are setters) and cannot send messages to nodes that the host advertises as "get" as those are, well, getters

more schematically:

host:

/a int, get
/b int, set
/c int, bi

means that the OSC clients to that host should be able to write the following class:

class host {
 int get_a();

 void set_b(int);

 int get_c(); 
 void set_c(int);
};
Jean-Michaël Celerier
@jcelerier
(now, my personal take on this is that this is an artefact of the old jamoma j.message, j.parameter, etc etc's workings ; "oop-like" access should not be handled at the protocol level but at the UI level of whatever's using ossia instead, with the access_mode only being a metadata)
Jean-Michaël Celerier
@jcelerier
@avilleret do we still care about 32-bit ?
it seems that MSVC is having an internal compiler error but only on 32-bit :|
max 8 is 64-bit only no ?
and we don't support max 7 anymore, or do we ?
Antoine Villeret
@avilleret
hi @jcelerier, imho we can ditch 32bit builds. Puredata is still available as 32bit on Windows, but who need it ?
Jean-Michaël Celerier
@jcelerier
it's just the max build which is failing
but if you think that 32 bit windows pd is unused then yeah
Antoine Villeret
@avilleret
if it builds fine, then keep it until it fail, concerning Max, I don't care supporting Max7, so we can disable Max 32bit builds
I'll try to port more build to github-action today, without any guarantee though
Alex Norman
@x37v
@jcelerier okay cool, i'll try out this osc factory. Thanks!
Alex Norman
@x37v
@jcelerier not sure if all of these protocols should support multiplex, but i updated my test to use the factory setup: ossia/libossia#735
Alex Norman
@x37v
does the new protocol setup for OSC have an output only UDP configuration?
Alex Norman
@x37v
looks like no, and i'm not entirely sure how i'd add it with the new setup
Jean-Michaël Celerier
@jcelerier
fixing that quickly @x37v
in terms of API i'm just changing the socket_configuration to optionals
so that it's easy to choose between only sender, only receiver, or both
will push as soon as the tests pass
:)
Jean-Michaël Celerier
@jcelerier
thanks for the extensive test, reviewing it
Alex Norman
@x37v
fantastic @jcelerier ! thanks, I was thinking optionals would be nice, though, the container is called bidir or something so i wasn't quite sure :)
will test out this approach in the example in the next few hours
Alex Norman
@x37v
I updated my PR, rebased against the async_protocols branch and fixed up the test, still failing on that SET getting sent out though
but as is, this should be usable for my purposes, it'll just have extra messages out that i consider noise.. but not that big of a deal
Alex Norman
@x37v
okay, another thing. considering the new complexity of osc protocol configurations, seems like it would be nice to have a visitor based to get ip/port so, for instance, i can find and remove OSC senders from the muliplex protocols.. maybe something already exists?
i think I can figure out the exact type i'm using and do a dynamic cast like i used to do, but i imagine its something that would be generally useful in the lib
Alex Norman
@x37v
okay, the SET output isn't just noise now, it is causing crashes because websockets can handle a lot bigger OSC encoded messages on the input than UDP osc can send out (I believe)
when i add a UDP OSC output to my multiplex protocol that also has a OSCQuery protocol, i get crashes when I send these large WS messages.
it might make sense for me to chunk these smaller either way
Jean-Michaël Celerier
@jcelerier

okay, the SET output isn't just noise now, it is causing crashes because websockets can handle a lot bigger OSC encoded messages on the input than UDP osc can send out (I believe)

agh indeed, I'll add a filter + log

hmm
although a crash shouldn't happen
do you have a repro ? I have some tests that send large messages, and if it's > the max UDP size, it just gives an error during send
well I can easily do a check on my end given what you said, trying that

okay, another thing. considering the new complexity of osc protocol configurations, seems like it would be nice to have a visitor based to get ip/port so, for instance, i can find and remove OSC senders from the muliplex protocols.. maybe something already exists?

It does not exist, what would your dream API for that look like ?

Alex Norman
@x37v

do you have a repro ? I have some tests that send large messages, and if it's > the max UDP size, it just gives an error during send

I'll try to create a test case for it.

Alex Norman
@x37v

okay, another thing. considering the new complexity of osc protocol configurations, seems like it would be nice to have a visitor based to get ip/port so, for instance, i can find and remove OSC senders from the muliplex protocols.. maybe something already exists?

It does not exist, what would your dream API for that look like ?

Hmm. I'm not sure, I kinda liked just being able to dynamic cast to the osc protocol before and get the port and ip.. so something simple ideally without having to make my own visitor.. in the mean time I have a std::set of pairs of ip/port that i keep and to remove a specific OSC outbound I clear everything from the multiplex protocols except an oscquery protocol, then i remove the ip/port from the std::set and add the OSC outbounds back.
not ideal, but works.. but really only because the oscquery protocol is pretty simple to get the type of