Official MIDI Specifications

Profiles

A Profile is a defined set of rules for how a MIDI receiver device implementing the Profile shall respond to a chosen set of MIDI messages to achieve a particular purpose or to suit a particular application.
M2-101-UM_v1-1_MIDI-CI_Specification
MIDI-CI defines an architecture that allows Devices with bidirectional communication to agree to use extended MIDI capabilities beyond those defined in MIDI 1.0, while carefully protecting backward compatibility. MIDI-CI features “fall back” mechanisms so that if a Device does not support new features MIDI continues to work as defined by MIDI 1.0. Goals of MIDI-CI design:
Fully backward compatible: supports continued MIDI 1.0 functionality for any Devices that do not recognize extended MIDI features enabled by MIDI-CI.
  1. Allow easy configuration between MIDI-CI Devices.
  2. Sender can know the capabilities of a Receiver.
  3. Sender and Receiver can negotiate auto-configuration details
  4. Define method for negotiating choice of Protocol between Devices.
  5. Define method for using Profiles.
  6. Define method for Discovering, Getting, and Setting a wide range of Device Properties. 
M2-102-U_v1-0_Common_Rules_for_MIDI-CI_Profiles
MIDI-CI allows devices to communicate their capabilities to each other. Devices can use that capabilities information to self-configure their MIDI connections and related settings. Profiles are a beneficial component in enabling intelligent auto-configuration.

A Profile is a defined set of rules for how a MIDI receiver device implementing the Profile shall respond to a chosen set of MIDI messages to achieve a particular purpose or to suit a particular application. In addition to defining response to MIDI messages, a Profile may optionally also define other device functionality requirements. This definition also then implies MIDI implementation of a sender or in some cases may require a defined MIDI implementation of a sender.