Scale/size issue with plugin window (very very small) from Plugin Host example

No it hasn’t been committed to the public branch of JUCE yet, but it’s on it’s way…

1 Like


Ed, using Projucer 5.4.3 and creating AU, VST3, and AAX plugins as part of an Advanced Class by OUTPUT. It has been suggested that AffineTransform be used. I’ve read this thread and would like to know the current best practice for this on Windows 10 and macOS platforms. Using Live 10.1 and ProTools 2018 Dev Edition as Hosts for JUCE created Plugins. XCode 10 and Visual Studio 2017. Please advise.

No need for affine transforms on Windows or macOS, the native scale factor of the OS will be used.

So there is no dynamic sizing of a plugin?
I had asked the instructor about querying the system for default Text Sizes and affine transform was suggested. What is the best practice besides just choosing a font of say 12 pt which can seem very small for some displays. Is there a Tutorial on this? Thanks.

What do you mean by this? The plug-in will use the scale factor that the user has set for the display, so you shouldn’t need to worry about dynamically changing the text size as it’ll be scaled to match the display.

If the User Experience was that simple, I’d think Live would not use Scaling. I don’t want to create one of those plugins that looks very tiny on Retina or other high resolution displays. 12 pt Helvetica looks pretty small. So put it at 14 pt and it can still appear small. I guess it’s not a good idea then to use any raster graphics for rotary sliders.

Are you talking about this setting?
I think this is purely either for people who have great eyesight/are close to their display and would prefer more onscreen at a time (< 100%) or for the opposite when going >100% will make their life easier.

I don’t want to create one of those plugins that looks very tiny on Retina or other high resolution displays

You don’t need to worry about such things, the plugins I have made with JUCE stay the same relative size on HiDPI displays, just with more resolution. Saying that I added a preference that allows the user to choose Small/Medium/Large version of the UI, for exactly the reasons stated above, some users are happy with tiny UIs in order to get more of them on screen without getting in the way, others prefer huge UIs for whatever their reason may be.

Raster graphics for rotary is also not an issue.

One of my rotaries on a 4k screen :
Or on a standard HD screen :
As you can see, the 4k one just has twice the resolution. The source images I am using a much bigger and being scaled down to the correct size.

1 Like

That’s nice! That’d be a great Tutorial.
Do you create an Assets folder in Projucer and create a BinaryData resource in XCode and then dynamically set them, or do you require restarting the Plugin?
I was thinking that the S/M/L is a good idea but wasn’t sure how to do it efficiently. Perhaps just have 3 different Panel setups and dynamically set the process pointer?