View Issue Details

IDProjectCategoryView StatusLast Update
0004262ardourfeaturespublic2020-04-19 20:15
Reporterin0giro Assigned Tocth103  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
PlatformIntel Core2 DuoOSGentoo amd64 + Pro-Audio overlayOS Versionstable
Target Version3.0-beta2 
Summary0004262: binding Actions for toggling route's solo and mute states
Descriptioni am requesting Actions (such as those in ardour.bindings) that could be mapped to keyboard shortcuts (via ardour.bindings) or MIDI messages (via MIDI map bindings) that toggle a track/bus/route's solo and mute states, as is already available for a route's active and recordable/record armed states (via the Track menu in the Editor window). i plan to use these both via keyboard shortcuts to improve my workflow and also for a MIDI map with a control surface. in general, i think they would be useful for others in both of the above situations.

  the Actions could look like:

/Editor/Track/mute-toggle
/Editor/Track/solo-toggle
/Editor/Track/solo-isolate-toggle

thanks.
TagsNo tags attached.

Activities

lhm100

2011-08-12 16:46

reporter   ~0011314

I second this request for toggle functionality. From the midi bindings standpoint, a modifier similar to the momentary="yes" but toggle="yes" would
suffice. I will mention that somehow this functionality already exists but I can not figure out why. If I use the midi binding maps to map to, say, overall record enable, that CS button will turn on the function, but not toggle it. However, if I map it by CTRL-MiddleClick, then I DO get the toggle functionality. I just can't figure out how to put that into a bindings map.

I will post another request for a further feature that would allow
specification of a 2 byte control match that would be helpful for this, as well as several other things also.

paul

2011-08-13 18:17

administrator   ~0011328

i'm thinking about a syntax somewhat along these lines:

 Binding msg="b0 %% %%" function="solo-track" arguments="%1, %2"

which would then set the solo of the track with the controller number (%1) as its RID to on/off depending on the controller value (%2).

also, like this:

 Binding msg="b0 03 %%" function="solo-selected-track" arguments="%1"

which would cause channel 0, controller #3 to operate on the selected track(s) (and bus(ses)) and would set the solo status depending on the controller value (%1).

still working on ideas for this.

in0giro

2011-08-13 19:00

reporter   ~0011329

thus the MIDI mapping "functions" available now can take parameters, which come from the MIDI message content? it seems like a more general purpose method to better support any control surface, as long as there are enough functions available. do these functions only work with "msg" bindings? or with ctl/note/sysex/etc. as well? could these functions easily map to existing Actions?

and what is RID?

however, this seems like a more long term item. i still think that in the interim just having more Actions available would be very useful, namely toggling solo and mute. and not just for the MIDI map, but for keyboard workflows as well. though i imagine that in adding the Actions as requested in this bug, there is more work involved than meets the eye ... as usual ;)

paul

2011-08-13 19:09

administrator   ~0011330

RID = Remote ID (a unique identifier for tracks that is independent of on-screen ordering/visibility or name).

the main drawback of this model is that its less efficient than the one that uses a URI. when you use a URI to define the target of the binding, the target can be looked up once (at binding time and/or bank change time), and then used very cheaply afterwards.

if you make the target of the binding either defined by the message content (as in my first example) or implicit (e.g. the current selected track(s)) then the target has to be looked up every time a message arrives.

paul

2011-08-14 16:02

administrator   ~0011346

rev 9990 now contains 2 new functioning actions:

  Editor/track-solo-toggle
  Editor/track-mute-toggle

that can be invoked by a MIDI binding. there is one for solo isolate too, but its not currently functional. i may also change the name of these actions.

in0giro

2011-08-15 02:16

reporter   ~0011352

thanks, i will give it a try. so this would work for having 2 buttons on a control surface toggle the solo and mute state of the currently selected track, and would be used for example with

<Binding msg="b0 50 7f" action="Editor/track-solo-toggle"/>
<Binding msg="b0 51 7f" action="Editor/track-mute-toggle"/>

correct? or is there a way to specify the bank relative destination as a parameter to this functioning action (i assume no)?

also, can these functions also be bound to a key shortcut by adding the appropriate action line in ardour.bindings?

i guess the next step/request is for a way to bind a MIDI message to a bank relative toggle of a route's solo/mute state. is this coming along in your function+parameters idea discussed above?

thanks as always.

paul

2011-08-15 11:40

administrator   ~0011355

those examples are correct. and yes, the actions can be used in a bindings file BUT they may not work because of a limitation in GTK that sort-of-requires that all bound actions appear in a menu somewhere. they currently do not.

the new actions always apply to the currently selected tracks/busses.

in0giro

2011-08-15 18:43

reporter   ~0011358

is adding the new actions to the menu possible outside of editing source code (e.g. RC file)?

cth103

2011-11-14 16:56

administrator   ~0012010

Some menus are defined in gtk2_ardour/ardour.menus.in

Can this report be considered resolved?

in0giro

2011-11-21 03:33

reporter   ~0012151

the Actions

  Editor/track-solo-toggle
  Editor/track-mute-toggle

are available and work when bound to a MIDI msg, so technically the bug is fixed.

however, it would be nice to have these Actions also available as menu items, so that they can be bound to keyboard shortcuts (Paul indicated above that due to a quirk of GTK, they have to be available in a menu before they can be tied to a keyboard shortcut). i assume that something like the following would have to be added to gtk2_ardour/ardour.menus.in under <menu action='TrackMenu'> :

<menuitem action='track-solo-toggle'/>
<menuitem action='track-mute-toggle'/>

should i open a new bug for this? or is it something that can be simply added before closing this bug?

thanks.

cth103

2011-11-21 17:33

administrator   ~0012160

OK, that should be fixed in SVN 10735.

in0giro

2011-11-21 19:53

reporter   ~0012162

thanks, but with A3 SVN rev. 10739 i do not see menu items in the main menu/Track for toggle solo and mute? am i just missing them?

paul

2011-11-21 20:11

administrator   ~0012163

we found a way to do it without them.

in0giro

2011-11-21 20:13

reporter   ~0012164

OK. however, it would still be nice to have these toggle actions for the current route "bindable" to a keyboard shortcut. another bug report?

paul

2011-11-21 20:41

administrator   ~0012165

i don't think you understood. we found a way to make actions bindable to keys without them being in a menu.

in0giro

2011-11-27 14:12

reporter   ~0012220

OK, sounds good. i have tried it and it works, thanks again.

however, i still think that these 2 functions deserve to be in the Track menu, along with toggle active state and record enable, as they will prob be used often, and currently there is no other way to discover available actions to bind key shortcuts to.

for those looking for the cut/paste answer, add something like this to your ~/.config/ardour3/ardour.bindings file:

(gtk_accel_path "<Actions>/Editor/track-solo-toggle" "<Shift><Alt>s")
(gtk_accel_path "<Actions>/Editor/track-mute-toggle" "<Shift><Alt>m")

system

2020-04-19 20:15

developer   ~0022714

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2011-08-12 13:15 in0giro New Issue
2011-08-12 16:01 cth103 cost => 0.00
2011-08-12 16:01 cth103 Target Version => 3.0-beta1
2011-08-12 16:46 lhm100 Note Added: 0011314
2011-08-13 18:17 paul Note Added: 0011328
2011-08-13 19:00 in0giro Note Added: 0011329
2011-08-13 19:09 paul Note Added: 0011330
2011-08-14 16:02 paul Note Added: 0011346
2011-08-15 02:16 in0giro Note Added: 0011352
2011-08-15 11:40 paul Note Added: 0011355
2011-08-15 18:43 in0giro Note Added: 0011358
2011-11-14 16:56 cth103 Note Added: 0012010
2011-11-14 16:56 cth103 Status new => feedback
2011-11-15 15:47 cth103 Target Version 3.0-beta1 => 3.0-beta2
2011-11-21 03:33 in0giro Note Added: 0012151
2011-11-21 17:33 cth103 Note Added: 0012160
2011-11-21 17:33 cth103 Status feedback => resolved
2011-11-21 17:33 cth103 Resolution open => fixed
2011-11-21 17:33 cth103 Assigned To => cth103
2011-11-21 19:53 in0giro Note Added: 0012162
2011-11-21 20:11 paul Note Added: 0012163
2011-11-21 20:13 in0giro Note Added: 0012164
2011-11-21 20:41 paul Note Added: 0012165
2011-11-27 14:13 in0giro Note Added: 0012220
2020-04-19 20:15 system Note Added: 0022714
2020-04-19 20:15 system Status resolved => closed