Custom look and feel for VST plugin

Hey i´m looking for a solid tutorial to get some custom knobs, slider etc in the plugin editor instead of the generic UI component from Juce. Any advice would be great !

Instead of looking for tutorials that might get lost on things I don’t want, I use the help reference, and gradually override the methods I think I might need by copying directly from juce_LookAndFeel_V4.cpp, instead of creating a new one from scratch

https://docs.juce.com/master/classLookAndFeel__V4.html

Each method draws or processes a different entity, so I modify them according to the needs that arise or just to test and understand how each thing works. Starting with changes such as color, dimensions, drawings, over time you can create your ideal component.

To start create a subclass LookAndFeel_V4 that you can activate for each component and its children with setDefaultLookAndFeel and sendLookAndFeelChange

thx , lets say i want to use a custom knob in png format, how do i include the binary of this image in the plugin editor and can draw it and make it rotate ?

unfortunately LookAndFeel does not have an image method for sliders, so you would have to create your own Slider subclass and override paint()

I don’t know what the ideal procedure is, but to insert an image you can do it easily from projucer, and later load it with:
Image knobImage = ImageCache::getFromMemory(BinaryData::knob_png, BinaryData::knob_pngSize); and to draw it in paint() g.drawImageAt(knobImage, 0, 0);

Although you override the paint method to draw the knob, you can still use some of the original drawing by calling the parent class Slider::paint(g) from your paint method. So you could draw the background with a single image and use lookAndFeel to draw the dial.

Its pretty easy to make a custom slider based around image transforms - a very simple example is the “EndlessSlider” we use in our PolarDesigner plugin to function as a trim control … I was pleasantly surprised with how painless it was to build this control …