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

Reply
 
Thread Tools Display Modes
Old 09-18-2022, 02:36 AM   #1
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default Allow to use specific memory entries for FX IO

That was requested directly to Justin before, but it seems it require some discussiion.

I'm worked a lot on concept of modular FX chain view, I also saw Sexan doing pretty same thing but more UI friendly. What I noticed is some things are impossible because main paradigm of "straight" flow of REAPER FX chain. That means I can't do, for example, feedback loops without custom JSFX with gmem routing inside (I mean sharing signal between slots). Also even if feedback will be somehow implemented eventually, this doesn`t solve complex routing or does it incredibly complex to handle. At the same time, I want FX chain to be visually clear and NOT be cluttered with lots of JSFX utilities (JSFX that handle gmem routing IO flow) on the UI side.

So my concept is: when building FX chain in modular fashion from the script UI,
  • disable all normal signal flow inside FX chain (clear all regular pin mappings in all plugins in the FX chain) and use gmem phantom routing (available from API but no nesessary available from UI) - kinda turn FX chain into signal-flow-direction-free mode
  • have JSFX or some other method at the end of the chain managing this routing, also editable by the script (so it doesn`t require from script to be running permanently). This JSFX can also include buildin tools like VCAs, LFO etc, controlled from hardware as well

To get this working I imagine following implementation:
  • ability to natively receive/send audio/MIDI from/to some gmem idx memory entry (namespace could be specific per-project FX gmem namespace, track GUID + FX GUID for example)
  • ability to natively receive parameter modulation from some gmem idx memory entry
  • Overview/edit such routing options mainly from the API and from IO pins window, just like normal pin mappings setup (image attached).
  • ability to change and reinitialise code for specific JSFX on the fly from ReaScript, just like what we do from JSFX IDE. In my case I would take JSFX code from EXT section of track chunk
  • that come from previous item - to have an ability to load custom JSFX code from its parent track state chunk by GUID (of course the code should be editable/removeable from API).

If using gmem (or specific variable memory scope for to not be collapsed with existing gmem values) this would open following possibilies:
  • build a true-modular view just like VCV rack / NI Reaktor, so users can built or use existed custom JSFX or VST modules: VCAs, LFOs, oscillators, ReaRack stuff. In this case it can be not only single primitive feedback routing but far more complex signal flow chains (controll by script-generated JSFX code), connecting wires back and forth.
  • customise modulation between plugin parameters (scale, offset, limit then) or CV
  • generate some complex smart parameter links between different plugins with custom formula, not just offset+scale
    So in short, that opens a whole new world of routing possibilities inside the FX chain (or further - per project).


Basic UI flow I imagine
  • script engine: setup gmem mappings in the FX chain plugins,
  • script GUI: interpret all FX as blocks. When user drop wire to create connection...
  • ... script engine: generates and reinitialize code of control JSFX). Note: that would be per-chain JSFX code, so the code should be stored somewhere in the RPP chunk, specifically TrackStateChunk.
  • side note: so if user closes the lua script, everything still works even if script not installed on other machine, so lua script doesn't do anything with signal, only signal flow setup (gmem routing and JSFX code). All incoming/outcoming data handled by control JSFX.


Last edited by mpl; 02-24-2024 at 12:21 AM.
mpl is offline   Reply With Quote
Old 09-18-2022, 02:57 AM   #2
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Quote:
Originally Posted by mpl View Post
I can't do, for example, feedback loops without custom JSFX with gmem routing inside
Hmm.

I doubt that feedback loops are technically doable without introducing major quirks (with Reaper or any other DAW).

gmem phantom routing does not take care of PDC (unless you explicitly do that by programming). Of course in the end PDC just calculates a number for a track that is then used by Reaper to manage the inter-thread synchronicity. But the pin routing within a track needs to be acknowledged on the fly.

In the Prerelease forum Cockos shows that they re working on "internal pin management overhaul for future extension". They did not state what this is supposed to means (I assume some kind of meta-plugin handling on the way). But IMHO it would make sense to wait with enhancements of their concepts until they are obvious.

-Michael

Last edited by mschnell; 09-19-2022 at 01:47 PM.
mschnell is online now   Reply With Quote
Old 09-19-2022, 07:33 AM   #3
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Since it is possible to get PDC from API, yes, I can take care of it.

Feedback routing works pretty well with custom jsfx with current version of Reaper. What I suggest is to make signal flow more extendable than it is, from developer side. I understand there can be couple of problems (unable to use oversampling, care of pdc), but that seem minor things to me comparing with count of possibilities this feature can potentially bring.

Last edited by mpl; 10-01-2022 at 01:15 PM.
mpl is offline   Reply With Quote
Old 10-30-2022, 01:39 PM   #4
AZpercussion
Human being with feelings
 
Join Date: Oct 2019
Location: Moscow / Tbilisi
Posts: 909
Default

Great idea! Any improvements in gmem area for audio use are very welcome.
And midi too, yeah)
AZpercussion is offline   Reply With Quote
Old 01-30-2023, 01:51 AM   #5
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

To do feedback routing within a track (via gmem) you would need to consider, that the plugins within the loop will impose a delay of at least one sample block, as the lower are processed after the upper, and audio (and Midi) is passed in chunks of sample blocks.

Hence you need to create an appropriate delay (and compensate that by stating an appropriate PDC) within which the "upper" parts of the loop can work.

Might be possible but might impose weird side effects.

-Michael
mschnell is online now   Reply With Quote
Old 03-27-2023, 03:24 AM   #6
UknownSource
Human being with feelings
 
UknownSource's Avatar
 
Join Date: May 2020
Posts: 434
Default

I don't understand the title and lots of other things, I hope that the devs do, +1 if this will allow you or sexan to create a wiring diagram view for the fx chains.
__________________
"FX-Container"
UknownSource is offline   Reply With Quote
Old 09-02-2023, 02:26 AM   #7
Reflected
Human being with feelings
 
Reflected's Avatar
 
Join Date: Jul 2009
Posts: 3,294
Default

Justin/Schwa
please show us some light here.
Reflected is offline   Reply With Quote
Old 11-24-2023, 07:36 PM   #8
bywaterandblood
Human being with feelings
 
Join Date: Jul 2019
Posts: 39
Default

I noticed on this post (https://forum.cockos.com/showthread.php?t=209768&page=3) that WiredFrame has been removed from the ReaPack repo. Is there anything else out there to replace it?

I was looking at a plugin called SigMod by Nugen Audio. Looks like it would do what I am looking for, but I was hoping there was a script for Reaper out there already.
bywaterandblood is offline   Reply With Quote
Old 02-24-2024, 12:21 AM   #9
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Edited implementation section a bit for better consistency.
mpl is offline   Reply With Quote
Old 02-24-2024, 07:18 AM   #10
Vagelis
Human being with feelings
 
Vagelis's Avatar
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,795
Default

Omg mpl I just saw this FR, I'm also a big modular user almost two decades and I would LOVE if it was possible to build a modular view for fx/modulations. This is one of the things I'm missing in reaper and have created a request about a better PM system with a view similar to track wiring.

1.000.000 YES for this to happen, so the devs could give this man what he needs to build a modular view, which could open a lot of possibilities for sound design and with a better signal flow.
Vagelis 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 01:57 AM.


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