`Document Version 4.2
`Revised September 1995
`
`Published by:
`The MIDI Manufacturers Association
`Los Angeles. CA
`
`Verizon Wireless
`Exhibit 1045-0001
`
`
`
`This document is a combination of the
`1\UDI 1.0 Detailed Specification v 4.1.1 and the
`MIDI 1.0 Addendum v 4.2
`The MIDI Time Code Specification is not included.
`
`Copyright © 1994. 1995 MIDI Manufacturers Association
`Portions Copyright© 1985. 1989, MIDI Manufacturers Association. Japan MIDI Standards Committee
`All rights reser 1ed. No part of this document
`may be reproduced or copied without
`\Vritten permission of the publisher.
`
`Printed 1995
`
`MlVIA
`POB 3173
`La Habra CA 90632-3173
`
`Verizon Wireless
`Exhibit 1045-0002
`
`
`
`MIDI 1.0 Detailed Specification
`
`Document Version 4.2
`
`TABLE OF CONTENTS
`
`OVERVIEW
`
`INTRODUCTION
`HARDWARE
`DATA FORMAT
`MESSAGE TYPES
`CHANNEL MESSAGES
`SYSTEM MESSAGES
`DATA TYPES
`STATUS BYTES
`RUNNING STATUS
`UNIMPLEMENTED STATUS
`UNDEFINED STATUS
`DATA BYTES
`CHANNEL MODES
`POWER-UP DEFAULT CONDITIONS
`
`DETAILS
`
`CHANNEL VOICE MESSAGES
`TYPES OF VOICE MESSAGES
`NOTE NUMBER
`VELOCITY
`NOTE OFF
`CONTROL CHANGE
`CONTROLLER NUMBERS
`GLOBAL CONTOLLERS
`GENERAL PURPOSE CONTROLLERS
`CONTROLLER EFFECT
`BANK SELECT
`LEGATO FOOTSWITCH
`EFFECTS CONTROLLER DEFINITION
`SOUND CONTROLLERS
`PORT AMENTO CONTROLLER
`REGISTERED AND NON-REGISTERED PARAMETER NUMBERS
`PROGRAM CHANGE
`PITCH BEND CHANGE
`AFTERTOUCH
`
`1
`
`3
`
`4
`4
`4
`
`5
`5
`5
`6
`6
`6
`
`6
`
`8
`
`9
`. 9
`10
`10
`10
`11
`11
`12
`12
`13
`13
`14
`14
`14
`16
`17
`18
`19
`19
`
`Verizon Wireless
`Exhibit 1045-0003
`
`
`
`CHANNEL MODE MESSAGES
`MODE MESSAGES AS ALL NOTES OFF MESSAGES
`THE BASIC CHANNEL OF AN INSTRUMENT
`RECEIVERS MODE (OMNI ON/OFF & POLY/MONO)
`MONO MODE
`OMNI-OFF/MONO
`OMNI-ON/MONO
`MODES NOT IMPLEMENTED IN A RECEIVER
`ALL NOTES OFF
`ALL SOUNDS OFF
`RESET ALL CONTROLLERS
`LOCAL CONTROL
`
`SYSTEM COMMON MESSAGES
`MTC QUARTER FRAME *
`SONG POSITION POINTER
`SONG SELECT
`RECEPTION OF SONG POSITION AND SONG SELECT
`TUNE REQUEST
`EOX
`
`SYSTEM REAL TIME MESSAGES
`START OR CONTINUE MESSAGE
`STOP MESSAGE
`RELATIONSHIP BETWEEN CLOCKS AND COMMANDS
`PRIORITY OF COMMANDS
`ACTIVE SENSING
`SYSTEM RESET
`
`SYSTEM EXCLUSIVE MESSAGES
`DISTRIBUTION OF ID NUMBERS
`UNIVERSAL EXCLUSIVE ID
`DEVICE ID
`SAMPLE DUMP
`GENERIC HANDSHAKING MESSAGES
`DEVICE INQUIRY
`FILE DUMP
`MIDI TUNING
`GENERAL MIDI SYSTEM MESSAGES*
`MTC FULL MESSAGE, USER BITS, REAL TIME CUEING*
`MIDI SHOW CONTROL*
`NOTATION INFORMATION
`DEVICE CONTROL (MASTER VOLUME AND BALANCE)
`MIDI MACHINE CONTROL*
`
`*Specification document available separately (see Table VIII).
`
`20
`20
`20
`20
`21
`22
`22
`23
`24
`25
`25
`26
`
`27
`27
`27
`29
`29
`29
`29
`
`30
`30
`31
`32
`32
`32
`33
`
`34
`34
`35
`35
`35
`36
`40
`41
`47
`52
`53
`53
`54
`57
`58
`
`Verizon Wireless
`Exhibit 1045-0004
`
`
`
`APPENDIX
`
`ADDITIONAL EXPLANATIONS AND APPLICATION NOTES
`RUNNING STATUS
`ASSIGNMENT OF NOTE ON/OFF COMMANDS
`VOICE ASSIGNMENT IN POLY MODE
`"ALL NOTES OFF" WHEN SWITCHING MODES
`MIDI MERGING AND ALL NOTES OFF
`HOLD PEDAL AND ALL NOTES OFF
`FURTHER DESCRIPTION OF HOLD PEDAL
`PRIORITY OF MIDI RECEIVING
`RELEASE OF OMNI
`BASIC CHANNEL OF A SEQUENCER
`TRANSPOSING
`MIDI IMPLEMENTATION INSTRUCTIONS
`MIDI IMPLEMENTATION CHART (BLANK)
`
`TABLES
`
`TABLE I
`TABLE II
`TABLE Ill
`TABLE lila
`TABLE IV
`TABLE V
`TABLE VI
`TABLE VII
`TABLE VIla
`TABLE Vllb
`TABLE VIII
`
`SUMMARY OF STATUS BYTES
`
`CHANNEL VOICE MESSAGES
`
`CONTROLLER NUMBERS
`
`REGISTERED PARAMETER NUMBERS
`
`CHANNEL MODE MESSAGES
`
`SYSTEM COMMON MESSAGES
`
`SYSTEM REAL TIME MESSAGES
`
`SYSTEM EXCLUSIVE MESSAGES
`
`UNIVERSAL SYSTEM EXCLUSIVE ID NUMBERS
`
`MANUFACTURER'S ID NUMBERS
`
`ADDITIONAL OFFICIAL SPECIFICATION DOCUMENTS
`
`A-1
`A-4
`A-4
`A-4
`A-4
`A-4
`A-5
`A-5
`A-5
`A-5
`A-6
`A-6
`A-7
`
`T-1
`
`T-2
`
`T-3
`
`T-4
`
`T-5
`
`T-6
`
`T-7
`
`T-8
`
`T-9
`
`T-11
`
`T-13
`
`Verizon Wireless
`Exhibit 1045-0005
`
`
`
`- ·;;_·
`
`Verizon Wireless
`Verizon Wireless
`Exhibit 1045-0006
`Exhibit 1045-0006
`
`
`
`INTRODUCTION
`
`MIDI. the Musical Instr~11nent Digital Interface. \vas established as a hardware and software
`specification which would make it possible to exchange information (musical notes, program changes.
`expression control. etc.) between different musical instruments or other devices such as sequencers.
`computers, lighting controllers. mixers. etc. This ability to transmit and receive data was originally
`conceived for live performances. although subsequent developments have had enormous impact in
`recording studios. audio and video production. and composition environments.
`
`This document has been prepared as a joint effort between the l\HDI Manufacturers Association (l'v1l\1A)
`and the Japan MIDI Standards Committee (JMSC) to explain the MIDI 1.0 specification. This
`document is subject to change by agreement between the JMSC and MMA. Additional MIDI protocol
`may be included in supplements to this publication.
`
`HARDWARE
`
`The hardware MIDI interface operates at :31.25 (+/- 1 %) Kbaud, asynchronous. with a start bit. 8 data
`bits (DO to D7). and a stop bit. This makes a total of 10 bits for a period of 320 microseconds per serial
`byte The start bit is a logical 0 (current on) and the stop bit is a logical 1 (current off). Bytes are sent
`LSB first.
`
`Circuit: (See Schematic -Page 2). 5 rnA current loop type. Logical 0 is current ON. One output shall
`drive one and only one input. To avoid ground loops. and subsequent data errors. the transmitter
`circuitry and receiver circuitry are internally separated by an opto-isolator (a light emitting diode and a
`photo sensor which share a single. sealed package). Sharp PC-900 and HP 6N138 opto-isolators have
`been found acceptable. Other high-speed opto-isolators may be satisfactory. The receiver must require
`less than 5 rnA to turn on. Rise and fall times should be less than 2 microseconds.
`
`Connectors: DIN .5 pin (180 degree) female panel mount receptacle. An example is the SWITCHCRAFT
`57 GB5F. The connectors shall be labeled "MIDI IN" and "MIDI OUT". Note that pins 1 and 3 are not
`used. and should be left unconnected in the receiver and transmitter. Pin 2 of the MIDI In connector
`should also be left unconnected.
`
`The grounding shield connector on the MIDI jacks should not be connected to any circuit or chassis
`ground.
`
`\Vhen MIDI Thru information is obtained from a MIDI In signal. transmission may occasionally be
`performed incorrectly due to signal degradation (caused by the response time of the opto-isolator)
`between the rising and· falling edges of the square wave. These timing errors will tend to add up in the
`'\vrong direction" as more devices are chained between MIDI Thru and MIDI In jacks. The result is
`that. regardless of circuit quality, there is a limit to the number of devices which can be chained (series(cid:173)
`connected) in this fashion.
`
`MIDI 1.0 Detailed Specification 4.2
`
`1
`
`Verizon Wireless
`Exhibit 1 045-0007
`
`
`
`+5v Rd
`280 ohms
`
`OPTO-ISOL A TOR
`
`r---------~~--~-----.--~2~ ... ~,5~v~6~±_--~--4UTAORT
`~~
`
`Dl
`IN914
`
`NC
`
`MIDI IN
`
`OPTIONAL
`
`220 Ohm,/\,
`
`+5\1
`
`220 Ohm l_
`
`.:
`
`NC!
`
`.
`
`MIDI THRU
`
`.
`
`................................................................................................ u ............. u ........ ..
`
`Ra
`220 ohm ,..--· .. ,
`
`+5\1
`
`FROM )-----l
`UART
`
`NC
`
`MIDI OUT
`
`MIDI Standard Hardware
`
`NOTES:
`
`1. Opto-isolator currently shown is Sharp PC -900
`(HP 6N138 or other opto-isolator can be used with appropriate changes.)
`
`2. Gates "A" are IC or transistor.
`
`3. Resistors are 5%
`
`Cables shall have a maximum length of fifty feet (15 meters), and shall be terminated on each end by a
`corresponding 5-pin DIN male plug, such as the SWITCHCRAFT 05GM5M. The cable shall be shielded
`twisted pair. with the shield connected to pin 2 at both ends.
`·
`
`A MIDI Thru output may be provided if needed, which provides a direct copy of data coming in MIDI
`In. For long chain lengths (more than three instruments), higher-speed opto-isolators should help to
`avoid additive rise/fall time errors which affect pulse width duty cycle:
`
`2
`
`Overview
`
`Verizon Wireless
`Exhibit 1045-0008
`
`
`
`DATA FORMAT
`
`MIDI communication is achieved through multi-byte "messages" consisting of one Status byte followed
`by one or two Data bytE"'· Real-Time and Exclusive messages are exception.
`
`A MIDI-equipped instrument t)·pically contains a receiver and a transmitter. Some instruments may
`contain onl~· a receiver or onl~· a transmitter. A receiver accepts messages in MIDI format and executes
`MIDI commands. It consists of an opto-isolator. Universal Asynchronous Receiver/Transmitter (UART).
`and any other hardware needed to perform the intended functions. A transmitter originates messages
`in MIDI format. and transmits them by way of a UART and line driver.
`
`MIDI makes it possible for a user of I\JIDI-compatible equipment to expand the number of instruments
`in a music system and to change system configurations to meet changing requirements.
`
`MIDI messages are sent over any of 16 channels which are used for a variety of performance
`information There are five major t)·pes of MIDI messages: Channel Voice. Channel Mode. System
`Common. S~·stem Real-Time and S:..-stem Exclusive.
`
`A MIDI event is transmitted as a "message" and consists of one or more bytes. The diagrams below
`show the structure and classification of MIDI data.
`
`TYPES OF MIDI BYTES:
`
`Byte
`
`Status Byte
`(80H- FFH)
`
`Data Byte
`(OOH- 7FH)
`
`TYPES OF MIDI MESSAGES:
`
`Message Type
`
`I
`
`Channel
`Message
`
`Channel Voice
`Message
`
`Channel Mode
`Message
`
`I
`
`"YSiem
`Exclusive
`Messaae
`
`I
`
`System
`Message
`
`I
`I
`"YSiem
`Common
`MessaQe
`
`"YSiem
`Real. Time
`MessaQe
`
`MIDI 1.0 Detailed Specification 4.2
`
`3
`
`Verizon Wireless
`Exhibit 1045-0009
`
`
`
`STRUCTURE OF A SINGLE MESSAGE:
`
`[ Statu~ J
`[ Status ]-[ Data B~e I
`[ Status }-[ Data B~e I I Data Byte
`
`STRUCTURE OF SYSTEM EXCL(:SIVEMESSAGES:
`
`__ s_ta_tus _ _.)-1 DataB~es 1-.... I __ Eo_x_~
`
`MESSAGE TYPES
`
`1\lessages are divided into two mam cate~orif'~ Channel and System.
`
`CHANNEL MESSAGES
`
`A Channel message uses four lnt, m thr Status b~·te to address the message to one of si..xteen MIDI
`channels and four bits to drfm(· t h(· mr~sagP (see Table II). Channel messages are thereb~· intended for
`the receivers in a system who"P C'hannrl number matches the channel number encoded into the Status
`b~·te.
`
`An instrument can receive 1\11 I> I mr>",.;ages on more than one channel. The channel in which it receives
`it£.: main instructions. such a" whwh program number to be on and what mode to be in. is referred to as
`its "Basic Channel". An instrumPnt may be set up to receive performance data on multiple channels
`(including the Basic Channr]) ThP"r are referred to as "Voice Channels". These multiple-channel
`situations will be discussed in morP detail later.
`
`There are two types of Channrl mr>,..;.;ages: \'oice and .~1ode.
`
`\'OJCE: To control an in,..trument's voices. Voice messages are sent over the Voice Channels.
`
`MODE: To defme the mstrument's response to Voice messages. Mode messages are sent over
`an instrument's Basic Channel.
`
`SYSTEM MESSAGES
`
`System messages are not encodNI "·ith channel numbers. There are three types of System messages:
`Common. Real- Time. and Exclusi r e
`
`4
`
`Overview
`
`Verizon Wireless
`Exhibit 1045-0010
`
`
`
`C'Ol\Il\ION:
`
`Common messagPs arP intt=>nded for all receivers in a s~·stem regardless of
`chHnnPl.
`
`REAL-TIME: Rfal-Time messages are used for synchronization and are intended for all clock(cid:173)
`ba.,;ed units in a system. They contain Status bytes only- no Data bytes. Real(cid:173)
`Time messages may be sent at any time- even between bytes of a message
`which has a different status. In such cases the Real-Time message is either acted
`upon or ignored. after which the receiving process resumes under the previous
`status.
`
`EXCLUSI\ ""E: Exclusive messages can contain any number of Data bytes. and can bt=>
`terminated eitht=>r by an End of Exclusive (EO X) or any other Status byte (except
`Real Time messagt=>s). An EOX should always be sent at the end of a System
`Exclusive message These messages include a Manufacturer's Identification (ID)
`code. If a receiver does not recognize the ID code. it should ignore the following
`data.
`
`So that other users and third party developers can fully access their
`instruments. manufacturt=>rs must publish the format of the System Exclusive
`data following their ID code Only the manufacturer can define or update the
`format following their ID.
`
`DATA TYPES
`
`There are two types of bytes sent over MIDI: Status Bytes and Data bytes.
`
`STATUS BYTES
`
`Status bytes are eight-bit binary numbers in which the Most Significant Bit (MSB) is set (binary 1).
`Status bytes serve to identify the message type. that is, the purpose of the Data bytes which follow it.
`Except for Real-Time messages. new Status bytes will always command a receiver to adopt a new
`status. even if the last message was not completed.
`
`RUNNING STATUS
`
`For Voice and Mode messages only. When a Status byte is received and processed. the receiver will
`remain in that status until a different Status byte is received. Therefore. if the same Status byte would
`be repeated. it can optionally be omitted so that only the Data bytes need to be sent. Thus, with
`Running Status. a complete message can consist of only Data bytes.
`
`Running Status is especially helpful when sending long strings of Note On/Off messages. where "Note
`On with Velocity of 0" is used for Note Off.
`
`Running Status will be stopped when any other Status byte intervenes. Real-Time messages should not
`affect Running Status.
`
`See also: Additional Explanations and Application I\'otes
`
`MIDI 1.0 Detailed Specification 4.2
`
`5
`
`Verizon Wireless
`Exhibit 1045-0011
`
`
`
`UNIMPLEMENTED STATUS
`
`Any status bytes. and subsequent data bytes. received for functions not implemented in a ree(~iver
`should be ignored.
`
`UNDEFINED STATUS
`
`All MIDl devices should be careful to never send any undefined status bytes. If a device receives any
`such code. it should be ignored without causing any problems to the system. Care should also be taken
`during power-up and power-down that no messages be sent out the 1HDI Out port. Such noise. if it
`appears on a MIDI line. could cause a data or framing error if the number of bns in the byte are
`incorrect.
`
`DATA BYTES
`
`Following a Status byte (except for Real-Time messages) there are either one or two Data bytes which
`carry the content of the message. Data b~·tes are eight-bit binary numbers in which the Most
`Significant Bit (MSB) is always set to binar~· 0. The number and range of Data bytes which must follow
`each Status byte are specified in the tables in section 2. For each Status byte the correct number of
`Data b~·tes must always be sent. Inside a receiver. action on the message should wait until all Data
`b~·te:-; required under the current status are received. Receivers should ignore Data bytes which have
`not been properly preceded b~· a valid Status b~·te (with the exception of "Running Status." explained
`above)
`
`CHANNEL MODES
`
`Synthesizers and other instruments contain sound generation elements called voices. Voice assignment
`is the algorithmic process of routing Note On/Off data from incoming MIDI messages to the voices so
`that notes are correctly sounded.
`
`Note: When we refer to an "instrument" please note that one physical instrument may act as several
`virtual instruments (i.e. a synthesizer set to a 'split' mode operates like two individual instruments).
`Here. "instrument" refers to a virtual instrument and not necessarily one physical instrument.
`
`Four Mode messages are available for defining the relationship between the sixteen MIDI channels and
`the instrument's voice assignment. The four modes are determined by the properties Omni (On/Off),
`Poly. and Mono. Poly and Mono are mutually exclusive. i.e., Poly disables Monu, and vice versa. Omni.
`when on. enables the receiver to receive Voice messages on all voice Channels. \\'hen Omni is off. the
`receiver will accept Voice messages from only selected Voice Channel(s). Mono. when on. restricts the
`assignment of Voices to just one voice per Voice Channel (Monophonic.) When Mono is off (Poly On). a
`number of voices may be allocated by the Receiver's normal voice assignment (Polyphonic) algorithm.
`
`6
`
`Overview
`
`Verizon Wireless
`Exhibit 1045-0012
`
`
`
`For a receiver assigned to Basic Channel "N," (1-16) the four possible modes arising from the two Mode
`messages are:
`
`I\lode Omni
`
`1
`
`2
`
`3
`
`4
`
`On
`
`Pol~·
`
`Voice messages are received from all Voice channels and
`assigned to voices polyphonically.
`
`On
`
`Mono
`
`Voice messages are receiVed from all Voice Channels. and
`control onl~· one voice. monophomcally.
`
`Off
`
`Poly
`
`Voice messages are received in Voice channel N onl~·. and are
`assigned to voices polyphonically.
`
`Off
`
`Mono
`
`\'oice messages are received in Voice channels N through N+M-1.
`and assigned monophonically to voices 1 through M. respectively.
`The number of voices "M" is specified by the third byte of the Mono
`Mode Message.
`
`Four modes are applied to transmitters (also assigned to Basic Channel N). Transmitters with no
`channel selection capability should transmit on Basic Channel 1 (N=l).
`
`Mode
`
`Omni
`
`1
`
`2
`
`3
`
`4
`
`channel).
`
`On
`
`On
`
`Poly All voice messages are transmitted in Channel N.
`
`Mono Voice messages for one voice are sent in Channel N.
`
`Off
`
`Poly Voice messages for all voices are sent in Channel N.
`
`Off
`
`Mono Voice messages for voices I through Mare transmitted in Voice
`Channels N through N+M-1. respectively. (Single voice per
`
`A MIDI receiver or transmitter operates under only one Channel Mode at a time. If a mode is not
`implemented on the receiver. it should ignore the message (and any subsequent data bytes). or switch
`to an alternate mode. usually Mode 1 (Omni On/Poly).
`Mode messages ,,.ill be recognized by a receiver onl~· when received in the instrument's Basic Channel
`-regardless of which mode the receiver is currently assigned to. Voice messages may be received in
`the Basic Channel and'·in other Voice Channels. according to the above specifications.
`
`Since a single instrument may function as multiple "virtual" instruments, it can thus have more than
`one basic channeL Such an instrument behaves as though it is more than one receiver, and each
`receiver can be set to a different Basic ChanneL Each of these receivers may also be set to a different
`mode, either by front panel controls or by Mode messages received over MIDI on each basic channeL
`Although not a true MIDI mode. instruments operating in this fashion are described as functioning in
`"Multi Mode."
`
`MIDI 1.0 Detailed Specification 4.2
`
`7
`
`Verizon Wireless
`Exhibit 1045-0013
`
`
`
`An instrument's transmitter and receiver may be set to different modes. For example. an in>'trument
`may receive in Mono mode and transmit in Poly mode. It is also possible to transmit and recPive on
`different channels. For example. an instrument may receive on Channel 1 and transmit on Channel :3.
`
`POWER-UP DEFAULT CONDITIONS
`
`It is recommended that at power-up. the basic channel should be set to 1. and the mode set to Omni
`On/Poly (Mode 1). This. and any other default conditions for the particular instrument. should be
`maintained indefinite}~· (even when powered clown) until instrument panel controls are operated or
`MIDI data is received. However. the decision to implement the above. is left totally up to the designer
`
`8
`
`Overview
`
`Verizon Wireless
`Exhibit 1045-0014
`
`
`
`CHANNEL VOICE MESSAGES
`
`Note-Off
`Note-On
`Pol~· KPy Pressurp
`Control Change
`Program Change
`Channel Pressure
`Pitch Bend
`
`8nH
`9nH
`AnH
`BnH
`CnH
`DnH
`EnH
`
`(0- 119)
`
`Channel Yoice Messages are the bulk of information transmitted between MIDI instruments. They
`include all Note-On. Note-Off. program change. pitch-wheel change, after-touch pressure and controller
`changes These terms are defined below.
`
`A single Note-On message consists of :3 b~·tes. requiring 960 microseconds for transmission. When many
`notes arP playPd at the same time. the multiple Note-On messages may take several milliseconds to
`transmit. This can make it difficult for 1\IIDl to respond to a large number of simultaneous events
`without some slight audible delay. This problem can be relieved to some degree by using the Running
`Status mode described on page 5 and in the appendix (Al-3).
`
`TYPES OF VOICE MESSAGES
`
`NOTE-ON:
`
`NOTE-OFF
`
`CONTROL CHA.NGE:
`
`Message is sent by pressing a key o:r from other triggering devices.
`
`Message is sent by releasing a key.
`
`Message is sent when a controller other than a key (e.g. a pedal.
`wheeL lever. switch. etc.) is moved in order to modify the sound of
`a note (e.g. introducing modulation. sustain. etc.). Control changes
`are not used for sending parameters of tones (voices). such as
`attack time. filter cut off frequency. etc.
`
`PROGRA ... ~l CHANGE:
`
`When a "program" (i.e. sound. voice. tone. preset or patch) is
`changed. the number corresponding to the newly selected program
`is transmitted.
`
`AFTER TOUCH:
`
`This message typically is sent by key after-pressure and is used to
`modify the note being played. Mter touch messages can be sent as
`Polyphonic Key Pressure or Channel Pressure.
`
`PITCH BEND CHANGE:
`
`This message is used for altering pitch. The maximum resolution
`possible is 14 bits, or two data bytes.
`
`Voice messages are not exclusively for use by keyboard instruments. and may be transmitted for a
`variety of musical purposes. For example, Note-On messages generated with a conventional keyboard
`synthesizer may be used to trigger a percussion synthesizer or lighting controller.
`
`MIDI 1.0 Detailed Specification 4.2
`
`9
`
`Verizon Wireless
`Exhibit 1045-0015
`
`
`
`NOTE NUMBER
`
`Each note is assigned a numeric value. which is transmitted with any Note-On/Off mPssage. Middle C
`has a reference value of 60. This is the middle C of an 88 note piano-style keyboard though it need not
`be physically located in thn, enter of a keyboard.
`
`0
`
`12
`
`24
`
`ac
`I
`
`36
`
`c
`
`48
`
`c
`
`60
`
`72
`
`c
`c
`piano range
`
`84
`
`c
`
`96
`
`c
`
`108
`
`120
`
`127
`
`c
`I
`
`VELOCITY
`
`Interpretation of the Velocity byte is left up to the receiving instrument. Generally. the larger the
`numeric value of the message. the stronger the velocity-controlled effect. If velocity is applied to volume
`(output level) for instance. then higher \"elocity values will generate louder notes. A value of 64 (40H)
`would correspond to a mezzo-forte note and should also be used by device without velocity sensitivity.
`Preferably. application of velocity to volume should be an exponential function. This is the suggested
`default action: note that an instrument may have multiple tables for mapping l\HDI velocity to internal
`velocity response.
`
`0
`
`off
`
`64
`
`127
`
`ppp
`
`p
`
`pp
`
`mp
`
`mf
`
`ff
`
`fff
`
`vvvvvvv = 64: if not velocity sensitive
`vvvvvvv = 0: Note-Off (with velocity of 64)
`
`NOTE-OFF
`
`MIDI provides two roughly equivalent means of turning off a note (voice). A note may be turned off
`either by sending a Note-Off message for the same note number and channel. or by sending a Note-On
`message for that note and channel with a velocity value of zero. The advantage to using "Note-On at
`· zero velocity" is that it can avoid sending additional status bytes when Running Status is employed.
`
`Due to this efficiency. sending Note-On messages with velocity values of zero is the most commonly
`used method. However. some keyboard instruments implement release velocity where a Note-Off code
`(8nH) accompanied by a "velocity off'' byte is used. A receiver must be capable of recognizing either
`method of turning off a note. and should treat them identically.
`
`The three methods of using Note-On (9nH) or Note-Off (8nH) are as follows:
`
`I. For a keyboard which does not implement Velocity. the note will be turned on using 9n.
`kkkkkkk, 64 (40H) and may be turned off using 9n. Okkkkkkk. 00000000 or 8n. Okkkkkkk.
`Oxxxxxxx (a value of 64 [40H) is used for x).
`
`10
`
`Channel Voice Messages
`
`Verizon Wireless
`Exhibit 1045-0016
`
`
`
`2. For a keyboard which incorporates Key On Velocity. but not Release Velocity the note is
`turned on using 9n Okkkkkkk. Ovvvvvvv and may be turned off using 9n. Okkkkkkk. 00000000
`or 8n. Okkkkkkk. Oxxxxxxx (a value of 64 (40H) is recommended for x).
`
`3. Where the kevbomd implements both Key On Velocity and Release Velocity. a note is turned
`on using 9n Okkkkkkk. Ovvvvvvv. and turned off using 8n. Okkkkkkk. Ovvvvvvv.
`
`CONTROL CHANGE
`
`The Control Change message is generally used for modifying tones with a controller other than a
`keyboard key It is not for setting synthesizer parameters such as VCF cut-off. envelope decay. etc.
`There are some exceptions to the use of the Control Change message. such as the special Bank Select
`message and the RPN/NRPN messagPs (listed below)
`
`CONTROLLER NUMBERS
`
`All controller number assignments are designated by agreement between the MMA and JMSC. The
`numbers listed in Table III are specified for standard musical instrument applications. However. many
`non-musical devices which implement MIDI, such as lighting controllers, may use designated controller
`numbers at their discretion. Due to the limited number of controller numbers it would be impossible to
`assign a number to every possible effect (musical and non-musical) used now and in the future. For this
`reason. controllers are generally assigned only for purposes associated with musical instruments.
`
`It is up to the manufacturer to inform their users of the fact that a device is using non-standard
`controller assignments. Though controllers may be used for non-musical applications. they must still be
`used in the format detailed in Table II. Manufacturers can request through the MMA or JMSC that
`logical controllers be assigned to physical ones as needed. A controller allocation table should be
`provided in the user's operation manual of all products.
`
`A manufacturer wishing to control a number of device-specific parameters over MIDI should used non(cid:173)
`registered parameter numbers and the Data Entry controllers (Data Entry Slider. Increment. and
`Decrement messages) as opposed to a large number of controllers. This alleviates possible conflict with
`devices responding to the same control numbers unpredictably.
`
`There are currently 120 controller numbers. from 0 through 119 (controller 120 was recently adopted as
`a Channel Mode Message and is no-longer considered a Control Change). As shown below. controller
`numbers 32 to 63 are used to define an LSB byte for corresponding controllers 0 through 31. Controller
`classifications are as follows:
`
`0
`32
`64
`96
`102
`
`through
`through
`through
`through
`through
`
`31
`63
`95
`101
`119
`
`=
`=
`
`=
`=
`
`MSB of most continuous Controller Data
`LSB for controllers 0 through 31
`Additional single-byte controllers
`Increment/Decrement and Parameter numbers
`Undefined single-byte controllers
`
`A numeric value (controller number) is assigned to the controllers of the transmitting instrument A
`receiver may use the message associated with a controller number to perform any operation or achieve
`any desired effect. Further, a single controller number may be used to change a number of parameters.
`controller numbers are classified by various categories. Each controller number corresponds to one byte
`of data.
`
`MIDI 1.0 Detailed Specification 4.2
`
`I I
`
`Verizon Wireless
`Exhibit 1045-0017
`
`
`
`Controller numbers 0 through 31 are for controllers that obtain information from pedals. levPr~. wheels.
`etc. Controller numbers :32 through 63 are reserved for optional use as the LSB (1.east Significant Byte)
`when higher resolution is required and correspond to 0 through :31 respectively. For example. controller
`number 7 (\Tolume) can repre,,enr 128 steps or increments of some controller's position. If controller
`number :39. the corresponding LSB number to controller number 7. is also used. 14-bit re:-,olution is
`obtained. This provides for resolution of 16.384 steps instead of 128.
`
`If 128 steps of resolution is sufficient the second b~·te (LSB) of the data value can be omitted. If both the
`l\ISB and LSB are sent initially. a subsequent fine adjustment only requires the sending of the LSB.
`The MSB does not have to be retransmitted. If a subsequent major adjustment is necessary the MSB
`must be transmitted again. When an MSB is received. the receiver should set its concept of the LSB to
`zero .
`
`.-\11 controller numbers 64 and above have single-byte values only. with no corresponding LSB. Of these.
`G4 through 69 have been defined for switched functions (hold pedal. etc.) \vhile 91 through 95 are for
`controlling the depth of certain external audio effects.
`
`Control numbers 64 through 69 are assigned to functions normally associated with switches (i.e sustain
`or soft pedals). However these controllers can be used to send any continuous value. The reverse can
`also be true for a continuous controller such as Modulation Wheel. \·rhile this controller is most often
`used as a variable control. an on/off modulation switch can also be used. This would be accomplished by
`senrling the Modulation Controller number (01) and a data byte of either 0 (off) or 127 (on).
`
`If a receiver is expecting switch information it should recognize 0-63 (00H-3FH) as "OFF" and 64-127
`(40H-7FH) as "ON". This is because a receiver has no way of knowing whether the message
`information is from a switch or a continuous controller. It is very important to always use an existing
`control number. The control numbers already adopted for use are listed in Table III. We will rliscuss
`some of them. but not all. below.
`
`GLOBAL CONTROLLERS
`
`If a receiving instrument is in Mode 4 (Omni Off/Mono) and is thus able to respond to more than one
`MIDI channel. it is possible to use a Global Controller to affect all voices regardless of MIDI channel.
`This is accomplished by sending any controller intended to affect all voices over the MIDI channel one
`below the basic channel of the receiver. For example. if a receiving synthesizer in Mode 4 is
`responding to channels 6 through 12. its basic channel is 6. Any controllers received on channel .5 would
`be Global Controllers and would affect all voices. If the Basic Channel is 1. then the Global Channel
`wraps to become 16. though not all receivers may provide this function.
`
`GENERAL PURPOSE CONTROLLERS
`
`Controller numbers 16-19 and 80-83 are defined as General Purpose Controllers. They may be used bv a
`manufacturer for an~· added functions able to send or receive some sort of control information needed.
`for a specific product. They do not have any intrinsic functions assigned to them. General Purpose
`Controllers 16-19 are two byte controllers (with controller numbers 48-51 for an optional LSB). General
`Purpose Controllers 80-83 are single byte controllers. As an example. an instrument with a special, user
`definable joystick or lever assignable to any internal parameter could send and receive General Purpose
`Controller numbers for sequencing.
`
`12
`
`Channel Voice Messages
`
`Verizon Wireless
`Exhibit 1045-0018
`
`
`
`CONTROLLER EFFECT
`
`All transmitters should send a value of 00 to represent minimum and 127 (7FH) to represent maximum.
`For continuous controllers without a center detented position. it is recommended that the minimum
`effect position correspond to 00. and the maximum effect position correspond to 127 (7FH).
`
`Yirtually all controllers are defined as 0 being no effect and 127 being maximum effect. There are three
`defined controllers that are notably different: Balance. Pan and Expression.
`
`BALA .... l\JCE:
`
`PAN:
`
`A Balance Controller has been adopted as continuous controller number 8
`(08H) with value 00 =full volume for the left or lower half. 64 (40H) = equal
`balance. and 127 (7FH) =full volume for the right or upper half. This
`controller determines the volume balance between two different sound
`sources.
`
`A Pan Controller has been adopted as continuous controller number 10
`(OAH) with value 00 =hard left. 64 (40H) =center. and 127 (7FH) =hard
`nght. This controller determines where a single sound source will be located
`in a stereo field.
`
`EXPRESSION:
`
`An Expression Controller has been adopted as continuous controller number
`11 (OBH). Expression is a form of volume accent above the programmed or
`main volume.
`
`BANK SELECT
`
`Bank Select is a special controller. The Bank Select message is an extension of the Program Change
`message and