Home > Software > MIDI

MIDI

MIDI data can be stored on a computer hard drive as a .mid file. A multi-track sequencer software application installed and operating on your computer will save the MIDI instructions in an overall project file that is proprietary and utilized by the application itself. The .mid file format will store any MIDI data (either all tracks combined or individual tracks).

This is done by recording the MIDI data sent from the controller / instrument into RAM and then creating a file name and saving it to your hard drive. The file size is much smaller than actual digital audio data. A sequencer application that supports MIDI can then be used to open the MIDI (.mid) file and play back the performance note for note, with the same tempo and effects as the original. The data is organized into chunks, with a header chunk (format, tracks and timing) and track chunk (events).

MIDI data is transferred from a controller to another device or software application (software synthesizer or Sequencer) at a 10-bit serial (sequential) data stream (1 byte MIDI data and 1 bit each for Start and Stop data), at a bit rate of 31.25 kilobaud (baud measures signal changes).

Channel messages are for a specific MIDI channel and the instrument assigned to that specific channel. System messages are directed to all channels.

The MIDI channel message consists first of the status byte followed by the data bytes. The status byte will consist of either Note ON or Note OFF, while the data bytes (and there can be more than one in between the status bytes) will specifty data such as which note was depressed on the keyboard and at what velocity sensitivity.

  • MIDI message signals represent: Note-on: start playing
  • Note-off: stop playing
  • Program Change: switch to a different channel (instrument)
  • Pitch Bend: shift pitch of note in response to the physical attributes of the pitch bend wheel
  • Aftertouch: pressure on key or string when depressed or plucked
  • Control Change: the utilization of one of the physical controls that applies an effect to a specific instrument such as the volume slider or the sustain pedal, or the Pitch or Modulation Wheel on a MIDI keyboard

Continuous Control or Control Change messages, which control effects, are of two types: switch controllers and variable controllers (there 128 possible control parameters). Switch controllers turn a device on or off. The variable controller can change the parameters. Continuous Control information includes pitch, tempo, panning, key signature, volume, time signature, modulation, reverb, chorus and program change messages.

The MIDI Control Change message also consists first of the status byte followed by the data bytes. The status byte will consist of either Effect ON or Effect OFF, while the data bytes (and there can be more than one in between the status bytes) will specifty data such as such as the continuous change in the parameters of the effect.

Thus, a sequence might be a Note On message, the channel number and the note value (pitch). Pitch values range 0 to 127 in General MIDI. Each change in pitch value increases the pitch by one semitone. The addition of the Pich Wheel effect and the actual movement of the Pitch Wheel and its position will be represented by a sequence of Continuous Control data bytes.

Control Change Instruction Data Control Change Instruction Data
0 Bank Select 6 Data Entry
1 Modulation Wheel 7 Channel Volume
2 Breath Control 8 Balance
3 Undefined 9 Undefined
4 Foot Controller 10 Pan
5 Portamento Time 11 Expression Controller

Each instrument or event can be assigned a MIDI channel. With 16 channels one may have 16 MIDI events or channel messages all through the same, single MIDI cable. The Program Change message indicates which of the 1 to 128 (GM) instruments, voices, timbres, etc., one has selected. (Please see the General MIDI Instrument chart for a list of instrument sounds). Thus, the performance could be played on the Acoustic Grand Piano (Program 1), and then a program change message could be sent to open program 17, and the Drawbar Organ voice will be loaded and notes on that instrument will be played.

When one opens their Sequencer software application, if the Sequencer does not automatically set all controllers to its default setting, then you may first have to insert a reset all controllers message. Next one must insert a Bank Select controller signal for the channel so it will select the instrument sound you desire.

System Exclusive (SysEx) MIDI data does not contain information related to the actual performance. Rather, it contains information about the parameters of a device or devices in the signal chain. Those specific parameters of the device’s function used to process data during a performance are then controlled through the SysEx number assigned to it. The transfer of the data concerning the parameters of the device is known as a SysEx dump. Each manufacturer of a MIDI device has an Identification number and a SysEx message can be directed to a specific device within a group of MIDI devices by specifying the manufacturer’s ID number in the SysEx message. Thus, one may obtain, for instance, a new set of sound synthesis parameters could be obtained from the manufacturer of a device and can be installed from one’s computer to the device prior to a performance in order to have an entirely new set of sounds to work with. One can then do a SysEx dump to go back to the original parameters after the performance is completed.

It is much easier to edit a MIDI file compared to a WAV file that had all of the digital audio data recorded simultaneously. Rather, MIDI will allow you to separate the various parts for further editing.

There are two types of standard MIDI file (SMF). One standard, MIDI Type 0 has one track of data while the other standard, MIDI Type 1, has more then one track of data.

MIDI Clock
MIDI Clock transfers data on song position pointers and the tempo rate (24 per beat) to connected devices. It will allow several connected MIDI devices to be synchronized together.

MIDI Time Code
MIDI Time Code (MTC) indicates a reference point in the elapsed MIDI performance to connected devices (it will allows several sequencers and recorders synchronize to each other). The code standard is based on frames, seconds, minutes and hours (hours:minutes:seconds:frames:subframes when displayed). MIDI Time code can be synchronized to SMPTE Time Code and transfer SMPTE data in MIDI format.

MIDI Machine Code
MIDI Machine Code (MMC) will allow one device to act as a Master to control another device (basic stop and start), however it will not synchronize the actual data transfer.

Categories: Software Tags:
  1. No comments yet.

Please copy the string hlBLlI to the field below: