Remove global automations
So we have this thing called global automations. Not many people even know about them. I've never used them in any serious project. They seem like yet another hardly-discoverable secret feature of LMMS. They work well enough though - you set an automation for a control and it works as if it's an automation track placed at the beginning of the project.
So what's the problem with them? Well... think about it: you add a global automation to a control. You draw the automation curve, close the automation editor... and your control now has a hidden automation track, one which is in no way represented by the UI, one which you can only access from the context menu of the control itself.
This is not good UI design... it is not WYSIWYG, it is not discoverable, it is not ergonomic. It is a hidden UI feature. There's no visual representation of these automations anywhere apart from when you're actually editing them.
The idea of global automations is good, it's just not implemented in a very user-friendly way. I can see three ways of dealing with this:
1 - remove global automations. For backwards compatibility, load old global automations as regular automation tracks.
2 - add another editor window (which is hidden by default) that displays all global automations as automation tracks - kind of like the BB-editor, but for automations only.
3 - add a switch to hide/display global automations in the song editor.
Each of these options has their ups and downs.
I've marked this for 1.1.0.
agrees 100%. Really often users dont understand their own projet behavior, because Improts of some midi-file-types happen to create global-automation (BMP/ max-vol) so hidden autotracks can mess up projects
2
Can we decide between removing this feature or suggesting a mockup for an UI improvement?
I'd like to take a shot at this issue..
I found that the feature is confusing for many people, and the confusion results in bug reports. Thus, I'd like to either remove or deprecate this feature. My plan consists of those steps:
- Let MIDI import plugin use separate automation tracks instead of global ones
- Write an upgrade logic that removes global automation patterns from project files and replaces them with normal automation tracks
- Remove any related GUI menus
- Remove the feature if needed
Opinions and suggestions are welcome.
I 100% agrees to this '1+2+3+4' plan !
1 - remove global automations. For backwards compatibility, load old global automations as regular automation tracks.
As I understand it this was completed in https://github.com/LMMS/lmms/pull/5223 and https://github.com/LMMS/lmms/pull/6605. Close?
This isn't completed, only the first step is.
Since there are issues with priority order, veratil has suggested to move it out of 1.3 milestone.
My 5c: from what I see, in the XML, changing type from 6 to 5 and moving the <track> into <trackcontainer> magically makes global automation track visible and editable when reloaded. IMVHO this means an easy migration is completely possible (i.e. that there is no real difference between the data for Global Automation track and the normal automation tracks other than the latter being visible and the former not). Maybe this (i.e. unhiding the Global Automation in the editor) could be the easy interim solution, simply to make existing global automation track freely visible and editable on-load? It would solve
your control now has a hidden automation track, one which is in no way represented by the UI, one which you can only access from the context menu of the control itself This is not good UI design... it is not WYSIWYG, it is not discoverable, it is not ergonomic. It is a hidden UI feature. There's no visual representation of these automations anywhere apart from when you're actually editing them.
, i.e. the main problem here. Also, it could actually also be the the implementation of
- Write an upgrade logic that removes global automation patterns from project files and replaces them with normal automation tracks
as proposed by @PhysSong - an option so that no new saves with hidden type 6 tracks would be created, but they would be still loaded as it is now. It wouldn't break backwards compatibility, it would simply mean all new version would load global automation on the normal, editable automation track, and save it likewise. UI for the possibility of adding global automation would be possibly gracefully hidden behind an option that would be disabled by default. No functionality would be lost, 100% BC maintained with full legacy UX support.
I volunteer to do it if people agree to handling it like that.
@Rossmaxx @Veratil @zonkmachine @PhysSong
Good observation. I would like to see this getting implemented. If you would like, work on the implementation and I'll help you get this through.
Tbh I don't know much about the xml implementation so i ain't looking at it.
I just merged #5229, so the parts 3 and 4 remains.