|
|
|
10-07-2020, 10:24 AM
|
#1
|
Human being with feelings
Join Date: May 2017
Location: Leipzig
Posts: 6,621
|
VideoProcessor&JSFX: variable that holds its fx-guid
I'm recently toying around with sending and receiving gmems between Lua,JSFX and VideoProcessor and I've run into a problem that I cannot solve:
I have multiple instances of a VideoProcessor with a code that displays text in the video-window. I managed to write the code to accept text from the outside. So if I have such a video-processor-script in an item, I can send the text to be displayed to it via gmem.
It works perfect if I have one instance of such a video-processor in my project, but it collides, if I have multiple ones.
For instance: I want every item has its own video-processor which I want to address individually to show individual text. For instance, item-take name and such.
But I currently have no chance to address them on an individual basis. If they share the same gmem, and I send my text to this gmem, they both will think that they need to alter their texts.
But I would prefer to send via Gmem a "Videoprocessor with fx-guid blabla, show this text. And if you are not videoprocessor with fx-guid, please ignore this command!".
So in the example above, I could send the text to the video-processor of take 1 by referencing its fx-guid, without affecting the videoprocessor of take 2.
The same problem could be for JSFX-related GMEM-stuff, so I would propose, that videoprocessor as well as JSFX get a string-variable, which holds its FX-guid. As Lua can find that one out already, this would be a great denominator for direct communication with certain FX via gmem, and I suppose, it should be easy to implement for you.
Edit:
My usecase is(you probably guess it) to enhance Reaper with proper video-fx-management via proper guis written in Lua, so Reaper is coming even closer to being a decent video-editing-suite as well.
So I could have a window that displays all video-fx of the currently clicked video-item being editable within the Lua-gui-window, as most video-editing-tools allow.
(this is a long-term-goal but the fx-guid in video-processor/jsfx would improve the technical basis for it by magnitudes.)
|
|
|
03-03-2021, 05:40 PM
|
#2
|
Human being with feelings
Join Date: May 2017
Location: Leipzig
Posts: 6,621
|
Bumpy McBumpface
|
|
|
03-08-2021, 12:36 PM
|
#3
|
Human being with feelings
Join Date: Nov 2013
Location: France
Posts: 181
|
A JSFX possible solution
I am not sure if this can help you, but I am working on a set of JSFX plugins that communicate together using gmem. There are various "slave" "Unit" types (like "players", "mixer", "MIDI device managers", etc), and a main plugin "Master" that sends commands to them.
You can dynamically add new Units, suppress some of them, and they dynamically manage to assign themselves various "slots" and identifications in gmem, so the "Master" plugin can send appropriate and specific commands to them using these slots.
Let me know if you think this can help you solving (a part of) your problem, and I will post extracts of these plugins.
|
|
|
04-17-2021, 07:47 AM
|
#4
|
Human being with feelings
Join Date: May 2017
Location: Leipzig
Posts: 6,621
|
Another approach maybe:
Having two sets of gmem.
1. global gmem(the current way)
2. fx-guid-wired gmems.
So I could attach a gmem, that can be only used by an FX with a certain guid.
gmem_attach(string gmemname, string fxguid)
And this fx-specific gmem could be read by just the fx with the associated guid.
This way, we could have e.g. multiple videoprocessors in a project, to which we could send individual values.
For instance, text processors. I could have multiple of them and send new text via gmem.
Currently, I could only send the text to all VideoProcessors who have the same gmem attached. But if I want to have multiple independent scrollers that can be individually updated, I have no chance to differentiate the texts.
So BIG SCROLLER would take the new text and small scroller would too.
If I could send gmems from ReaScript to just one of them using their guids, it would allow extreme flexibility.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 02:10 AM.
|