protoplug
protoplug copied to clipboard
FR: make a GUI-less version
I find the embedded editor in protoplug too limited and hard to use, so I use an external editor anyway.
Also, when you have a working script, the editor isn't need anymore, so it would be nice to have a version of protoplug without the GUI. The plugin's parameters could still be edited through the generic parameter interface of the host. One would just need a way to specify the script to load. Maybe through program changes and a protoplug configuration where programs can be mapped to script files?
Here's a nice way of making an "external file mode" based on your idea, no configuration necessary:
- On startup, the plugin would scan the Lua effects folder (or generators folder respectively), and create its program list according to that, with one program per file.
- Protoplug would watch the currently loaded script and recompile it whenever the file is changed.
But keep in mind that in the current protoplug, the main script is never an external file: instead, it is saved into the host's project. I consider this to be important because it means that a given project will always sound the same and not become oddly different if a script file has been modified or updated (although includes or headers can change).
Still I like the idea of a lightweight version with no embedded code editor, based on the external file mode. I probably wouldn't make it completely GUI-less for several reasons (notably the whole custom codable GUI features, see the spectral filter and pitch distort examples), but it would be nice to use as all coding would be done in your own full-featured editor (and without involving some weird temporary file system).
Keeping both versions in the same code base would be the hard way, as it would require a lot of reorganization. The easy way would be to fork and start deleting large swathes of code. But I must say, right now my priority is rather making some cool effect and generator scripts.
Thanks for your comments! Just keep the idea in the back of your head :)
Hi,
I was just following this on the sideline, but decided to join in as well. How about simplifying the external editor-feature to:
- a 'reload'-button
The reason why i propose this is that i had exactly the same situation with reaJS (reaper's scripting plugin). On linux (wine) the editor behaved rather strange, so I write scripts using an external editor and just pressing the 'reload'-button.
And how about a 'jailed' protoplug runtime :
- during startup protoplug searches for existance of protoplug.ini
HINT crossplatform .ini- reader/writer class:
- https://gist.github.com/coderofsalvation/992e94bede165c61adef
- https://gist.github.com/coderofsalvation/ee1c2249bee6596066d7
The ini-file variables could decide whether to show the default gui, the host gui, or a .png file. Optionally load a list of patches etc.
I would be interested in a 'jailed' version to:
- to send standalone protoplug-patch(es) as a zip to a nontechnical user
- make the (displaying default gui or .png file is non-intimidating)
- allow people to sell their own plugins (with a 'made with protoplug' mention )
Basically a crossplatform synthedit without modular environment..just a hint my friend ;)
I like the idea of making distributable, self-contained plugins from one protoplug script. There is already an optional configuration file, ProtoplugFiles/prefs.xml. Right now it's only used for keyboard shortcut customization, but it could very well be used for more stuff. it's in XML, since JUCE already provides a great cross-platform XML reader.
Also agree about the reload button (maybe a menu item with keyboard shortcut) which would already be a good feature for anyone wanting to work with an external editor. And why not an "auto-reload" option in the menu to enable watching the last loaded file and automatically reload and recompile it when it changes.
PS: I just fixed the formatting in your comment which was borderline-unreadable because of the automatic mail-to-Github-comment conversion.
borderline-unreadable lol. Im going to re-use that genious phrase :)
Necroing this in case the code is out there and just not pushed or something, but I'm using protoplug in my system now as a "global" mic detection, and would also very much like a gui-less version.