An ASCII text version of this document is available on CompuServe under section seven of the MIDI
B forum. To access these documents:
•Enter CompuServe, type GO MIDIBVEN
•Select "section seven: Lexicon"
•Enter the Lexicon library
Overview
The Lexicon PCM 80 is a complex device with an involved MIDI System Exclusive implementation. This
document describes the Version 1.10 PCM 80 MIDI implementation, and assumes familiarity with the
functions and operations of the PCM 80. MIDI Implementation information relevant to PCM 80 algorithm
cards, or to Version 1.00 software, is available in separate documents
The most substantial changes to MIDI implementation between Versions 1.00 and 1.10 are in the area
of effects and bank dumps. Although the data compression used in Verson 1.00 has been eliminated,
Version 1.10 will accept dumps in that format. The software version of any PCM 80 can be determined
using the MIDI Inquiry Message, described in Appendix C of this document.
Autoconfiguration
To aid development of editors and librarians which will remain useful through the lifetime of the PCM 80,
regardless of the addition of new algorithms, we have provided a number of new System Exclusive
messages that allow a librarian to autoconfigure when it encounters new algorithms. Messages which are
particularly useful in autoconfiguration are:
System Configuration Response
Parameter Specific Response
Parameter Display Response
Effect Information Response
Patch Display Response
Matrix Mapping Response
Soft Row Display Response
Data Request
Direction of Data Transfer
Types of System Exclusive Messages
There are several types of System Exclusive messages: Data Requests, Messages, Responses and Data
Dumps.
Data RequestsA request is initiated by a remote device (never by a PCM 80). A request usually results
in a dump. A request for data causes no change in the state of the PCM 80.
MessagesA message is sent by a remote device to a PCM 80. It is a command for which there is
no response, such as a knob message. It may cause a change in the state of the PCM
80.
ResponsesA response is a data packet that is sent from the PCM 80 to another device, always as
the result of a request by that device A response is never sent to the PCM 80 (It may
be harmlessly transmitted to a PCM 80, but results in no change in the PCM 80).
1
LexiconPCM 80 Version 1.10 MIDI Implementation Details
Data DumpsA dump contains information about some aspect of the PCM 80’s internal state. A dump
is transmitted by a PCM 80, eitheron request to another device, or to another PCM 80
(via front panel dump commands or SysEx Automation). When a dump is transmitted
to a PCM 80, it will normally cause a change in the internal state of the PCM 80. A dump
can also be purely informational, containing version information, etc. This sort of dump
may be received by a PCM 80 but results in no change. It is initiated only as the result
of an external request and may be considered as unidirectional.
Enabling System Exclusive Messages
The PCM 80 must be enabled via the front panel controls for receipt of System Exclusive messages. If
System Exclusive message receipt is not enabled, all System Exclusive messages are ignored. The
status of both the PCM 80 Memory Protect function and PCM 80 Pro and Go Edit modes are ignored when
System Exclusive is enabled.
ASCII Character Data
Many of the System Exclusive messages include ASCII character data. This refers to the values between
0x20 (space) and 0x7E (tilde). No other values should be used. Character fields should be padded with
spaces — the C NULL-terminator should not be used. When the PCM 80 receives an out-of-range value,
it will convert that value to a space. The small block character on the PCM 80 display (used to indicate
patch source/destination) is transmitted as a tilde. It is not possible to transmit this character to the PCM
80 via System Exclusive messages. The ASCII backslash character (0x5c) maps to the yen character
(¥)on the PCM 80 display.
Numeric Values
Any numeric values greater than one byte are transmitted from least-significant to most-significant.
Nibble-ized data
Some data (most importantly effect data) is transmitted in a nibble-ized format, i.e. each byte of data is
transmitted as a pair of bytes, with 4 bits of data in each byte. As in all other cases in the PCM 80, the lesssignificant portion of the byte is transmitted first.
Data Errors
The PCM 80 will display System Exclusive errors when it encounters any of a number of problems,
including checksum errors and early termination of a System Exclusive message (too few characters).
It will also report back to the sender of a System Exclusive message if it cannot fulfill a legally formatted
request. This covers situations such as bank-not-present, etc.
Timing Considerations
As some messages require significant time to process, System Exclusive information should not be sent
to the PCM 80 in bursts of more than 3 messages every 20ms. The individual message descriptions
presented later in this document note any specific time out requirements.
2
Lexicon
PCM 80 Version 1.10 MIDI Implementation Details
SysEx Automation
SysEx Automation is intended primarily for facilities using multiple PCM 80s in identical modes of
operation. This mode, which is enabled from the PCM 80 front panel, asumes that all units have the same
effects in the same locations and the same algorithm cards loaded, and that a single master unit front panel
is controlling all slaved units. (Only front panel operations are transmitted as SysEx automation
commands.) Ideally, the master’s Target ID (Control 3.4) should be set to All. The MIDI inputs of all slave
units must be connected directly to the master MIDI OUT. This requires a MIDI THRU box if there is more
than one slave. This is not an appropriate mode for effect editing.
The displays of the slaves do not necessarily track the display of the master, although the internal states
do. Although knob turns and button pushes are not transmitted, the actual parameter values are. This
guarantees that the slave units will be locked directly to the master values. The only exceptions to this are
the Tap, Compare and Bypass buttons, whose states are transmitted to the slaves because they change
the internal state of the device. The others are visual only.
Not all system parameters are transmitted by SysEx Automation. Those which are transmitted are listed
in Appendix E.
Other MIDI Implementation notes
MIDI Controller 32 is used for Bank Select. MIDI Controller 0 (normally the most significant bits of Bank
Select) is ignored.
Program Change messages may be lost if they are sent to the PCM 80 before previous Program Change
messages are completed. Controller Data may be sent at full MIDI speed, with no loss of data.
3
LexiconPCM 80 Version 1.10 MIDI Implementation Details
System Exclusive Message Descriptions
System Exclusive Message Header Block
All SysEx messages are preceded by the standard header.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice IDValues 0-126 are defined as specific addresses. Any mes-
50iii iiiiSysEx IdentifierIdentifies the type of message. All System Exclusive mes-
This response is transmitted by the PCM 80 to a remote device when requested. It is ignored by the PCM
80. Note that this is not a Setup Dump — it is purely informational.
Byte #Byte Value DescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x0Configuration Data
60iii iiiiMajor Version #This is the version number that appears to the left of the decimal
70iii iiiiMinor Version #This is the version number that appears to the right of the decimal
8-150iii iiii8 Byte Time stringTime of the code build in ASCII format xx:yy:zz
16-260iii iiii11 Byte Date stringDate of the code build in ASCII format: xxx:yy:zzzz
27-340000 iiii56000 memory page count
4-byte value (nibble-ized)Number of pages (64K words/page) of memory available to the
35-1480iii iiii114 Byte Bank information
(Space for 57 banks)Indexed by bank, 2 characters/bank. First character=bank size.
1490nCard Presentnon-zero if present
1500nCard Write Protectnon-zero if protected
1510iii iiiiCard VersionIndicates the version of the card directory structure. This should be
point on the the integer portion of the power up display.
point on the fractional portion of the power up display. On the front
panel this may be displayed as a 2-character value with a leading
zero. For example, a minor revison of 1 will appear as x.01. A minor
revision of 10 will appear as x.10
(Hours:Minutes:Seconds)
(Month:Day:Year)
Motorola 56002 processor. The number of pages in a standard
PCM 80 is 4. Memory can be expanded using SIMM memory.
(0=bank not present.) A non-zero in the second byte indicates that
the bank is a non-writeable preset bank.
ignored if the Card Present bit is not set.
1520iii iiiiCard TypeTypes are:
153-1620iii iiii10 Byte Name string for cardThis should be ignored if the Card Present bit is not set.
1630iii iiiiPage countIndicates the amount of memory available on the card. 1 page=64K.
1640iii iiiiCount of algorithms onlineNumber of valid algorithm IDs in the array beginning at byte 165.
165-2280iii iiii64 Byte List of algorithm IDsOnly count from byte 164 is valid.
2290iii iiiiCurrent User Interface Mode0=Control; 1=Tempo; 2=Edit; 3=Program; 4=Register. Mode and
2300iii iiiiUser interface in a Submode0=False; 1=True. A submode is defined as a state of the machine
2310iii iiiiCompare mode0=Off, 1=On
2320iii iiiiBypass0=Off, 1=On
2330xF7End of SysEx
0x00=ROM (holds algorithms or presets)
0x01=RAM (holds user effects, maps, setups and chains)
0x80=Bootable Diagnostics card.
This should be ignored if the Card Present bit is not set.
For example, 0x10 indicates 1 megabyte. This should be ignored if
the Card Present bit is not set.
These are the algorithms currently available to the system and
include internal algorithms plus any algorithms loaded from card.
Algorithms for any card not loaded into the system will not appear
here.
submode are purely informational and do not affect PCM 80 ability
to respond to MIDI.
that is different from that caused by pressing Control, Tempo, Edit,
Program Banks or Register Banks. This includes any of the dialog
modes such as saving an Effect, etc.
5
LexiconPCM 80 Version 1.10 MIDI Implementation Details
0x01Bank Dump
This is a bidirectional dump of an entire bank of effects. It is initiated from the front panel as a Bank Dump.
Byte #Byte Value DescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x1Effect bulk Data
60iii iiiiBank #Source bank if sent by PCM 80; target bank if received by PCM 80.
7-70656xxxxxxxx50 Single effect
data packets, with
checksums after eachSee Description of Nibble-ized Effect Data.
706570xF7End of SysEx
See appendix for indices of banks.
Note that as it is possible for a bank to be sparsely populated (for example, when a user has only a small
number of effects saved in bank 4 or 5) it is important to check the Flags byte for each effect. (See Single
Effect Data for a description of the Flags byte.)
Note also that for any effect to be successfully transmitted or received by the PCM 80, the supporting
algorithm must be present (not necessarily running) in the unit. Internal algorithms are always present,
whereas Card algorithms are only present if the card has been loaded. If an effects packet is transmitted
without the algorithm present, an error message is displayed on the screen. Such cases also cause
special formatting of the effects packet. See Single Effect Data for details.When an effects packet is
received without the algorithm present, an error message is displayed and the destination remains
unchanged.
0x02Single Effect Dump
This is a bidirectional dump initiated from the front panel as a Current Effect Dump. All numeric values
appear LSB first.
Byte #Byte Value DescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x02Single Effect Data
60iii iiiiBank #If both the Bank and Program values are set to 0x7F, the dump is
70iii iiii Program #
8 - 1419Nibbleized effect dataSee next section for description.
1420ChecksumThis 7-bit value is a simple additive checksum that starts at the
14210xF7End of SysEx
that of the current edit buffer. If the dump is received by a PCM 80,
the incoming data will go into the edit buffer (loading the new preset)
but the dump is not stored anywhere else in the target system.
beginning of nibble-ized data.
The algorithm used by the effect must be present (not necessarily loaded) in the receiving unit for this
message to be received. If the algorithm is not present, an error message is displayed.
Nibble-izing takes place in least-significant order. All parameters here are described as after nibble-izing
has been undone. As any of these structures may appear in a number of locations, offsets are listed as
relative offsets.
6
Lexicon
PCM 80 Version 1.10 MIDI Implementation Details
Single Effect Data
Byte
OffsetSizeDescriptionNotes
016-bit (LSB first)Flags0xffff=Valid Effect; 0xfffe=Blank effect slot. This is only sent during a
bank dump when certain positions in the bank are empty. Any other value
indicates that the effect was originally dumped from a Version 1.00 ROM.
The internals of the dump differ from what is described here. Note that
the version 1.10 ROM will accept effect dumps from Version 1.00 — the
version 1.00 ROM will NOT accept dumps from V1.10.
28-bitAlgorithm IDThe algorithm must be present in the unit for this packet to be transmitted
38-bitEdit Matrix PositionPosition in edit matrix when Edit is pressed. Upper nibble represents
4-1512 BytesEffect NameName of effect. See notes on ASCII Character Data in the Overview.
16-249 BytesKnob NameName of Soft Knob. See notes on ASCII Character Data in the Overview.
251 ByteAdjust Knob ValueStored value for the Soft Knob.
or received. This packet has a special format if the algorithm is not
present when the packet is transmitted. The value 0x7F replaces the
Algorithm ID which is placed in the Edit Matrix Position. The Effect Name
is properly transmitted, but the remainder of the packet is 0.
column; lower nibble represents row. See previous note in the case of
algorithm not present.
Appendix G: Non-Patchable (Type 2) Parameters.
1 Byte=Tempo Flag (1 if Tempo Mode); 2 Bytes=Value.
If Tempo Mod =0, then this is a 16-bit value (LSB first). If Tempo Mode=1,
then 1st byte is numerator and 2nd byte is denominator. The first 22
parameters are the same for all algorithms. The remaining are unique for
each algorithm. See Appendix F: Patchable (Type 1) Parameters.
Patch Save Data table following this section.
7
Patch Save Data
Byte
OffsetSizeDescriptionNotes
08-bitValid Flag0=patch not connected, ignore following data; 1=patch connected,
following data valid.
18-bitTempo Mode0=Target parameter not in Tempo Mode; 1=Target parameter in Tempo
Mode. This must match the tempo flag field for the Type 1 parameter that
is the target of the patch.
21 BytePatch SourceSee the Patch Source Table in Appendix A.
31 ByteDestination List IDThe value for the Destination List ID is returned by the Parameter
Specific Response (0x16).
42 Bytes (LSB first)Destination List Index The value for the Destination List Index is returned by the Parameter
Specific Response (0x16).
61 BytePoint Count0-8=number of points in the patch. 0 is interpreted in the same way as a
Valid Flag of 0.
78 3-byte valuesPatch Point ValuesValues for each of 8 possible pivot points. Fields are interpreted as: 1
Byte=Position (0-127). These should be in ascending order. 2
Bytes=Value of target parameter at the pivot point. Only the first Point
Count of these values is meaningful. The remainder should be transmit-
ted as 0’s.
31End of DataEnd of DataEnd of Data
LexiconPCM 80 Version 1.10 MIDI Implementation Details
0x03Table Dump
This is a bidirectional dump (initiated from the front panel as a Map Dump) which describes a complete
program table (map).
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x3Table Data
60iii iiiiTable (map) #Unlike some other objects, there is no “current” table, so the 0x7F value
70iii iiiiBank for table
position 0Any legitimate bank. See Appendix B: MIDI Bank Assignments. If
80iii iiiiOffset for table
position 00 - 49
9-262Bank/offset for positions 1-127
2630xF7End of SysEx
has no function in this case. There are normally 2 tables in the box (0 and
1). If a RAM card is in place, there are two additional tables (2 and 3).
nothing is assigned to this position in the table, a value of 0x7F is
returned.
8
Lexicon
PCM 80 Version 1.10 MIDI Implementation Details
0x04)Table Element Dump
This is a bidirectional dump which describes a single position in a program table (map).
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x4Table Element Data
60iii iiiiTable (map) #
70iii iiiiOffset in table0-127
80iii iiiiBankAny legitimate Bank index. See Appendix B: MIDI Bank Assignments. If
90iii iiiiOffset0-49
100xF7End of SysEx
nothing is assigned to this position in the table, a value of 0x7F is
returned.
0x05Chain Bulk Dump
This is a bidirectional dump, initiated from the front panel as a Chain Bulk Dump, which describes a set
of program chains (either the internal set of 10 or a card set of 10).
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x5Chain bulk
60000 000iInternal/Card0=Internal; 1=Card
7-260iii iiiiData for chain 0
27 - 206Data for chains 1-9
2070xF7End of SysEx
(10 if card)See following description for Single Chain Dump.
(11-19 if card)
9
LexiconPCM 80 Version 1.10 MIDI Implementation Details
0x06Single Chain Dump
This is a bidirectional dump, initiated from the front panel as a Chain Dump, which describes a complete
program chain.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x6Chain Data
60iii iiiiChain #Unlike some other objects, there is no “current” chain, so the value 0x7F
70iii iiiiBank for chain
position 0Any legitimate Bank index. See Appendix B: MIDI Bank Assignments. If
80iii iiiiChain position offset0-49
9-26Bank/offset for
positions 1-9
270xF7End of SysEx
has no effect here. Normally there are 10 chains available (0-9). If a RAM
card is in place, an additional 10 chains (10-19) are available.
nothing is assigned to this position in the table, a value of 0x7F is
returned.
0x07Chain Element Dump
This is a bidirectional dump which describes a single position in a program chain.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x7Chain Element Data
60iii iiiiChain #
70iii iiiiOffset in chain0-9
80iii iiiiBankAny legitimate Bank index. See Appendix B: MIDI Bank Assignments. If
90iii iiiiOffset0-49
100xF7End of SysEx
nothing is assigned to this position in the table, a value of 0x7F is
returned.
0x08Display Dump
When sent from the PCM 80, this bidirectional dump holds the current display information, whatever it
is. When sent to the PCM 80, this text is displayed for 2 seconds.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x08Display message
6-250iii iiiiTop line of display20-byte copy of upper display line.
26-450iii iiiiBottom line of display 20-byte copy of lower display line.
460xF7End of SysEx
10
Lexicon
PCM 80 Version 1.10 MIDI Implementation Details
0x0BParameter Dump
This is a bidirectional message used when a PCM 80 is transmitting SysEx Automation data. It may be
transmitted or received by a PCM 80. Parameter types include:
Type 0 System Parameters: Parameters such as MIDI Channel, Edit Mode (Pro or Go), Mix Mode, etc.
which are not saved with an effect, but are part of the system setup.
Type 1 Patchable Parameters: Includes all parameters that can be patch destinations These are saved
with an effect.
Type 2 NonPatchable Parameters: Parameters such as envelope threshold which are saved with the
effect but cannot be patch destinations.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50BParameter Value
60xParameter Type0=system; 1=patchable;
70iiiiiiiParameter OffsetSee appendix according to type.
80000000iTempo Mode Flag0=Absolute mode; 1=Tempo Mode. This flag defines the following value
90000iiiiLeast-significant nibble
of absolute value or
numerator byteOut-of-range values transmitted to PCM 80 will be adjusted to legal
100000iiiiNext nibble of absolute
value or numerator byte
110000iiiiNext nibble of absolute
value or denominator byte
120000iiiiMost-significant nibble
of absolute value or
denominator byte
13F7End of SysEx
2=nonpatchable
field as being an absolute 16-bit value (Flag=0) or a ratio value split into
bytes (Flag=1). It also forces the parameter into the appropriate mode.
This flag should be 0 except for those parameters that support Tempo
Mode. See the flags field for the appropriate parameters in the appendices describing the algorithms or use the Parameter Specific Response.
values.
11
LexiconPCM 80 Version 1.10 MIDI Implementation Details
0x0CButton Dump
This is bidirectional. Those buttons which are transmitted in SysEx automation mode are: Compare, Tap
and Bypass.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50xCButton message
60iii iiiiButton #0=Up; 1=Down
70xF7End of SysEx
2=Program Banks;
3=Load
4=Register Banks
5=Store;
6=Edit
7=Compare
8=Control
9=Bypass
10=Tempo
11=Tap
12=Reserved
13=Footswitch 1
14=Reserved
15=Footswitch 2
Button messages may be sent in quick succession (faster than 40ms) to mimic holds. For example,
sending Program Banks every 20ms for 1 second will cause the Help message for the key to be
displayed, just as if the key on the front panel were held down. Multiple key combinations can also be
sent by sending button messages in quick succession. For example, sending an Up message
immediately followed by a Down message causes the user interface to go to position 0.0 in the current
matrix, just as if the two buttons were pressed simultaneously.
0x12Soft Row Assignment Dump
Bidirectional. Assigns a Pro mode slot to a Go mode soft slot.
Byte #Byte ValueDescriptionNotes
1F0SysEx ID
206Lexicon ID
307PCM 80 ID
40iii iiiiDevice ID
50x12Soft Row Assign
60nSoft Row Slot (0-9)
70nSubstitute Row (0-9).This is the row/column that will appear in the soft row slot. A soft row
80nSubstitute Column (0-9)
90xF7End of SysEx
position may be de-assigned if row and column are both set to 0x0F.
The number of rows and columns is dependent on the current algorithm.
12
Loading...
+ 34 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.