plugdata-team / plugdata

Pure Data as a plugin, with a new GUI
https://plugdata.org
GNU General Public License v3.0
1.37k stars 60 forks source link

request, allow plugin export like camomile does #1647

Open porres opened 2 weeks ago

porres commented 2 weeks ago

how hard would this be?

alcomposer commented 1 week ago

Camomile does not export plugins. It allows the generation of plugins via command line scripts:

https://github.com/pierreguillot/Camomile/wiki/How-to-generate-plugins

There have been many discussions on plugdata discord about this. Below are a few notes about it:

1) User would need to download plugdata source 2) We could make a build script eg: ./plugdata-gen my_patch.pd -fmt:vst 3) All generated plugin patches would need to be open source (the pd file itself) as you are now generating a compiled binary with it, and that would take on our GPL license. 4) Locks out users from learning about PD, and patching (if they use the compiled binary) 5) Export from plugdata itself (as a compiled binary) is non-trivial.

That is my understanding. It is really up to @timothyschoen. There are other considerations such as do we have time to support this use case? As compiling issues are not uncommon, and any plugin generator is compiling, it will take time away from main development.

TL:DR it's not hard. But has ramifications for both the plugin maker, and us, and end users.

Further to this, any idea of a "player only" plugdata is something that would be counterproductive to people learning how to use puredata language.

And I personally don't think open projects should have editor and player apps. This is only necessary for proprietary paid software.

porres commented 1 week ago

User would need to download plugdata source

you mean the plugin user? so the plugin should be distributed with it?

anyway, plugdata's license is the same as in camomile, so I'm not sure what need to be different and why

All generated plugin patches would need to be open source (the pd file itself) as you are now generating a compiled binary with it, and that would take on our GPL license.

same with camomile, right?

Locks out users from learning about PD, and patching (if they use the compiled binary)

I think that is the point and advantage, provide a ready made download for users to play with that allows them to be completely oblivious to Pd.

alcomposer commented 1 week ago

you mean the plugin user? so the plugin should be distributed with it?

No, I mean the plugin maker would need to download the source to build the plugin, then distribute the binary. And cross compilation is not a real strong thing for all this, so they would need to do this and build for all 3 OS's if they want a cross platform plugin.

same with camomile, right?

Yes, but there are people that sell plugins as scripts already, so I'm not sure if they would want to open source their plugin scripts. What you make in plugdata / PD is your property. So if we already have people 'distributing, selling and making plugins' then I don't see what this would give us extra?

I think that is the point and advantage, provide a ready made download for users to play with that allows them to be completely oblivious to Pd.

I can't really comment on this. Sure? Anyone that really wants to do this could make a plugin with plugdata now with some C++ knowledge. It wouldn't take too much work to limit it to plugin-mode only, and autoload an included pd file.

Camomile is fantastic software, but it's also limited to generating plugins that the plugin-maker has to be responsible for somehow. There can be many many issues with building for the various platforms. Any update would mean all plugins would need to be rebuilt.

It does put quite a bit of burden onto the plugin maker, especially if that user is not interested or not in a position to dedicate time to learn about software development.

I do agree we should make this easier to achieve, but as for supporting it as a main feature aimed at an auto-plugin-maker audience? IDK.

One way to get this working well would be to somehow have a version of plugdata that allowed a user to clone the repo, place a PD file into a special folder, then commit that change. With build hooks already in place, that spits out their plugin in all available formats and architectures.

This way they wouldn't need to download / compile / distribute anything. And it would already be all open online.

porres commented 1 week ago

I'm not really targeting "plug-in makers", cause when you put it like that it seems to imply a specific niche and class of people...

More than a relevant group of people... I'm just thinking of 'weirdos in our community' like me :) who would like to offer some sort of open source 'Max for Live' devices for people who have no idea what MAX and Pd and stuff...

alcomposer commented 1 week ago

After reading more about Camomile, it looks like their approach is to distribute what they call a meta-plugin. Which is pre-compiled Camomile, which is injected via a script with the PD patch. It does look like there is a bit of involvement from the user to get this all working well.

However I do wonder if the Github solution could work well. It would still get you a plugin, but without any fuss other than uploading the PD files to github.

alcomposer commented 1 week ago

I'm not really targeting "plug-in makers", cause when you put it like that it seems to imply a specific niche and class of people...

Oh not really. Just people that 'want to make plugins' is all I mean.