Comments (11)
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.
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.
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.
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.
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.
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.
This sounds like a great plan! :D
from vimix.
I've got a couple questions.
- With the API, that means we don't need to send OSC commands, but can instead directly interface with vimix?
- 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.
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.
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.
Sure!
How much floating point precision?
from vimix.
Related Issues (20)
- build failure with gcc 13
- No element videoconvertscale for Ubuntu 22.04 build (gstreamer 1.20.3) HOT 3
- perspective distortion / correction HOT 3
- Error when trying to stream via shared memory shm HOT 1
- No macOS package for vimix 0.8.1 HOT 3
- Request: Text source HOT 5
- seek OSC message problem HOT 8
- why to clone to add Filter? HOT 6
- Luma key white HOT 4
- Error message death loop HOT 1
- free cropping in F2 view HOT 11
- pinpong loop bug in Ubuntu HOT 11
- capture rolldown growing HOT 11
- seek OSC message behavior HOT 4
- autoadaptive interface for small screen but high resolution! HOT 7
- Vimix frozen after 2/3 session load HOT 4
- Output window problem HOT 8
- Frei0r support HOT 2
- Only first virtual webcam shows up? HOT 6
- Order of sources is not saved HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vimix.