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

Functionality in combo box' context menu doesn't make sense for most combo boxes #2382

Open
michaelgregorius opened this issue Sep 25, 2015 · 18 comments

Comments

@michaelgregorius
Copy link
Contributor

When clicking on the arrow of a combo box they all show a generic menu that enables to connect the combo box' model to a controller but in most cases it does not really make sense:
bb-context_menu

The problem can be reproduced as follows:

  1. Start LMMS.
  2. Add a new LFO controller.
  3. Right click on the arrow of the zoom control in the Song-Editor.
  4. Select "Connect with controller..." (or however it is called in the English version).
  5. Select "Controller 1" and press OK.

We have now automated the zoom control to make our session more exciting. 😄 There are also several combo boxes in the Piano-Roll and the Automation-Editor that can be automated this way but where it does not really make sense.

Please also note that the value for the combo boxes is decreased before the context menu is shown.

@tresf
Copy link
Member

tresf commented Sep 25, 2015

There are probably several UI components which make no sense to automate and we should prevent both right-click as well as CTRL+drag on them.

michaelgregorius added a commit to michaelgregorius/lmms that referenced this issue Oct 4, 2015
Extends AutomatableModelView by a new method to enable or disable
automations. The state of the variable is taken into account with
regards to the ability to drag & drop automations and to show the
context menu in the classes ComboBox and Knob.

Disables automations for all ComboBoxes in the editors (Song-Editor,
Piano Roll, Automation-Editor and BB-Editor).

Also disables automations for the tension knob in the Automation-Editor.

Fixes issue LMMS#2382
@michaelgregorius
Copy link
Contributor Author

Fixed with pull request #2399. Please check whether there are more widgets where an automation does not make sense so that I might extend the pull request. Thanks!

@musikBear
Copy link

I took a look at the main components. I dont think it make sense to controller connect:

  • Tempo
  • Time signature
  • Tension in automation-editor
  • FX-channel-connection on presets

I have not gone through fx-plugins. I think intuitively that all those dials does make sense to controller connect (?)

@michaelgregorius
Copy link
Contributor Author

@musikBear Thanks for the list! The tension knob is already covered with the pull request.

I am not sure about the tempo and time signature because I think the automation of the tempo knob was intended to be used for tempo changes. I don't think that this is a good implementation of such a feature but there might already be songs that depend on this implementation. So removing the automation of these controls depends on the answer to the question in how far backwards compatibility can be broken.

@Spekular
Copy link
Member

Spekular commented Oct 6, 2015 via email

@musikBear
Copy link

So removing the automation of these controls depends on the answer to the question in how far backwards compatibility can be broken.

Uhoh.. not automation -I only thought this was controller connection!
Automation can be a singleton event ..like on/off, whereas controller-connection implies that a event will take place a repeated multiple of times, and that behavior is significantly different from automation.
I definitively thought we was only talking about controller-connection! (?)

@michaelgregorius
Copy link
Contributor Author

@musikBear To me it makes no difference. Currently you can for example connect the zoom of the Song-Editor to the song global automation. Then you can set an automation that looks like a triangle wave LFO. Why should this make more sense only because it's done with an automation lane? You can also think of an LFO or controller as an entity that draws the automation for you.

So the question is not where the changes come from (automation vs. LFO) but rather which controls should be potential targets for any changes and which ones not.

@musikBear
Copy link

@michaelgregorius
but, the huge difference is that controller will repeat the event, in a cycle. Automation can be used to turn something into ONE new setting only ONCE.
There is a fundamental difference
I doubt anything should be omitted from automation at all

@tresf
Copy link
Member

tresf commented Oct 7, 2015

but, the huge difference is that controller will repeat the event, in a cycle. Automation can be used to turn something into ONE new setting only ONCE.

I think you're beating up the word rather than the technical implementation. @michaelgregorius is right, automated or controlled, the underpinnings are coupled together, which is under discussion in this thread.

@michaelgregorius
Copy link
Contributor Author

@tresf Thanks!
@musikBear Just to make this more clear: Does it make sense to set the zoom level of the Song-Editor to 200% via automation if I only do it once? Does it make sense to set the scale in the Piano Roll to "Phrygian" via automation if I only do it once? Perhaps setting the chord in the Piano Roll to "Maj7#5" in tact 4? To me all these actions do not make any sense at all regardless of how often I perform them because they are meant to be used by the user in an interactive context when he is working with the dialogs.

@tresf
Copy link
Member

tresf commented Oct 7, 2015

@michaelgregorius you raise an interesting idea... if we get macro support sometime down the road, automating these may be desired from a demonstration and playback perspective. This adds argument for leaving them as subclassing automatable (from a future recording perspective) but not making them interactively automatable. Of course, much more would need to be done to ever support such an idea -- such as making all components (show/hide buttons, play pause buttons) automatable, so perhaps the idea only sounds good on the surface. :)

@michaelgregorius
Copy link
Contributor Author

@tresf Even if such macro support would be implemented I would try not to mix it up with other aspects of the application. In my opinion being able to record actions for push buttons, sliders, etc. is one thing and being able to automate parameters is another.

@musikBear
Copy link

@michaelgregorius

Just to make this more clear:..

No, the ones you mention there does not make sense, but tempo and time-signature would be two examples of something that definitely not should be controller-bound, whereas they both absolutely make sense to automate as a singleton event.
That is where and why i think a discrimination between the need for automation, and controller binding is needed. They are simply different in nature.

@softrabbit
Copy link
Member

No, the ones you mention there does not make sense, but tempo and time-signature would be two examples of something that definitely not should be controller-bound, whereas they both absolutely make sense to automate as a singleton event.

You should be able to get a swing effect binding tempo to an LFO with a period of 2 or 4 quarter notes, so I'm not entirely convinced. Automating the time signature in any way is pretty pointless in the current state of LMMS, though.

@musikBear
Copy link

You should be able to get a swing effect binding tempo to an LFO with a period of 2 or 4 quarter notes

good thinking! It shows that something completely out of the box, sometimes appear possible, because of apparently 'odd' functionality
Worse, if someone already has used connections in a 'creative way', a disabling of a feature, could ruin their project. So also a backward issue

@husamalhomsi
Copy link
Member

Related: #5313.

@DomClark
Copy link
Member

I recall a user mentioned on Discord that they use controller connections to control things like zoom from knobs on their MIDI controller. Since we don't currently offer an alternative approach for this, and users always have the option of just not connecting their zoom to an LFO, I don't see why we shouldn't leave it in.

@allejok96
Copy link
Contributor

Just noticed that ctrl-dragging song editor's zoom to an automation track causes crashing... Also when trying to edit song global automation. (Linux 1.2.2 and master branch). Not worthy of a separate issue, because why would anyone do that... But it's worth mentioning.

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

9 participants