Giter VIP home page Giter VIP logo

vl.io.osc's Introduction

vl.io.osc's People

Contributors

azeno avatar gregsn avatar joreg avatar mrroundrobin avatar ravazquez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

vl.io.osc's Issues

Sending and receiving messages with the OSCClient node

I am struggling with the current VL implementation of receiving and sending OSC messages on the same port, which Supercollider apparently does, according to this forum thread:
https://scsynth.org/t/reply-port-of-asychronous-commands/6494/2

We already had a discussion about it in the vvvvorum a while ago:
https://discourse.vvvv.org/t/start-supercollider-server-in-background/20532/12

I had a workaround set up, which I am about to document in here, so maybe this could lead to a proper implementation. Coming back to this soon...

Request: OscReceiver version without learning

i just did this for myself in a project where i don't need learning and want to save those cpu cycles. it's just a matter of deleting the learning stuff from the node, but maybe there's a better solution to that like sourcing out the learning into a separate node or so?

Colors are received in the wrong order

Hey,

Using latest vvvv gamma preview (5.3-164).

I'm sending colors from Châtaigne to vvvv via OSC. They are received in the wrong order, i.e as ABGR.

For instance, when sending this purple color

vvvv receives it in the exact inverse order

Châtaigne sends those colors as r typetag.

Had a look inside the lib, and was able to solve it by unchecking Input Is Big Endian inside the UnpackInterger32 function, which is located inside UnpackUtils.

Thanks in advance!

Reducing memory allocations

After profiling a project which made heavy use of this library (~70 sender/receiver nodes in total) we identified the following hot spots regarding memory allocation:

  • DatagramSender -> Socket.SendToAsync, not much we can do about it except wait, see dotnet/runtime#30797
  • MatchAddress - string splitting and MessagePattern construction adds up. Can the split be deferred until we indeed have a match? Can the message pattern be cached?
  • PadNull - If I understand it correctly OSC requires byte blobs and strings to be 4 byte aligned? In that case allocating the memory with the proper size would be more beneficial.
  • Unpack -> UnpackMessage and UnpackString. Both can be done more efficient using Span.

Attached is a screenshot from the profiler
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.