X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fgeneric-midi-binding-maps.html;h=ee15df3956c26512eb700499b7e9486de97cac0b;hb=7cf65174c50b58cba6c3e81c2efeafa049f86b47;hp=3757a1dd4cff5fb7ea9758e648a6ad00c10e3d38;hpb=dfec6899ef2a121ccf2ff1d47008e7ac4844cf70;p=ardour-manual diff --git a/include/generic-midi-binding-maps.html b/include/generic-midi-binding-maps.html index 3757a1d..ee15df3 100644 --- a/include/generic-midi-binding-maps.html +++ b/include/generic-midi-binding-maps.html @@ -1,7 +1,7 @@

Ardour 2.X supported - MIDI learning + MIDI learning for more or less any control. This was a nice feature that quite a few other DAWs are providing by now, but it didn't allow Ardour to work "out of the box" with sensible defaults for existing commercial MIDI @@ -53,8 +53,7 @@ remote control ID. This ID uniquely identifies a track or bus so that when messages arrive from elsewhere via MIDI or OSC , we can determine which track or bus they are intended to control. See - + remote control IDs for more information. You just need to know that there is a "first track" and its remote control ID is 1, and so on. @@ -74,11 +73,8 @@ bindings"> So, to start, create a file with that as the initial contents.

- On OS X, Ardour loads midi maps from its binary-bundle folder in - Ardour-<version>/midi_maps/ and checks - various other locations as well (defined by the ARDOUR_MIDIMAPS_PATH - environment variable). On GNU/Linux the easiest is to save the file to - ~/.config/ardour3/midi_maps/. + The file should be located in the midi_maps sub directory located in + the Ardour configuration directory

Finding out what your MIDI control surface sends

@@ -117,7 +113,7 @@ bindings"> like this:

- <Binding channel="1" ctl="13" …. + <Binding channel="1" ctl="13" …

This defines a binding for a MIDI Continuous Controller message involving @@ -126,16 +122,54 @@ bindings"> use note (to create binding for a Note On message) or pgm (to create a binding for a Program Change message).

+

+ Continous Controlers (CCs) have coninued to evolve for different controlers. + The use of Encoders, RPN, NRPN, and controller buttons that give a 0 value + when released instead of toggling are now supported. These all have their + own type. The whole list of CC types are: +

+

+

+

As of Ardour 4.2, enc-r, enc-l, enc-2 and enc-b may be used for surfaces that have encoders that send offsets rather than values. These accept Continuous Controller messages but treat them as offsets. These are good for banked controls as they are always at the right spot to start adjusting. ( - + Learn more about working with encoders )

+

+

+ The enc-* value is the CC number used by the encoder. + Encoders only work with CC messages. +

+

+ Ardour 5.12 has a bug with the encoder detection where the first + encoder message resets the control to 0. Setting "Enable Feedback" + on allows encoders to work as expected. +

You can also bind sysex messages:

@@ -178,46 +212,49 @@ bindings"> A control address defines what the binding will actually control. There are quite a few different things that can be specified here:

-
-
/route/gain
-
the gain control ("fader") for the track/bus
-
/route/trim
-
the trim control for the track/bus (new in 4.1)
-
/route/solo
-
a toggleable control for solo (and listen) of the track/bus
-
/route/mute
-
a toggleable control to mute/unmute the track/bus
-
/route/recenable
-
a toggleable control to record-enable the track
-
/route/panwidth
-
interpreted by the track/bus panner, should control image "width"
-
/route/pandirection
-
interpreted by the track/bus panner, should control image "direction"
-
/route/plugin/parameter
-
the Mth parameter of the Nth plugin of a track/bus -
-
/route/send/gain
-
the gain control ("fader") of the Nth send of a track/bus
-
+

+ Enable Feeback applies to these "Control Addresses" only. +

+ + + + + + + + + + + + + + + + + + + +
/route/gainthe gain control ("fader") for the track/bus
/route/trimthe trim control for the track/bus (new in 4.1)
/route/soloa toggleable control for solo (and listen) of the track/bus
/route/mutea toggleable control to mute/unmute the track/bus
/route/recenablea toggleable control to record-enable the track
/route/panwidthinterpreted by the track/bus panner, should control image "width"
/route/pandirectioninterpreted by the track/bus panner, should control image "direction"
/route/plugin/parameterthe Mth parameter of the Nth plugin of a track/bus +
/route/send/gainthe gain control ("fader") of the Nth send of a track/bus

Each of the specifications needs an address, which takes various forms too. For track-level controls (solo/gain/mute/recenable), the address is one the following:

-
-
a number, eg. "1" -
-
identifies a track or bus by its remote control ID -
-
B, followed by a number -
-
identifies a track or bus by its remote control ID within the current bank (see below for more on banks) -
-
S, followed by a number -
-
identifies a selected track in order they have been selected, S1 should be the same track as the Editor Mixer -
-
one or more words -
-
identifies a track or bus by its name -
-
+ + + + + + + + + +
a number, e.g. "1" +identifies a track or bus by its remote control ID +
B, followed by a number +identifies a track or bus by its remote control ID within the current bank (see below for more on banks) +
S, followed by a number +identifies a selected track in order they have been selected, S1 should be the same track as the Editor Mixer +
one or more words +identifies a track or bus by its name +

For send/insert/plugin controls, the address consists of a track/bus address (as just described) followed by a number identifying the plugin/send @@ -234,6 +271,9 @@ bindings">

Bindings to Ardour "functions"

+

+ There is currently no feedback available for functions. +

Rather than binding to a specific track/bus control, it may be useful to have a MIDI controller able to alter some part of Ardour's state. A @@ -246,64 +286,68 @@ bindings"> In this case, a NoteOn message for note number 13 (on channel 1) will start the transport rolling. The following function names are available:

-
-
+ + + + + + + + + + + + + + + + + + + + + +
transport-stop - -
stop the transport -
-
+
stop the transport +
transport-roll - -
start the transport "rolling" -
-
+
start the transport "rolling" +
transport-zero - -
move the playhead to the zero position -
-
+
move the playhead to the zero position +
transport-start - -
move the playhead to the start marker -
-
+
move the playhead to the start marker +
transport-end - -
move the playhead to the end marker -
-
+
move the playhead to the end marker +
loop-toggle - -
turn on loop playback -
-
+
turn on loop playback +
rec-enable - -
enable the global record button -
-
+
enable the global record button +
rec-disable - -
disable the global record button -
-
+
disable the global record button +
next-bank - -
Move track/bus mapping to the next bank (see Banks below) -
-
+
Move track/bus mapping to the next bank (see Banks below) +
prev-bank - -
Move track/bus mapping to the previous bank (see Banks below) -
- +
Move track/bus mapping to the previous bank (see Banks below) +

Binding to Ardour "actions"

+

+ It is not possible to have feedback available for actions because + these represent keyboard shortcuts which are input only. +

You can also bind a sysex or arbitrary message to any of the items that occur in Ardour's main menu (and its submenus). The + href="@@list-of-menu-actions"> list of actions shows all available values of action-name.

To create a binding between an arbitrary MIDI message (we'll use a @@ -371,6 +415,9 @@ bindings"> <Binding channel="1" note="15" uri="/route/mute B1" momentary="yes"/> <Binding channel="1" note="16" uri="/route/mute B2" momentary="yes"/> + <Binding channel="1" enc-r="11" uri="/route/pandirection B1"/> + <Binding channel="1" enc-r="12" uri="/route/pandirection B2"/> + <Binding sysex="f0 0 0 e 9 0 5b f7" function="transport-start"/> <Binding sysex="f0 7f 0 6 7 f7" function="rec-disable"/> <Binding sysex="f0 7f 0 6 6 f7" function="rec-enable"/>