Skip to content
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

Remove global automations #403

Open
diizy opened this issue Mar 4, 2014 · 10 comments
Open

Remove global automations #403

diizy opened this issue Mar 4, 2014 · 10 comments
Assignees
Milestone

Comments

@diizy
Copy link
Contributor

diizy commented Mar 4, 2014

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.

@diizy diizy added this to the 1.1.0 milestone Mar 4, 2014
@musikBear
Copy link

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

@Sti2nd
Copy link
Contributor

Sti2nd commented Mar 12, 2014

2

@badosu
Copy link
Contributor

badosu commented Jan 15, 2015

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..

@PhysSong
Copy link
Member

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:

  1. Let MIDI import plugin use separate automation tracks instead of global ones
  2. Write an upgrade logic that removes global automation patterns from project files and replaces them with normal automation tracks
  3. Remove any related GUI menus
  4. Remove the feature if needed

Opinions and suggestions are welcome.

@musikBear
Copy link

I 100% agrees to this '1+2+3+4' plan !

@zonkmachine
Copy link
Member

1 - remove global automations. For backwards compatibility, load old global automations as regular automation tracks.

As I understand it this was completed in #5223 and #6605.
Close?

@Veratil
Copy link
Contributor

Veratil commented Apr 9, 2024

This isn't completed, only the first step is.

@Rossmaxx
Copy link
Contributor

Since there are issues with priority order, veratil has suggested to move it out of 1.3 milestone.

@Rossmaxx Rossmaxx modified the milestones: 1.3, 1.3+ Jun 17, 2024
@FyiurAmron
Copy link
Contributor

FyiurAmron commented Sep 9, 2024

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

  1. 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

@Rossmaxx
Copy link
Contributor

Rossmaxx commented Sep 9, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests