Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

Reply
 
Thread Tools Display Modes
Old 10-07-2020, 10:24 AM   #1
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default 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.)
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 03-03-2021, 05:40 PM   #2
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Bumpy McBumpface
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 03-08-2021, 12:36 PM   #3
jack461
Human being with feelings
 
jack461's Avatar
 
Join Date: Nov 2013
Location: France
Posts: 181
Default 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.
jack461 is offline   Reply With Quote
Old 04-17-2021, 07:47 AM   #4
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

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.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:10 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.