View Issue Details

IDProjectCategoryView StatusLast Update
0004261ardourbugspublic2012-06-26 01:15
Reporterin0giro Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionopen 
PlatformIntel Core2 DuoOSGentoo amd64 + Pro-Audio overlayOS Versionstable
Target Version3.0 
Summary0004261: Binding elements with msg and uri attributes are ignored in MIDI maps
Descriptionan Ardour MIDI map XML Binding element that uses msg and uri attributes to match a MIDI message (e.g. <Binding msg="b0 50 7f" uri="/route/solo B1"/>) does not work, while using the ctl and uri attributes for the same MIDI message (<Binding channel="1" ctl="80" uri="/route/solo B1"/>) does work. it seems as if Binding elements with the msg attribute are not processed correctly when using a uri.
Steps To Reproducecreate MIDI map with a Binding that uses the msg and uri attributes together:

<Binding msg="b0 50 7f" uri="/route/solo B1"/>
Additional Informationspoke with las about this on IRC:


- las, 08:08 -
in0giro: its a straightforward bug, i suspect
TagsNo tags attached.

Activities

paul

2011-08-12 15:29

administrator   ~0011311

ok, i finally figured out what's wrong with this idea.

you're assuming that the URI references some kind of toggleable on/off switch (solo is a perfect example). but the URI field is actually describing a parameter, not a switch. the idea is that the value of the incoming controller message will set the value of the parameter in some way.

this means that if you use this format:

    Binding channel="1" ctl="80" uri="/route/solo B1"

every time a message for controller 80 arrives on channel 1, we will take the controller value and use it to set the current solo status of whatever route "B1" refers to. since solo is an on/off parameter, values >= 64 will turn it on, and values below that will turn it off.

but now consider your alternative:

    Binding msg="b0 50 7f" uri="/route/solo B1"

what does tell ardour to do when a MIDI message matching "b0 50 7f" arrives? it doesn't tell it to do anything at all. the idea of the msg="" format was to create bindings to specific functions that don't require value parameters. Route parameters (solo/gain/mute/rec-enable) all require value parameters, so you can't create a binding.

I think what you are imagining is that somehow the syntax above would "enable solo on track "B1"" ... the problem with this is that there would be no possible syntax to turn it off.

That's why the correct syntax would be something like:

     Binding msg="b0 50 7f" function="toggle-route-solo" arg="B1"

or

     Binding msg="b0 50 7f" uri="/route/solo B1" value="0"

I'll think about both of these.

in0giro

2011-08-12 21:46

reporter   ~0011320

OK, i see what you mean about URIs being parameters vs. function. however, regarding your point about there being no way to turn off soloing with my syntax: i am assuming that there would be a toggle function/Action available, as requested in http://tracker.ardour.org/view.php?id=4262. thus, the binding for this msg would in essence be calling a function that takes no parameters, for example toggleSolo(), which makes sense since as you say msg's pass no parameters. so this could be resolved just by having the necessary Actions for solo/mute state on a route available for the MIDI map.

  or obviously your additional functions with arguments would work as well. let me know how it is implemented and thanks.

in0giro

2011-11-21 03:43

reporter   ~0012152

as we approach beta2 and beyond, i would like to submit my PCR MIDI map for inclusion. with the actions added in http://tracker.ardour.org/view.php?id=4262 i think the map is usable.

however, it could be made more useful with the possible "parameters" to bindings idea you discuss/imply above. will this be implemented for 3.0 or later or never? not a big deal, just wondering if i should wait for this feature or submit the mapping as is.

thanks

Issue History

Date Modified Username Field Change
2011-08-12 12:42 in0giro New Issue
2011-08-12 15:29 paul Note Added: 0011311
2011-08-12 16:01 cth103 cost => 0.00
2011-08-12 16:01 cth103 Target Version => 3.0-beta1
2011-08-12 21:46 in0giro Note Added: 0011320
2011-11-15 15:13 cth103 Target Version 3.0-beta1 => 3.0
2011-11-21 03:43 in0giro Note Added: 0012152
2012-06-26 01:15 cth103 Status new => confirmed