So what are PIPs again?

You’ve probably heard this a million times but I still can’t find a good answer:

  • The “standard” way of creating a small-to-medium sized plugin is just doing it via PluginProcessor and PluginEditor, right?
  • Example projects always come in the form of a PIP, so just Main.cpp + metadata, right?

If Processor and Editor files are THE standard, then why give example plugins in form of PIPs?

From what I understand, converting a PIP to the aforementioned standard is easy enough, though still not trivial. Why not give us a tool for converting PIPs to regular projects automatically? Or give us a choice of downloading a regular project instead of a PIP?
Call me an idiot, but the Main vs Processor/Editor thing boggles my mind and renders me unable to learn the boilerplate needed for the fun DSP stuff. Weird choice of abstraction.

If there IS a way of converting those files that I’ve been missing, do inform me. I feel like an idiot.

If I recall right, the PIP system was developed mainly as a way to manage with the Juce Git repo better. (It was getting too large or something when the Juce examples were stored as full blown projects.) Unfortunately this leads to the weird code structure where all the plugin code is in a single header file, which is not very friendly/understandable for newcomers.

The main.cpp in the PIPs is there just to force the compiler and linker to actually build the code.

You should not consider the PIPs any kind of best practice for actual development and you should instead use the full project templates for your own projects. So no distinction between “small” and “large” plugins, you should probably use the full PluginProcessor.h/.cpp + PluginEditor.h/PluginEditor.cpp thing.