baconpaul / airwin2rack

Airwindows, Consolidated into a single Library, Rack Plugin and DAW Plugin
MIT License
262 stars 13 forks source link

Feature request: user plugin chains #148

Closed TubularCorpration closed 1 month ago

TubularCorpration commented 1 month ago

I'm really impressed by this already, and as a longtime Airwindows user it's breathing new life into a lot of Chris' more obscure plugins for me - the stuff I rarely if ever use simply because I'm not familiar enough with it to think of it during a project. Suddenly it's so much easier to browse for different plugins and do comparisons between similar plugins that I'm already finding things I either tried once and then forgot about before it might have been just the thing for a mix, or forgot about in the flood of new Airwindows releases, or abandoned for a newer version with a different enough sound that the old one is still useful.

Now what I keep coming back to is how handy it would be if instead of only being able to load a single plugin, you could build a chain of plugins with the ability to show or hide each parameter of each plugin in the chain (Kind of like effect racks in Ableton Live), and the ability to assign multiple parameter to a single metacontrol with independent minimum and maximum values for each parameter assigned to it. Metacontrols like this would be great for creative stuff, of course, but a big use case would also be gainstaging - for example, creating a unity-gain drive control for ToTape 6 that would increase the input gain and decrease the output simultaneously so you could drive the virtual tape harder without changing the gain structure of the entire downstream signal path would be simple to do but incredibly useful.

Those three features (chaining multiple Airwindows plugins within a single instance of Consolidated, showing or hiding individual parameters, and creating metacontrols) and the ability to save and load user chains as as simple JSON files that would appear in a new CHAINS category in the collections list, would be absolutely huge.

baconpaul commented 1 month ago

I'm really glad you like it! Thank you ro the kind words

Yes quite a few folks have asked for sort of an airwindows meta-plugin with routing and multiple effects and stuff. We've chosen to not do it for a couple of reasons

  1. This is really the place of the DAW or of VCV not of the plugin. And DAWs have better routing and configuration options in almost every case
  2. It's not easy to code
  3. The only compelling case for it which overcomes 1 is that you could share or build a librarymulti-effect settings which was daw-neutral, but we don't even have share-settings capabilities yet (#147 asks for that)
  4. Chris feels strongly internal busses and summing should be 64 bit and that makes it even a wee bit trickier (and more cpu expensive).

So we haven't done it

It's not a bad idea! And I factored the core library so that it could be used in lots of contexts (which is how we got the 4ms integration, the rack integration and the juce plugin already) so it is something one could code. But I don't think it's going to make my 2024 (or probably 2025) list.

That said, if an intrepid dev comes along and wants to design and implement an AirwindowsEffectsRackConsolidated, I would be more than happy to help her/him/them do that. A large amount of the hard code is done. But the details of making a working plugin always have lots of details in them.

TubularCorpration commented 1 month ago

Makes sense, I'd thought of those points myself but also thoght that having simple chaining self-contained in the Airwindows ecosystem would still be valuable because Chris' plugins are so uniquely suited to it. I wasn't thinking of anything beyond a single, linear chain of plugins with some macro controls because anything beyond that would definitely be better left to one of the existing products or Reaper scripts that do complex plugin routing really well.

What I DIDN'T think of was the internal bussing adding CPU overhead, and that really would mostly defeat the purpose of keeping it all contained in the consolidated plugin. As far as I'm concerned, added overhead would outweigh any advantage it might have had over using the DAW's own routing system or a third party solution.

The one situation where I still think it would be really useful would be in the standalone version, specifically for making a low-overhead, Airwindows-only standalone effects unit with a Raspberry Pi or similar without the added overhead of using a VST host. I doubt many people are planning to do that (I'm not) and it definitely wouldn't be worth devoting any development effort on features that would only be marginally helpful in one unlikely context.

baconpaul commented 1 month ago

Yeah so for embedded devices and things like the pi, not using a plugin at all and just going directly to the static library is a real option. I've thought about that a few times for my embedded-project-im-not-doing-yet.

oh one final note. If you want to save and share configurations across daws you can also use something like elements or bidule to host-in-host stuff.

Anyway thanks for offering the suggestion and hope you continue to enjoy chris' work and this package of it!

TubularCorpration commented 1 month ago

oh one final note. If you want to save and share configurations across daws you can also use something like elements or bidule to host-in-host stuff.

Yeah, I use DDMF Metaplugin and generic Reaper FX chains depending on my needs. Usually Reaper can do everything I need in terms of routing natively, especially since v7 released.

baconpaul commented 1 month ago

Oh ha I never would have guessed this request came from a reaper user! Yeah just use the reaper routing and save chains.