Giter Site home page Giter Site logo

OSC support about vimix HOT 11 CLOSED

brunoherbelin avatar brunoherbelin commented on June 8, 2024 2
OSC support

from vimix.

Comments (11)

brunoherbelin avatar brunoherbelin commented on June 8, 2024 2

Hi,
It took a year, but here it is:
https://github.com/brunoherbelin/vimix/wiki/Open-Sound-Control-API
https://github.com/brunoherbelin/vimix/wiki/TouchOSC-companion

Not yet in a binary version, will be for 0.6.3 !

from vimix.

brunoherbelin avatar brunoherbelin commented on June 8, 2024 2

Great!

attribute to jump to video player timing position

Roger that, can be done

source's indexes always change

Arg! did not think of it but adding a new source should indeed put it at last index: that would at least avoid your problem!
Still the access to sources by name would be recommended in your case...

Now, to have a continuous exchange of info between vimix and osc clients requires to set a dedicated protocol (i.e. a client should announce itself to vimix when starting, so that vimix knows it IP ). I'll investigate...

from vimix.

brunoherbelin avatar brunoherbelin commented on June 8, 2024 1

Thanks for your inputs!

Yes, agreed, the experience with GLMixer proved the usefullness of the OSC control but its implementation was not very efficient (not to say quite bad). Programmatically, the core problem is with conficting simultaneous access over the same source, and potentially of the same parameter; it was simply not handled and would lead to undefined behavior.
In vimix, an internal action management is planned so as to resolve the potential fight between two (or more) simultaneous requests of access. This would also mean that a clean API will be available for developing other types of controllers (a MIDI controller would be easier to add).

In the overal plans of vimix, a headless (no GUI) instance would also be able to run on a dedicated machine (e.g. vimix is designed to be compiled on nvidia Jetson Nano) doing the heavy lifting of the video processing, letting the user control from a lightweitht tablet or another machine (e.g. doing the audio). Stay tuned! :)

from vimix.

brunoherbelin avatar brunoherbelin commented on June 8, 2024

Thanks! And yes, OSC is in the pipeline (see wiki future plans)

It will at least replicate the OSC API of GLMixer, and i am thinking of some new features that are only now possible, such as the possibility to send a command to create a source to receive a stream from a remote machine (i.e. a machine produces some images from another program: it should be possible via OSC to ask vimix to add a source to get this as a new input).

Other suggestions?

from vimix.

lupin3rd avatar lupin3rd commented on June 8, 2024

I like to use Puredata to manage Midi controller, analyze audio and syncronize with videos :-)
A little example: https://www.youtube.com/watch?v=2gvFuZVSQCE

A suggestion:
In GLMixer a shadertoy source can't be altered by OSC messages (with OSC i can only change velocity).
I think that would be very usefull that user can declare shader input variables and set values by OSC.
In this way user can create shader in glmixer that can be animate by OSC values.

from vimix.

lukors avatar lukors commented on June 8, 2024

Last summer I used vvvv to handle midi input and send OSC commands to GLMixer.

I ran into some issues that I would like to see done differently in vimix. I'm sorry for not being super specific with this feedback, it was a while ago now, but here's a little list:

  • The documentation wasn't always 100% correct.
  • The OSC response containing the address of a source had the address of the source as the address of the response, making it quite hard to deal with. Maybe this is due to some limitation of strings in OSC, but I had to do some special code to work around this.
  • Would have liked the option to have relative adjustments to everything, so I don't have to handle that on the MIDI side.
  • Would have liked more things exposed: jump x seconds forward or backward in a clip, change the layering, and to transform sources more flexibly (don't remember what it was exactly, but after some effort I found it impossible to transform sources with my controller in a sane way).

In my opinion it would be amazing if every functionality was exposed through OSC. This means the user has total freedom for how to control vimix through midi or automation or whatever.

When I used GLMixer I felt like I was very limited when using only mouse and keyboard, technically I could perform all the same actions, but when I want to crossfade between two sources while also modulating an effect, well, that's just not possible with a mouse and keyboard. In this sense I feel like vimix is meant to be used with a midi controller. But I also understand and support not wanting to add that support into the application itself since having an OSC interface is less work and more flexible.

The OSC interface is very important to me and I would be very happy if it was improved over GLMixer.

from vimix.

lukors avatar lukors commented on June 8, 2024

This sounds like a great plan! :D

from vimix.

lukors avatar lukors commented on June 8, 2024

I've got a couple questions.

  1. With the API, that means we don't need to send OSC commands, but can instead directly interface with vimix?
  2. How would a developer write software for a specific controller they have? Will it be through like a plugin system?

I'm a big fan of the headless instance idea!

from vimix.

lupin3rd avatar lupin3rd commented on June 8, 2024

Hi Bruno! I begin to test OSC with puredata and works fine :-)
I suggest:

  • add an attribute to jump to video player timing position;
  • source's indexes always change (if i load a new video source) then i need an OSC message from Vimix when a new source is added to update indexes;

Thank you!

from vimix.

brunoherbelin avatar brunoherbelin commented on June 8, 2024

Check release 0.6.3 : the sources are added with incremental index... !

For the video player, would it be enough to add a seek attribute ?

 /vimix/current/seek f 0.4

from 0 (start) to 1 (full lenght) ?

from vimix.

lupin3rd avatar lupin3rd commented on June 8, 2024

Sure!
How much floating point precision?

from vimix.

Related Issues (20)

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.