|
A device, real or virtual, which generates and transmits MIDI data for operating musical devices or other devices which are electronically enabled for MIDI operation. Such devices generally can be further subdivided into:
- Musical instruments: MIDI keyboards, MIDI wind instruments, MIDI guitars, drum machines, MIDI violins, etc., which are used to perform music in real time or to play back pre-arranged music via MIDI.
- Modifiers: mod wheels, pitch bend wheels, sustain pedals, pitch sliders, buttons, knobs, faders, switches, ribbon controllers, etc., which can alter instruments' states of operation, and thus can be used to modify sounds or other parameters of music performance in real time via MIDI connections.
- MIDI Show Control (MSC): lighting and stage instruments equipped with MIDI interfaces, which can be utilized to control the various operations of stagecraft during performance, including traditional lighting, moving lights, fireworks (pyrotechnics), or machines (rotating platforms, etc.)
- MIDI Machine Control (MMC): Interfaces consisting of switches, knobs, wheels, sliders, etc., used for the operation of tape recorders, studio devices, and/or any other usage for which a user may be able to adapt a machine for control via MIDI protocol.
- The 128 virtual MIDI ports and their electronic messages which connect the actual buttons, knobs, wheels, sliders, etc., with their intended devices or actions within the devices, i.e., "Controller #64" is usually assigned to sustain pedal off/on, while "Controller #7" is typically used for Volume Control.
The original MIDI spec included 128 virtual controller numbers for realtime 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.
While "MIDI controllers" usually refers to a piece of hardware which the user plays in performance, the hardware talks to other hardware by virtual messages and ports which are identified by the same designation: MIDI controllers. Thus, a programmer/player who wishes to set up a MIDI sequence using a sequencer, so that it modifies volume in real time, must first assign a virtual controller (#7 for volume control) to the specific hardware knob, wheel, or slider which he/she intends to use to control that parameter. Put simply, the programmer will set a certain wheel to transmit data via a certain MIDI Controller. This may be continous data (constantly variable) or on/off data (switches).
Some controllers, such as Pitch Bend, are special and are not reassignable. Whereas the data range of most continuous controllers 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 his finger up the frets of his guitar's neck. Thus, the pitch wheel on a MIDI keyboard may generate large amounts of data which can lead to a slowdown of data throughput known as "MIDI Logjam."
(work in progress)
|