MIDI controller

A MIDI controller is any hardware or software that generates and transmits Musical Instrument Digital Interface (MIDI) data to MIDI-enabled devices, typically to trigger sounds and control parameters of an electronic music performance. 
Features.
MIDI controllers usually do not create or produce musical sounds by themselves. MIDI controllers typically have some type of interface that the performer presses, strikes, blows or touches. This action generates MIDI data (e.g. notes played and their intensity), which can then be transmitted to a MIDI-compatible sound module or synthesizer using a MIDI cable. The sound module or synthesizer in turn produces a sound that is amplified through a loudspeaker.
The most commonly used MIDI controller is the electronic musical keyboard MIDI controller. When the keys are played, the MIDI controller sends MIDI data about the pitch of the note, how hard the note was played and its duration. Other common MIDI controllers are wind controllers, which a musician blows into and presses keys to transmit MIDI data, and electronic drums.
The MIDI controller can be populated with any number of sliders, knobs, buttons, pedals and other sensors, and may or may not include a piano keyboard. Many Audio control surfaces are MIDI-based and so are essentially MIDI controllers.
While the most common use of MIDI controllers is to trigger musical sounds and play musical instruments, MIDI controllers are also used to control other MIDI-compatible devices, such as stage lights, digital audio mixers and complex guitar effects units.
Types (hardware and software).
The following are classes of MIDI (Musical Instrument Digital Interface) controller:
Performance controllers.
MIDI was designed with keyboards in mind, and any controller that is not a keyboard is considered an "alternative" controller. This was seen as a limitation by composers who were not interested in keyboard-based music, but the standard proved flexible, and MIDI compatibility was introduced to other types of controllers, including guitars, wind instruments and drum machines.
Keyboards.
Keyboards are by far the most common type of MIDI controller. These are available in sizes that range from 25-key, 2-octave models, to full-sized 88-key instruments. Some are keyboard-only controllers, though many include other real-time controllers such as sliders, knobs, and wheels. Commonly, there are also connections for sustain and expression pedals. Most keyboard controllers offer the ability to split the playing area into "zones", which can be of any desired size and can overlap with each other. Each zone can be assigned to a different MIDI channel and can be set to play any desired range of notes. This allows a single playing surface to control a number of different devices. MIDI capabilities can also be built into traditional keyboard instruments, such as grand pianos and Rhodes pianos. Pedal keyboards can operate the pedal tones of a MIDI organ, or can drive a bass synthesizer.
Wind controllers.
Wind controllers allow MIDI parts to be played with the same kind of expression and articulation that is available to players of wind and brass instruments. They allow breath and pitch glide control that provide a more versatile kind of phrasing, particularly when playing sampled or physically modeled wind instrument parts. A typical wind controller has a sensor that converts breath pressure to volume information and may allow pitch control through a lip pressure sensor and a pitch-bend wheel. Some models include a configurable key layout that can emulate different instruments' fingering systems. Examples of such controllers include Akai's Electronic Wind Instrument (EWI) and Electronic Valve Instrument (EVI). The EWI uses a system of keypads and rollers modeled after a traditional woodwind instrument, while the EVI is based on an acoustic brass instrument, and has three switches that emulate a trumpet's valves. 
Simpler breath controllers are also available. Unlike wind controllers, they do not trigger notes and are intended for use in conjunction with a keyboard or synthesizer.
Drum and percussion controllers.
Keyboards can be used to trigger drum sounds, but are impractical for playing repeated patterns such as rolls, due to the length of key travel. After keyboards, drum pads are the next most significant MIDI performance controllers. Drum controllers may be built into drum machines, may be standalone control surfaces, or may emulate the look and feel of acoustic percussion instruments. MIDI triggers can also be installed into acoustic drum and percussion instruments. The pads built into drum machines are typically too small and fragile to be played with sticks, and are played with fingers. Dedicated drum pads such as the Roland Octapad or the DrumKAT are playable with the hands or with sticks. There are also percussion controllers such as the vibraphone-style MalletKAT, and Marimba Lumina. Pads that can trigger a MIDI device can be homemade from a piezoelectric sensor and a practice pad or other piece of foam rubber.
Stringed instrument controllers.
A guitar can be fitted with special pickups that digitize the instrument's output and allow it to play a synthesizer's sounds. These assign a separate MIDI channel for each string, and may give the player the choice of triggering the same sound from all six strings or playing a different sound from each. Some models, such as Yamaha's G10, dispense with the traditional guitar body and replace it with electronics. Other systems, such as Roland's MIDI pickups, are included with or can be retrofitted to a standard instrument. Max Mathews designed a MIDI violin for Laurie Anderson in the mid-1980s, and MIDI-equipped violas, cellos, contrabasses, and mandolins also exist.
Specialized and experimental controllers.
DJ digital controllers may be standalone units or may be integrated with a specific piece of software. These typically respond to MIDI clock sync and provide control over mixing, looping, effects, and sample playback.
MIDI triggers attached to shoes or clothing are sometimes used by stage performers. The Kroonde Gamma wireless sensor can capture physical motion as MIDI signals. Sensors built into a dance floor at the University of Texas at Austin convert dancers' movements into MIDI messages, and David Rokeby's "Very Nervous System" art installation created music from the movements of passers-through. Software applications exist which enable the use of iOS devices as gesture controllers.
Numerous experimental controllers exist which abandon traditional musical interfaces entirely. These include the gesture-controlled Buchla Thunder, sonomes such as the C-Thru Music Axis, which rearrange the scale tones into an isometric layout, and Haken Audio's keyless, touch-sensitive Continuum playing surface. Experimental MIDI controllers may be created from unusual objects, such as an ironing board with heat sensors installed, or a sofa equipped with pressure sensors. GRIDI is a large scale physical MIDI sequencer with embedded LEDs developed by Yuvi Gerstein in 2015, which uses balls as inputs. The Eigenharp controller is a combination of a breath controller, a configurable series of multi-dimensional control keys, and ribbon controllers designed to control its own virtual instrument software.
Auxiliary controllers.
Software synthesizers offer great power and versatility, but some players feel that division of attention between a MIDI keyboard and a computer keyboard and mouse robs some of the immediacy from the playing experience. Devices dedicated to real-time MIDI control provide an ergonomic benefit and can provide a greater sense of connection with the instrument than can an interface that is accessed through a mouse and computer keyboard. 
Controllers may be general-purpose devices that are designed to work with a variety of equipment, or they may be designed to work with a specific piece of software. Examples of the latter include Akai's APC40 controller for Ableton Live, and Korg's MS-20ic controller that is a reproduction of their MS-20 analog synthesizer. The MS-20ic controller includes patch cables that can be used to control signal routing in their virtual reproduction of the MS-20 synthesizer and can also control third-party devices.
Control surfaces.
Control surfaces are hardware devices that provide a variety of controls that transmit real-time controller messages. These enable software instruments to be programmed without the discomfort of excessive mouse movements, or adjustment of hardware devices without the need to step through layered menus. Buttons, sliders, and knobs are the most common controllers provided, but rotary encoders, transport controls, joysticks, ribbon controllers, vector touchpads in the style of Korg's Kaoss pad, and optical controllers such as Roland's D-Beam may also be present. Control surfaces may be used for mixing, sequencer automation, turntablism, and lighting control.
Specialized real-time controllers.
Audio control surfaces often resemble mixing consoles in appearance, and enable a level of hands-on control for changing parameters such as sound levels and effects applied to individual tracks of a multitrack recording or channels supporting a live performance.
MIDI footswitches are commonly used to send MIDI program change commands to effects devices but may be combined with a pedalboard for more detailed adjustment of effects units. Pedals are available in the form of on/off switches, either momentary or latching or as expression pedals whose position determines the value of a MIDI continuous controller.
Drawbar controllers are for use with MIDI and virtual organs. Along with a set of drawbars for timbre control, they may provide controls for standard organ effects such as Leslie speaker speed, vibrato and chorus.
Use in a data stream.
Modifiers such as modulation wheels, pitch bend wheels, sustain pedals, pitch sliders, buttons, knobs, faders, switches, ribbon controllers, etc., alter an instrument's state of operation, and thus can be used to modify sounds or other parameters of music performance in real time via MIDI connections. The 128 virtual MIDI controllers and their electronic messages connect the actual buttons, knobs, wheels, sliders, etc. with their intended actions within the receiving device.
Some controllers, such as pitch bend, are special. Whereas the data range of most continuous controllers (such as volume, for example) consists of 128 steps ranging in value from 0 to 127, pitch bend data may be encoded with over 16,000 data steps. This produces the illusion of a continuously sliding pitch, as in a violin's portamento, rather than a series of zippered steps such as a guitarist sliding their finger up the frets of their guitar's neck.
The original MIDI spec included 128 virtual controller numbers for real-time modifications to live instruments or their audio. MIDI Show Control (MSC) and MIDI Machine Control (MMC) are two separate extensions of the original MIDI spec, expanding MIDI protocol to accept far more than its original intentions.
Common products.
The most common MIDI controllers encountered are various sizes of "piano" keyboards. A modern controller lacks internal sound-generation, instead acting as a primary or secondary input for a synthesizer, digital sampler or a computer running a VST instrument or other software sound generator. Many have several user-definable knobs and slide controls that can control aspects of a synthesizer's sound in real-time. Such controllers are much cheaper than a full synthesizer and are increasingly equipped with Universal Serial Bus, which allows connection to a computer without a MIDI interface. Despite not using MIDI directly, software applications recognize such controllers as a "MIDI device". In most cases, a USB-equipped controller can draw necessary power from the interface's 5v line, and does not require an A/C adapter when connected to a computer. Keyboards range in size from 88 weighted-action keys to portable 25-key models.