Previous page - Next page

Element Editor - Midi Options

Short overview over MIDI.

Midi was defined in the early 80s to make connections between keyboards and synthesizers. Til then every sound synthesizer needed its own keyboard. With MIDI it became possible to connect different synthesizers and play them from one physical keyboard.

Nowadays MIDI is used as an 'easy to understand' protocol for communication between interactive systems. It can not only be used to connect external midi synthesizers through a physical midi port. Each computer has a built-in midi synthesizer you can play from EyeCon. You can also install virtual MIDI drivers which allow to communicate between different programs on one computer without using any cables. Popular 'virtual' midi links are 'Hubi's loopback' or 'Midi-Yoke'. Both can be found on the internet. You can use them to play a software synthesizer or other software with midi input from EyeCon. There is also a midi-driver that lets you send midi information through a network or through the intenet ('Midi via Net'), although you probably will prefer to use the OSC protocol if supported by your application.

Basic MIDI

The midi protocol is sending abstracted information for MIDI instruments. That means, it is not sending recorded music through its wire. Instead it is only communicated when and which keys are pressed on a MIDI instument. The midi protocol is based on the concept of playing a musical keyboard. Eyerything you can control on a keyboard has it's representation in the midi protocol. The basic information that is sent is pitch and velocity of the key you press. There are also commands to switch to a certain sound patch, change the volume, use the pitch wheel and modulation controls you find on most keyboards. Veloctiy determines how hard you hit a key, depending on the sound it will affect the sound.

Imagine you want to play different instruments simultaneously over one MIDI connection. The midi protocol therefor uses so called channels to logically structure the information flow. The use of channels makes it possible to play different voices (sound patches) simultaneously. You might setup two voices on channel 1 and 2 with for example piano and flute. In the midi logic that means you're sending patch change commands on channel 1 and 2 to set them to the desired sound setting. Now you can send out note commands. when they are on channel 1 you will hear a piano sound, notes on channel 2 play the flute. Pitch bend or volume controllers are also just valid for the chanel they are sent on.

MIDI messages

Midi Notes: message to turn a note on or off. A midi note message carries information about the used channel, the key (pitch) and the velocity (how hard you hit the key) of the note. A velocity of 0 is used as 'note off' command. Key and velocity values are represented by numbers in the range 0..127.

Midi Control: message to change sound settings. A midi control message sends information about the used channel, a controller number to address effects (like volume, modulation, panning etc) and the controller number. There are 127 different controller values possible, some have predefined meaning (7 = volume), most of them don't. The controller value is represented by a number between 0..127.

Patch Change: select a sound patch for a specific channel. The General MIDI standard defines how Patch numbers are supposed to sound. 1 should be a Piano, 74 a flute etc.

Pitch Wheel: send information about the position the pitch wheel, which is used to quickly change pitch while you play a keyboard. It is useful in interactive applications because it has higher resolution than control messages.