If you want to make a custom GUI in Plug'n Script, you should learn this language. It's both fun and tricky.
KUIML was developed by Blue Cat Audio for their plugins. It's based on XML, so it has much in common with HTML used for web-development. It has evolved a lot since the first version released in 2006, and while writing this tutorial in mid-2020 there's version 2.6 already. Looking at version history it's easy to see how and why new features arrived, synchronized with releases of new Blue Cat plugins.
Though it might feel limited sometimes and is sometimes rather tricky, it has a lot of advantages:
- You get cross-platform GUIs easily (both Windows and Mac)
- Much quicker and more fun than raw C++ GUI development
- Dynamic layout engine: it can resize on the fly, add and remove elements, support drag-and-drop, etc.
- Flexible items positioning, nice multi-layered layout engine
- Built-in elements for knobs, sliders, switches, meters, popup menus, etc. Use factory graphics shipped with Plug'n Script or add your own graphics.
- A lot of things are already there: like persistent parameters, saving and loading of presets, undo-redo, GUI scaling, solid data model, events, actions, keyboard and mouse events, svg support, loading fonts, free drawing on CANVAS, basic Open GL renderer, etc.
- Blue Cat Audio support can help you on their forum
- The list goes on and on, and KUIML gets better and better year by year.
However, there are some disadvantages as well.
- When exporting a plugin, the GUI XML files be examined and edited by users.
- Some KUIML parameters are not changeable on-the-fly. Scripts in GUI cannot access some attributes.
- If something is not there, you cannot write a C++ addon to make it.
- (yet) Lack of examples and not very big community of users.
With help of AngelScript, which is used a scripting addon for KUIML (since version 2), you can modify skin "on the fly", load and save files, read keyboard and mouse, use drawing API (based on Cairo), and do much much more.
The official KUIML manual is available on the Blue Cat Audio site.
However, we hope our upcoming tutorial will give you some great examples on how modern KUIML works and how you can make very complex and good looking interfaces with it.
So, join our Facebook Group and stay tuned.