LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
7.81k stars 987 forks source link

Associated automations #7027

Open messmerd opened 6 months ago

messmerd commented 6 months ago

The Problem(s)

Current automation tracks have some problems and quirks:

A Solution

I'm proposing a new, more restrictive type of automation track which would fix all these problems and encourage better project organization. I am calling them associated automation tracks since they have a parent instrument they are associated with. When this idea is combined with the collapsible automation tracks from #735, a lot of visual clutter in the Song Editor can be reduced.

How it works:

Additional notes:

Design considerations

Mockup

See #735.

michaelgregorius commented 6 months ago

If the automation system is revamped then the problems described in #6954 and #6209 should be considered as well. The underlying problem is that LMMS automates the (GUI) controls of instruments/effects instead of parameters which are exposed by the instruments/effects. So the implementation is [automation] -> [control] -> [parameter] instead of [automation] -> [parameter].

The following coarse steps would be necessary to fix this:

Adding an automation might then work as follows. Each track has a control, e.g. a combo box or menu, which lists all the available parameters of the instruments/effects that are associated with that track. Selecting a parameter will create an automation track that is associated with that parameter. I think this is somewhat how it is implemented in Ableton Live.

Before implementing this it would be a good idea to study all the parameter interfaces of plugin standards like VST 2.4, VST3, CLAP, LV2, etc. with the following questions in mind: