Lexicon REFLEX User's Manual

Reflex
MIDI Implementation Details
Contents
Introduction ............................................................1
Definition of Terms.............................................1
Parameters ............................................................2
System Parameter .............................................2
Setup Parameters ..............................................2
Algorithm Number......................................2
Audio Parameters ......................................3
Setup Name Parameters ...........................4
MIDI Patch Parameters .............................4
MIDI Channel Selection ..........................................5
Types of SysEx Messages ................................6
SysEx Message Protocols .................................7
0 Active Setup Data ...................................7
1 Stored Setup Data ..................................8
2 Packed Parameter Adjust .......................8
3 Requests.................................................9
4 All Registers Data .................................10
5 Nibblized Parameter Adjust ..................10
6 System Tasks .......................................11
SysEx Errors .........................................................11
SysEx Output in Response
to Front Panel Activity...................................12
MIDI Patching ........................................................12
Components of a Patch ...................................12
Scaling .....................................................13
Offsets .....................................................14
Miscellaneous Notes........................................14
Creating a Patch from the
Normal Operating Mode ..........................14
Creating a Patch from the
Advanced Programming Mode ................14
Clearing a Patch ..............................................15
Displayed Parameter Value .............................15
Multiple Patches to a Single Parameter...........15
MIDI Clock ..........................................................16
MIDI Bypass ..........................................................16
Data Packing..........................................................17
Data Dumps (Setups)............................................18
Appendix A: Parameter Map ................................19
Appendix B: AlgorithmParameter
Definitions ......................................................20
1 Reverb Algorithm .....................................20
2 Plate Algorithm ........................................20
3 Chorus 1 Algorithm (Flange)....................21
4 Delay 2 Algorithm (Multi-Echoes) ............21
5 Chorus 2 Algorithm (Resonator) ..............21
6 Inverse Room Algorithm ..........................22
7 Gate Algorithm.........................................22
8 Delay 1 Algorithm (Chorus) .....................22
MIDI Implementation Chart...................................23
© 1997, Lexicon, Inc. AllRights Reserved
Lexicon, Inc. • 3 Oak Park • Bedford MA 01730-1441 • Tel: 617 280-0300 • Fax: 617 280-0490
Lexicon Part No. 070-10748 Rev 1
Printed in U.S.A.
Lexicon
Reflex MIDI Implementation Details
Reflex
MIDI Implementation Details
Introduction
Reflex MIDI implementation is designed to be compatible with the Lexicon LXP-1 and, thereby, all existing LXP-1 editor/librarian software, and the Lexicon MRC.
Definition of Terms
The following terms are used through out this document as defined here.
Active Programs or parameters which are currently in use are referred to as being
active.
Nibblized The term nibblized is used to describe a method of transferring data blocks
which are larger than the 7 bits allowed by MIDI. Nibblized data is broken up into significant “nibbles”: the 16-bit value F32A hex would be nibblized as 0F 03 02 0A hex. As you can see, the high nibble is forced to zero and low nibble contains the actual data. Although not terribly efficient, this is fairly straightforward to implement and to interpret when viewing raw hex data.
Packed The term packed is used to describe another method of transferring data blocks
which are larger than the 7 bits allowed by MIDI. Packing the data is an extremely efficient method of transferring different size data types via MIDI, although it is more difficult to implement and to interpret. Packing basically strips the MSB off of each byte (8 bits) of data and assembles them in an additional byte. It therefore takes 8 MIDI bytes to transmit 7 raw data bytes. See
description.
Parameter A parameter is an attribute of the system that changes when front panel controls
are altered, or when the system receives MIDI SysEx messages. See
eters
for a complete description of parameters.
Preset A preset is a setup that can
in ROM (read only memory) and are typically used as a starting point in the creation of registers. Note that when presets and registers are selected they are copied into “working” setups that operator cannot overwrite the systems presets.
Program,
Algorithm Program and Algorithm refer to a microcode program loaded into the Lexichip
to produce a specific type of audio effect. Reflex contains 8 microcode programs (listed and described in the appendix).
Register A register is a setup that can be changed by the operator and stored in
nonvolatile memory within the system. The system supports 128 user registers, numbered 0-127 (1-128 on the front panel display).
Setup A Setup is a group of changeable attributes that define how the system will
operate. In software, a setup exists as a table containing values for most of the systems attributes. Setups can be stored in, or loaded from, the systems nonvolatile EEPROM and/or transferred in and out of the system via SysEx dumps. See
Data Dumps
not
be changed by the operator. Presets are stored
can
be edited, then stored in registers. The
for a byte-by-byte definition of a setup
Data Packing
for a detailed
Param-
1
Reflex MIDI Implementation Details Lexicon
Parameters
All of the System Exclusive activity involving parameters requires a parameter number and a data value. Each parameter changes different aspects of how the system is currently working. There are two major classifications of parameters: System parameters and Setup parameters.
System Parameter
There is only one system parameter: Setup number. The value of Setup number, parameter 64 (40 hex), controls which setup (register/preset) is running. Setups 0-127 refer to registers 1-128, while setups 128­144 refer to presets 1-16. For example:
byte 1 2 3 4 5 6 7 8 9 10
F0 06 02 50 40 00 00 03 0B F7
This is a nibblized SysEx parameter change message (type 5) that changes the current setup to register number 3B hex (59 decimal).
Setup Parameters
Setup parameters are defined as all of the parameters stored in a setup (user register or preset). In general, these parameters effect how a setup sounds or is used by the system. There are four categories of setup parameters: Algorithm Number, Audio, Setup Name and MIDI Patch. These categories are listed below with the range of parameter numbers with which they can be accessed.
Category Parameter Numbers
Algorithm Number 65 (41 hex) Audio 0-10 (0-A hex) Setup Name 32-47 (20-2F hex) MIDI Patch 48-63 (30-3F hex)
Note that parameters 60-63 are
not
stored with user registers.
Algorithm Number
(LXP-1 documentation refers to Algorithm Number,or Program ID, as a
System Parameter
, but it is more accurately described as a setup parameter as it identifies the DSP program run with a given setup and is stored with both preset and user register setups.)
The most important setup parameter is Algorithm Number. Accessed using parameter 65 (41 hex), the Algorithm Number defines one of the following DSP algorithms to be used with a given setup:
Used
Name (MRC) Algorithm Number Description with Preset:
Reverb 1 Rooms and Halls 1-6 Plates 2 Plate Emulation 9-11 Chorus 1 3 Flanger 12 Delay 2 4 Multi-Tap Delay 15 Chorus 2 5 Resonator 16 Inverse 6 Inverse Room 7 Gate 7 Gated Reverb 8 Delay 1 8 Chorus/Delays 13, 14
2
Lexicon
Reflex MIDI Implementation Details
The Algorithm Number is stored in a setup as an 8-bit value. When changed via a SysEx message, a full 16-bit value should be transmitted with the high bits all set to zero. For example:
byte 1 2 3 4 5 6 7 8 9 10
F0 06 02 50 41 00 00 00 08 F7
This is a nibblized SysEx parameter change message (type 5) that changes the current algorithm to number 8. Note that the two high nibbles (in bytes 6 and 7) are set for zero. Remember that the Algorithm number is one of the parameters of a given setup. Changing the Algorithm number is the same as changing any of the other parameters except that the values of the Audio Parameters may produce dramatically different effects with the new algorithm than the old. Some caution should be exercised when changing only the algorithm number as some Audio Parameter values which are legal for one algorithm may not be legal for another. The values are checked and limited before they are applied to the DSP but they may appear as being out-of-range when viewed on an MRC or via Reflexs Advanced Programming Mode (APM). Reflex will ignore new algorithm number values if they are not between 1 and 8.
Audio Parameters
Audio parameters directly effect the sound of an algorithm in a given setup. Because, in conjunction with the Algorithm Number, they
characterize
the sound of a setup, they generally have different values for each setup that uses the same algorithm. In this way, a single algorithm can produce dramatically different sounding effects. While there are always 11 of these additional parameters for every setup, the actual effect they have on each algorithm varies dramatically. See the Appendix for a complete listing of Audio Parameter numbers and their effect in each algorithm.
The following table outlines the Audio parameters:
Parameter # Description
0 Front Panel DECAY Parameter (actual effect varies) 1 Front Panel DELAY Parameter (actual effect varies) 2 Front Panel FX LVL Parameter (effect output level) 3 Different for each algorithm 4 Different for each algorithm 5 Different for each algorithm 6 Different for each algorithm 7 Different for each algorithm 8 Different for each algorithm 9 Different for each algorithm
*10 (A hex) Effect Input Level (used for BYPASS) *Note that this parameter is not available in Reflexs APM.
Each of these parameters is stored as a 16-bit value in a setup. Audio parameters can be broken down into two basic categories: Bipolar (+ and -) and Unipolar.
Bipolar parameters typically consist of values ranging from 0x4000 (most negative) to 0xBFFF (most positive) with 0x8000 representing a value of zero.
Unipolar parameters typically range from 0x8000 (min) to 0xBFFF (max).
exceptions.
Refer to the Appendix for a complete listing of all algorithms with their
There are
associated Audio Parameters including the range of legal values for each.
Please note that many of the parameters lack the resolution implied by this range. Software written to control these parameters should be sensitive to the finest effective resolution which is indicated in the Appendix. The range of values available for each parameter demonstrates a sensitivity of resolution by design. The front panel parameter controls on the LXP-1 have a fixed resolution of 16 positions (or 4 bits).
3
Reflex MIDI Implementation Details Lexicon
In order to allow all of the parameters to be cleanly mapped to these encoders, the most significant bits of each parameter are shifted to the right so that any of the parameters can be coarsely adjusted via the same 4 bits. 8000 hex was chosen as a zero point to further simplify coding.
Note that when a new parameter value is sent to a Reflex via SysEx, the previous value of that parameter in the active setup is overwritten. Similarly, changing parameter values via the front panel overwrites the values set via SysEx.
Parameter 10 (Input Level) is a bit different from the other Audio parameters in that its value is not stored in user registers. This parameter is always set to maximum (0xBFFF) when a new preset or register setup is loaded unless the system is in Bypass, in which case the parameter is left at 0x8000 (min). In many respects, parameter 10 could be considered a system parameter. Although you can change the value of parameter 10 via SysEx, the system software will assume that the parameter is set where last left (Bypassed or not) so proceed with caution. This gives you the ability to produce a bypass that mutes the output, in addition to the input via MIDI, if desired.
Setup Name Parameters
Setup Name parameters are actually just a string of 16 8-bit memory locations set aside in each setup to store a string of text describing the setup. Each “parameter” simply provides access to one of the character locations. Though not required, it is suggested that the string be null terminated if possible.
You must access each character one at a time to change or read the name of the active setup. The parameters are numbered 32-47 (20-2F hex).
Note that the MRC will only display the first 8 characters of the name, even though 16 are available. Reflex presets are stored with the name parameters: Preset1, Preset2, etc. Also note that the MRC V3 software does
not
transmit these parameters as part of an active setup dump. (MRC V4 does transmit them as part
of an active setup dump.)
MIDI Patch Parameters
MIDI patch parameters allow generic MIDI controller and note information to dynamically control a given parameter. Reflex supports four MIDI patches per setup, which can be stored in a user register. Each MIDI patch consists of:
a source (parameters 48-51 dec, 30-33 hex) a destination (parameters 52-55 dec, 34-37 hex) a scale value (parameters 56-59 dec, 38-3B hex) an offset* (parameter 60-63 dec, 3C-3F hex)
* This parameter is not stored in user registers.
See
MIDI Patching
for more detailed information
4
Lexicon
Reflex MIDI Implementation Details
MIDI Channel Selection
The MIDI channel to which a given Reflex system will respond to MIDI messages can be set in one of two ways: from a menu item in the Advanced Programming Mode (APM) or by “learning” the channel from incoming MIDI data.
In APM, set the REGISTER/PRESET encoder to position 12 and turn the VALUE encoder to select the desired MIDI channel.
To learn a MIDI channel, press and hold the PARAMETER/LEARN button until the scaling (see
Patching
) value appears then, still holding down PARAMETER/LEARN, send the unit a MIDI message
MIDI
containing channel number information. The button may then be released. Messages received while the button is held down will be honored regardless of channel number and the unit will adopt the transmitted channel number as the operational MIDI channel. System Common or Running Status messages will not cause the unit to change channels since these messages do not contain MIDI channel information. SysEx messages in Reflex protocol will work since they do contain channel information (Reflex considers MIDI channel its Device ID.)
Note that you may inadvertently clear a patch if you attempt to “learn” the MIDI channel of incoming data while a parameter with a patch assigned to it is selected. Refer to
MIDI Patching
for additional information.
5
Reflex MIDI Implementation Details Lexicon
System Exclusive
Reflex system software was written to support the same System Exclusive message protocols estab­lished for the LXP-1. The following sections should provide all of the information necessary to write software to interface with Reflex using System Exclusive.
Types of SysEx Messages
To understand the types of SysEx messages used with Reflex you need to know what SysEx is used for by the system. In general, SysEx messages are used to:
1. Move setup data out of the system (dumps)
2. Move setup data into the system (loads)
3. Change system parameters
4. Execute system tasks
5. Request information from the system These tasks can be further broken down into particular cases: (Note the “types” indicated refer to message
types as defined in the
1. Setup data can be moved out of the system with the following types of SysEx messages: Active Setup Dumps (type 0) Stored Setup Dumps (single registers) (type 1) All Register Dumps (type 4)
Message Protocols
.)
2. Setup data can be moved into the system with the following types of SysEx messages: Active Setup Loads (type 0) Inactive Register Loads (single) (type 1) All Register Loads (type 4)
3. Parameters can be changed using the following types of SysEx messages: Packed Parameter Adjust (type 2) Nibblized Parameter Adjust (type 5)
4. The following system tasks can be performed via SysEx messages (type 6): Store the current setup in a register Recall a stored register (stored in the Reflex) Set Bypass mode
5. The following information can be requested of the system via SysEx: (type 3) Active setup data Contents of a single inactive register Contents of all registers (dump all) Packed parameter data Nibblized parameter data
6
Loading...
+ 19 hidden pages