-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Update LMMS knob design #5952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Update LMMS knob design #5952
Conversation
Prevent LMMS VisualizationWidget from showing clipping color at exact…
Update master
waluigi
🤖 Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! 🎩
Windows
Linux
macOS🤖{"platform_name_to_artifacts": {"Windows": [{"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://13039-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.92%2Bg25334ce2e-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/13039?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://13038-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.92%2Bg25334ce2e-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/13038?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/8c74ler96ttl8kio/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/38239045"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/6tkcwoxrpubj8sww/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/38239045"}], "Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://13037-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.92%2Bg25334ce-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/13037?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://13036-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.92%2Bg25334ce2e-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/13036?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "7bae9cced27696d940aa41da409f607eff7b39e3"} |
| setFixedSize( qMax<int>( m_origWidth, | ||
| QFontMetrics( pointSizeF( font(), 6.5) ).width( m_label ) ), | ||
| m_origHeight + 10 ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Kind of hard to read with this spacing and all.
| setFixedSize( qMax<int>( m_origWidth, | |
| QFontMetrics( pointSizeF( font(), 6.5) ).width( m_label ) ), | |
| m_origHeight + 10 ); | |
| setFixedSize( | |
| qMax<int>(m_origWidth, QFontMetrics(pointSizeF(font(), 6.5)).width(m_label)), | |
| m_origHeight + 10 | |
| ); |
| currentCenterTopColor = enabled ? m_centerTopActiveColor : m_centerTopInactiveColor; | ||
| currentCenterBottomColor = enabled ? m_centerBottomActiveColor : m_centerBottomInactiveColor; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
currentCenterTopColor and currentCenterBottomColor are the same between all knobs, we can probably pull this out and always set it after the switch.
| default: | ||
| break; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we remove default a new knob size added should cause the compiler will raise a warning about not having all cases covered.
| p.drawPixmap( static_cast<int>( | ||
| width() / 2 - m_knobPixmap->width() / 2 ), 0, | ||
| *m_knobPixmap ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| p.drawPixmap( static_cast<int>( | |
| width() / 2 - m_knobPixmap->width() / 2 ), 0, | |
| *m_knobPixmap ); | |
| p.drawPixmap(static_cast<int>(width() / 2 - m_knobPixmap->width() / 2), 0, *m_knobPixmap); |
| case knobSmall_17: | ||
| { | ||
| p.drawLine( calculateLine( mid, radius-2 ) ); | ||
| p.drawLine( calculateLine( mid, radius-1.5f, 4 ) ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
knobSmall_17 and knobBright_26 are the same, we could combine these cases.
| centerGrad.setColorAt(0, QColor(77, 80, 91)); | ||
| centerGrad.setColorAt(1, QColor(37, 38, 43)); | ||
| //p.setPen(QPen(centerGrad, 0)); | ||
| p.setPen( QPen( QColor(11, 12, 17), 1, Qt::SolidLine, Qt::RoundCap ) ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should these colors be customizable, too?
|
I approve of getting rid of the green, but I'm not sure we have to revert to 1.1.3 style knobs to do it. |
|
Compared to Ableton and Logic Pro (and from what I can tell, FL Studio) our minimum track height is already huge. IMHO any changes to the track labels should keep this in mind so that we can eventually lower the minimum height. |
|
They're nice, but I would miss old ones... |
|
This looks like a much cleaner direction to me. Personally I think the dial with indicator would work well as a slot in replacement for our medium-sized knobs (volume, pan, etc.) and the indicator-less one would work well for smaller knobs (mixer sends could do well with smaller knobs, for example). |
Personally i don't agree with all of this. Well, you're totally right from a usability perspective, but from a graphical standpoint, even if it's true that the center of the knobs isn't used, i think it's really important for aesthetics, as you said. DAWs were created after analog equipment, and most of them tried to imitate that in a digital way, so analog-knobs are kinda the standard nowadays. Let's just take a look at the industry standard nowadays: the only one which is using kinda that style is ableton (and personally i'm not a fan of ableton flat gui). Every other DAW use a knob that reminds of an analog one. Flat knobs are more common in vsts, but also there, a lot of them use knobs with a center. Even if it's true that the little knobs at the moment are a problem, i find that the design of the bigger knobs in the original post fits the LMMS theme well, and it's really good. I understand that an update could be done later, but i can't see why. I know that we need to move on totally graphically coded knobs, but i can't see why we can't find a good design here. I mean, we already have "usable" knobs in the meantime (even if they rely on images), and if we have to update them to be dinamically drawn, i think it'd be better to find a more creative knob at the same time, also considering that the 1.3 release will probably take as much time as 1.2, if not more (apart from nightly builds). That said that's my feedback, if others think those knobs doesn't fit LMMS i'm nobody to go against them obv. |
|
I wasn't intending to say that we need to leave good or stylish designs behind for the sake of usability alone, but that our design choices can be narrowed down and instructed by it. I understood there may be some pushback and it really comes down to the classic skeuomorphic debate. There is definitely some value that can be argued to keeping resemblance to physical objects, though it does also limit our designs to the past if there is room to improve based on the new capabilities of working with digital design compared to the past limitations of analog equipment. I personally love the style of the new ones I proposed, so when it comes down to taste, differences are understandable, but my intention is again, not to cast aside style entirely. There are many examples of this already working its way into many new designs, and I expect the same will become more and more common in existing programs. Quite honestly, I just wonder if we can improve usability beyond what is existing, should we confine ourselves to only those innovations? Inkscape offers features and UI elements that are not standard in Adobe yet, which differentiates it from a clone to a stand alone program. I don't see this breaking any standards in the way of "floppy disk as save icon" or confusing users, but I could be wrong here. I already showed an example of how we can still leave in the center area of the knob as well, so I'm not stuck on that. There's also space to include gradients and color or more creative elements. My focus was starting with the smallest knob and then adding more details or fancy versions scaled up to match instead of trying to design something creative and struggle to scale it down. I'm also thinking given the number of different opinions we are sure to receive, something that is very easy to customize and easy to work with on many backgrounds or color schemes is a plus. Now, if this is too soon and we want to combine some elements to scale well while still matching some older designs, I'm willing to come up with some compromises. |
|
Actually, i got what you meant, but yeah, imo it's a bit too soon and personally i love the analog feel. I just don't want them to get too minimalistic Even if i'm still not sure how'd that fit in LMMS until i see it, let's say |
|
I'll add my two cents on this issue. I find that the best option moving forward will be the one most consistent with the entirety of LMMS's aesthetic. Minimalism has its place within the design, but much of LMMS's current GUI revolves around a kind of simplified realism. Take any of the button designs, for example. If we were to go in the direction of extreme minimalism with the knobs, I don't think it would be as consistent with the rest of the interface as some of the alternatives. Just to illustrate the various directions the knobs could go in and how they'd fit in our current interface, I've taken the liberty to edit a few designs inspired by the knob ideas posted here onto the Bitcrush image above. I personally think the the two on the bottom left and the original design do not fit well in our current GUI. |
This rules out the possibility of incremental improvement, which IMHO is the best bet for things to actually get done. If new features all have to be consistent above all else, we're stuck with the dated gradient buttons, narrow instrument windows, MDI system, etc. If a more modern knob design clashes with some other UI aspect, perhaps the other element should be updated rather than restricting improvements for the sake of consistency. |
|
I agree. Incremental improvement is the best way of working towards a specific goal, but my concern for consistency is limited to the scope of this PR. If this PR is to be part of a process of moving toward a specific goal (like a more flat/modern theme in LMMS), we should definitely incrementally improve the knobs toward that goal; however, AFAIK the only redesign of the UI that we're working towards is the Single-Window Concept, which has little to do with this knob design PR, unless we're considering using Budislav's knob concept.
Perhaps redesigning the theme to be more flat is where the discussion of this PR is leading, but currently, I believe it is isolated to improving the knob design within our current theme, hence a concern for consistency. Redesigning elements of the UI without a concern for consistency or a goal in mind may be less restrictive, but will likely make those elements stick out like a sore thumb. For example, if our entire UI were flat/modern and someone suggested making the knobs gradients, those knobs likely just wouldn't fit within the UI and wouldn't be added unless there was a unified goal of redesigning the UI to implement more realism. |
|
Thanks for the feedback everyone, I'm going to create a new version with these in mind. I understand there are a lot of strong and mixed preferences on this, so I'm going to start with usability first, what is possible to implement right now with what we have, and the feedback I have received. Considering the drastic differences of preference here, I won't be able to fulfill all of them, but I will look at the roots behind the requests and see what I can do. As far as consistency goes, please keep in mind that the current theme was designed with many flat elements and some highlighted gradients. I didn't and won't propose something that breaks the conventions completely or clashes as an "in progress" type development, but as long as we stay within our palette and current written standards for the theme (see the artwork directory) we are pretty safe to update some elements. |
|
So i read all this and i am putting in my opinion on this. Its just my opinion so if you differ, feel free. Though i am pretty neutral with the knobs we have now, the redesign could help us move towards a flat ui (which is good afaik). But let's not be overly minimalist. |
|
Any traction on this ? |
I do agree on this, cause it seems to be common behaviour on other DAWS. I don't think it's even needed to get the volume knob to be bigger, as pan moves from the center while volume moves from the left, and the popup comes out when you start dragging them, they're pretty distinguishable even without the big text, which other than being kinda unaestethic, would anyway still be present in the instrument window. That said, even if those small knobs seems not to be used anywhere else in the DAW GUI, i wanna stress that if we don't find a good compromise for small knobs, a couple of the newer plugins, #6540 and #5731, still rely on them and would either need it or have a graphical fix to move to standard dimension knobs. I guess they could also keep the old style but that would be kind of an inconsistency. There's also small knobs in instruments like LB302 and TripleOscillators, ecc, but especially on triple oscillators they seems to be using custom knobs separated from the common knobs used generally in the daw, so i'm guessing they shouldn't be affected by the change. |
|
Just to add this, if we ever wanna even just temporarily modernize the knobs using the design proposed in this PR (as it's still good imo), the small knobs not looking good are easy to fix if we're willing to give up on the outline, by simply using just the center of the normal knobs. FL has 2 approaches on this, one is removing the outline, while the other involves keeping no space between the outline and the knob, unlike we do with LMMS normal knobs. Reaper does the same, while other daws like Bitwig seems not to have such small knobs but instead bigger ones. Leaving a mockup here where you can see them in the Stereo Control plugin. |
|
@LostRobotMusic you coming back to this? |




























Before:

After:

New design approved by @Umcaruje and a few others if I remember right.
In summary, colored knob centers suck. This PR also adds many more theming options to the existing knobs.