Advice on GUI toolkits

Programming applications for making music on Linux.

Moderators: khz, MattKingUSA

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

Re: Advice on GUI toolkits

Postby Lyberta » Thu Nov 16, 2017 2:39 pm

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: 1413
Joined: Mon Jul 01, 2013 8:13 am

Re: Advice on GUI toolkits

Postby tramp » Thu Nov 16, 2017 5:15 pm

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: 840
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Contact:

Re: Advice on GUI toolkits

Postby Michael Willis » Thu Nov 16, 2017 5:58 pm

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.

User avatar
CrocoDuck
Established Member
Posts: 1053
Joined: Sat May 05, 2012 6:12 pm
Contact:

Re: Advice on GUI toolkits

Postby CrocoDuck » Thu Nov 16, 2017 6:48 pm

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.
Check my Linux audio experiments on my SoundCloud.
Browse my AUR packages.
Fancying a swim in the pond?

ssj71
Established Member
Posts: 1292
Joined: Tue Sep 25, 2012 6:36 pm

Re: Advice on GUI toolkits

Postby ssj71 » Thu Nov 16, 2017 8:47 pm

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: 1413
Joined: Mon Jul 01, 2013 8:13 am

Re: Advice on GUI toolkits

Postby tramp » Fri Nov 17, 2017 4:53 am

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: 692
Joined: Mon Sep 28, 2015 9:03 pm

Re: Advice on GUI toolkits

Postby sadko4u » Fri Nov 17, 2017 9:33 am

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: 1821
Joined: Thu Nov 14, 2013 11:47 pm
Contact:

Re: Advice on GUI toolkits

Postby sysrqer » Fri Nov 17, 2017 10:16 am

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

Re: Advice on GUI toolkits

Postby Lyberta » Fri Nov 17, 2017 11:01 am

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-54-18.png
You do not have the required permissions to view the files attached to this post.

tramp
Established Member
Posts: 1413
Joined: Mon Jul 01, 2013 8:13 am

Re: Advice on GUI toolkits

Postby tramp » Fri Nov 17, 2017 11:25 am

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: 1292
Joined: Tue Sep 25, 2012 6:36 pm

Re: Advice on GUI toolkits

Postby ssj71 » Fri Nov 17, 2017 4:15 pm

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: 840
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Contact:

Re: Advice on GUI toolkits

Postby Michael Willis » Fri Nov 17, 2017 4:32 pm

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: 160
Joined: Thu Nov 07, 2013 1:19 pm

Re: Advice on GUI toolkits

Postby fundamental » Fri Nov 17, 2017 6:09 pm

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

User avatar
CrocoDuck
Established Member
Posts: 1053
Joined: Sat May 05, 2012 6:12 pm
Contact:

Re: Advice on GUI toolkits

Postby CrocoDuck » Fri Nov 17, 2017 9:45 pm

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.
Check my Linux audio experiments on my SoundCloud.
Browse my AUR packages.
Fancying a swim in the pond?

ventosus
Established Member
Posts: 27
Joined: Sat Jun 27, 2015 6:29 pm
Contact:

Re: Advice on GUI toolkits

Postby ventosus » Sat Nov 18, 2017 7:41 am

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/


Return to “Developer's Section”

Who is online

Users browsing this forum: No registered users and 0 guests