Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 21 16:47

    jcelerier on master

    [scenario] Fix that play from h… (compare)

  • Sep 13 06:50
    avilleret commented #785
  • Sep 12 14:20
    maybites commented #785
  • Sep 06 15:21

    jcelerier on master

    [dmx] Add support for DMX USB P… (compare)

  • Aug 30 08:18

    jcelerier on master

    [midi] Small optimization on mi… (compare)

  • Aug 28 09:47

    jcelerier on master

    [ci] Update smallfun (compare)

  • Aug 28 08:28

    jcelerier on master

    [ci] Update smallfun (compare)

  • Aug 26 10:23

    jcelerier on master

    [graph] PMR not supported, try … (compare)

  • Aug 26 08:14

    jcelerier on master

    [exec] Reduce allocations great… (compare)

  • Aug 22 18:06

    jcelerier on master

    [faust] mono fixes (compare)

  • Aug 21 07:41

    jcelerier on master

    [code] Packed struct: use #prag… (compare)

  • Aug 20 21:43

    jcelerier on master

    [geom] Various geometry improve… (compare)

  • Aug 19 09:34

    jcelerier on master

    [ci] Update concurrentqueue (compare)

  • Aug 18 14:24

    jcelerier on master

    [boost] Fixes for boost 1.80 (compare)

  • Aug 18 09:46

    jcelerier on master

    [ci] Update verdigris for Qt 6.… (compare)

  • Aug 18 09:43

    jcelerier on master

    [deps] Update boost to 1.80 (compare)

  • Aug 16 14:12

    jcelerier on master

    [faust] Better support for mono… (compare)

  • Aug 15 13:06

    jcelerier on master

    [ci] Update r8brain (compare)

  • Aug 15 10:14

    jcelerier on master

    [ci] Third round of fixes for o… (compare)

  • Aug 14 20:50

    jcelerier on master

    [ci] Second round of fixes for … (compare)

Thibaud Keller
@thibaudk
first add a devices, select the osc protocol (not OSCQuery)
you can change the name of the device. The ports have the same defaults as the quarcks so you don't have to change them
djiamnot
@djiamnot:matrix.org
[m]
yes, I did that, but is there something to do on the SC side?
Thibaud Keller
@thibaudk
yes
once the device is created, right click and select learn (the window appears)
the in SC
evaluate ~yourDevice.exposeOSC();
replacing ~yourDevice with the one you created in SC
when evlauating exposeOSC() all deffault values are sent to score once for learning
here is a little code example
djiamnot
@djiamnot:matrix.org
[m]
right! I confirm that this is the way!
this is getting very exciting!
Thibaud Keller
@thibaudk
(
d = OSSIA_Device("supercollider");
n = OSSIA_Node(d, "MonNode");

d.exposeOSC();

v = OSSIA_Parameter(n, "MonVec", OSSIA_vec3f, [[-pi, -pi, -pi], [pi, pi, pi]], [0, 0, 0]);
//v.unit_(OSSIA_orientation.euler);
v.unit_(OSSIA_position.cart3D);
r = OSSIA_Parameter(n, "MonRange", OSSIA_vec2f, [[-30, -19], [10, 27]]);
// r.unit_(OSSIA_position.cart2D);
f = OSSIA_Parameter(n, "MonFloat", Float, [-6.3, 99.5]);
h = OSSIA_Parameter(n, "MonInt", Integer, [ 0, 64 ]);
b = OSSIA_Parameter(n, "MonBool", Boolean, critical:true);
g = OSSIA_Parameter(n, "MonPrint", String, default_value: "imprimer des choses");
n.gui();
)
the quarck also includes a simple gui library, that can be called on a parameter or on a node (to show GUI of all direct children)
here it is called on the node with n.gui()
changing the unit will also change some widgets (in the comments)
djiamnot
@djiamnot:matrix.org
[m]
very cool!
djiamnot
@djiamnot:matrix.org
[m]
thank @thibaudk ! It all works as expected!
Thibaud Keller
@thibaudk
cool, hope it suits you needs !
djiamnot
@djiamnot:matrix.org
[m]
(almost: I get an empty window when call gui() on a OSSIA_Node)
yes, it's a good start! getting my feet wet but I'm very enthusiastic about the potential
Thibaud Keller
@thibaudk

(almost: I get an empty window when call gui() on a OSSIA_Node)

the gui method will create widgets for the node's children, if the node is empty, the window will be too

I should probably prevent this tho, thanks for pointing it out
djiamnot
@djiamnot:matrix.org
[m]
oh, good point. I did not pay attention to this detail! Of course, it makes sense! Thanks for the clarification
Jean-Michaël Celerier
@jcelerier
hi @x37v, actually the echo thing should be fixed in feature/async_protocols
(sorry about the lag with the PR, I had a lot of bugfixes to push on score, now I'm on libossia until the end of the week !)
I'll try to make another round of testing
but if you can try this example, I think that it maps to what you want : https://github.com/ossia/libossia/blob/feature/async_protocols/examples/Network/OSCQuery_bridge.cpp
@thibaudk for the SC patches I think that you should rebase on top of current SC master branch prior to anything
git remote add supercollider  https://github.com/supercollider/supercollider
git fetch supercollider
git rebase supercollider/master
should do the trick (hopefully you won't have conflicts :))
Thibaud Keller
@thibaudk
thanks @jcelerier , I should it's been a while
Alex Norman
@x37v
@jcelerier oh great, so you have oscquery in async_protocols now! Last week I think you said it wasn't in there. I'll give this a go! thanks
Jean-Michaël Celerier
@jcelerier
well, it's only partially there
Alex Norman
@x37v
oh, whats missing?
Jean-Michaël Celerier
@jcelerier
it's not yet been refactored to use the new socket mechanism (which allows to choose udp, unix domain sockets, and other transport-level protocols) indepedently
(and this part has not been tested at all also)
Alex Norman
@x37v
okay, as far as OSCQuery goes, I only care about the HTTP, WS i/o and UDP OSC in.. but I want to be able to add additional UDP OSC out..
should that all work or should I wait?
and.. is there anything i can do to help?
Jean-Michaël Celerier
@jcelerier
testing and reporting any issues / weird behaviour you'd see would be great :) thanks !
Alex Norman
@x37v
great!
Alex Norman
@x37v
BTW, i thought part of this refactor was being able to expose a poll method or something that controlled what thread the callbacks/processing happened in? is there an example of that?
Jean-Michaël Celerier
@jcelerier
Yep, the protocols now take a network_context argument
Which can then be polled / run / ...
It uses asio behind the hood
Alex Norman
@x37v
great!
Alex Norman
@x37v
@jcelerier have you all considered conan for managing dependencies? I put together a basic recipe and pushed a branch, it uses conan to get/build boost there are a number of other libossia deps that could go this way too..
here is an example cmake file that shows the usage of a version of libossia i packaged with conan: https://github.com/Cycling74/libossia/blob/xnor/conan/examples/Conan/CMakeLists.txt
the branch https://github.com/Cycling74/libossia/tree/xnor/conan
Jean-Michaël Celerier
@jcelerier
hi ! yes, and I had opted out against it when I tried for the following reasons (my notes are from 2019 so it could be time to revisit though):
  • not possible to parallelize the download of dependencies (when I had tried to port ossia it took something like 10x longer than git clone --recursive -j16 which is really not good for CI)
  • multi-configuration builds seemed complicated
  • made it hard to "just" clone the repo, open the CMakeLists.txt in the IDE we use (QtCreator) and be ready to go, in particular I quite often have students doing internships, group projects, etc... on the code and from experience every additional step makes it much harde for them to get started with the actual work. Though https://docs.conan.io/en/latest/howtos/cmake_launch.html could alleviate that a bit.
Jean-Michaël Celerier
@jcelerier
packaging libossia itself would be very nice, likely we can reuse your example. Do you think it'd be easy to update the conan repo automatically from, say, GH actions ?
Alex Norman
@x37v
yeah, packaging is as easy as conan create . user/channel the issue is publishing though. you need to have a conan repo you can write to.
We're planning to make a public repo for our shared work, which is where i was planning to put libossia when I create the package.. but you'd need to get your own or access to some other public one for automating publishing for your organization