Log in

  • The Official MIDI Specifications

    The Official MIDI Specifications

Scalable Polyphony MIDI (SP-MIDI)

Scalable Polyphony MIDI is the result of a new MIDI message (the "Maximum Instantaneous Polyphony" message) that composers can place in an SMF file to indicate how the data should be performed by devices with different polyphony. For example, a composition that is written for GM2's 32-note polyphony, could also be made to play correctly on GM1 and GM Lite devices, by eliminating certain instrument parts, chosen by the composer.

Benefits of SP-MIDI

Scalable Polyphony MIDI was created as an alternative to General MIDI Lite and does not require a fixed 16-note polyphony. For mobile applications, SP-MIDI MIDI provides flexibility to both the system operator and the mobile terminal manufacturer to address differing customer needs. For example, lower-cost phones may be offered that have only 8-note polyphony, vs. higher priced models that have 32-note polyphony, yet the same content will play on either phone. Customers in that scenario can upgrade their phones and still play all of the content that they have obtained previously, and they can share content with friends and relatives who may have different configurations.

Scalable Polyphony MIDI can also help to mitigate some unique situations that might occur in wireless and battery powered systems. For example, a multi-purpose Scalable Polyphony MIDI phone or PDA could automatically drop back from 16-notes to 4-notes when more power was needed for some other application, such as decoding a video stream. Similarly, reducing polyphony would be a reasonable means for conserving battery power in some implementations.

SP-MIDI Device Profiles

While the SP-MIDI Specification defines a means for making content scalable across devices with different polyphony, it does not define any of the other features of a device necessary to make the content play correctly. Such is the function of specifications such as DLS and GM, which of course have their own polyphony requirements, independent of SP-MIDI. In order to create content that is scalable and also interoperable, there need to be device specifications, like GM and DLS, but that allow for scalable polyphony. Such device specifications for SP-MIDI content are called Device Profiles, and they are based on existing MMA device specifications, with modifications to accommodate scalable polyphony and other features needed for specific applications.

Since the SP-MIDI standardization activity was driven by the close link to the telecommunication standardization work for the 3rd Generation Partnership Project (3GPP), the first SP-MIDI Profile is a joint recommendation for 3GPP Release 5, titled "Scalable Polyphony MIDI Device 5-24 Note Profile for 3GPP". This Profile is based on GM2 (has about the same features), but with a smaller Sound Set (more appropriate for hand-held device with minimal storage).

Technical Overview

Scalable MIDI provides a clear advantage over conventional note stealing methods in use today. With note stealing, some notes are arbitrarily terminated or not played at all, based on the capabilities of the playback device instead of the content creator's instructions. Needless to say, note stealing will inevitably produce strange and unprofessional variations of the original song. SP-MIDI changes this and allows the content author to decide in advance which musical lines will be played in different polyphony situations.

Channel Priority Order & Masking

Channel masking controls the selection of MIDI Channels in the order of Channel priority. The number of MIDI channels is dependent on the content author's arrangement, but essentially the SP-MIDI player renders only those MIDI Channels which do not exceed it's rendering capabilities (i.e. maximum number of simultaneous notes). The benefits of Channel masking are illustrated in the following example.

Consider a situation, in which a synthesizer plays a MIDI file that has higher polyphony requirements than the synthesizer can support. As the synthesizer is not capable of playing all of the notes, the music playback will be partially randomized depending on the manufacturer's note stealing method. Channel masking supports the content creator by providing a method to avoid this randomization. Channel masking provides a systematic method to mask i.e. ignore all MIDI events on a particular channel that it cannot support.

SP-MIDI Content

SP-MIDI content will contain a set of initialization messages. The primary messages are the SP-MIDI Maximum Instantaneous Polyphony (MIP) Message, and the Device Initialization message. The MIP message informs the receiving device about the polyphony requirements for each MIDI Channel, and the Channel Priority Order. The Device Initialization message sets the receiving device into the proper mode, such as GM or DLS.

Where desired, SP-MIDI content can be made to play on non-scalable devices. For example, content that conforms to the GM2 specification (32-notes) can include a MIP message to control the playback on lower-polyphony devices, and that message will be ignored and have no effect on a GM2 device. In this way it is assumed that much of the existing Standard MIDI File content in use today can be re-authored for use in SP-MIDI devices, simply by giving some consideration to Channel priority and masking and inserting an appropriate MIP message.

SP-MIDI Errata

The Feb '02 and May '02 Editions of the SP-MIDI Specifications contained errors. If you received one of those version, please view the Errata at the end of the specification document.

Download the SP-MIDI Specification

Includes the MIP Message Definition and the 5-24 Note Device Profile for 3GPP

(Please Register, It's Free!)