XUIDesigner v0.2
Moderators: raboof, MattKingUSA, khz
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
XUIDesigner v0.2
This is the first (beta) release of XUIDesigner.
Provide a easy to use GUI generator tool to create LV2 plug bundles.
Control widgets could be created and moved freely around in the top Window, or, a grid could be displayed and widgets could snap to grid (left, right, Center) to order them easily. Control widgets could be grouped in a frame or a tab box and then the complete group could be moved to the final position in the Window. Any control widget could be replaced with a other control widget, so for example a Toggle Button could be replaced with a ComboBox, or a Knob could be replaced with a slider, or . . You could set the range for a controller, and it's default value, You could create enums for a ComboBox, . .
The project settings window allow to setup the specs (like Author name, URI, Audio/Midi ports, etc.) for your plugin. XUIDesigner save the bundle in a git repository format, contain a working LV2 plugin bundle with all needed resources (ttl files, converted C files from used images, etc.) and build files to build, install and run it. All you need to do to finish your plug is, implement your DSP part.
project page:
https://github.com/brummer10/XUiDesigner
Release:
https://github.com/brummer10/XUiDesigne ... s/tag/v0.2
regards
hermann
Provide a easy to use GUI generator tool to create LV2 plug bundles.
Control widgets could be created and moved freely around in the top Window, or, a grid could be displayed and widgets could snap to grid (left, right, Center) to order them easily. Control widgets could be grouped in a frame or a tab box and then the complete group could be moved to the final position in the Window. Any control widget could be replaced with a other control widget, so for example a Toggle Button could be replaced with a ComboBox, or a Knob could be replaced with a slider, or . . You could set the range for a controller, and it's default value, You could create enums for a ComboBox, . .
The project settings window allow to setup the specs (like Author name, URI, Audio/Midi ports, etc.) for your plugin. XUIDesigner save the bundle in a git repository format, contain a working LV2 plugin bundle with all needed resources (ttl files, converted C files from used images, etc.) and build files to build, install and run it. All you need to do to finish your plug is, implement your DSP part.
project page:
https://github.com/brummer10/XUiDesigner
Release:
https://github.com/brummer10/XUiDesigne ... s/tag/v0.2
regards
hermann
On the road again.
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
I hope it will be useful.
I've put some work in it, and now, in the git version we are able to create a UI-Bundle which is able to provide/replace a UI for a existing LV2 plug without any further editing needed. Just create, save, make and make install.
I've put some work in it, and now, in the git version we are able to create a UI-Bundle which is able to provide/replace a UI for a existing LV2 plug without any further editing needed. Just create, save, make and make install.
On the road again.
-
- Established Member
- Posts: 232
- Joined: Mon May 28, 2018 3:56 pm
- Has thanked: 9 times
- Been thanked: 14 times
Re: XUIDesigner v0.2
Brummer you are incredible! Always bringing incredible stuff. I definitely want to create my own plugins using already existing gx's. Just bundle them in one package.
Definitely checking it out
Thanks a bunch!
Definitely checking it out
Thanks a bunch!
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
Here is a little, working example I made for my own use:
It is plainly generated by XUiDesigner, I just load some images for the background and the knob, arrange the controller a little by drag n' drop and save the UI-Bundle. After install it (make && make install), it just works as if it comes with the LV2 Convolution Mono package.
It is plainly generated by XUiDesigner, I just load some images for the background and the knob, arrange the controller a little by drag n' drop and save the UI-Bundle. After install it (make && make install), it just works as if it comes with the LV2 Convolution Mono package.
On the road again.
Re: XUIDesigner v0.2
Just out of curiosity, does it scale the images according to the monitor display resolution? For example, if you use an 8K monitor, does it scale the images larger so that they aren't displayed as tiny controls you need tweezers to operate?
Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
True, it didn't have SVG support (for now, already had a look into nanosvg ), but you could scale any part of the UI when work in the XUiDesigner, and the resulting LV2 GUI is scalable as well during runtime. So, yes, the images will be scaled to any size you request.
On the road again.
Re: XUIDesigner v0.2
So you're saying that you have to take your target resolution into consideration during the design phase, and manually scale the controls then? After that, the controls don't scale based upon resolution?
If so, that could be a problem with useability if you want to make a GUI that can be operated on a standard VGA resolution, as well as a HD (4K or 8K) resolution monitor.
If so, that could be a problem with useability if you want to make a GUI that can be operated on a standard VGA resolution, as well as a HD (4K or 8K) resolution monitor.
Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
As I said, the GUI is full scalable, so you could shrink/expand it at runtime to your needs.j_e_f_f_g wrote: ↑Thu Oct 21, 2021 7:56 pm So you're saying that you have to take your target resolution into consideration during the design phase, and manually scale the controls then? After that, the controls don't scale based upon resolution?
If so, that could be a problem with useability if you want to make a GUI that can be operated on a standard VGA resolution, as well as a HD (4K or 8K) resolution monitor.
But you are right, this could be done better. So I've now implemented support for LV2_UI__scaleFactor, which will scale the initial plugin UI size to the default given scale factor from the desktop, when the host support that (Ardour does).
On the road again.
-
- Established Member
- Posts: 138
- Joined: Fri May 03, 2019 6:05 pm
- Has thanked: 29 times
- Been thanked: 61 times
Re: XUIDesigner v0.2
I think that @j_e_f_f_g wants to show the advantage of vectorized UIs (like .svg) over bitmap UIs. Yes, they are fully scalable. And still look good on extreme resolutions without getting pixelated or blurred. But it's a f***ing hard work to create skeuomorphic designs with it. From my POV, bitmap are an acceptable solution for the most scenarios. I also went this way with my B.Widgets.tramp wrote: ↑Fri Oct 22, 2021 4:38 am As I said, the GUI is full scalable, so you could shrink/expand it at runtime to your needs.
But you are right, this could be done better. So I've now implemented support for LV2_UI__scaleFactor, which will scale the initial plugin UI size to the default given scale factor from the desktop, when the host support that (Ardour does).
Re: XUIDesigner v0.2
Yes, vector-based graphics tend to scale more asthetically than bitmaps. But as you point out, they require lots more effort to implement. Frankly, I don't think the effort is worth it for Tramp's purposes. (ie Creating a small UI toolkit for LV2 plugins).advantage of vectorized UIs
I wasn't concerned about looks. It was all about useability. I'm fine with ugly controls that are easy to read and operate. (see BackupBand) But I can''t use a control that's so small I need a microscope just to determine its current state.
It sounds like tramp has already done what I was going to suggest - just shrink/stretch the bitmap, and damn the asthetics. Good enough. We're linux users. If we cared about looks over function, we'd be using Apple products.
Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
And, by the way, images are just one way to create the controllers, by default everything is drawn directly (double buffered), respective the scale factor. So, no bluer or pixelate when using the defaults.
When I use images, I tend to use big enough ones, so that they get shrink for default sizes, then when you decrease the size, they are still smaller then the orig size which helps a lot to avoid pixelating. Also, I think cairo does a good job in aspect-less resizing.
But still, when I'm in the mod I'll implement SVG support via nanosvg.
On the road again.
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
@sjaehn
I've a short look at BWidgets. Looks to me as if adding support for it in XUiDesigner will be fairly easy.
We just need to write a wrapper class and then could build the UI with BWidgets instead with libxputty.
Seems you've all aboard what is needed. Nice.
It was one of my goals to allow the use of different toolkits to build at least the plugin UI.
I've a short look at BWidgets. Looks to me as if adding support for it in XUiDesigner will be fairly easy.
We just need to write a wrapper class and then could build the UI with BWidgets instead with libxputty.
Seems you've all aboard what is needed. Nice.
It was one of my goals to allow the use of different toolkits to build at least the plugin UI.
On the road again.
-
- Established Member
- Posts: 138
- Joined: Fri May 03, 2019 6:05 pm
- Has thanked: 29 times
- Been thanked: 61 times
Re: XUIDesigner v0.2
Oh, I've never thought about this way. But yes, why not. Sounds rather easy. You aren't necessarily dependent on the TK you use.tramp wrote: ↑Fri Oct 22, 2021 1:25 pm @sjaehn
I've a short look at BWidgets. Looks to me as if adding support for it in XUiDesigner will be fairly easy.
We just need to write a wrapper class and then could build the UI with BWidgets instead with libxputty.
Seems you've all aboard what is needed. Nice.
It was one of my goals to allow the use of different toolkits to build at least the plugin UI.
I scheduled to take hands on B.Widgets within the next weeks. Although I use it for all my plugins, it still hasn't got an "official" API. This wasn't a problem yet as only I used it. So I'll do a break with tutorial video production within one of the next weeks have to make an official version. I think there won't be major changes in the core (Window, Widget, ...), but in some details (like themes).
Maybe also interesting for you to look at: RobTK (by x42), Redkite (by Iurie Nistor).
-
- Established Member
- Posts: 2347
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 466 times
Re: XUIDesigner v0.2
So SVG support is on it's way. I implemented nanosvg into libxputty to add support for SVG images and convert https://github.com/user1095108/cairowidget to C to implement a direct layer from SVG to cairo. Fortunately cairowidget is licensed under the " Unlicense License " so I could use it freely under the BSD 0 License. To allow the inclusion of SVG images into the compiled binary I implement a base64 wrapper. (will push all that shortly)
@sjaehn feel free to use this as well to implement SVG support for BWidgets.
@sjaehn feel free to use this as well to implement SVG support for BWidgets.
On the road again.