Open BrahRah opened 2 years ago
Might I suggest changing the title to something more specific like "Infinite interface"? That being said, if this is implemented, we're going to definitely need a panel that shows the entire thing and the location of each window, possibly with the ability to move those windows around on that panel. Kinda like Carla's patchbay viewer panel. And defined size limits.
I don't know how Carla's patchbay viewer panel works but you can just zoom out to see everything. Here is how blenders node editor works: https://www.youtube.com/watch?v=5GjHpFYU-cU
Most all of our editors would quickly become unusable when zoomed out, and unnecessarily large when zooming in. They have no inputs or outputs to connect either, so I really don't see any benefit to the infinite-canvas approach (which we in fact already have, just with no zoom).
Copping Blender's split/merge/resizeable UI concept is something I agree with, but there are several other issues thqt could be edited to include that (#1911, #3152, #5078)
"Most all of our editors would quickly become unusable when zoomed out, and unnecessarily large when zooming in." That makes no sense. You keep the zoom that you can work with, there is no zoomed out too much or zoomed in too much. Zoomed out too much would be the overview and zoomed in too much a maximized window. If a user wants to zoom in on one button why not it's their choice but most will keep the zoom to what they can work with. Contrary to that atm depending on the monitor the windows are either too large or too small in lmms. When too large they take up space unnecessarily and when too small the windows are hard to use. The zoom would allow users to adjust the size quickly to their monitor. The windows also stack and need to be moved around and opened and closed all the time which makes it messy and slow to use.
With that infinite space one could have all windows open have an overview when zoomed out, select a window and then press a focus or maximize button to work with that specific window. Or just pan around to get to the different windows, the panning is esp. good with large 4 or 8k monitors that have a lot of desktop space.
Alternatively a slim list of windows like the song editor could be used that is outside the workspace to focus on the different windows. If the windows then are placed adjacent instead of on top of each other. One could use the mouse wheel to scroll through the list (active list element would be focused on) or click on a name to focus or pan with middle mouse button. That would not fix the window size issue but would make the lmms workspace already much more usable.
That makes no sense. You keep the zoom that you can work with, there is no zoomed out too much or zoomed in too much. Zoomed out too much would be the overview and zoomed in too much a maximized window.
Your mockup appears to show the entire editor being scaled. If you want to zoom the contents of the editor, this is already available everywhere where it makes sense (automation editor, song editor, piano roll). If your complaint is that fixed UI elements like toolbars are the wrong size then this should be solved by fixing our resolution scaling, not by making users zoom in and out.
The zoom would allow users to adjust the size quickly to their monitor.
Which should be done via LMMS properly handling the OS's scale factor, and if finer adjustments are necessary via settings. Scale factor should be set-and-forget, if someone needs change it often enough to justify a dedicated zoom control then something is terribly wrong and that should be fixed at the source.
The windows also stack and need to be moved around and opened and closed all the time which makes it messy and slow to use.
Your proposal doesn't seem to mitigate this, considering it features multiple movable windows. The single-window interface does and would work very well in tandem with blender-esque resizeable views.
With that infinite space one could have all windows open have an overview when zoomed out, select a window and then press a focus or maximize button to work with that specific window.
I'm not sure how this is more convenient than selecting windows from a dropdown or toolbar, and I've never seen it implemented in any software.
Or just pan around to get to the different windows, the panning is esp. good with large 4 or 8k monitors that have a lot of desktop space.
Again, not sure why navigating in space would be better than navigating via menus.
What problem does this interface design solve that wouldn't be solved by the single-window proposal with proper DPI scaling? If we're going to use a brand new design it needs a compelling benefit over existing tried-and-tested proposals.
it does not work for vsts
the time fixing that could be invested in a zoom that is much more versatile instead which would also fix the vst size differences 2b. a lot of vsts have differently sized knobs, buttons etc. which will not be fixed by lmms scale factor. A zoom on the other hand will.
I'm not sure what you mean. What single-window interface? The views are pointless if there is no canvas attached.
dropdown and toolbar? The workspace windows in lmms are not even in a dropdown or toolbar they only exist in the workspace uncollapsed and song editor collapsed.
do you want to replace lmms song editor with a menu?
See 1,2,2b
It's a flexible workflow vs a rigid one.
@BrahRah I don't think you realize the immense amount of work that this would require to implement. The dynamic zoom is not supported by our current UI framework, and we'd basically need to rewrite everything from scratch.
There are already many ideas of a total redesign of LMMS' inteface. One quite popular suggestion is single window mode. But it's still a long way to go. Your design reminds me of gnome shell. It's not a bad idea. Just a momentous task.
In the end of the day the issue here seems to be about high DPI scaling. Adding a setting for that should be fairly simple, and it wouldn't require a complete remake.
That is why I suggested to leave the zoom out first but add the panning. Together with the DPI scaling that should already improve lmms. Single window is just maximized workspace windows. For that a user just needs a list that is outside the workspace. That is quickly implemented and the current workspace doesn't even need to be removed to add that.
My suggestion would be to make the current ui more efficient to get more users to use lmms. That will also increase potential developers and funds.
- it does not work for vsts
- the time fixing that could be invested in a zoom that is much more versatile instead which would also fix the vst size differences 2b. a lot of vsts have differently sized knobs, buttons etc. which will not be fixed by lmms scale factor. A zoom on the other hand will.
VSTs won't be affected regardless, they handle their own drawing and the most stable way to use them ("no embedding") makes a completely separate window. Besides, if a zoom feature can be made to affect VSTs then so can a scale factor.
- I'm not sure what you mean. What single-window interface? The views are pointless if there is no canvas attached.
See the issues I linked. I'm not sure what you mean with "no canvas attached", obviously the piano roll would still contain a note grid and so on even if we switched to a non-windowed solution.
- dropdown and toolbar? The workspace windows in lmms are not even in a dropdown or toolbar they only exist in the workspace uncollapsed and song editor collapsed.
Neither your proposed UI nor the one I'm arguing for are currently implemented. I'm not sure why you think editors couldn't be added to a dropdown, but they could be arbitrarily zoomed. Also, we do in fact already have a toolbar that opens and closes editors
- do you want to replace lmms song editor with a menu?
No, and I've never said so.
- You won't have the zoomed out overview.
You could easily create a layout that gives you an overview of all the editors if you want. Loadable layouts and or editor fullscreen would make switching a non-issue, and I see no reason that at least one of these wouldn't be available in a single-window UI.
- It would also add the groundwork of adding node based workflow if that is ever wanted in the future.
An infinitely scrollable area is not the hard part of a node based workflow, and making the editors zoomable would not necessarily provide good groundwork for zoomable nodes.
Why would you remove having multiple windows in the workspace just to have one window? That makes owning big monitors useless. Even if you add blender like regions/views those are not as flexible as a workspace. if you arrange your windows on the workspace like it is rn you can fit in a lot more on the screen.
A blender-esque UI can be arranged exactly the same as a multi-window one if we make two assumptions
These are perfectly reasonable conditions. You yourself mentioned the stacking (overlap) of windows as a downside, and you're arguing that fitting a lot on the screen is a bonus (hence no gaps are ideal).
But that would also work with an infinite workspace and panning.
You are right lets just leave the zoom out then but keep the infinite workspace.
Let me summarize with the changes:
I'm gonna add this to the main post.
Did I miss anything or is there something to add?
Definitely not a bad idea, but I don't if LMMS is still following that direction, but if so, it wouldn't fit well with the new single window UI that was planned as it's a completely different approach in making the UI better.
https://github.com/LMMS/lmms/issues/1911
To b e fair there's no daw that still deals with floating windows (ok, FL Studio does, but has magnetic windows, and also people don't drag windows like hell in it i think) so i still think we should move over that.
That said i know a lot of the fanbase still likes the floating windows UI, so i guess the choice is up to the devs or such.
I'm against removing the canvas workspace lmms already has. Improve it instead I've given many suggestions on how that can be done.
The singe window approach is discussed for 7 years now. Which steps are done forward to this?
A lot of discussions with ideas and few PR's splitting Core and UI in some lmms editors and functions.
I've made a better concept: https://github.com/LMMS/lmms/issues/6272
Enhancement Summary
I've posted this already in the discord lmms channel where it was so good the whole conversation got deleted : Make the workspace into an unlimited canvas like blenders node workspace. It resizes already so just make it bigger, add in panning and zooming. Then add screen regions where one can choose to add different components, either another canvas, tool or sidebar. Those regions would allow the use of multiple monitors! A small monitor could be for fixed elements and a big 4k monitor could be split up in multiple canvas workspaces. It would also allow moving the different workspace elements to other sides of the screen for a better individual workflow.
Justification
Lmms reminds me of blender 2.7 very powerful but hard to use. It is rigid, slow to work with and the workspace is messy. That simple change would declutter lmms and make faster and easier to use. It would also place lmms on the track to industry standard like blender.
Mockup
-Red lines are the regions.
New concept after discussing it: