brunoherbelin / vimix

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

/vimix/foo/correction OSC messages unresponsive #127

Closed gmschroeder closed 3 months ago

gmschroeder commented 4 months ago

Hey all, I cannot enable color correction from OSC in Pure Data. Tried

/vimix/all/correction /vimix/current/correction /vimix/sourceNumber/correction

/vimix//colorcorrection /vimix//colorcorrect

... everything in that ballpark I could think of. If I enable correction from the Vimix UI the color correction messages work.

How do I enable color correction with OSC messages? Can I enable color correction in sources by default?

Mac Sonoma Pd 0.54-1 Vimix 0.8.2-4-g4ded0d0

brunoherbelin commented 4 months ago

Hi ! So, two things to answer to your question:

  1. The binary version of vimix you use is not up to date, and the correction OSC tag was not supported yet.
  2. With the syntax you use, it would not work anyway as correction takes a value as argument (0 for OFF, 1 for ON)

First : I hear you and will release an updated OSX binary soon, which will support all latest OSC commands. In practice, not so many users so far have been reading the OSC documentation and were ahead of the releases ! :smile: You can always be up to date by compiling vimix from code.

Second, you can check in the Logs of vimix when an attribute is received or invalid; e.g.

 OSC: received '/vimix/current/correction f 1.00' from 127.0.0.1:58818

or

 OSC: Unknown attribute '/correction' for target IMG_1255.

Finally, to answer to your request of enabling color correction by default, I chose not to because the default of vimix should be to use the minimum resources as possible, avoiding any extra computation as possible. One could argue this behavior could be configured in the Settings: indeed, but I don't like when a software propose so many options in settings that they become confusing. Or maybe we could think of adding an extra 'extended' settings for user prefered behavior? could be discussed: other suggestions?

gmschroeder commented 4 months ago

1) ah-ha! 2) The markdown didn't show up the way I intended. I am using the same on/off messages I (successfully) use for play and pause, and formatting the same as the rest of the messages. Thanks for the tip on logs. If you're trying to simplify menus then I think turning off color correction is the right choice. If the OSC message works I can just enable color correction a few milliseconds after I create a new source. If someone is creating new sources from the GUI (like a new user with a middling/old computer) default disabled effects is probably the way to go.

Some of the color correction messages are transforming input to fields in ways I haven't been able to figure out. Should I put them here as I find weirdness in OSC? Should I wait to compile myself to report them? As for suggestions.. a) Options for transitions besides dissolve and fade to black. b) Syphon streaming, please! c) I'd like the software developers to make a UI choice. Do effects go in the filter and clone metaphor or in the player? c2) I know fre0ir etc. plugins is a lot of old abandoned software but I'd like either some curation from developers (things devs like that won't crash Vimix) or a straightforward way to install supported 3rd party plugins from inside the UI. d) Work over the player. I know it does more than loop, but I can't figure out how. When I do loop, the way one sets the loop points is impossible to do accurately.

brunoherbelin commented 4 months ago
  1. ah-ha!

Just uploaded a new binary for OSX Let me know if it works

2. The markdown didn't show up the way I intended.
   I am using the same on/off messages I (successfully) use for play and pause, and formatting the same as the rest of the messages. Thanks for the tip on logs.

good, should work then!

   If you're trying to simplify menus then I think turning off color correction is the right choice. If the OSC message works I can just enable color correction a few milliseconds after I create a new source. If someone is creating new sources from the GUI (like a new user with a middling/old computer) default disabled effects is probably the way to go.

yes, that's the idea. It was even originally envisioned to run vimix on NVidia Jetson Nano or Raspberry Pi...

Some of the color correction messages are transforming input to fields in ways I haven't been able to figure out. Should I put them here as I find weirdness in OSC? Should I wait to compile myself to report them?

not sure I understand, but yes, thanks for reporting these issues so i can fix them

As for suggestions.. a) Options for transitions besides dissolve and fade to black.

I am so not a fan of video transitions that I never worked on it... Could maybe be added for session transition view.

b) Syphon streaming, please!

Wasn't there a gstreamer syphon implementation that I saw some time ago? If you could dig it out it would make the integration in vimix easy.

c) I'd like the software developers to make a UI choice. Do effects go in the filter and clone metaphor or in the player?

I agree : I added the gstreamer fei0r effect for a user request : but it is an ugly hack. The generic way to do filters with GPU is the clone/filter.

c2) I know fre0ir etc. plugins is a lot of old abandoned software but I'd like either some curation from developers (things devs like that won't crash Vimix) or a straightforward way to install supported 3rd party plugins from inside the UI.

as far as there is gstreamer support, it is integrated in vimix. I don't remember if the OSX binary includes the frei0r plugins, but the Linux does.

d) Work over the player. I know it does more than loop, but I can't figure out how. When I do loop, the way one sets the loop points is impossible to do accurately.

Suggestions on how you would imagine the GUI are welcome.

gmschroeder commented 3 months ago

Looks great so far!

Posterize and Threshold were (I think) acting differently than I'd expect previously. Having Posterize values go -> 246(?), 245 ... 1 is a little inconvenient to map to a controller, but like ... that's how it works.

Any interest in a standardized format for transitions? There's a lot to explore and you've got a lot on your plate. It would be really fun to adapt some of the transitions from my elderly video mixer, or even just other video software.

Is this what you were talking about w/ syphon and gstreamer? This is the closest I could find. https://github.com/praxis-live/support/blob/master/docs/coding-video-gl.md

(My) Mac doesn't handle frei0r as simply as it sounds like your computer does. I used some in Pure Data's older video tools on mac and a very small percentage worked.

I'll stew over the video player. I really don't get the reasoning behind selecting the part of a timeline that DOESN'T play instead of the part that DOES play. Adding start/end point adjustment to the OSC API would be awesome. Now I just need to figure out the rest of the controls. :)

gmschroeder commented 3 months ago

Would some shadertoy transitions help? https://www.shadertoy.com/view/NdGfzG

brunoherbelin commented 3 months ago

Thanks for the constructive feedback!

Posterize and Threshold were (I think) acting differently than I'd expect previously. Having Posterize values go -> 246(?), 245 ... 1 is a little inconvenient to map to a controller, but like ... that's how it works.

well indeed, the value is the number of colors used to represent the image ; 'Full range' means RGB (ie. not posterized), then the slider goes down exponentially from 256 to 1 (because visual difference between high values is imperceptible, slider rapidly jumps from 255 to 244, etc.. but gives control between small values, e.g. from 5 to 4 colors is a big difference).

But true, these details are not documented anywhere : maybe I should add a category 'Color correction' in the Help..

Any interest in a standardized format for transitions? There's a lot to explore and you've got a lot on your plate. It would be really fun to adapt some of the transitions from my elderly video mixer, or even just other video software.

Okay, I am not fan of these geometric animations, but I could imagine to add the possibility of a special blending mode that does an 'Animation' (instead of classic color blending, like 'multiply', 'lighten only', etc.), i.e. as you bring the source in the center of the mixing circle, the transition is animated from 0 to 100%. Would that work for you ?

Is this what you were talking about w/ syphon and gstreamer? This is the closest I could find. https://github.com/praxis-live/support/blob/master/docs/coding-video-gl.md

nope, but I can't find it anymore neither : I remember seeing a gst source for syphon... maybe discontinued.

To be honest, I would prefer to implement in OSX the equivalent for 'virtual camera' that is now made for linux. It seems to be now possible with Core Media I/O : https://developer.apple.com/documentation/coremediaio I will investigate

(My) Mac doesn't handle frei0r as simply as it sounds like your computer does. I used some in Pure Data's older video tools on mac and a very small percentage worked.

This is why I agree with you that the hacked support of frei0r is not a good thing for vimix; it gives a wrong message that vimix integrates frei0r, while I do not want to do it fully and would rather expand the possibilities of GLSL shaders and filters.

I'll stew over the video player. I really don't get the reasoning behind selecting the part of a timeline that DOESN'T play instead of the part that DOES play. Adding start/end point adjustment to the OSC API would be awesome. Now I just need to figure out the rest of the controls. :)

The idea is to add 'holes' (dark areas) in the timeline. The other element is to draw fading curves. Well noted that it could be useful to add the OSC command to add these gaps.

gmschroeder commented 3 months ago

The different ways of manipulating alpha between sources would definitely be cool. I find myself missing options transitioning between .mix files - and quickly getting at the transitions that are there - more. This has drifted ways from a question about OSC implementation. Is there a better place to talk about how I can help?

brunoherbelin commented 3 months ago

Yep, we can start a discussion on how to improve transitions !

BTW, are you using the transition mode between mix session files like this :

https://github.com/brunoherbelin/vimix/assets/60393189/ce9e70d6-66b7-4e00-a94c-c4aa74275b34

Could be where to start for adding the transitions with visual effects

gmschroeder commented 3 months ago

Yep, that's where I'm doing it. That's the only place I miss transitions, tbh.