+MIDI controllers
+----------------
+
+If you are doing audio work beyond just setting up a mix and letting it
+stay there, dragging controls with the mouse can feel limiting. There's
+a wide range of controllers out there that have physical faders and knobs
+you can twiddle for a much more tactical feel; all the way up from about
+$50 to more than $5000. (For reference, Nageru has been tested with the
+`Akai MIDImix <http://www.akaipro.com/product/midimix>`_ and the
+`Korg nanoKONTROL2 <http://www.korg.com/us/products/computergear/nanokontrol2/>`_,
+and both work fine, although the nanoKONTROL2 needs some one-time Korg-specific
+SysEx commands before the lights and buttons will work with Nageru.)
+Nageru supports these in multichannel mode only.
+
+For historical reasons, these speak the MIDI protocol as if they
+were instruments, and thus, Nageru refers to them as **MIDI controllers**.
+However, you won't really notice; they come with USB plugs to transport
+the MIDI data, so you just plug them in and have Nageru automatically
+talk to them. (For simplicity, Nageru will assume *any* MIDI device
+connected to your machine is such a controller.)
+
+Since different controllers have different numbers of faders, knobs,
+buttons and lights, you will need to make a mapping. However, just like
+with the audio input mapping, this can be done once and then saved
+to disk for later loading. (You can load a given mapping on startup
+using the “--midi-mapping” flag.) The dialog, loaded with the included
+preset for the Akai MIDImix, looks like this:
+
+.. image:: images/midi-controller-setup.png
+
+There are three types of controls, which correspond to different types
+of MIDI events:
+
+ * **Controllers** map directly to MIDI controllers (the value in the
+ dialog is the controller number), which are continuous
+ values that can take on values from 0 to 127. (Unfortunately, MIDI
+ was made in the 80s, where 7-bit precision was seen as enough.)
+ They are typically used for faders and knobs.
+
+ * **Buttons** are one-shot events that map to MIDI note-on events,
+ and the value in the dialog is the MIDI note number (also from
+ 0 to 127). They are similar to mouse buttons in that they don't
+ have an on or off state (the MIDI note-off events are ignored).
+ A typical example would be a mute button that can be pressed to
+ either mute or unmute a channel.
+
+ * **Lights** are *output* events where Nageru can send feedback
+ to the controller (and by extension, the user), represented by
+ MIDI note-on and note-off events (to turn the light on or off).
+ A typical example would be a mute light, that is on when a
+ channel is muted.
+
+In addition, each event can be *per-bus* or *global*. It can be a bit
+confusing that even the global events can be set once per-bus,
+but this is merely a convenience, allowing you to bind multiple
+physical controls to the same global controller; for global controllers,
+the bus number(s) you use for your mapping do not matter.
+
+The combination of controller type and per-bus/global constitutes
+a **mapping group**, clearly marked and collapsible in the UI.
+
+
+Creating and updating mappings
+''''''''''''''''''''''''''''''
+
+Unless you have a reference sheet for your MIDI controller, specifying which
+controller and number numbers the different physical knobs and faders
+emit, inputting these numbers by hand can be a frustrating procedure.
+(Actually, even with a reference sheet, it probably is.) Thus, the preferred
+way is by autosensing; simply select the given mapping with the mouse
+and use the control you want to bind it to, and Nageru automatically
+fills it in.
+
+Also, most devices support many channels, with very similar structure
+in their controller and/or note numbers. Once you've filled out one
+and then started filling out another one, Nageru can guess for you;
+if it thinks it can make a reasonable guess (ie., find a consistent
+offset from its left or right neighbor), the “Guess bus” and/or
+“Guess group” buttons will be clickable. This can save considerable
+amounts of time, although it is advisable to check Nageru's guess for
+at least the first guessed channel. In particular, some controllers
+do not have a consistent offset between channels on all the controllers
+(making “Guess bus” give the wrong answer), just on the controller groups,
+so there, you must limit yourself to guessing only a single controller
+group (using “Guess group”).
+
+Lights currently cannot be learned, so some trial and error is needed.
+(However, if there are buttons associated with the light, a good place
+to start is using the same note number.) However, just like the input
+controllers, they can be guessed once you have all the mapping you want
+for a neighboring bus and partial information about the current one.
+
+
+Controller banks, and UI visibility
+'''''''''''''''''''''''''''''''''''
+
+Many MIDI controllers do not have enough faders and knobs for every
+Nageru function you might want to control; some even contain only
+one fader or one knob. Thus, Nageru supports assigning a physical
+control to multiple functions, through **controller banks**.
+If a mapping is assigned to a controller bank, it is only active
+when that bank is active. The act of switching banks is in itself
+an action that can be initiated from the MIDI controller; in fact,
+that is currently the only way to switch them.
+
+A typical example would be having a knob that in bank 1 is assigned
+to gain, and in bank 2 to cutoff (which happens to be a global control,
+as described in the previous section). This way, one can switch between
+the two banks and have both functions accessible from the MIDI controller.
+Similarly, buttons can be reused by assigning them to multiple banks.
+
+Note that when switching banks, the associated controller(s) is
+*not* immediately updated; this happens only when you move the control.
+Otherwise, a bank switch would cause a host of unwanted changes,
+as it is unlikely that you would want the control in the exact
+same position for the two controllers. (There is a similar problem
+when starting up Nageru for the first time, where the controllers
+are not necessarily in the place matching Nageru's startup settings.)
+Some more expensive controllers support *motorized faders*, where
+the host can simply tell the control to move to the right place
+and thus solve the problem, but Nageru does not currently support them.
+
+.. image:: images/highlight.png
+
+To help you know which bank is active (or even that you have a MIDI
+controller connected at all), the currently mapped controller have
+a green **activity highlight**. When you switch banks, the highlight
+also updates—a controller is only highlighted if its mapping is
+active in the currently selected bank. This way, it is easy to see
+which controllers are currently controllable by MIDI, and which ones
+that are not.