Before reading the DigiTech Midi Implementation Manual you should have a
orking knowledge of the MIDI 1.0 Detailed Specification which may be
obtained from the Midi Manufacturers Association1. Upon request DigiTech
ill provide information regarding their system exclusive commands for all
of their devices. Though we try to provide accurate documentation for our
devices to our customers we do not guarantee 100% correctness. Should you
discover some discrepancies between this manual and the actual device
implementation, please feel free to let us know about it. Please backup your
device's programs before making modifications through midi. Not only is this
A
A
A
A
m
a good practice, but it will save you a lot of down time should your midi
commands be incorrect. DigiTech does not assume any responsibility for lost
presets. Please note that the Midi Device Manual is a generic term used in
this document to refer to a device specific Midi Manual. (Example: GSP7 Midi
Implementation Manual)
Midi Channel
ll DigiTech devices can be configured to listen to midi on unique channels.
ll devices allow a selection of midi channels 1 through 16. Some devices
allow a channel selection of OMNI (receive midi on all channels), and some
devices allow the receipt of midi data to be disabled. Some devices allow
you to select one channel for the reception of midi data, and another
channel for the transmission of midi data. Check the Midi Device Manual for
information on how to select the midi channel for your device.
Program Change
ll DigiTech devices recognize a program change command. If the receive midi
channel is the same as the channel that the program change was transmitted
on, and the new program number is legal, the DigiTech device will change to
the new program number. Midi sends program changes 0 through 127. DigiTech
numbers their programs starting at 1. Thus midi program change 0 will map to
DigiTech device program 1. Some DigiTech devices allow you to remap program
changes. Remapping program changes allows the user to select any device
program based on the midi program change. The remapping of transmitted
program changes is available on devices that can generate program change
commands. Check the Midi Device Manual to determine if your device allows
the remapping of program changes.
Continuous Controllers
continuous controller may be associated with a device parameter. This
association is done by linking the controller to the parameter. DigiTech
uses the continuous controller to represent a percentage of the parameters
aximum value. Though this is the general principle, the exact formula for
each device can be found in the Midi Device Manual.
Channel Pressure
DigiTech treats channel pressure as a special case continuous controller.
System Exclusive
GENERAL FORMAT
D7 - D0 Hex Value Definition
11110000b F0h System exclusive status byte
00000000b 00h
00000000b 00h DOD/DigiTech manufacturer's ID number
00010000b 10h
0000nnnnb 0Nh N = Channel # - 1,
i.e. 0000 00h is Channel 1.
0001 01h is Channel 2
.
1111 0Fh is Channel 16
The internal representation of the channel to which the receiving unit is
listening. It is used to communicate with different units of the same device
type connected to a common MIDI line. If the receiving device is set to omni
then this byte is ignored.
0tttttttb TTh DigiTech device type. Specifies the particular DigiTech
product with which communication is being held. (See page 4 for current
DigiTech device types.)
0pppppppb PPh Procedure number. Each procedure's name and general format are
on page 4. Consult the Midi Device Manual to determine which procedures are
supported by your device and the exact data format for those procedures.
0dddddddb DDh
0dddddddb DDh
0dddddddb DDh
. .
. .
. . Data as needed by procedures. Consult the Midi Device Manual to
determine the data format for each procedure.
. .
. .
. .
0dddddddb DDh
0dddddddb DDh
In the following section SYSX_HEADER refers to a valid system exclusive
header. The system exclusive header starts with the System Exclusive status
byte, and includes all bytes through the DigiTech device type. EOX refers to
the End of System Exclusive status byte (F7h). All numbers in the format
definition of each procedure are given as hexadecimal values.
REQUEST CONFIGURATION (00000000b 00h)
SYSX_HEADER 00h EOX
SYSX_HEADER 00h 00h EOX (For IPS 33B only)
When a REQUEST CONFIGURATION procedure is received, the DigiTech device will
respond with a RECEIVE CONFIGURATION procedure.
REQUEST ONE PROGRAM (00000001b 01h)
SYSX_HEADER 01h yy zz EOX
SYSX_HEADER 01h zz EOX (For IPS 33B only)
yy 0000000vb where v is bit 7 of the requested program number - 1.
zz 0vvvvvvvb where v is bits 6 through 0 of the requested program number -
1.
When a REQUEST ONE PROGRAM procedure is received, the DigiTech device will
respond with a RECEIVE ONE PROGRAM procedure.
REQUEST ALL HARMONY DEFINITIONS (00000010b 02h)
SYSX_HEADER 02h 00h EOX
When a REQUEST ALL HARMONY DEFINITIONS procedure is received, the DigiTech
device will respond with a RECEIVE ALL HARMONY DEFINITIONS procedure.
REQUEST ONE HARMONY DEFINITION (00000011b 03h)
SYSX_HEADER 03h zz EOX
zz 0vvvvvvvb where v is bits 6 through 0 of the requested harmony definition
- 1.
When a REQUEST ONE HARMONY DEFINITION procedure is received, the DigiTech
device will respond with a RECEIVE ONE HARMONY DEFINITION procedure.
REQUEST ALL ARPEGGIO PATTERN DEFINITIONS (00000100b 04h)
SYSX_HEADER 04h 00h EOX
When a REQUEST ALL ARPEGGIO PATTERN DEFINITIONS procedure is received, the
DigiTech device will respond with a RECEIVE ALL ARPEGGIO PATTERN DEFINITIONS
procedure.
REQUEST ONE ARPEGGIO PATTERN DEFINITION (00000101b 05h)
SYSX_HEADER 05h zz EOX
zz 0vvvvvvvb where v is bits 6 through 0 of the requested arpeggio pattern
definition - 1.
When a REQUEST ONE ARPEGGIO PATTERN DEFINITION procedure is received, the
DigiTech device will respond with a RECEIVE ONE ARPEGGIO PATTERN DEFINITION
procedure.
REQUEST RAM AREA (00000110b 06h)
w
w
SYSX_HEADER 06h bb ww xx yy zz nn EOX
bb Bank number of ram being requested. Currently the only valid bank in
DigiTech devices is 00h.
w 0000000vb where v is bit 15 of the ram address.
xx 0vvvvvvvb where v is bits 14 - 8 of the ram address.
yy 0000000vb where v is bit 7 of the ram address.
zz 0vvvvvvvb where v is bits 6 - 0 of the ram address.
nn 1 to 7Fh, the number of ram bytes to be sent.
The REQUEST RAM AREA procedure is used to have the DigiTech device send an
area of its internal ram to a host midi device. When a REQUEST RAM AREA
procedure is received, the DigiTech device will respond with a DATA RESPONSE
procedure. The Midi Device Manuals for the DigiTech devices which support
the REQUEST RAM AREA procedure contain a memory map and definition of the
ram locations which may be requested.
DATA RESPONSE (00010000b 10h)
SYSX_HEADER 10h bb ww xx yy zz nn d(1) d(1)'...d(nn) d(nn)' EOX
bb Bank number of ram being sent. Currently the only valid bank in DigiTech
devices is 00h.
w 0000000vb where v is bit 15 of the ram address.
xx 0vvvvvvvb where v is bits 14 - 8 of the ram address.
yy 0000000vb where v is bit 7 of the ram address.
zz 0vvvvvvvb where v is bits 6 - 0 of the ram address.
nn 1 to 7Fh, the number of ram bytes in this response.
d(c) 0000000vb where v is bit 7 of the cth byte being sent.
d(c)' 0vvvvvvvb where v is bits 6 through 0 of the cth byte being sent.
The DATA RESPONSE procedure is sent from a DigiTech device in response to a
REQUEST RAM AREA procedure. If a DATA RESPONSE procedure is received by a
DigiTech device, it is ignored. The Midi Device Manuals for the DigiTech
devices which send the DATA RESPONSE procedure contain a memory map and
definition of the ram locations which may be sent in response to a REQUEST
RAM AREA procedure.
RESET DEVICE (00100000b 20h)
SYSX_HEADER 20h EOX
The RESET DEVICE procedure causes the DigiTech device to reset itself as
though the power had just been turned on.
RESET HARDWARE (00100001b 21h)
SYSX_HEADER 21h EOX
The RESET HARDWARE procedure causes the DigiTech device to reload all of
it's hardware devices.
RESET HARDWARE DEVICE (00100010b 22h)
SYSX_HEADER 22h aa bb EOX
aa The major number of the device to be reset.
bb The minor number of the device to be reset.
The RESET HARDWARE DEVICE procedure causes the DigiTech device to reload a
particular hardware device. The major number is used to identify the
hardware device. The minor number is used to identify a particular element
of a hardware device. If the minor number is 0, then all elements of the
device are reset. As an example, the speaker simulator on the GFX-1
(TwinTube) has a major device number of 2. Valid minor numbers for the
speaker simulator are 0 through 6. If the minor number is 0, then all bands
of the speaker simulator are reset. If the minor number is 1, then the first
band of the speaker simulator is reset. 2 would reset the second band, etc.
RECEIVE MICROCODE (01000000b 40h)
SYSX_HEADER 40h aa bb cc dd ... EOX
aa
bb Repeated groups of 4 bytes.
cc
dd
The RECEIVE MICROCODE procedure is used by DigiTech for product development.
d(c) 0000000vb where v is bit 7 of the cth byte of the configuration.
d(c)' 0vvvvvvvb where v is bits 6 through 0 of the cth byte of the
configuration.
The RECEIVE CONFIGURATION procedure is used to load configuration
information into the DigiTech device. The number of configuration bytes to
be received (n) is different for each DigiTech device.
yy 0000000vb where v is bit 7 of the received program number - 1.
zz 0vvvvvvvb where v is bits 6 through 0 of the received
program number - 1.
d(c) 0000000vb where v is bit 7 of the cth byte of the received program.
d(c)' 0vvvvvvvb where v is bits 6 through 0 of the cth byte of the received
program.
The RECEIVE ONE PROGRAM procedure is used to load a program into the
DigiTech device. The number of program bytes to be received (n) is different
for each DigiTech device.
d(c) 0vvvvvvvb where v is bits 6 through 0 of the cth byte of the harmony
definitions.
The RECEIVE ALL HARMONY DEFINITIONS procedure is used to load all harmony
definitions into the DigiTech device. The number of harmony definition bytes
to be received (n) is different for each DigiTech device.
DigiTech Device # Ram bytes # Midi data bytes
IPS33 384 384
IPS33B 768 768
RECEIVE ONE HARMONY DEFINITION (01000100b 44h)
SYSX_HEADER 44h 00h zz d(1) ... d(n) EOX
zz 0vvvvvvvb where v is bits 6 through 0 of the received harmony definition
number - 1.
d(c) 0vvvvvvvb where v is bits 6 through 0 of the cth byte of the harmony
definition.
The RECEIVE ONE HARMONY DEFINITION procedure is used to load one harmony
definition into the DigiTech device. The number of harmony definition bytes
to be received (n) is different for each DigiTech device.
DigiTech Device # Ram bytes # Midi data bytes
IPS33 24 24
IPS33B 24 24
RECEIVE ALL ARPEGGIO PATTERN DEFINITIONS (01000101b 45h)
SYSX_HEADER 45h 00h d(1) ... d(n) EOX
d(c) 0vvvvvvvb where v is bits 6 through 0 of the cth byte of the arpeggio
pattern definitions.
The RECEIVE ALL ARPEGGIO DEFINITIONS procedure is used to load all arpeggio
pattern definitions into the DigiTech device. The number of arpeggio pattern
definition bytes to be received (n) is different for each DigiTech device.
DigiTech Device # Ram bytes # Midi data bytes
IPS33B 544 544
RECEIVE ONE ARPEGGIO PATTERN DEFINITION (01000110b 46h)
SYSX_HEADER 46h 00h zz d(1) ... d(n) EOX
zz 0vvvvvvvb where v is bits 6 through 0 of the received arpeggio pattern
definition number - 1.
d(c) 0vvvvvvvb where v is bits 6 through 0 of the cth byte of the arpeggio
pattern definition.
The RECEIVE ONE ARPEGGIO DEFINITION procedure is used to load one arpeggio
pattern definition into the DigiTech device. The number of arpeggio pattern
definition bytes to be received (n) is different for each DigiTech device.
DigiTech Device # Ram bytes # Midi data bytes
IPS33B 17 17
RECEIVE RAM AREA (01000111b 47h)
w
m
w
SYSX_HEADER 47h bb ww xx yy zz nn d(1) d(1)'...d(nn) d(nn)' EOX
bb Bank number of ram being received. Currently the only valid bank in
DigiTech devices is 00h.
w 0000000vb where v is bit 15 of the ram address.
xx 0vvvvvvvb where v is bits 14 - 8 of the ram address.
yy 0000000vb where v is bit 7 of the ram address.
zz 0vvvvvvvb where v is bits 6 - 0 of the ram address.
nn 1 to 7Fh, the number of ram bytes being received.
d(c) 0000000vb where v is bit 7 of the cth byte being received.
d(c)' 0vvvvvvvb where v is bits 6 through 0 of the cth byte being sent.
The RECEIVE RAM AREA procedure is used to load an area of a DigiTech
device's internal ram from a host midi device. The Midi Device Manuals for
the DigiTech devices which support the RECEIVE RAM AREA procedure contain a
emory map and definition of the ram locations which may be received.
bb Bank number of ram being received. Currently the only valid bank in
DigiTech devices is 00h.
w 0000000vb where v is bit 15 of the ram address.
xx 0vvvvvvvb where v is bits 14 - 8 of the ram address.
yy 0000000vb where v is bit 7 of the ram address.
zz 0vvvvvvvb where v is bits 6 - 0 of the ram address.
nn1 0vvvvvvvb where v is bits 6 - 0 of the transfer count.
m
w
nn2 0vvvvvvvb where v is bits 13 - 7 of the transfer count.
nn3 0vvvvvvvb where v is bits 20 - 14 of the transfer count.
d(c) 0000000vb where v is bit 7 of the cth byte being received.
d(c)' 0vvvvvvvb where v is bits 6 through 0 of the cth byte being sent.
The RECEIVE LARGE RAM AREA procedure is used to load an area of a DigiTech
device's internal ram from a host midi device. The Midi Device Manuals for
the DigiTech devices which support the RECEIVE RAM AREA procedure contain a
emory map and definition of the ram locations which may be received.
REQUEST BULK DUMP (01001001b 49h)
SYSX_HEADER 49h EOX
When a REQUEST BULK DUMP procedure is received, the DigiTech device will
respond with a RECEIVE LARGE RAM AREA procedure.
RETURN TO PROGRAM SCREEN (0110000 b 60h)
SYSX_HEADER 60h EOX
When a RETURN TO PROGRAM SCREEN procedure is received, the DigiTech device
ill return to the program screen if it is on an algorithm or parameter
screen.
notes:
1 MIDI Manufacturers Association
5316 W. 57th St.
Los Angeles, California 90056
(213) 649-6434
2 The midi specifications for the GSP21 and the GSP21 PRO are identical.
3 The GSP 21's and the IPS 33B's midi data format IS NOT IDENTICAL (but
their MIDI IDs are). Therefore, the GSP 21's and GSP 21 PRO's midi receive
channel must be different than the IPS 33B's midi receive channel if they
are to both be on the same midi system.
Request Configuration (00h)
Request One Program (01h)
Receive Microcode (40h)
Receive Configuration (41h)
Receive One Program (42h)
Continuous Controller Calculations
Parameter Value = (CC_Value * 2 * (PARAM_MAX + 1))/256
CC_VALUE The value of the continuous controller. (0-127)
PARAM_MAX The maximum value of the parameter the continuous controller is
changing.
Data format for the DSP256 Receive Configuration procedure
Please note that each internal ram byte (d7 - d0) is transmitted as 2 midi
bytes. The first midi byte is 0000000xb where x is d7. The second midi byte
is 0xxxxxxxb where x is d6 - d0. Refer to the Receive Configuration
procedure in the General Midi Implementation Manual for required header
information.
Ram Byte Number Quick Definition
1 - 2048 128 Program names
2049 - 4864 128 Program definitions
4865 - 5458 27 Algorithm definitions
5459 Program number
5460 Midi receive channel
5461 - 5553 Global link table of parameters to continuous controllers
5554 - 5681 Translation table of received midi program number to
DSP256 program number
5682 Send program change flag
5683 Hand controller flag
5684 - 5700 Foot switch function table
5701 - 5717 Foot switch program table
5718 LCD contrast value
Total Number of Internal Ram Bytes Transmitted 5718
Data format for the DSP256 Receive One Program procedure
Please note that each internal ram byte (d7 - d0) is transmitted as 2 midi
A
bytes. The first midi byte is 0000000xb where x is d7. The second midi byte
is 0xxxxxxxb where x is d6 - d0. Refer to the Receive One Program procedure
in the General Midi Implementation Manual for required header information.
Ram Byte Number Quick Definition
1 - 22 Program definition
23 - 38 Program name
Total Number of Internal Ram Bytes Transmitted 38
128 Program names
Each program name is 16 bytes long. (16 * 128 = 2048 Bytes). The character
set for the DSP256 is at the end of this document.
128 Program Definitions
Program Definition has the following structure:
Program
Definition
Byte Definition
1 Algorithm number (0 - 26)
2 - 22 Vary based on the algorithm number.
There are 128 program definitions in the DSP256 (128 * 22 = 2,816 bytes)
The next section defines program definition bytes 2-22 for each of the 27
m
m
A
A
A
A
algorithms of the DSP256. The first of each algorithm definition contains
the number of the algorithm and it's name. The algorithm number goes in
program definition byte 1. The remaining lines of the algorithm definition
follow this format:
PDB# Parameter Name min - max
PDB# The Program Definition Byte Number
in The minimum value to which this parameter may be set
ax The maximum value to which this parameter may be set
ll numbers are given in decimal.
full definition of each parameter may be found at the end of this
document.
lgorithm 0
MUTE
2 - 22 Not used, set to 0.
lgorithm 1
Dry
2 - 22 Not used, set to 0.
A
lgorithm 2
A
A
Stereo Chorus
2 Chorus Delay 0-60
3 Chorus LFO Speed 0-65
4 Chorus LFO Depth 0-99
5 Mix:Dry Level 0-10
6 Mix:Chorus R Lvl 0-10
7 Mix:Chorus L Lvl 0-10
8-22 Not used, set to 0
lgorithm 3
Stereo Flange
2 Flange Delay 0-10
3 Flange LFO Speed 0-65
4 Flange LFO Depth 0-99
5 Flange Feedback 0-10
6 Mix:Dry Level 0-10
7 Mix:Flange R Lvl 0-10
8 Mix:Flange L Lvl 0-10
9-22 Not used, set to 0
lgorithm 4
Stereo Delay
2 Delay Time 0-147
A
A
3 Delay Feedback 0-11
4 Mix:Dry Level 0-10
5 Mix:Delay R Levl 0-10
6 Mix:Delay L Levl 0-10
7-22 Not used, set to 0
lgorithm 5
4-Tap Delay
2 Delay Time Tap1 0-222
3 Delay Time Tap2 0-222
4 Delay Time Tap3 0-222
5 Delay Time Tap4 0-222
6 Delay Time Feed 0-222
7 Delay Feedback 0-11
8 Mix:Dry Level 0-10
9 Mix:Tap1 R Level 0-10
10 Mix:Tap1 L Level 0-10
11 Mix:Tap2 R Level 0-10
12 Mix:Tap2 L Level 0-10
13 Mix:Tap3 R Level 0-10
14 Mix:Tap3 L Level 0-10
15 Mix:Tap4 R Level 0-10
16 Mix:Tap4 L Level 0-10
17-22 Not used, set to 0
lgorithm 6
Ultimate Reverb
2 Dry Level 0-10
A
A
3 Early Rflct Levl 0-10
4 Subsequent Level 0-10
5 Norm Reflctivity 0-30
6 Norm Room Volume 0-9
7 Damping Factor 0-9
8 Envelopment 0-9
9 Subsequent Delay 0-70
10 Subsqnt Difusion 0-9
11 Early Delay Time 0-70
12 Early Diffusion 0-9
13-22 Not used, set to 0
lgorithm 7
Gated Reverb
2 Pre-Delay Time 0-80
3 Gate Envelope 0-1
4 Gate Decay Time 0-11
5 Accent Delay 0-10
6 Accent Level 0-10
7 Mix:Dry Level 0-10
8 Mix:Gate R Level 0-10
9 Mix:Gate L Level 0-10
10-22 Not used, set to 0
lgorithm 8
Reverse Reverb
2 Pre-Delay Time 0-80
3 Reverse Time 0-11
A
A
4 Accent Delay 0-10
5 Accent Level 0-10
6 Mix:Dry Level 0-10
7 Mix:Revrse R Lvl 0-10
8 Mix:Revrse L Lvl 0-10
9-22 Not used, set to 0
lgorithm 9
Parametric EQ
2 Band 1 Frequency 0-14
3 Band 1 Level 0-12
4 Band 2 Frequency 0-14
5 Band 2 Level 0-12
6 Band 3 Frequency 0-14
7 Band 3 Level 0-12
8 Mix:EQ Level 0-10
9-22 Not used, set to 0
2 Band 1 Frequency 0-14
3 Band 1 Level 0-12
4 Band 2 Frequency 0-14
5 Band 2 Level 0-12
6 Band 3 Frequency 0-14
7 Band 3 Level 0-12
8 Delay EQ Source 0-1
9 Delay In:EQ 0-10
10 Delay Time 0-222
11 Delay Feedback 0-11
12 Mix:Dry Level 0-10
13 Mix:EQ Level 0-10
14 Mix:Delay R Levl 0-10
15 Mix:Delay L Levl 0-10
16-22 Not used, set to 0
lgorithm 12
Para+Chorus+Mix
2 Band 1 Frequency 0-14
3 Band 1 Level 0-12
4 Band 2 Frequency 0-14
5 Band 2 Level 0-12
6 Band 3 Frequency 0-14
A
A
7 Band 3 Level 0-12
8 Chorus EQ Source 0-1
9 Chorus Delay 0-60
10 Chorus LFO Speed 0-65
11 Chorus LFO Depth 0-99
12 Mix:Dry Level 0-10
13 Mix:EQ Level 0-10
14 Mix:Chorus R Lvl 0-10
15 Mix:Chorus L Lvl 0-10
16-22 Not used, set to 0
lgorithm 13
Chorus+Room+Mix
2 Chorus Delay 0-60
3 Chorus LFO Speed 0-65
4 Chorus LFO Depth 0-99
5 Reverb In:Dry 0-10
6 Reverb Predelay 0-60
7 Reverb Filter 0-2
8 Reverb Decay 0-11 (A)
9 Mix:Dry Level 0-10
10 Mix:Chorus R Lvl 0-10
11 Mix:Chorus L Lvl 0-10
12 Mix:Reverb R Lvl 0-10
13 Mix:Reverb L Lvl 0-10
14-22 Not used, set to 0
lgorithm 14
Delay+Room+Mixer
A
2 Delay Time 0-147
3 Delay Feedback 0-11
4 Reverb In:Dry 0-10
5 Reverb In:Delay 0-10
6 Reverb Predelay 0-60
7 Reverb Filter 0-2
8 Reverb Decay 0-11 (A)
9 Mix:Dry Level 0-10
10 Mix:Delay R Levl 0-10
11 Mix:Delay L Levl 0-10
12 Mix:Reverb R Lvl 0-10
13 Mix:Reverb L Lvl 0-10
14-22 Not used, set to 0