i’ll offer a friendly counterpoint to @randy and say that i’ve found the latest versions of AudioUnit samples (v3) to be not so bad
https://developer.apple.com/library/content/samplecode/AudioUnitV3Example/Introduction/Intro.html
(that is, if you’re really interested in AudioUnits particularly and not targeting multiple platforms.)
though, i really wish there was an updated version that replaced all the objc with swift, which is now quite doable and a pretty nice way to work (IMHO). if you’re used to macOS and iOS it’s painless, otherwise sure its a bit of a steep climb.
but yeah JUCE is fine and certainly a great place to start. there is of course a free license (shows a splash graphic) that is good for evaluating whether you like its style or not.
i’d contest that it is a “standard for most plugin developers” though. the “standard” as i know it is to make your DSP kernel totally agnostic and nicely parameterized, and wrap it in native or cross-platform SDKs as needed or permitted by time / business goals. (if for example you want to target LV2 then juce is still a nonstarter.)
every large, cross-platform project i’ve done with juce, without fail, ends up the same way: at some point, there are just too many platform-specific tweaks that need to be made; the project-generation stuff needs to be frozen and forked into multiple native projects. i’ve thus learned to actually stay well away from using JUCE calls in core functionality (confining it to UI and wrapper duties.)
(some tedious details)
for example, on the latest one i found that a) JUCE’s low-level iOS audio support is pretty wonky - you can’t select input routes, let alone use multiple routes, toggling pre-processing has weird side effects, &c - and b) its support for custom delegates is pretty broken and it was very hard to integrate a JUCE app with test/provisioning tools like Hockey or Testflight.
android was even worse.
it’s not really the fault of the JUCE team - i think they have a basically impossible task, even with ROLIs resources and licensing income. it’s kind of hubristic to promise to do everything for everyone everywhere.
(randy, i noticed you seem to be moving away from JUCE for madronalib as well.)
(and wow, i’m out of it and did not know about the forking of iplug away from WDL! interesting. can’t really comment more since i haven’t seriously used it. curious to know if it works out for you)
anyway my 2c