brunoherbelin / vimix

Live Video Mixer
GNU General Public License v3.0
260 stars 25 forks source link

absolute OSC messages #48

Closed polymorphicengine closed 1 year ago

polymorphicengine commented 1 year ago

Hello, I hope it's ok if I make a feature request :-)

Would it be possible to instead of (or additionally to) having the osc messeges for grab, resize and turn do an action with a relative effect (i.e. move the image to +1 x +1 y relative to the current postion etc.), indicating the absolut x y position / absolute size / absolute angle of the source, for example

/vimix/current/grabAbs ff 200 300 to set the upper right corner of the source at (200,300).

what would be really cool aswell is to be able to not only pause/unpause via OSC but also set the frame of the current source.

brunoherbelin commented 1 year ago

Yes of course you are welcome to request features :) ! Thanks for making vimix better!

I suggest the following to set absolute geometry coordinates:

/vimix/current/position ff 0.1 0.4
/vimix/current/scale ff 1.1 1.0
/vimix/current/angle f 3.1416

NB: coordinates cannot be in pixels, will be in coordinate system of vimix.

The control of media player is more problematic because not every source can be seeked / time controlled. There will be no way to know if a seek command is executed, or possible to execute... But well, could be acceptable.. Example command to seek media to 5.2s time:

/vimix/current/seek f 5.2

Thanks for indicating if the above would correspond to your needs. I would also be curious to know which system you use to send OSC messages and coordinate with vimix :)

polymorphicengine commented 1 year ago

wow thanks for your quick response, all of the above sounds perfect (even with the restriction of seek!)

I'm using TidalCycles, so I plan to use vimix to live code visuals and music at the same time!

brunoherbelin commented 1 year ago

Feature has been implemented and documented : https://github.com/brunoherbelin/vimix/wiki/Open-Sound-Control-API

It will be in next release but is already available in linux snap 'latest/edge' or if you compile from source.

polymorphicengine commented 1 year ago

amazing, thanks so much!