A recent thread pointed out an issue with the Juce Demo Plugin, in that it doesn’t handle automation correctly as an Audio Unit. The solution to this issue is pretty easy (you can read about it at http://www.rawmaterialsoftware.com/viewtopic.php?f=8&t=6640), but it points out that the demo plugin could use a few changes and additions to be a better base for plugin developers.
A few suggestions:
- Add beginChangeParamGesture() and endChangeParamGesture(), as described in the other thread, to handle automation.
- An example for how to handle presets in a cross platform manner would be awesome.
- Include a slider that has a range outside of the 0-1 scope, and show how to translate the range for the various plugin formats. VST and RTAS both require parameters to be in the 0.0-1.0 range, while Audio Units allow “real world” numbers. This is one of the more annoying aspects of cross platform development.
As an example, the existing demo could be updated to include a delay length parameter, in milliseconds, with the ability to choose different tempo subdivisions. The slider would show how ranges are translated from the 0-1 range to real world numbers and back, and the tempo control could make use of some other control (ComboBox, radio buttons, etc.) that would be helpful for plugin developers.
The above suggestions are fairly basic, but would have saved me a fair amount of work if they had been in the example code when I started. The more comprehensive of an example that is provided with Juce, the easier it is for a plugin developer to get up and running, which should result in more Juce developers.