I've written a patch that I think other people will want to use on a commercial basis.
It's an offline audio processor, not real time.
How can I make my patch into an Audiosuite plugin or a standalone program?
-
Making a standalone program from a PD patch
-
@nuromantix......... Extended used to (0.41.4 and maybe later) allow you to bundle your patch and Pd into an app (only under osx)...... see here https://puredata.info/docs/faq/standalone but as Pd is open source and free it would still not be "protected" I think, and if it were that would probably withdraw your permission to use it (Pd) for commercial use.
For "Audiosuite" I think you need to join the AVID developer partner program, and then probably re-write your patch using their developer tools.....
David. -
Note that making money off of open source software and not contributing back to the code or community is highly frowned upon.
There is a saas that offers their proprietary compiler. You'd have to purchase licensing from them though if you wanted to use it commercially: enzien audio's Heavy.
You can embed libpd, which is pd without the GUI, inside your software.
You could implement some sort of copyright protection on a custom version of pd that only loads your patch. This would piss people off. Don't do that.
-
OK I don't want to upset people. I thought PD was just a programming language and you can use it as you like.
I would be happy to pay a royalty or whatever......
So I should re-write my program in C?
Unfortunately Heavy doesn't support quite a lot of PD objects and even making a standalone app on PD Extended is tricky because Extended doesn't support all the objects that are in newer versions of Vanilla..... -
Sorry, didn't mean to discourage you, its completely doable and within the BSD license. Its actually one of the points of the BSD license imo. It is, as you say, a language. I was just trying to emphasize that there are ways to do it nicely, or ways to do it that will infuriate everyone.
For example, I've seen where people are mad at enzein audio for even making their proprietary compiler. They offer it for free non commercially, but just having all that valuable code locked away irks some people. I think though, if you make money off of pd, you're likely to spend time making it better. Just find ways to help the community and you'll be fine.
I would use libpd. You don't have to rewrite your program in C, as libpd lets you just load the patch and run it. You have to make your own GUI to control it however. Go into the issues on libpd however; right now it doesn't support multiple instances because there are global variables, which is bad for AU/VSTs. You'd have to clean that up for plugins, but not for a standalone.
-
Thanks, everything seems to point to Libpd, I'll just have to try and get my head round it....
-
Can anyone recommend a place for a beginner to try to understand libpd?
I am pretty good with PD but never programmed in a "real" language, no idea how to start.
Maybe I should get a real programmer to help. -
There are a million ways to learn programming, and I have yet to be convinced there is a best way. Libpd currently has an API for C, Java, Objective-C, C++, Python, and C#. Definitely read the wiki on libpd's github.
Since you mentioned making plugins, I'd look into which languages the particular development kits use. Then I'd go over to r/learnprogramming on reddit to read some of their resources and ask around. Download some ebooks about the language you want to learn too. O'reilly media usually has a bunch for free.
There is a difference between knowing the syntax/paradigms of a language and actually knowing how to use it, so definitely try to do things as you learn.
I'd suggest C++, but thats just me.
-
I'm not sure it will conform to all your prerequesites, but to prototype a plugin for a daw, you could look up camomille : https://github.com/pierreguillot/Camomile
and find a way to package everything together, something like a camomille publisher. Camomille does support multiple instances as far as I know.for a offline processing via cli you could look this up : https://github.com/mgsx-dev/pd-offline
you just have to execute a few ruby commands in a console to make some offline processing or rendering.Those two links won't get you as far as you would like I guess, but they could definitely be interesting stuff to look at.
-
Heavy has released their source code afaik:
https://github.com/enzienaudio/heavy/tree/master/src