Advice on GUI toolkits

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Re: Advice on GUI toolkits

Post by Lyberta »

tramp wrote:However, when you "design" a UI you cant be anyone's darling, as not only preferences differ, as well, as you point out here, people may have different stages of accessibility problems.
Yes, the idea is when you design a UI, your responsibilities are mostly general layout. Colors and fonts sizes are the user preferences.
sadko4u wrote:there are suddenly appearing green, red and other pixels that have no relation to the background and the font color.
That is subpixel antialiasing, only one of several potential algorithms. There are algorithms that don't produce such colors. Different algorithms work better on different monitors.
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Advice on GUI toolkits

Post by tramp »

Lyberta wrote:Yes, the idea is when you design a UI, your responsibilities are mostly general layout. Colors and fonts sizes are the user preferences.
Colours and font sizes been part of the layout. As more complex a UI gets, as more influence has the font size.
Just check this site here, with a relative u-complex UI, linuxmusicians.com, how many different font sizes been in use here? Bold and italian settings, colours, etc. it's all part of the UI design.
On the road again.
User avatar
Michael Willis
Established Member
Posts: 1451
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Has thanked: 69 times
Been thanked: 163 times
Contact:

Re: Advice on GUI toolkits

Post by Michael Willis »

Well, this thread has just about scared me away from trying to develop a user interface for my new plugin, maybe I'll just leave it to the plugin host to present, since all of the parameters are just numeric anyway and can easily be represented as sliders.
CrocoDuck
Established Member
Posts: 1133
Joined: Sat May 05, 2012 6:12 pm
Been thanked: 17 times

Re: Advice on GUI toolkits

Post by CrocoDuck »

Michael Willis wrote:Well, this thread has just about scared me away from trying to develop a user interface for my new plugin, maybe I'll just leave it to the plugin host to present, since all of the parameters are just numeric anyway and can easily be represented as sliders.
For the time being I will just have a deeper look at what developing a GUI actually means, as I did it only by using toy scripting/programming languages.

However, I think you should develop your GUI, if you feel like you want it. You can always make it fallback to the host (I think) and you can collect the feedback of users to make it better on future releases.
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: Advice on GUI toolkits

Post by ssj71 »

Michael Willis wrote:Well, this thread has just about scared me away from trying to develop a user interface for my new plugin, maybe I'll just leave it to the plugin host to present, since all of the parameters are just numeric anyway and can easily be represented as sliders.
IMHO and experience, people talk a ton about a gui: how it should and shouldn't be, whats pretty, whats intuitive etc. Its nearly all subjective. Objective design criteria are things like the number of clicks to accomplish a task. There aren't many objective aspects to GUI design. Just make your gui the way you like it and be proud of it. Somebody's bound to think its ugly or stupid and others will be inspired by it.

But maybe that attitude is how my plugins became so infamous ;)
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Advice on GUI toolkits

Post by tramp »

ssj71 wrote:Just make your gui the way you like it and be proud of it. Somebody's bound to think its ugly or stupid and others will be inspired by it.
Exact, that's the way it is. :)
On the road again.
User avatar
sadko4u
Established Member
Posts: 986
Joined: Mon Sep 28, 2015 9:03 pm
Has thanked: 2 times
Been thanked: 359 times

Re: Advice on GUI toolkits

Post by sadko4u »

tramp wrote:
ssj71 wrote:Just make your gui the way you like it and be proud of it. Somebody's bound to think its ugly or stupid and others will be inspired by it.
Exact, that's the way it is. :)
I think the UI should be so you can easy solve the problem that the plugin is mainly targeted.
The availability of the UI is very important because the huge amount of information people are receiving by vision. And correctly designed UI allows to understand much better what happens when rotating different knobs.
LSP (Linux Studio Plugins) Developer and Maintainer.
User avatar
sysrqer
Established Member
Posts: 2519
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 319 times
Been thanked: 148 times
Contact:

Re: Advice on GUI toolkits

Post by sysrqer »

As a non-programmer/designer I would disagree that it's entirely subjective, there are a fair few obvious objectives with any UI (clarity, ease of navigation and use etc). I understand this view though, you will never please everyone but it leads to a dangerous position if you're not willing to take feedback. One example of this is Ardour - it by no means has a bad UI but there are definitely places it could be improved or modernised but it's almost a mortal sin to suggest changes on their form/tracker, no matter how constructive they are. I think it's important to be receptive to feedback and opinions, I can imagine designing a UI for your plugin to being akin to mixing and mastering your own music, it must be very easy to lose any objectivity.
Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Re: Advice on GUI toolkits

Post by Lyberta »

tramp wrote:Colours and font sizes been part of the layout. As more complex a UI gets, as more influence has the font size.
Just check this site here, with a relative u-complex UI, linuxmusicians.com, how many different font sizes been in use here? Bold and italian settings, colours, etc. it's all part of the UI design.
Yeah, so much. Here's how the site looks on my dad's PC:
Screenshot at 2017-11-17 13-55-46.png
Screenshot at 2017-11-17 13-55-46.png (156.46 KiB) Viewed 1077 times
Screenshot at 2017-11-17 13-54-18.png
Screenshot at 2017-11-17 13-54-18.png (194.68 KiB) Viewed 1077 times
tramp
Established Member
Posts: 2335
Joined: Mon Jul 01, 2013 8:13 am
Has thanked: 9 times
Been thanked: 454 times

Re: Advice on GUI toolkits

Post by tramp »

sysrqer wrote: I think it's important to be receptive to feedback and opinions,
Yes, but while it is hard to get feedback for a Linux plugins GUI in general, it's even harder to get feedback for a non-exsist GUI. :wink:
So no progress will take place.
On the road again.
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: Advice on GUI toolkits

Post by ssj71 »

sysrqer wrote:One example of this is Ardour - it by no means has a bad UI but there are definitely places it could be improved or modernised but it's almost a mortal sin to suggest changes on their form/tracker, no matter how constructive they are.
IMO they almost never receive constructive suggestions, but very frequent unhelpful comments like "the UI looks like crap, how about modernizing it?" I can understand becoming bristly about that. In such conversations I've seen them at least claim to accept objective suggestions backed by good workflow centered arguments such as, "Button X should be bigger as it will be pressed 10x more often than those surrounding it." or, "The color of X should have higher contrast as the user needs to notice when it changes." The latter is kinda irrelavent now that they have color theming. I say they claim that but I've never seen such a constructive suggestion made so I don't really know if that works or not. :)

Sorry, I get defensive about ardour. I love that program so much and I think it looks ace. But I suppose some people think ableton live looks good. :)

EDIT: a bit old, but I was curious and found this: https://www.gearslutz.com/board/electro ... g-daw.html :lol:
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
User avatar
Michael Willis
Established Member
Posts: 1451
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Has thanked: 69 times
Been thanked: 163 times
Contact:

Re: Advice on GUI toolkits

Post by Michael Willis »

ssj71 wrote: EDIT: a bit old, but I was curious and found this: https://www.gearslutz.com/board/electro ... g-daw.html :lol:
Ha! The votes are so spread out on that as if to say people like most what they are already using.
fundamental
Established Member
Posts: 165
Joined: Thu Nov 07, 2013 1:19 pm
Been thanked: 1 time

Re: Advice on GUI toolkits

Post by fundamental »

One general on topic comment as per the original question

However, I would also appreciate the ability to make good scientific data visualization, as I have in mind mostly measurement programs.

I never did any GUI programming outside visual basic (more than 10 years ago) and Matlab, so I guess my questions are:

How reasonable is for a beginner to get to a program with the feeling above?
GTK, TK, QT, wxWidgets all look pretty different "out of the box" from that. Are there toolkits that can make easier to get to that result?
What do you think is the best thing do to for a beginner (in terms of learning, regardless of this particular GUI look 'n' feel goal)?
It will be a lot of work to get a specific look & feel which isn't exactly what a given GUI toolkit already offers (based upon the background you mention I would say estimate the time you'd expect and then multiply it by 20x). If you're willing to compromise and go with existing options (as have been mentioned in the thread) you will be able to get something done much faster. Otherwise you're stuck implementing a lot of event handling, a ton of drawing routines, and stuck researching a lot of moderately interesting "how should the user reasonably interact with XYZ". I wouldn't say that any of the standard toolkits that you mention are going to make it easy to get to the result that you want, but they will provide some of the base functionality (assuming this isn't the plugin use case which has requirements which conflict with the more popular toolkits).

Once you have a toolkit you're going to end up needing to override a lot of the layout routines and drawing routines to get a satisfactory result. Otherwise you end up in a spot that many open source tools end up in. That is to say that you get a collection of widgets which do the intended task and sorta look like the intended result, but they don't visually all go together. Getting the polish you want is the slow moving slog with the modern designs you point out. This might sound a bit rambly/ranty, though I'm trying to convey part of the experience in trying to implement one of said modern GUIs for ZynAddSubFX's Zyn-Fusion.

As per what the best thing to do, I'd likely make something simple in Qt (fairly popular) or fltk (unpopular, but a simpler model) to get back used to the mental models involved with making GUIs. From there I would investigate the more esoteric (for better or worse) suggestions within this thread (and other linux-audio software) as they will lend themselves more easily to the data visualization and embedded environments relevant to audio work.


Now for a comment on where the thread has ended up:
IMO they almost never receive constructive suggestions, but very frequent unhelpful comments like "the UI looks like crap, how about modernizing it?"
I'm not too surprised by those sorts of comments as it isn't easy to know why any of us have a particular opinion (in the sense of attributing it to a series of discrete positive and negative items). I would expect people to regularly have a feeling of "that was more difficult than I expected" and to negatively think about the tool in question. Additionally when it comes to GUIs there's a lot of little things which come together for polish that a user is unlikely to note directly, but it will still give them a negative impression none the less. In the case of ardour, look closely at a screenshot of the UI (e.g. https://ardour.org/images/retina_no_plugs2.png ). From here we can see:
- The dB scale is a smaller hard to read font
- The Iso/Lock buttons are left justified when everything else appears to be centered
- The Group/Strip list headers are missing some padding or shouldn't be left justified
- Plugin parameter text is frequently too long
- The green bars linking plugins appears to be 1px too high
- in strips "E Gtr L" has another letter clipping through
- different font antialiasing looks like it exists within the waveform timeline than the labels to the left
- the buttons in the top left of the main window appear to be vectorized where as the lower icon buttons appear to use low res images
- the buttons in the top left of the main window look like they were designed to be square rather than rectangular
- The text for Tempo/Meter are way too small
- There are multiple dropdown indicators in the row that has "Slide, Smart, Playhead"
- It looks like there may be different a radius for different button types
- In the plugin parameter sliders the "off" color is hard to distinguish from the background
- The scrollbar appears to be a toolkit default and looks too chunky compared to the rest of the elements

Note that the above comments are based upon just looking at a screenshot and ignoring any of the issues about usability or any issues that arise with various interactions. I think ardour is an impressive piece of software, but from a user who isn't interested in design these small issues pile up until it's just a general sense of "just make it better" and it's hard to express why that opinion is there.
ZynAddSubFX maintainer
CrocoDuck
Established Member
Posts: 1133
Joined: Sat May 05, 2012 6:12 pm
Been thanked: 17 times

Re: Advice on GUI toolkits

Post by CrocoDuck »

fundamental wrote:Otherwise you're stuck implementing a lot of event handling, a ton of drawing routines, and stuck researching a lot of moderately interesting "how should the user reasonably interact with XYZ".
I am quite positive I want to avoid that. In fact, I was wondering whether there is some toolkit that at least makes 2D plots straightforward. This is the sort of stuff I am used to, and I would like to retain the capability of doing most of the plots in the examples, but without having to break my brains. Maybe I am best to look into Qt first.
Last edited by CrocoDuck on Sat Nov 18, 2017 10:41 am, edited 1 time in total.
ventosus
Established Member
Posts: 33
Joined: Sat Jun 27, 2015 6:29 pm
Been thanked: 1 time
Contact:

Re: Advice on GUI toolkits

Post by ventosus »

Do you need user input?
As you seem mainly wanting to do visualizations and ploting, you may want to look into a vector graphics library.

Cairo [1] comes to mind. There are also plotting libraries [2] based on the latter.

[1] https://cairographics.org/
[2] https://kristaps.bsd.lv/kplot/
Post Reply