MPX G2

 

MIDI Implementation Details

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                                                                   Lexicon Inc.

Copyright 2001                                                                                           3 Oak Park

All Rights Reserved                                                                            Bedford, MA 01730

                                                                                                 Telephone 781-280-0300

Lexicon Part Number 070-14829                                                           FAX 781-280-0490

 


Table of contents

 

Introduction............................................................................................................................................................................ 3

General MIDI........................................................................................................................................................................... 3

SysEx............................................................................................................................................................................................ 3

SysEx Automation............................................................................................................................................................. 3

MIDI................................................................................................................................................................................................... 4

Program Change Messages........................................................................................................................................... 4

General Notes......................................................................................................................................................................... 4

Standard Program Selection............................................................................................................................................... 4

MIDI Map Mode....................................................................................................................................................................... 4

MIDI Map Extensions............................................................................................................................................................ 5

Program “Chains” Mode..................................................................................................................................................... 5

Program Number Correlation:............................................................................................................................................ 6

Configurable Parameters..................................................................................................................................................... 6

MIDI Continuous Controllers..................................................................................................................................... 6

Receive..................................................................................................................................................................................... 6

Transmit................................................................................................................................................................................... 7

MIDI Notes................................................................................................................................................................................ 7

MIDI Clock................................................................................................................................................................................ 7

MIDI Clock IN......................................................................................................................................................................... 8

MIDI Clock OUT..................................................................................................................................................................... 8

MIDI Channel.......................................................................................................................................................................... 8

Receive..................................................................................................................................................................................... 8

Transmit................................................................................................................................................................................... 8

MIDI Implementation Chart......................................................................................................................................... 9

SYSEX............................................................................................................................................................................................. 10

Data Formatting Notes............................................................................................................................................... 10

Device Inquiry...................................................................................................................................................................... 11

Message Table Notes...................................................................................................................................................... 12

Message Types...................................................................................................................................................................... 13

System Configuration Message (00)................................................................................................................................ 13

Data message (01 hex)........................................................................................................................................................ 14

Formatted String Message (02 hex)................................................................................................................................. 16

Object Type ID Message (03 hex)..................................................................................................................................... 17

Object Description (04 hex)............................................................................................................................................... 18

Object Label Message (05 hex)......................................................................................................................................... 20

Requests (06 hex)................................................................................................................................................................. 21

MIDI Terminal Message (11 hex)..................................................................................................................................... 22

Handshaking (12 hex)........................................................................................................................................................ 22

Algorithm Select.............................................................................................................................................................. 25

Changing MPX G2 Parameter Values..................................................................................................................... 25

MPX G2 Parameter Examples........................................................................................................................................... 26

MPX G2 - MPX R1 Interface Notes............................................................................................................................... 27

MPX R1 Detection............................................................................................................................................................... 27

Program Selection............................................................................................................................................................... 28

Bypass.................................................................................................................................................................................... 28

TAP......................................................................................................................................................................................... 28

A/B.......................................................................................................................................................................................... 28

Tuner...................................................................................................................................................................................... 28

Pedal...................................................................................................................................................................................... 29

Toe Switch............................................................................................................................................................................. 29

MPX G2 - Dumps..................................................................................................................................................................... 29

MPX G2 - Program Dump................................................................................................................................................... 30

MPX G2 - All LEDs Dump................................................................................................................................................... 42

MPX G2 - Display Dump..................................................................................................................................................... 45

MPX G2 - Custom Character Bitmap Dumps.................................................................................................................. 45

MPX G2 - Setup Dumps....................................................................................................................................................... 46

MPX G2 - Global Patches Dump....................................................................................................................................... 50

MPX G2 - Bypass Controllers Dump................................................................................................................................ 51

MPX G2 - Remap Controllers Dump................................................................................................................................ 52

MPX G2 - Current Choices Dump..................................................................................................................................... 52

MPX G2 - Patches Dump.................................................................................................................................................... 57

MPX G2 - Soft Row Dump................................................................................................................................................... 57

MPX G2 - Display Units..................................................................................................................................................... 58

Patch Destination Display Units...................................................................................................................................... 61

MPX G2 Control Sources................................................................................................................................................ 61

Master List of Controllers.................................................................................................................................................. 61

Global Patch controllers.................................................................................................................................................... 62

Bypass controllers............................................................................................................................................................... 62


Introduction

This document is the reference for the MIDI implementation used in the Lexicon MPX G2. The document is broken into two categories: General MIDI and SysEx (System Exclusive).

General MIDI

The General MIDI implementation on the MPX G2 is almost identical to the MPX 1.  One exception: a “Soft Through” has been added to allow program change messages and continuous controller messages to be passed from the MIDI IN port to the MIDI OUT port, merging the data with any data generated by the MPX G2.

SysEx

The MPX G2 SysEx implementation is like the MPX 1, the MPX G2 uses the same protocol for SYSEX control and data transfer. The MPX G2 implementation is significantly more advanced/complete than the MPX 1.

The following are the most significant changes:

· All dumps in and out of the box are in the same format (the program dump on the MPX 1 is a not a standard dump).

· Front panel button messages have been broken out into separate parameters/data types to simplify glass interface creation.

· The front panel display and LEDs can be made to auto transmit their state whenever a change occurs.

· The state of all internal controllers can be made to auto transmit as a single dump at a definable interval.

· The "Meter" bridge image can be made to auto transmit as a single dump at a definable interval.

· Control Levels are treated like actual parameters and can have data sent to them with changes in the system. This is most significant for Algorithm selection.

· When a remote controller is detected, the system automatically sends out updated versions of patch Destination, Min, Mid and Max parameters when either a new algorithm is selected or a new program is selected. This keeps any remote patch editors up to date.

· Support for the MPX R1 remote has been added.

· Checksum is now included on all outgoing messages. Incoming checksum is counted but no action is taken for errors largely due to a requirement for compatibility with the MPX R1 remote.

SysEx Automation

The MPX G2 supports a special “Automation” mode that, when enabled, outputs SysEx data whenever a parameter is adjusted from the front panel. The data output is a data message that contains the current value of the parameter along with it’s control address. Though the Automation feature was included in the system to “automate” controlling the same parameter on two MPX G2s at the same time, it can be quite useful for other things as well. One interesting use of the Automation feature is to identify the control address of various parameters in the system; adjust the parameter and examine the resulting SysEx message. Another potential use of the Automation feature is to trigger off-line events based on the parameter value or control address: Keeping a glass interface synchronized to the actual system, or to implement an automatic users guide.

The Automation feature can be turned on or off from the SYSTEM: MIDI menu’s “Automation” parameter.


MIDI

Program Change Messages

General Notes

The MPX G2 is capable of responding to MIDI Program Change messages in several different ways depending on the selected sort criteria in the PROGRAM Mode. Other parameter settings will further affect the system’s response in a particular “Sort”.

Standard Program Selection

Most of the operating modes of the MPX G2 use the conventional program selection techniques (offset by -1): MIDI Program change 5 selects MPX G2 program 5, etc. In addition to the conventional MIDI Program Change message, the MPX G2 also supports program banks which extend the range of selectable programs from 0-127 to 0-16383. Since there are only 300 programs in the MPX G2, only 0-299 (1-300) are actually useable.

Program banking is achieved by using Continuous Controllers 0 and 32 to select “bank”. In the MPX G2, each bank consists of 100 programs for a total of 3 banks. In the standard program selection mode, any program change message above 100 will be ignored. The MIDI bank select message (Controller #32) will be used to select the banks. Controller #0 which is normally reserved for the MSB of Bank change messages is ignored. The MPX G2 programs are assigned as follows:

Program bank 0 (1-100 Internal Presets) = 00H
Program bank 1 (101-200 Internal Presets) = 01H
Program bank 2 (201-249 Internal Presets, 250-300 User definable registers, ) =02H

To select program 107 for instance, you would send Continuous Controller 32 with a value of 1 (e.g. 0xB0, 0x20, 0x01) to select bank 1 followed by Program Change 6 (e.g. 0xC0, 0x06).

Note that once the bank has been set, all further Program Change messages apply to that bank.

Also note that the MPX G2 will return to the “Sort by Number” mode if a MIDI Program Change message is received in any of the Sort modes except “MIDI Maps” and “Program Chains” (described below).

Bug Note: Bank values greater than 2 are interpreted as bank 0. They really should be ignored.

MIDI Map Mode

The MPX G2 supports 3 separate MIDI Maps. MIDI Maps allow the user to select a MPX G2 program to be loaded in response to a particular Program Change message. Each MIDI Map contains 128 locations; one for each program number supported by the MIDI Program Change message (0-127).

Example MIDI Map:

Program Change #

MPX G2 Program #

0

4 - Power Chords

1

7 - EnvFilter LP

2

12 - Little Wing

3

2 - Guitar Solo

...

...


The MPX G2’s SYSTEM: MIDI Maps menu provides an editor that allows the assignments to be modified. Refer to the MIDI Maps section of the UI spec for additional information.

When the PROGRAM mode is set for “Show members of MIDI Maps”, MPX G2 programs are selected based on assignments made for the particular Program Change number in the selected MIDI Map. Once MIDI Maps are selected in the PROGRAM mode, particular maps are selected by pressing the < and > buttons.

 

MIDI Map Extensions

In addition to simply selecting programs, the MPX G2’s MIDI Maps allow MIDI Program Change messages to perform other system wide operations. Though these operations are not normally associated with Program Change, they can prove to be very useful when controlling the system from a foot controller. The following extensions are available:

Extension

Notes

Clear Loop

Clears the loop when the JamMan effect is in use.

Layer

Toggles the JamMan effect in and out of the Layer mode.

Replace

Toggles the JamMan effect in and out of the Replace mode.

Delay

Toggles the JamMan effect in and out of the Delay mode.

Start Stop

Stops and restarts the loop in the JamMan effect.

Tap

Performs the same operations as the front panel’s TAP button.

Bypass

Toggles the system bypass on and off.

Gain Bypass

Toggles the Gain effect bypass on and off.

FX1 Bypass

Toggles the FX 1 bypass on and off.

FX2 Bypass

Toggles the FX 2 bypass on and off.

Chorus Bypass

Toggles the Chorus effect bypass on and off.

Delay Bypass

Toggles the Delay effect bypass on and off.

Reverb Bypass

Toggles the Reverb bypass on and off.

EQ Bypass

Toggles the EQ effect bypass on and off.

Insert Bypass

Toggles the INSERT bypass on and off.

Toggle A B

Performs the same operations as the front panel AB button.

 

Program “Chains” Mode

The MPX G2 supports 10 Program Chains. Program Chains allow users to “increment” and “decrement” through groups of up to 10 MPX G2 programs. The “incrementing” and “decrementing” is driven by assignments made for the “Pgm+” and “Pgm-“ parameters which can be found in the SYSTEM:MIDI menu as an option to the “Pgm Change” parameter. Typically, these are assigned to footswitches or continuous controllers.

The MPX G2 uses MIDI Program Change messages to select a particular “Chain”. Once a particular Chain has been selected, increments and decrements step through the MPX G2 programs assigned to the Chain. MIDI Program Change numbers are assigned to select Chains and MPX G2 programs are assigned to particular Chain (elements of a Chain) in the system program chains menu.

MIDI Program Change message can be used to select Chains when the PROGRAM mode is set for “Show members of Program Chains”. Once Program Chains are selected in the PROGRAM mode, particular maps are selected by pressing the < and > buttons.

 

Program Number Correlation:

All incoming MIDI Program Change messages are offset by 1 relative to the programs in the MPX G2. MIDI Program Change messages begin with program 0 while the MPX G2’s programs begin at 1. When a MIDI Program change value of 0 is received by the MPX G2, program 1 is loaded. Note that this can be modified by the Pgm# offset parameter which is an Option of the SYSTEM:MIDI “Pgm Change” parameter.

Configurable Parameters

The MPX G2 contains several parameters that effect how the system responds to MIDI Program Change messages.

“Pgm Change”
This parameter determines whether the MPX G2 will respond to Program Change messages or not.

“Pgm# Offset”
The Pgm# Offset (program change number offset) parameter, is a number that is added to MIDI Program Change values received by the box. If MIDI Program Change 10 (0x09) is sent to the MPX G2 and the Pgm# Offset is set for 5, program 15 would be loaded.

Note the Pgm# Offset is ignored in the MIDI Maps and Program Chains modes.

 

MIDI Continuous Controllers

The MPX G2 makes extended use of MIDI Continuous Controllers. In addition to dynamically changing system parameters in response to received Continuous Controller messages, the MPX G2 is even capable of generating and transmitting Continuous Controller messages.

Receive

The MPX G2 has a wide range of parameters that can be manipulated via MIDI Continuous Controller messages.

· Program Patch Sources

· Global Patch Sources

· Bypass Patch Sources

· TAP

· Program Inc/Dec

· LFO1/2 “On Source”

· A/B “On Source”

Patches

In the MPX G2, a “patch” is mapping device that allows a control source to manipulate a destination parameter. The MPX G2 provides three types of Patches: Program, Global and Bypass. Program Patches are stored and recalled with MPX G2 programs while the Global and Bypass Patches are always available. While Program and Global Patches provide continuous control over their target destination parameters, Bypass Patches simply allow the effect and system bypasses to be toggled on and off using Continuous Controllers.

In addition, several internal control sources (LFOs, Envelopes, etc.), MIDI Continuous Controllers can be selected as sources for Global, Program and Bypass Patches. All Continuous Controllers from 1-31, 33-119 can be used as Patch sources. Controllers 0 and 32 are excluded because they control program banking and Controllers over 120 are reserved.

TAP

The MPX G2 allows a MIDI Continuous Controller to actuate the system’s TAP function. The selection of Controller to use is made from the EDIT: Tempo menu “Tap Source” parameter. A threshold can be set from the parameter’s option “Source Level” parameter. A “Tap” event is detected each time the controller goes from below the Source Level to above it.

Program Inc/Dec

The MPX G2 allows a MIDI Continuous Controller to increment and/or decrement programs. The selection of Controller to use is made from the SYSTEM: MIDI “Pgm Change” parameter’s option menu. The right hand page of the option menu contains the “Pgm+” and “Pgm-“ parameters to which the Controllers are assigned. Programs are incremented or decrements when the Controller crosses from less than 64 to 64.

LFO 1 / LFO 2 “On Source”

The MPX G2 allows a MIDI Continuous Controller to control whether an LFO is on or off. The selection of Controller to use is made from the EDIT: Controllers LFO1/2 menu. The last parameter on the row is the “OnSrc” parameter. When the Controller is below the value of the “OnLvl” parameter, the LFO is turned off. When the Controller hits the value of the “OnLvl” parameter or greater, the LFO turns on.

AB “On Source”

The MPX G2 allows a MIDI Continuous Controller to trigger an A-B ramp. The selection of Controller to use is made from the EDIT: Controllers A/B menu. The last parameter on the row is the “OnSrc” parameter. When the Controller crosses from below the value of the “OnLvl” parameter to above it, the A/B ramp begins.

Transmit

The MPX G2 is capable of actually generating MIDI Continuous Controller messages. For all of the Patch sources the system supports, Continuous Controllers can be transmitted. The SYSTEN: MIDI menu contains a pair of parameters grouped under Ctl Send which allow you to select the Continuous Controller number that the Patch source controllers will transmit as. The one limitation is that only the Patch Sources for Program Patches are transmitted and only when the program they are used in, is loaded.

 

MIDI Notes

The MPX G2 can use incoming MIDI note ON events as control sources for program patches. The note number is used to drive the patch (just as a MIDI controller “value” drives a patch). incoming MIDI notes must be on the MIDI channel defined by the SYSTEM: MIDI “Receive” parameter. The following variations of MIDI notes are available as patch sources:

Name

Description

Last (note)

This is the last MIDI note that was received by the system.

Low (note)

This is the lowest note currently being played (in a chord)

High (note)

This is the highest note currently being played (in a chord)

 

MIDI Clock

The MPX G2 is capable of both generating and synchronizing to MIDI clock.

MIDI Clock IN

The MPX G2 can use incoming MIDI clock to set the system’s tempo, which in turn can control parameters throughout the system. To use external MIDI clock with the MPX G2, the EDIT: Tempo “Source” parameter must be set to “MIDI”. With the Source set for MIDI, the Tempo “Rate” (in BPM) is calculated from the incoming MIDI clock. The settings of these parameters are stored and recalled with each program unless the SYSTEM: Mode Tempo parameter is set for “Global”.

The Tempo “Rate” can be used by several parameters throughout the system to provide unified synchronization. Examples include the Delay “Time” parameter which can be based on Tempo Rate and virtually all “Rate” parameters used in LFOs, Chorus, etc. These parameters can be put into the “ratio” mode (which uses the Tempo Rate) by pressing the Options button when the parameter is selected.

Incoming MIDI clock can also be used to define the loop size when using the JamMan algorithm in the Delay effects block. In this case, the loop size will be determined by the tempo of the incoming MIDI clock and the current value of the Edit:Tempo “Beat Value” parameter. This parameter defines the musical size of an MPX G2 “beat” (two successive presses of the TAP button). If a two-measure loop in 4/4 were being used, the Beat Value parameter would be set for “8 Beats”. With the Tempo Source parameter set for “MIDI”, only a single press of the TAP button would be required. The loop would automatically be closed by the system when the equivalent of 8 musical beats, in MIDI clocks, was received.

MIDI Clock OUT

The MPX G2 can actually generate a stable MIDI clock that can be used by other equipment to synchronize itself to the G2. The output of MIDI clock can be turned on and off from the SYSTEM: MIDI menu via the “Clock Send” parameter. The tempo of the outgoing clock is based on the current value of the Tempo Rate parameter. Refer to the MIDI Clock IN section for additional information on how tempo is used by the system.

When the JamMan effect is loaded in the Delay block, MIDI clock (and program Tempo Rate) is defined by the size of the loop. In addition, a MIDI Start command is sent when a loop is tapped in to start any connected drum machines or sequencers. A MIDI stop command is sent when the loop is reset/cleared. When using the outgoing MIDI clock with the JamMan effect, the EDIT: Tempo “Beat Value” parameter must be set for the number of beats which appear in the loop in order for the connected equipment to stay in sync with the loop.

 

MIDI Channel

The MPX G2 allows a separate MIDI channel to be defined for incoming (Receive) data and outgoing (Transmit) data. The Receive and Transmit MIDI channels are set from the G2’s SYSTEM: MIDI menu.

Receive

 The “Receive” channel defines the MIDI channel to which the system will respond for program changes, continuous controllers and MIDI notes. In addition to being selected manually, the Receive MIDI channel can also be set automatically from incoming data from the Patch Source’s OPTION menu. This menu allows both the MIDI channel and a controller number to be “learned” for use as a source to a program Patch. The learn feature is also available for the Global Patch’s Source parameter. Legal values of 1-16, Off and Omni are available.

Transmit

The “Transmit” channel defines the MIDI channel to which the system will generate general MIDI messages. At present, the only general MIDI message that the system is capable of generating is continuous controller messages. The SYSTEM: MIDI menu contains a utility (“Ctl Send”) that allows continuous controller numbers to be assigned to each of the control “sources” that are available as patch control sources. When these control sources are used in a program patch, it is automatically transmitted as the controller assigned in this utility.

MIDI Implementation Chart

Function

Transmitted

Recognized

Remarks

Basic Channel Default
Changed

1
1-16

1
1-16

Mode Default
Messages
Altered

Mode 1
X

Mode 1, 3
X
X

Note Number

0-127

0-127

Last Note, Low Note, High Note are used as controllers

Velocity Note ON
Note OFF

O
X (Off-9n v=0)

O

used as controller

After Touch Keys
Channel

X
X

X
O

used as controller

Pitch Bend

X

O

used as controller

Control Change

OX

OX

1-119 for MIDI transmit

Program Change

Bank Select

O
O

0-99
O

100-127 ignored

Program message 0-99 = Program change 1-100. Program maps selectable via MIDI bank select messages

System Exclusive :Lexicon
:real-time
:NonRealTime

OX
X
Device ID

OX
X
Device Inquiry

Product ID = 0F

Device ID

System Common :Song Pos
:Song Sel
:Tune

X
X
X

X
X
X

System Real Time :Clock
:Commands

OX
X

OX
OX*

*START, STOP and CONTINUE are patchable as a switch: START/CONTINUE = 127, STOP = 0

Aux Messages :Local ON/OFF
:All Notes OFF
:Active Sense
:Reset All Controllers

X
X
X
OX

X
O
X
OX

Notes:
Mode 1: OMNI ON/POLY     Mode 2: OMNI ON/MONO     Mode 3: OMNI OFF/POLY     Mode 4: OMNI OFF/MONO     O: Yes     OX: selectable     X: NO


SYSEX

Data Formatting Notes

In an effort to simplify handling and viewing messages, with the exception of each message's header (1st 5 bytes) and "end of SYSEX" (the last byte in the message) message, all data appears in a "nibblized" format. Ultimately, this makes interpreting the data extremely straightforward: un-nibblize then look for structured fields.

By nibblized" we mean that each byte of data is split into two separate bytes, each containing one nibble of the original byte. The high nibble of the resulting bytes are filled with zeros as follows:

 


 

For data organized as 16 bit "words" (2 bytes), are sent low nibble of the low byte followed by high nibble of the low byte, followed by the low nibble of the high byte and finally the hi nibble of the high byte. For example:

 

The implication of this is that some messages will be unnecessarily long. We recognize this but felt the trade off was worth it considering the complexity of the protocol, the box itself and the actual data contained in the messages (dumps, etc.).

 

Device Inquiry

The product supports Non-Real Time System Exclusive General Information "Device Inquiry" defined in the "MIDI 1.0 Detailed Specification 4.2". When the product receives the following message:

0xF0

Begin SysEx message

0x7E

Universal System Exclusive Non-real time header

0x0n

MIDI Channel (use 7F for any MIDI channel)

0x06

General Information (sub-ID#1)

0x02

Device Inquiry message (sub-ID#2)

0xF7

End of SysEx


The product will respond with the following message:

0xF0

Begin SysEx message

0x7E

<channel> Universal System Exclusive Non-real time header

0x0n

MIDI Channel

0x06

General Information (sub-ID#1)

0x02

Identity Reply (sub-ID#1)

0x06

Lexicon's (Manufacturer's) System Exclusive id code

0x00
0x00

Device Family Code

0bbb bbbb
0x00

Device Family Member Code

0x0n

Major Software Version number

0x0n

Minor Software Version number

0x0n

Software Development Phase*

0x00

unused

0xF7

End of SysEx


The Software Development Phase is defined as follows:

0 - Released Software
1 - Pre-Alpha Software
2 - Alpha Software
3 - Beta Software
4 - Gamma Software