You are on page 1of 187

This document was originally produced as a series of .

txt files
describing much of the format of the Kurzweil K2500 file format.
Not covered was information about the effects (Digitech and KDFX)
and the actual sample wave forms. Each of the original file names
is included below before the content of the original file
(00-Intro.txt, 01-File Format.txt, 02-Program.txt, etc.). This
information could be used as a basis for deciphering file formats
of later Kurzweil instruments.

00-Intro.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 File Format
*
******************************************************************
To make this information as accessible as possible, all the files
have been written with Windows Notepad. I've kept the line width
to 66 characters (or so), used no tabs and no special characters.
A non-proportional font should be used to display or print the
information so that columns line up.
******************************************************************
The information in these files describes what I have been able to
decipher of the file format used to store Kurzweil K2000, K2500,
and K2600 objects. It is incomplete and it likely contains some
inaccuracies. Some of the challenges in trying to accomplish the
task of decipherment are that I am working with a K2500 and don't
have access to other K2x00 synths, that I am working with the 4.32
operating system and don't want to load older operating systems in
order to determine differences related to different OS's, and that
this is a "live" file format -- Kurzweil can add more to it at any
time (and will, as has become apparent with the announcement of
new VAST algorithms for the K2600). New fields and new objects
can be added. The format is backwards-compatible -- what worked
on one machine or OS should still work on a subsequent machine or
OS.
The basic method of developing this information has been to take
a Kurzweil object (program, setup, etc.), save it to disk; then
edit the object, change one field, save the changed object to
disk; and finally to compare the two files and display the
differences in a hex dump form. I have also used the Sysex
information from the Kurzweil FTP site and have compared what I
have learned with the information that used to be available at

Keith Cowgill's Sysex Project site. This means I am trying to


determine the file definition from the results of that definition.
Another of the challenges is that changing one field may cause a
change someplace else. And there are so many fields and values
that at some point (many points) I have just assumed that the same
type of field in two places takes the same values and stores them
in the same way in the file. This may not always be the case.
There are some fields I just haven't been able to figure out
because they can't be accessed from the K2x00, such as some of the
envelope information in ROM object sample headers.
At this point, I am not trying to decipher the Effect, KDFX
Studio, KDFX Preset, and KDFX Algorithm formats. There are many,
many parameters, and the values of some of these objects depend on
what is defined in a referenced object. This task may fall to
some other hardy soul. (Also, the sysex information on KDFX
objects is copyrighted.) I also have not tried to decipher the
Macro format (among other reasons, I don't have access to files of
other synths that the K2x00 can load) and the K2000 Setup format
(don't have a K2000).
What I define here again is from a K2500 (OS 4.32) perspective, so
application to other models and OS versions needs to be carefully
considered. Obviously, anyone using this information must do some
verification for himself.
******************************************************************
Some of the names I use for things may not match what Kurzweil
calls them; for that matter, Kurzweil names things one way in the
Sysex documents and may call them something else in other
documentation. In particular, I call a "Sample Header" that
portion of the sample definition that resides in P-RAM, and I call
"sub-samples" the one or more sample definitions within a "Sample
Header", whether the only one, the two parts of a stereo sample,
or the several parts of a multi-sample.
******************************************************************
I presume that a lot of this information has application to the
use of object formats in sysex messages. Since I don't work with
sysex, I don't know if the structure of objects is identical to
those in the files. Some object type values are defined
differently in the Sysex documents from the way they appear in a
file.

Of special note: Kurzweil has done a remarkable job of endeavoring


to save space by omitting default information from objects where
that is possible, and squeezing timing information in sequences.
I've tried to determine what can be omitted and to note that in
these descriptions.
******************************************************************
The files presented here give a description of the Kurzweil file
format structure as a whole, and then of various object formats
that can occur within the file: program, setup, keymap, sample,
master table, etc. The program object is very complex, and there
are several files related to it. Wherever a field's content can
be simply described (i.e., a range of values), I have included
that information in place. Where the range of values is large and
not simple, I have defined the values in separate files and have
made reference to the file names.
I think it's important to read the file structure description
(01-File Format.txt) before moving on to the object descriptions.
******************************************************************
In the object descriptions, I am generally refering to offsets in
hex because they're easier to use when looking at hex dumps. When
I refer to a hex value, I use h'xxxx'. When I refer to a binary
value, I use b'xxxxxxxx'.
******************************************************************
There are fields defined in the Sysex documents that I found no
way to access from the synth's screens. The names given in the
Sysex documents (or something like each name) are shown in the
format descriptions in parentheses (usually). This includes "RFU"
fields ("reserved for future usage"), shown as "(Reserved)".
******************************************************************
Here is a list of the text files included in this package and
their MS-DOS names (for those without long name support):
00-Intro.txt
This file

00-INTRO.TXT

01-File Format.txt

01-FIL~1.TXT

Overview of the file


structure
02-Program.txt
03-Algorithms and DSP.txt
Part of the Program
object definition

02-PRO~1.TXT
03-ALG~1.TXT

04-K2500-K2600 Setup.txt
06-Keymap.txt
07-Master Table.txt
08-QABank.txt
09-Song.txt
10-Velocity.txt
11-Pressure.txt
12-Intonation.txt
13-Faders Table.txt
14-Names Table.txt
15-Sample Header.txt

04-K25~1.TXT
06-KEY~1.TXT
07-MAS~1.TXT
08-QAB~1.TXT
09-SONG.TXT
10-VEL~1.TXT
11-PRE~1.TXT
12-INT~1.TXT
13-FAD~1.TXT
14-NAM~1.TXT
15-SAM~1.TXT

The following are tables of values for various fields:


72-Adjust.txt
73-ASR Times.txt
74-Controllers.txt
75-ENVCTL.txt
76-KB3 EQ.txt
77-Fine.txt
79-FUN Args.txt
80-FUN Ops.Txt
81-KStart.txt
82-Key Numbers.txt
83-Key-Freq.txt
84-KeyTrk 0.10 to 10.00x.txt
85-KeyTrk -2400 to 2400.txt
86-LFO Rates.txt
87-LFO Shape.txt
88-MinDly-MaxDly.txt
89-Pitch Bend.txt
90-Portamento Rate.txt
91-Setup Controllers.txt
94-VelScale.txt
95-VelTrk 0.010 to 32.000x.txt
96-VelTrk -10800ct to 10800ct.txt
97-VelTrk -5.00 to 5.00 Oct.txt
98-VelTrk -7200 to 7200.txt

72-ADJ~1.TXT
73-ASR~1.TXT
74-CON~1.TXT
75-ENV~1.TXT
76-KB3~1.TXT
77-FINE.TXT
79-FUN~1.TXT
80-FUN~1.TXT
81-KST~1.TXT
82-KEY~1.TXT
83-KEY~1.TXT
84-KEY~1.TXT
85-KEY~1.TXT
86-LFO~1.TXT
87-LFO~1.TXT
88-MIN~1.TXT
89-PIT~1.TXT
90-POR~1.TXT
91-SET~1.TXT
94-VEL~1.TXT
95-VEL~1.TXT
96-VEL~1.TXT
97-VEL~1.TXT
98-VEL~1.TXT

******************************************************************

God bless!
Geoffrey Mayer
geoffrey@nktelco.net
5/13/2000

01-File Format.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 File Format
*
******************************************************************
This is a look at the overall structure of the Kurzweil object
file.
Each file begins with a 32-byte header, followed by object
definitions to be stored in program RAM (P-RAM) or K2500/K2600
system objects flash ROM, followed by any sample RAM data. Some
files saved or copied to floppies are larger than will fit in the
available free space and are split onto multiple floppies.
******************************************************************
File Header
bytes
(hex)
----00-03

File type:

PRAM = data file


SROM = K2500 or K2600 ROM objects

04-07

Length of file header and PRAM data in bytes


If sample RAM data is present, this points to the start of
the sample RAM data
If no sample RAM data is present, this is the length of
the file
For non-split files with sample RAM data, the length of
the sample RAM data is the file length minus this
field's value

08-0B

For split files:

1st file: total length of sample RAM data (across all


split files) in bytes
2nd and subsequent files: length of sample RAM data
remaining to load after this file
last file: zero
For non-split files: appears not to be significant (to me)
0C-0F

Split file part number:


zero for non-split files
sequential file number for split files
(some old .KRZ files seem to have other information
in this field)

10-13

OS version from which file was saved; e.g., h'000000FC' =


252 = version 2.52; h'000001B0' = 432 = version 4.32

14-17

Seems to be instrument type/configuration


My K2500 with both ROM blocks, sample option and KDFX
sets h'06000000'. (Wasn't changed by adding
KDFX.)
A friend's K2500RS sets h'08000000'.
I've seen the following in .K25 files I've downloaded
from various places:
h'05000000'
h'05300000'
h'05900000'
h'05C00000'
h'06000000'
h'06200000'
h'08000000'
Some early K2500 farm and demo files from Kurzweil
have:
h'05000000'
h'05500000'
h'06000000'
h'06500000'
h'07000000'
h'07400000'
h'08000000'
.KRZ files similarly have h'04xx0000' and
h'03xx0000'.
A friend's K2000 sets h'03100000'.
Another friend's K2000RS sets h'04000000'.

.KRZ files I've downloaded contain:


h'03000000'
h'03100000'
h'03400000'
h'04000000'
A K2VP .KRZ file had h'04000000'.
Some of the K2600 object files contain h'05000000'.
K2600 files at Kurzweil's FTP site contain:
h'05000000'
h'08000000'
A downloaded .K26 file contained h'08000000'. The
originator said it was a K2600X.
So there isn't a clear pattern I can see to identify what
sort of machine produced a file.

18-1F

All zeros

The information in 04-07 and 10-17 is duplicated in each part of a


split file.
SROM files have 08-1F = zero
******************************************************************
Object definitions start at location h'20'.
Program RAM data is stored in blocks. Each block starts with a
four-byte block length. This length is zero for the final block
in the file. Otherwise it is the two's complement negative of the
length of the block (including the block length field itself).
For SROM files, the first block contains all objects in the file,
and the second block is null (length = zero).
For PRAM files, each block seems to contain one object (sample
header, keymap, effect, program, setup, QA-bank, song, KDFX
studio, KDFX preset, KDFX algorithm, pressure map, velocity map,
macro, or table). (Some old .krz files seem to have all objects
in one block.)
Following all the PRAM data, any sample data appears, apparently
as a contiguous block. (Note that a sample consists of a header

which goes in PRAM and the sample data which goes in sample RAM.
It's possible for a file to contain sample headers but no sample
data if they refer to samples in the K2000/K2500 sample ROM.)
For split files, only the sample data seems to be split. The PRAM
data will not be split, but will be contained in the first part.
The second and subsequent parts have a file header as noted above.
Bytes 20-23 (hex) contain an invalid block length. (All my
examples contain h'B72A0213' which is a length of over one billion
bytes. This prevents mistaking the data for PRAM data. The
sample data begins in byte 24 (hex) and is a continuation from the
sample data in the previous part.
Each object contains a header which includes the name, number,
type, and the object length. Note that the length is stored in
two bytes (unsigned) for a maximum object length of 65535. This
is the reason for songs being limited to 64 kbytes.
The object header consists of
bytes
----00-01

Type/ID

02-03

Length of object in bytes (unsigned) -- max 65535

04-05

offset to object data from this field

06-xx

(2 to 18 bytes) object name in characters, followed by a


null byte (h'00'). If this is an odd number of
bytes, one more (pad) byte is added (value not
significant).

Following the header are the various structures defining the


object.
If more than one object is in a block, each object starts on a
two-byte boundary, so a pad byte may be added after the previous
object if it is not an even length. The pad byte is not included
in the previous object's length.
Each block starts on a four-byte boundary. If necessary, pad
bytes are included to fill a block out to a multiple of four
bytes.
******************************************************************

Type/ID field
The Type/ID field is two bytes long. Depending on the type of
object, the type code may be 8 bits and the ID (object number) 8
bits, or the type may be 6 bits and the ID 10 bits. The 10-bit ID
is required for the types of objects of which there may be 999 in
the synth (setups, programs, keymaps, and sample headers). For
the 8-bit IDs the range of numbers stored is only 0 through 255,
so the objects numbers will correspond to the values but not
always equal them. That is why the manual shows ranges of numbers
for these types of objects (effects, QA-banks, songs, velocity
maps, pressure maps, intonation tables). Also using 8-bit IDs are
various tables that may be stored in a file -- master table, names
table, faders table, and macros.

6-bit types
----------h'90' = 144
h'94' = 148
h'98' = 152
h'9C' = 156
h'A4' = 164
h'B0' = 176
h'B4' = 180
h'BC' = 188

program
keymap
sample header
K2000 setup
K2500 setup
KDFX studio
KDFX preset
KDFX algorithm

The two least-significant bits of the second byte are part of the
ID (object number). These IDs run from 1 to 999 and are identical
to the object number.
The 6-bit types listed above do not seem to match the sysex
documentation.
8-bit types
----------h'64' = 100
h'67' = 103
h'68' = 104
h'69' = 105
h'6F' = 111
h'70' = 112
h'71' = 113

table
intonation table
velocity map
pressure map
QA-bank
song
effect

IDs (decimal values):


tables:
16
35
36
37

Master
Macro
Names
Faders

intonation tables, velocity maps, pressure maps, QA-banks, songs:


file value
1-75
76-95
96-115
116-135
136-155
156-175
176-195
196-215
216-235
236-255

equivalent object number


1-75
100-119
200-219
300-319
400-419
500-519
600-619
700-719
800-819
900-919

effects:
file value
1-37
38-47
48-57
58-67
68-77
78-87
88-97
98-107
108-117
118-127

equivalent object number


1-37
100-109
200-209
300-309
400-409
500-509
600-609
700-709
800-809
900-909

******************************************************************
Example
000: 50 52 41 4D 00 00 C6 BC

PRAM....

'PRAM' = K2x00 save file


PRAM object data length
(including file header)
= h'C6BC' = 50876 bytes

008: 00 44 5D 5E 00 00 00 01

........

Total sample RAM data


length = h'445D5E' =
4480350 bytes
h'01' = First part of a
split file

010: 00 00 00 FC 06 00 00 00

........

h'FC' = OS version 2.52


h'06' = K2500 (?)

018: 00 00 00 00 00 00 00 00

........

(unused)

020: FF FF FF AC 98 C8 00 50

........

First block length:


h'FFFFFFAC' = -84
84 bytes including block
length
h'98C8': type h'98' =
sample header; h'0C8' =
200 = object number
h'0050' = 80 = object
length including object
header

028: 00 14 47 33 20 41 20 20

..G3 A

h'0014' = object
structures begin at
h'0028' + h'0014' =
h'003C'
h'47334041....' = object
name =
'G3 A
8'

030: 20 20 20 20 20 20 20 20
038: 20 38 00 96 00 01 00 00

object name
8......

h'2038' = end of object


name
h'00' = null ending name
h'96' = pad byte
h'00010000....' = object

definition
040:
048:
050:
058:
060:
068:
070:

00
43
00
00
00
00
F9

08
70
1A
1B
08
00
C0

00
00
75
21
00
99
00

00
00
53
19
06
99
00

00
1A
00
00
00
00
FF

00
BF
1A
1B
00
00
FF

00
00
75
25
4E
00
FF

00
00
53
03
40
00
AC

........
........
........
........
........
........
........

object definition
"
"
"
"
"
h'F9C00000' end of
definition
h'FFFFFFAC' = -84 =
length of next block

******************************************************************

02-Program.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Program Object Format
*
******************************************************************
The program object consits of an object header followed by a
number of "segments". Each segment is identified by a segment
"tag". NOT ALL SEGMENTS ARE PRESENT IN EVERY PROGRAM. Some
segments are omitted because all their fields take default values.
Some segments are specific to a certain special form of the
program format, such as KB-3 segments.
The first segment is the Program segment. If "Globals" is set for
the object, global ASR, FUN, and LFO segments, if any, follow the
Program segment. Next is the Effect Segment and any KDFX Studio,
KDFX FXMOD, KDFX ASR, KDFX FUN, and KDFX LFO segments. For a KB-3
object, the KB-3 segments (3) follow. Then will come a series of
segments for each layer (a KB-3 program can only have one layer).
Layer 1 is first. Each layer will contain a layer segment, an
envelope control segment, "Calvin" segment (contains Keymap and
Pitch page information from Edit Program mode), and "Hobbes" 1
through 4 segments (contain F1 through F4 page information). It
may contain ASR, FUN, and LFO segments, an impact segment, an
AMPENV segment, an ENV2 segment, and an ENV3 segment. After the
last segment for a layer (Hobbes 4 segment) comes the first
segment (layer segment) for the next layer, if any.
(The 3 KB-3 segments (Hammond 1, 2, and 3) are also included in
program 873, 'Strummer DistGtr', in K2500 4.03 objects and K2600

1.01 objects.

I don't know why.)

There is a "format" parameter in the Program segment. Format "2"


could be considered the "standard" K2000/K2500 program. (Format
"1" is obsolete.) Format "3" programs contain an extra envelope
control segment for the "Impact" feature. Format "3" programs
cannot be loaded into some (or all) K2000s. Format "4" programs
are KB-3 programs or contain KDFX segments. These also cannot be
loaded into some (or all) K2000s. Perhaps format "4" is the
standard for K2600 programs. (I didn't check.)
******************************************************************
Examples (from K2500 4.03 objects):
K2500 object 1 ("Acoustic Piano") has the following segments:
Program
Effect Control
KDFX Studio
KDFX FXMOD 1
KDFX FXMOD 2
KDFX FXMOD 3
KDFX FXMOD 4
Layer (start of layer 1)
FUN1
FUN2
LFO1
FUN3
FUN4
Envelope Control
AMPENV
ENV2
Calvin
Hobbes 1
Hobbes 2
Hobbes 3
Hobbes 4
Layer (start of layer 2)
FUN1
FUN2
LFO1
LFO2
FUN3
FUN4
Envelope Control
AMPENV

ENV2
ENV3
Calvin
Hobbes
Hobbes
Hobbes
Hobbes

1
2
3
4

K2500 object 759 ("Live Drawbars") has the following segments:


Program
Global ASR2
Global FUN2
Global LFO2
Global FUN4
Effect Control
KDFX Studio
KDFX FXMOD 1
KDFX FXMOD 2
KDFX FXMOD 3
KDFX FXMOD 4
.
.
.
.
.
.
KDFX FXMOD 18
FXASR1
FXASR2
FXFUN1
FXFUN2
FXLFO1
FXLFO2
FXFUN3
Hammond 1
Hammond 2
Hammond 3
Layer (Layer 1)
ASR1
LFO1
FUN3
Envelope Control
AMPENV
ENV2
ENV3
Calvin
Hobbes 1
Hobbes 2

Hobbes 3
Hobbes 4
******************************************************************
In the following information, page names in Edit Program mode are
given in all caps (COMMON, PITCH, OUTPUT, etc. -- KB3 pages
generally have KB3 included, e.g., KB3 MISC) and parameter names
follow (COMMON Globals, PITCH MinDpt, KB3 MISC Bend Range). Some
values (like segment tags) are given in hex because they are
easier to see in hex dumps of files.
Ranges of parameters that can't be given as a straight
correspondence are defined in a different file and referred to by
file name enclosed in curly brackets, e.g., {89-Pitch Bend}.
If a segment can be omitted, the criteria for its omission are
given after the segment's definition.
Note that some segments have the same number but are
differentiated by where they occur in a program (e.g., Global
ASR2, FXASR2, and ASR2). Global segments always come immediately
after the Program segment. FXASRs, FXFUNs, and FXLFOs always
follow a KDFX Studio segment and any FXMOD segments. "Regular"
ASR, FUN, and LFO segments always follow a Layer segment.
The parameter types and ranges of variables for the "Hobbes"
segments (corresponding to Edit Program pages F1 through F4)
depend on the algorithm and function blocks specified on the ALG
page. These are defined in the file {03-Algorithms and DSP}.
******************************************************************
Program Segment (16 bytes)
00
Program Segment Tag: = h'08'
01
Format: unsigned byte:
1 = Obsolete
2 = K2000, or K2500 program without "impact" feature
3 = K2500/K2600 program with "impact" feature
4 = K2500/K2600 KB3 program or KDFX content
? -- K2600 formats?
02
Number of layers: unsigned byte: range 1 to 32
03
Flags: bit values:
COMMON Monophonic: b'xxxxxxx0' = Off, b'xxxxxxx1' = On
COMMON (Monophonic) Portamento:
b'xxxxxx0x' = Off, b'xxxxxx1x' = On

04

05

06
07
08
09
0A
0B
0C
0D
0E
0F

COMMON Globals:
b'xxxxx0xx' = Off, b'xxxxx1xx' = On
COMMON (Monophonic) Attack Portamento:
b'xxxx0xxx' = On, b'xxxx1xxx' = Off
COMMON (Monophonic) Legato Play:
b'xxx0xxxx' = On, b'xxx1xxxx' = Off
KB3 program:
b'x0xxxxxx' = not, b'x1xxxxxx' = KB3 prog
COMMON Pitch Bend Range: signed byte:
range -123 = -7200ct to 123 = 7200ct {89-Pitch Bend}
KB3 MISC Bend Range
COMMON (Monophonic) Portamento Rate: unsigned byte:
range 1 = 1.0 key/s to 127 = 3000 key/s
{90-Portamento Rate}
EFFECT Wet/Dry Mix Source: h'00' = Off, h'7F' = On, ...
{74-Controllers}
EFFECT Wet/Dry Mix Depth : signed byte: range -128 to 127
EFFECT Realtime Effect Parameter 1 Adjust: signed byte:
range -128 to 127
EFFECT Realtime Effect Parameter 1 Source:
h'00' = Off, h'7F' = On, ... {74-Controllers}
EFFECT Realtime Effect Parameter 1 Depth : signed byte:
range -128 to 127
EFFECT Realtime Effect Parameter 1:
(values depend on the assigned effect)
EFFECT Realtime Effect Parameter 2 Adjust: signed byte:
range -128 to 127
EFFECT Realtime Effect Parameter 2 Source:
h'00' = Off, h'7F' = On, ... {74-Controllers}
EFFECT Realtime Effect Parameter 2 Depth : signed byte:
range -128 to 127
EFFECT Realtime Effect Parameter 2:
(values depend on the assigned effect)

Global ASR2 (GASR2) Segment (8 bytes)


00
ASR2 Segment Tag = h'11'
01
(Reserved): 0
02
ASR GASR2 Trig : h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
ASR GASR2 Mode : b'xxxxxxbb':
xxxxxx: reserved
bb: 0 = Norm, 1 = Hold, 2 = Rept
04
ASR GASR2 Delay : unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
05
ASR GASR2 Attack: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
06
(Reserved): 0

07

ASR GASR2 Releas: unsigned byte: range 0, 4-249


{73-ASR Times; omit 1-3, 250-255}
Segment omitted if Trig = Off, Mode = Norm, Delay = 0.00s,
Attack = 0.00s, Releas = 0.00s (or if Globals not set)
Global FUN2 (GFUN2) Segment (4 bytes)
00
FUN2 Segment Tag = h'19'
01
FUN GFUN2 Function: function formula, 0 = none {80-FUN Ops}
02
FUN GFUN2 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FUN GFUN2 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None
(or if Globals not set)

Global LFO2 (GLFO2) Segment (8 bytes)


00
LFO2 Segment Tag = h'15'
01
(Reserved): 0
02
LFO GLFO2 RateCt: h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
LFO GLFO2 MnRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
04
LFO GLFO2 MxRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
05
LFO GLFO2 Phase : unsigned byte:
0 = 0 deg, 1 = 90 deg, 2 = 180 deg, 3 = 270 deg
06
LFO GLFO2 Shape : unsigned byte:
range 0 - 10, 20 - 31, 34 - 35, 38 - 39 {87-LFO Shape}
07
(Reserved): 0
Segment omitted if MnRate = 0.00H, MxRate = 0.00H, RateCt = Off,
Shape = None, Phase = 0 (or if Globals not set)

Global FUN4 (GFUN4) Segment (4 bytes)


00
FUN2 Segment Tag = h'1B'
01
FUN GFUN4 Function: function formula, 0 = none {80-FUN Ops}
02
FUN GFUN4 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FUN GFUN4 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None
(or if Globals not set)

Effect Control Segment (8 bytes)


00
Effect Control Segment Tag = h'0F'
01
(Sysex document says Chan: 0 means internal): 0
02
EFFECT Preset #: Packed Form:
1-37
=1-37
38-47 =100-109
48-57 =200-209
58-67 =300-309
68-77 =400-409
78-87 =500-509
88-97 =600-609
98-107 =700-709
108-117=800-809
118-127=900-909
03
EFFECT Wet/Dry Mix Adjust: unsigned byte:
range 0 = 0% Wet to 100 = 100% Wet
04
(Sysex document says Input 1): 0
05
(Sysex document says Output MIDI Ctl # 1): 0
06
(Sysex document says Input 2): 0
07
(Sysex document says Output MIDI Ctl # 2): 0
This field is set to h'04' in one layer of K2600
K26PROGS archive, MOREPRGS folder, file Leftover.k26,
program 200.

KDFX Studio Segment [FXRT] (8 bytes) K2500 only


00
KDFX Studio Segment Tag = h'68'
01
(Sysex Document says Version): 0
02-03 KDFX Studio Number: unsigned word: range 0 to 999, 0 = none
04
(Reserved): 0
05
(Reserved): 0
06
(Reserved): 0
07
(Reserved): 0
Segment omitted if Studio = None

KDFX FXMod Segment [FXPT] (8 bytes) (0 to eighteen segments) K2500


only
00
KDFX FXMod Segment Tag = h'69'
01
KDFX FXMod number
: unsigned byte: range 1 to 18
02
KDFX FXMod Bus
: unsigned byte: range 1 to 14:
1 = InA/InAL, 2 = InAR, 3 = InB/InBL, 4 = InBR,
5 = InC/InCL, 6 = InCR, 7 = InD/InDL, 8 = InDR,
9 = Fx1,
10 = Fx2, 11 = Fx3,
12 = Fx4,
13 = Aux,
14 = Mix
03
KDFX FXMod Parameter: 0 = none, depends on studio, preset,

algorithm
(199 Default Studio -04
KDFX FXMod Adjust
: depends
05
KDFX FXMod Source
: h'00' =
{74-Controllers}
06
KDFX FXMod Depth
: depends
07
(Reserved): 0
Segment Omitted if Bus = None

1 = Mix Lvl, 2 = Mix Bal)


on studio, preset, algorithm
Off, h'7F' = On, ...
on studio, preset, algorithm

FXASR1 Segment (8 bytes) K2500 Only


00
FXASR1 Segment Tag = h'10'
01
(Reserved): 0
02
FXASR ASR1 Trig : h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
FXASR ASR1 Mode : b'xxxxxxbb':
xxxxxx: reserved
bb: 0 = Norm, 1 = Hold, 2 = Rept
04
FXASR ASR1 Delay : unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
05
FXASR ASR1 Attack: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
06
(Reserved): 0
07
FXASR ASR1 Releas: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
Segment omitted if Trig = Off, Mode = Norm, Delay = 0.00s,
Attack = 0.00s, Releas = 0.00s

FXASR2 Segment (8 bytes) K2500 Only


00
FXASR2 Segment Tag = h'11'
01
(Reserved): 0
02
FXASR ASR2 Trig : h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
FXASR ASR2 Mode : b'xxxxxxbb':
xxxxxx: reserved
bb: 0 = Norm, 1 = Hold, 2 = Rept
04
FXASR ASR2 Delay : unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
05
FXASR ASR2 Attack: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
06
(Reserved): 0
07
FXASR ASR2 Releas: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
Segment omitted if Trig = Off, Mode = Norm, Delay = 0.00s,
Attack = 0.00s, Releas = 0.00s

FXFUN1 Segment (4 bytes) K2500 Only


00
FXFUN1 Segment Tag = h'18'
01
FXFUN FUN1 Function: function formula, 0 = none {80-FUN Ops}
02
FXFUN FUN1 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FXFUN FUN1 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None

FXFUN2 Segment (4 bytes) K2500 Only


00
FXFUN2 Segment Tag = h'19'
01
FXFUN FUN2 Function: function formula, 0 = none {80-FUN Ops}
02
FXFUN FUN2 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FXFUN FUN2 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None

KDFX
00
01
02

FXLFO1 Segment (8 bytes) K2500 Only


FXLFO1 Segment Tag = h'14'
(Reserved): 0
FXLFO LFO1 RateCt: h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
FXLFO LFO1 MnRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
04
FXLFO LFO1 MxRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
05
FXLFO LFO1 Phase : unsigned byte:
0 = 0 deg, 1 = 90 deg, 2 = 180 deg, 3 = 270 deg
06
FXLFO LFO1 Shape : unsigned byte:
range 0 - 10, 20 - 31, 34 - 35, 38 - 39 {87-LFO Shape}
07
(Reserved): 0
Segment omitted if MnRate = 0.00H, MxRate = 0.00H, RateCt = Off,
Shape = None, Phase = 0

KDFX
00
01
02
03

FXLFO2 Segment (8 bytes) K2500 Only


FXLFO2 Segment Tag = h'15'
(Reserved): 0
FXLFO LFO2 RateCt: h'00' = Off, h'7F' = On, ...
{74-Controllers}
FXLFO LFO2 MnRate: unsigned byte:

range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}


04
FXLFO LFO2 MxRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
05
FXLFO LFO2 Phase : unsigned byte:
0 = 0 deg, 1 = 90 deg, 2 = 180 deg, 3 = 270 deg
06
FXLFO LFO2 Shape : unsigned byte:
range 0 - 10, 20 - 31, 34 - 35, 38 - 39 {87-LFO Shape}
07
(Reserved): 0
Segment omitted if MnRate = 0.00H, MxRate = 0.00H, RateCt = Off,
Shape = None, Phase = 0

FXFUN3 Segment (4 bytes) K2500 Only


00
FXFUN3 Segment Tag = h'1A'
01
FXFUN FUN3 Function: function formula, 0 = none {80-FUN Ops}
02
FXFUN FUN3 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FXFUN FUN3 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None

FXFUN4 Segment (4 bytes) K2500 Only


00
FXFUN4 Segment Tag = h'1B'
01
FXFUN FUN4 Function: function formula, 0 = none {80-FUN Ops}
02
FXFUN FUN4 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FXFUN FUN4 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None
Hammond Segment 1 (32 bytes) K2500 Only
00
Hammond Segment 1 Tag = h'78'
01
(Sysex document says Version): Value = 1
02
TONEWL LowestPitch: unsigned byte: range 12 to 96 = C0 to C7
{82-Key Numbers}
03
TONEWL NumToneWheels: unsigned byte: 24 to 95
04
Flags: bit values:
(Sysex document says Use Lowpass Filter for Noise Envelope):
b'xxxxxxx0'
(Sysex document says Noise Wheel Multitrigger):
b'xxxxxx0x'
Noise Wheel Multitrigger is set ON in K2500 4.03 objects
in all KB-3 programs (750 - 769) and in K2600 1.01
objects in all KB-3 programs (750 - 769). There doesn't

seem to be a way to set it or clear it from the K2500.


I don't know about the K2600.
KEYCLK KeyClick: b'xxxxx0xx' = Off,
b'xxxxx1xx' = On
DRAWBR Steps:
b'xxxx0xxx' = 0-127, b'xxxx1xxx' = 0-8
DRAWBR Mode:
b'xxx0xxxx' = Preset, b'xxx1xxxx' = Live
(Sysex document says Percussion Retrigger):
b'xx0xxxxx'
MISC PreampResp: b'x0xxxxxx' = On,
b'x1xxxxxx' = Off
TONEWL Upper/LowerSwap:
b'0xxxxxxx' = Off,
b'1xxxxxxx' = On
05
MISC Leakage: unsigned byte: range 0 = -96.0dB to
192 = 0.0dB in 0.5dB steps (.5*value -96.0)
06
TONEWL OrganMap: unsigned byte: 0 = Equal, 1 = Peck's,
2 = Bob's, 3 = Eric's
Drawbar tuning: signed bytes: range -128St to 127St from
played note value
07
DRAWBR 1 = 16'
Drawbar Tune (std = -12)
08
DRAWBR 2 = 5-1/3' Drawbar Tune (std =
7)
09
DRAWBR 3 = 8'
Drawbar Tune (std =
0)
0A
DRAWBR 4 = 4'
Drawbar Tune (std = 12)
0B
DRAWBR 5 = 2-2/3' Drawbar Tune (std = 19)
0C
DRAWBR 6 = 2'
Drawbar Tune (std = 24)
0D
DRAWBR 7 = 1-3/5' Drawbar Tune (std = 28)
0E
DRAWBR 8 = 1-1/3' Drawbar Tune (std = 31)
0F
DRAWBR 9 = 1'
Drawbar Tune (std = 36)
10
TONEWL WheelVolumeMap: unsigned byte: 1 = Bright, 2 = Mellow,
3 = Junky, 0 = Equal
11
MISC VolAdjust: signed byte: range -96 = -96db to 96 = 96dB
in 1dB steps
12
TONEWL UpperVolAdj: signed byte: range -96 = -96dB to
96 = 96dB
13
(Sysex document says Preemphasis G): 0 in all ROM KB-3
programs
14
(Sysex document says Preemphasis F): 0 in all ROM KB-3
programs
15
EQ LoShelf G: signed byte: range -120 = -24.0dB to
120 = 24.0dB in .2dB steps; (value*.2)
16
EQ LoShelf F: unsigned byte: range 0 to 127 {76-KB3 EQ}
17
EQ Para Mid 1 G: signed byte: range -120 = -24.0dB to
120 = 24.0dB in .2dB steps; (value*.2)
18
EQ Para Mid 1 F: unsigned byte: range 0 to 127 {76-KB3 EQ}
19
EQ Para Mid 1 W: signed byte: range -64 = -128St to
64 = 128St in 2St steps; (value*2St)
1A
EQ Para Mid 2 G: signed byte: range -120 = -24.0dB to
120 = 24.0dB in .2dB steps; (value*.2)
1B
EQ Para Mid 2 F: unsigned byte: range 0 to 127 {76-KB3 EQ}

1C
1D
1E
1F

EQ Para Mid 2 W: signed byte: range -64 = -128St to


64 = 128St in 2St steps; (value*2St)
EQ HiShelf G: signed byte: range -120 = -24.0dB to
120 = 24.0dB in .2dB steps; (value*.2)
EQ HiShelf F: unsigned byte: range 0 to 127 {76-KB3 EQ}
(Sysex document says Noise Volume Adjust): 0 in all ROM KB-3
programs

Hammond Segment 2 (32 bytes) K2500 Only


00
Hammond Segment 2 Tag = h'79'
01
KEYCLK Pitch: signed byte: range -128 = -128St to 127 = 127St
in 1St steps
02
KEYCLK Volume: unsigned byte:range h'00' = -96.0 db to
h'C0' = 192 = 0.0 dB in 0.5 dB steps:
-96.0 + .5 * value
03
KEYCLK Decay: unsigned byte range h'00' = .005 sec to
h'FF' = 255 = 1.280 sec in .005 sec steps:
(.005 * (value + 1)) or (.005 * value + .005) sec
04
Flags: bit values:
PERC Percussion: b'1xxxxxxx' = On,
b'0xxxxxxx' = Off
PERC Harmonic:
b'x1xxxxxx' = High, b'x0xxxxxx' = Low
PERC Decay:
b'xx1xxxxx' = Fast, b'xx0xxxxx' = Slow
PERC Volume:
b'xxx1xxxx' = Loud, b'xxx0xxxx' = Soft
PERC StealBar:
b'....xxxx':
xxxx: 0 = None, 1 to 9 = DrawBar 1 to Drawbar 9
05
PERC Low/High Harmonic Drawbar: b'llllhhhh':
llll = LowHarm: 1 to 9 = DrawBar 1 to Drawbar 9
hhhh = HighHarm: 1 to 9 = DrawBar 1 to Drawbar 9
06
KEYCLK VelTrk: unsigned byte: range 0 = 0% to 100 = 100%
in 1% steps
07
PERC VelTrack: unsigned byte: range 0 = 0% to 100 = 100%
in 1% steps
08
PERC2 Loud+Fast PercLevel: unsigned byte: range 0 = 0.0dB to
240 = 24.0 dB in .1 dB steps
09
PERC2 Loud+Slow PercLevel: unsigned byte: range 0 = 0.0dB to
240 = 24.0 dB in .1 dB steps
0A
PERC2 Soft+Fast PercLevel: unsigned byte: range 0 = 0.0dB to
240 = 24.0 dB in .1 dB steps
0B
PERC2 Soft+Slow PercLevel: unsigned byte: range 0 = 0.0dB to
240 = 24.0 dB in .1 dB steps
0C
PERC2 Loud+Fast DecayTime: unsigned byte: range 0 = .01 secs,
1 = .02 to 255 = 5.10 secs in .02 sec steps
0D
PERC2 Loud+Slow DecayTime: unsigned byte: range 0 = .01 secs,
1 = .02 to 255 = 5.10 secs in .02 sec steps
0E
PERC2 Soft+Fast DecayTime: unsigned byte: range 0 = .01 secs,

0F
10
11
12
13
14

15

16

17

18
19
1A
1B
1C
1D
1E
1F

1 = .02 to 255 = 5.10 secs in .02 sec steps


PERC2 Soft+Slow DecayTime: unsigned byte: range 0 = .01 secs,
1 = .02 to 255 = 5.10 secs in .02 sec steps
PERC2 Loud+Fast Org Level: signed byte: range -120 = -12.0dB
to 120 = 12.0dB in 0.1dB steps
PERC2 Loud+Slow Org Level: signed byte: range -120 = -12.0dB
to 120 = 12.0dB in 0.1dB steps
PERC2 Soft+Fast Org Level: signed byte: range -120 = -12.0dB
to 120 = 12.0dB in 0.1dB steps
PERC2 Soft+Slow Org Level: signed byte: range -120 = -12.0dB
to 120 = 12.0dB in 0.1dB steps
(Reserved): Value h'3C' = 60 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
(Reserved): Value h'FD' = 253 or -3 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
(Reserved): Value h'48' = 72 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
(Reserved): Value h'FD' = 253 or -3 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
EQ LoShelf W: signed byte: range -64 = -128St to
64 = 128St in 2St steps; (value*2St)
EQ HiShelf W: signed byte: range -64 = -128St to
64 = 128St in 2St steps; (value*2St)
KEYCLK RetrigThresh: unsigned byte: range 0 = -96.0 db to
192 = 0.0 dB in 0.5 dB steps: -96.0 + .5 * value
MISC Leak Mode: unsigned byte: 0 = None, 1 = TypeA,
2 = TypeX, 3 = TypeY, 4 = TypeZ
MISC SpeedCtl: unsigned byte: 0 = Slow, 1 = Fast
MISC VibChorCtl: unsigned byte: 0 = Off, 1 = On
MISC VibChorSel: unsigned byte: 0 = Vib1, 1 = Vib2, 2 = Vib3,
3 = Chor1, 4 = Chor2, 5 = Chor3
(Reserved): 0

Hammond Segment 3 (32 bytes) K2500 Only


00
Hammond Segment 3 Tag = h'7A'
Drawbar volumes -- 0 to 127
In 0-8 step mode, 8 = 127, 7 = 106, 6 = 92, 5 = 78, 4 = 64,
3 = 49, 2 = 35, 1 = 21, 0 = 0
01
DRAWBR 1 = 16'
Drawbar Volume
02
DRAWBR 2 = 5-1/3' Drawbar Volume
03
DRAWBR 3 = 8'
Drawbar Volume

04
05
06
07
08
09
0A

0B

0C
0D
0E
0F

10

11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F

DRAWBR 4 = 4'
Drawbar Volume
DRAWBR 5 = 2-2/3' Drawbar Volume
DRAWBR 6 = 2'
Drawbar Volume
DRAWBR 7 = 1-3/5' Drawbar Volume
DRAWBR 8 = 1-1/3' Drawbar Volume
DRAWBR 9 = 1'
Drawbar Volume
(Reserved): Value h'0C' = 12 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
(Reserved): Value h'78' = 120 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
KEYCLK NoteAttack: unsigned byte: 0 = Normal, 1 = Hard,
2 = PercHard
KEYCLK NoteRelease: unsigned byte: 0 = Normal, 1 = Hard
KEYCLK Random: unsigned byte: range 0 = 0% to 100 = 100% in
1% steps
(Reserved): Value h'64' = 100 in all ROM KB-3 programs
Value 0 in program 873, 'Strummer DistGtr', in K2500
4.03 objects and K2600 1.01 objects.
TONEWL LowerXpose: signed byte: range -120 to 127St
**UpperLowerXpose changed from OFF to ON with
NumToneWheels = 95, UpperXpose = 79,
LowestPitch = C7 -- Changed LowerXpose from -120 to
-72;
Changed UpperXpose (stored) from 127 to
79 = displayed 31;
Changed KB3 TONEWL LowerXpose Semitones -120 to 127
(In Hobbes 1 segment field 02 from -120 to -72)
(Sysex document says RcvMap: 0 = Kurzweil, 1 = Voce): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0
(Reserved): 0

Layer Segment (16 bytes)


00
Layer Segment Tag = h'09'
01
LAYER EnableMin: unsigned byte: range 0 to 255:
0 =
64 to 63 = 127: add 64 to stored value
64 = -128 to 255 = 63: subtract 192 from value
02
(Sysex document says Trans): 0
03
(Sysex document says Tune): 0
04
LAYER LoKey: unsigned byte: range h'00' = C-0 to h'7F' = G9
{82-Key Numbers}
05
LAYER HiKey: unsigned byte: range h'00' = C-0 to h'7F' = G9
{82-Key Numbers}
06
LAYER b'xxlllhhh': xx=reserved, lll=LoVel, hhh=HiVel:
xx : 0
lll: 0 = ppp, 1 = pp, 2 = p, 3 = mp,
4 = mf, 5 = f, 6 = ff, 7 = fff
hhh: 0 = fff, 1 = ff, 2 = f, 3 = mf,
4 = mp, 5 = p, 6 = pp, 7 = ppp
07
LAYER Enable: h'00' = Off, h'7F' = On, ... {74-Controllers}
08
LAYER IgnRel: b'xxxxxxx0' = Off, b'xxxxxxx1' = On
LAYER SusPdl: b'x0xxxx0x' = On, b'x0xxxx1x' = Off,
b'x1xxxx0x' = On2 -- K2500 only
KB3 MISC Sustain:
b'x0xxxx0x' = On, b'x0xxxx1x' = Off,
LAYER SosPdl: b'xxxxx0xx' = On, b'xxxxx1xx' = Off
KB3 MISC Sustenuto:
b'xxxxx0xx' = On, b'xxxxx1xx' = Off
LAYER FrzPdl: b'xxxx0xxx' = On, b'xxxx1xxx' = Off

09

0A

LAYER ThrAtt: b'xxx0xxxx' = Off, b'xxx1xxxx' = On


LAYER TilDec: b'xx0xxxxx' = Off, b'xx1xxxxx' = On
(Reserved) : b'0xxxxxxx'
LAYER PBMode
: b'xxxxxx00' = All, b'xxxxxx01' = Off,
b'xxxxxx10' = Key
LAYER Enable Sense: b'xxxxx1xx' = Norm, b'xxxxx0xx' = Rvrs
LAYER Opaque
: b'xxxx0xxx' = Off, b'xxxx1xxx' = On
OUTPUT (Crossfade On) Xfade Sense:
b'xxx0xxxx' = Norm, b'xxx1xxxx' = Rvrs
Disabled on KB3 OUTPUT
KEYMAP Stereo
: b'xx0xxxxx' = Off, b'xx1xxxxx' = On
(Reserved)
: b'x0xxxxxx'
LAYER Trig
: b'0xxxxxxx' = Norm, b'1xxxxxxx' = Rvrs
VTRIG Velocity Triggers: b'tmmmslll':
lll = VTrig1 Level: 0 = ppp, 1 = pp, 2 = p, 3 = mp,
4 = mf, 5 = f, 6 = ff, 7 = fff
s
= VTrig1 Sense: 0 = Norm, 1 = Rvrs
mmm = VTrig2 Level: 0 = ppp, 1 = pp, 2 = p, 3 = mp,

0B

0C
0D
0E
0F

4 = mf, 5 = f, 6 = ff, 7 = fff


t
= VTrig2 Sense: 0 = Norm, 1 = Rvrs
LAYER Enable Max: unsigned byte 0 - 255: range 0 to 255:
0 = 127
1 = -128 to 255 = 126; subtract 129 from stored value
LAYER DlyCtl: h'00' = Off, h'7F' = On, ... {74-Controllers}
LAYER MinDly: unsigned byte: range 0 to 255:
{88-MinDly-MaxDly}
LAYER MaxDly unsigned byte: range 0 to 255:
{88-MinDly-MaxDly}
OUTPUT Crossfade: h'00' = Off, h'7F' = On, ...
{74-Controllers}
Disabled on KB3 OUTPUT

ASR1 Segment (8 bytes)


00
ASR1 Segment Tag = h'10'
This field is set to h'7F' in one or more layers in
K2500 farm farm25, file analeads.k25, program 266; K2500
farm farm25, file anapads.k25, program 222; and K2500
farm farm25, file bass.k25, programs 223 and 224.
01
(Reserved): 0
02
ASR ASR1 Trig : h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
ASR ASR1 Mode : b'xxxxxxbb':
xxxxxx: reserved
bb: 0 = Norm, 1 = Hold, 2 = Rept
04
ASR ASR1 Delay : unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
05
ASR ASR1 Attack: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
06
(Reserved): 0
07
ASR ASR1 Releas: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
Segment omitted if Trig = Off, Mode = Norm, Delay = 0.00s,
Attack = 0.00s, Releas = 0.00s

ASR2 Segment (8 bytes)


00
ASR2 Segment Tag = h'11'
01
(Reserved): 0
This field is set to h'7F' in one or more layers in
K2500 4.03 objects, programs 45 and 157; K2600 1.01
objects, programs 125, 152, and 161; K2600 RAMPROGS
file Allram.k25, programs 270, 315, 316, 317, 346, 380,
381, and 433; K2600 K26PROGS archive, MOREPRGS folder,

file Leftover.k26, programs 211 and 250; K2500 farm


farm25, file analeads.k25, programs 268 and 271; K2500
farm farm25, file bass.k25, programs 223 and 246; K2500
farm farm25, file bells.k25, program 219; K2500 farm
farm25, file drums.k25, program 239; K2500 farm farm25,
file ethereal.k25, programs 200 and 233; K2500 farm
farm25, file hybperc.k25, program 220; and K2500 farm
farm25, file strings.k25, programs 205 and 207.
02
ASR ASR2 Trig : h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
ASR ASR2 Mode : b'xxxxxxbb':
xxxxxx: reserved
bb: 0 = Norm, 1 = Hold, 2 = Rept
04
ASR ASR2 Delay : unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
05
ASR ASR2 Attack: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
06
(Reserved): 0
07
ASR ASR2 Releas: unsigned byte: range 0, 4-249
{73-ASR Times; omit 1-3, 250-255}
Segment omitted if Trig = Off, Mode = Norm, Delay = 0.00s,
Attack = 0.00s, Releas = 0.00s (or if Globals set)

FUN1
00
01
02

Segment (4 bytes)
FUN1 Segment Tag = h'18'
FUN FUN1 Function: function formula, 0 = none {80-FUN Ops}
FUN FUN1 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FUN FUN1 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None

FUN2
00
01
02

Segment (4 bytes)
FUN2 Segment Tag = h'19'
FUN FUN2 Function: function formula, 0 = none {80-FUN Ops}
FUN FUN2 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FUN FUN2 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None
(or if Globals set)

LFO1 Segment (8 bytes)

00
01

LFO1 Segment Tag = h'14'


(Reserved): 0
This field is set to h'77' in one or more layers in
K2600 K26PROGS archive, MOREPRGS folder, file
Freshnew.k26, program 234; and K2500 farm farm25, file
bass.k25, programs 246 and 247; and set to h'7F' in one
or more layers in K2500 farm farm25, file bells.k25,
program 221; K2500 farm farm25, file digital.k25,
program 210; K2500 farm farm25, file hybperc.k25,
program 206; and K2500 farm farm25, file organs.k25,
program 228.
02
LFO LFO1 RateCt: h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
LFO LFO1 MnRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
04
LFO LFO1 MxRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
05
LFO LFO1 Phase : unsigned byte:
0 = 0 deg, 1 = 90 deg, 2 = 180 deg, 3 = 270 deg
06
LFO LFO1 Shape : unsigned byte:
range 0 - 10, 20 - 31, 34 - 35, 38 - 39
{87-LFO Shape}
07
(Reserved): 0
Segment omitted if MnRate = 0.00H, MxRate = 0.00H, RateCt = Off,
Shape = None, Phase = 0

LFO2 Segment (8 bytes)


00
LFO2 Segment Tag = h'15'
01
(Reserved): 0
This field is set to h'7F' in one or more layers in
K2500 farm farm25, file pnoepno.k25, program 260.
02
LFO LFO2 RateCt: h'00' = Off, h'7F' = On, ...
{74-Controllers}
03
LFO LFO2 MnRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
04
LFO LFO2 MxRate: unsigned byte:
range 0 = 0.00H - 184 = 24.00H {86-LFO Rates}
05
LFO LFO2 Phase : unsigned byte:
0 = 0 deg, 1 = 90 deg, 2 = 180 deg, 3 = 270 deg
06
LFO LFO2 Shape : unsigned byte:
range 0 - 10, 20 - 31, 34 - 35, 38 - 39
{87-LFO Shape}
07
(Reserved): 0
Segment omitted if MnRate = 0.00H, MxRate = 0.00H, RateCt = Off,
Shape = None, Phase = 0 (or if Globals set)

FUN3
00
01
02

Segment (4 bytes)
FUN3 Segment Tag = h'1A'
FUN FUN3 Function: function formula, 0 = none {80-FUN Ops}
FUN FUN3 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FUN FUN3 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None

FUN4
00
01
02

Segment (4 bytes)
FUN4 Segment Tag = h'1B'
FUN FUN4 Function: function formula, 0 = none {80-FUN Ops}
FUN FUN4 Input A : Controller or Constant, 0 = Off
{79-FUN Args}
03
FUN FUN4 Input B : Controller or Constant, 0 = Off
{79-FUN Args}
Segment omitted if Input A = Off, Input B = Off, Function = None
(or if Globals set)

Envelope Control Segment (16 bytes)


00
Envelope Control Segment Tag = h'20'
01
(Reserved): 0
This field is set to h'01' in one or more layers in
K2000 Factory Disc file Xprogs1.krz, program 239;
K2000 Factory Disc file V1pset3.krz, program 260;
K2000 Factory Disc file V1pset2.krz, program 259;
and K2500 farm farm25, file bass.k25, program 214.
02
AMPENV Mode: b'xxxxxxxm':
xxxxxxx: reserved: 0
m
: 1 = Natural, 0 = User
This field is set to h'FF' in one or more layers in
K2000 Factory Disc file Xprogs1.krz, program 224; and
K2500 farm farm25, file ethereal.k25, program 217.
03
ENVCTL Att Adjust: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
04
ENVCTL Att Keytrk: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
05
ENVCTL Att Veltrk: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
06
ENVCTL Att Source: h'00' = Off, h'7F' = On, ...
{74-Controllers}
07
ENVCTL Att Depth : signed byte:

08
09
0A
0B
0C
0D
0E
0F

range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}


ENVCTL Dec Adjust: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
ENVCTL Dec Keytrk: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
ENVCTL Dec Source: h'00' = Off, h'7F' = On, ...
{74-Controllers}
ENVCTL Dec Depth : signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
ENVCTL Rel Adjust: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
ENVCTL Rel Keytrk: signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}
ENVCTL Rel Source: h'00' = Off, h'7F' = On, ...
{74-Controllers}
ENVCTL Rel Depth : signed byte:
range -43 = 0.018x to 43 = 50.000x {75-ENVCTL}

Impact Envelope Control Segment (16 bytes) K2500 Only


00
Impact Envelope Control Segment Tag = h'27'
01
(Reserved): 0
02
(Reserved): 0
03
ENVCTL Impact Adjust: signed byte:
range -120 = -24.0dB to 120 = 24.0dB by 0.2dB
04
ENVCTL Impact Keytrk: signed byte:
range -100 = -2.00dB to 100 = 2.00dB by 0.02dB
05
ENVCTL Impact Veltrk: signed byte:
range -120 = -24.0dB to 120 = 24.0dB by 0.2dB
06
ENVCTL Impact Source: h'00' = Off, h'7F' = On, ...
{74-Controllers}
07
ENVCTL Impact Depth : signed byte:
range -120 = -24.0dB to 120 = 24.0dB by 0.2dB
08
(Reserved): 0
09
(Reserved): 0
0A
(Reserved): 0
0B
(Reserved): 0
0C
(Reserved): 0
0D
(Reserved): 0
0E
(Reserved): 0
0F
(Reserved): 0
Segment omitted if Adjust = 0.0dB, Keytrk = 0.00dB,
Veltrk = 0.0dB, Source = Off, Depth = 0.0dB

AMPENV Segment (16 bytes)

00
01

AMPENV Segment Tag = h'21'


AMPENV Loop Type/# of Loops: nnnnnttt:
ttt = Loop Type
: 0 = Off,
1 = Seg1F, 2 = Seg2F,
3 = Seg3F, 5 = Seg1B, 6 = Seg2B,
7 = Seg3B
nnnnn = # of Loops: 0 = Inf, 1 = 1x to 31 = 31x
02
AMPENV Att1 Level: unsigned byte: range 0 = 0% to 100 = 100%
03
AMPENV Att1 Time : unsigned byte: range 0 = 0s to 255 = 60s
{73-ASR Times}
04
AMPENV Att2 Level: unsigned byte: range 0 = 0% to 100 = 100%
05
AMPENV Att2 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
06
AMPENV Att3 Level: unsigned byte: range 0 = 0% to 100 = 100%
07
AMPENV Att3 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
08
AMPENV Dec1 Level: unsigned byte: range 0 = 0% to 100 = 100%
09
AMPENV Dec1 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
0A
AMPENV Rel1 Level: unsigned byte: range 0 = 0% to 150 = 150%
0B
AMPENV Rel1 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
0C
AMPENV Rel2 Level: unsigned byte: range 0 = 0% to 150 = 150%
0D
AMPENV Rel2 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
0E
(Reserved): 0
0F
AMPENV Rel3 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
Segment omitted if Mode = User, all Times and Levels = 0
ENV2 Segment (16 bytes)
00
ENV2 Segment Tag = h'22'
01
ENV2 Loop Type/# of Loops: nnnnnttt:
ttt = Loop Type
: 0 = Off,
1 = Seg1F, 2 = Seg2F,
3 = Seg3F, 5 = Seg1B, 6 = Seg2B,
7 = Seg3B
nnnnn = # of Loops: 0 = Inf, 1 = 1x to 31 = 31x
02
ENV2 Att1 Level: signed byte : range -100 = -100% to
100 = 100%
03
ENV2 Att1 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
04
ENV2 Att2 Level: signed byte : range -100 = -100% to
100 = 100%
05
ENV2 Att2 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
06
ENV2 Att3 Level: signed byte : range -100 = -100% to

100 = 100%
07
ENV2 Att3 Time : unsigned byte: range 0 = 0s, 4 = .02s
255 = 60s {73-ASR Times; omit 1-3}
08
ENV2 Dec1 Level: signed byte : range -100 = -100% to
100 = 100%
09
ENV2 Dec1 Time : unsigned byte: range 0 = 0s, 4 = .02s
255 = 60s {73-ASR Times; omit 1-3}
0A
ENV2 Rel1 Level: signed byte : range -100 = -100% to
100 = 100%
0B
ENV2 Rel1 Time : unsigned byte: range 0 = 0s, 4 = .02s
255 = 60s {73-ASR Times; omit 1-3}
0C
ENV2 Rel2 Level: signed byte : range -100 = -100% to
100 = 100%
0D
ENV2 Rel2 Time : unsigned byte: range 0 = 0s, 4 = .02s
255 = 60s {73-ASR Times; omit 1-3}
0E
ENV2 Rel3 Level: signed byte : range -100 = -100% to
100 = 100%
0F
ENV2 Rel3 Time : unsigned byte: range 0 = 0s, 4 = .02s
255 = 60s {73-ASR Times; omit 1-3}
Segment omitted if all Times and Levels = 0

to

to

to

to

to

ENV3 Segment (16 bytes)


00
ENV3 Segment Tag = h'23'
01
ENV3 Loop Type/# of Loops: nnnnnttt:
ttt = Loop Type
: 0 = Off,
1 = Seg1F, 2 = Seg2F,
3 = Seg3F, 5 = Seg1B, 6 = Seg2B,
7 = Seg3B
nnnnn = # of Loops: 0 = Inf, 1 = 1x to 31 = 31x
02
ENV3 Att1 Level: signed byte : range -100 = -100% to
100 = 100%
03
ENV3 Att1 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
04
ENV3 Att2 Level: signed byte : range -100 = -100% to
100 = 100%
05
ENV3 Att2 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
06
ENV3 Att3 Level: signed byte : range -100 = -100% to
100 = 100%
07
ENV3 Att3 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
08
ENV3 Dec1 Level: signed byte : range -100 = -100% to
100 = 100%
09
ENV3 Dec1 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
0A
ENV3 Rel1 Level: signed byte : range -100 = -100% to

100 = 100%
0B
ENV3 Rel1 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
0C
ENV3 Rel2 Level: signed byte : range -100 = -100% to
100 = 100%
0D
ENV3 Rel2 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
0E
ENV3 Rel3 Level: signed byte : range -100 = -100% to
100 = 100%
0F
ENV3 Rel3 Time : unsigned byte: range 0 = 0s, 4 = .02s to
255 = 60s {73-ASR Times; omit 1-3}
Segment omitted if all Times and Levels = 0

Calvin Segment (32 bytes)


00
Calvin Segment Tag = h'40'
01
(Sysex document says SubTag [perhaps to distinguish from
Hobbes segment subtags/functions]): value = 127
02
KEYMAP Transpose/TimbreShift: signed byte:
range -128 to 127 = -128St to 127St
**actual value stored = KEYMAP Xpose *minus*
KEYMAP TimbreShift (see 10 below)
KB3 TONEWL UpperXpose: signed byte:
range h'80' = -168St to h'7F' = 87St
**acual value stored = TONEWL UpperXpose *plus*
(TONEWL NumToneWheels + 1)/2 truncated
**displayed value = stored value *minus*
(TONEWL NumToneWheels +1)/2 truncated
**
see KB3 Tone Wheel Segment field number 03
03
(Sysex document says Dtune): 0
This field is set to h'01' in one layer of K2600
K26PROGS archive, MOREPRGS folder, file Leftover.k26,
program 200.
04
KEYMAP KeyTrk: signed byte: range -120 = -2400ct/key to
120 = 2400ct/key {85-KeyTrk 2400}
05
KEYMAP VelTrk: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
06
(Sysex document says Tcontrol): 0
This field is set to h'01' in one layer of K2500 farm
farm25, file bells.k25, program 211.
07
(Sysex document says Trange): 0
This field is set to h'6A' in one layer in K2000 Factory
Disc file Xprogs5.krz, program 295.
08-09 KEYMAP Keymap2: unsigned word: keymap number: range 0 - 999,
0 = none; not used for mono keymap
0A
(Sysex document says Sroot [Sample Root?]): 0

0B

KEYMAP SmpSkp

: b'01xxxxxx' = Auto,
b'10xxxxxx' = On,
b'00xxxxxx' = Off
KEYMAP AltMethod: b'xx0xxxxx' = Switched,
b'xx1xxxxx' = Continuous
KB3 TONEWL LowerToneWheels:
b'xxx1xxxx' = SINE2,
b'xxx0xxxx' = SAW, SQUARE, SINE
(Reserved?)
: b'xxxx0000'
0C-0D KEYMAP Keymap/Keymap1: unsigned word: keymap number:
range 0 - 999, 0 = none
KB3 TONEWL UpperToneWheels Keymap
0E
(Sysex document says Root -- Sblock Root #): 0
This field is set to h'7F' in one layer of K2500 farm
farm25, file ethereal.k25, program 233. The same value
is set in byte h'0D'.
0F
KEYMAP AltControl: h'00' = Off, h'7F' = On, ...
{74-Controllers}
10
KEYMAP TimbreShift: signed byte:
negative of displayed TimbreShift: range -60 = 60 to
60 = -60
**affects KEYMAP Transpose and PITCH Coarse values
(see 02 above, 12 below)
?????
and ranges**
**Positive TimbreShift (stored as negative) adjusts
Transpose range up; e.g., if TimbreShift = 10,
Transpose range is -118 to 137
**Negative TimbreShift (stored as positive) adjusts
Transpose range down; e.g., if TimbreShift = -10,
Transpose range is -138 to 117
**Positive TimbreShift (stored as negative) adjusts
Coarse Pitch range down; e.g., if TimbreShift = 10,
Coarse Pitch range is -138 to 117
**Negative TimbreShift (stored as positive) adjusts
Coarse Pitch range up; e.g., if TimbreShift = -10,
Coarse Pitch range is -118 to 137
11
(Reserved): 0
This field is set to h'F3, h'F7' or h'FB' in one or more
layers in K2500 farm farm25, file anacomps.k25, program
254; K2500 farm farm25, file analeads.k25, program 218;
K2500 farm farm25, file bells.k25, programs 205 and 221;
K2500 farm farm25, file hybperc.k25, programs 211 and
218; and K2500 farm farm25, file vox.k25, program 217.
In each case, it is not in the first layer, and the same
value is set in byte h'12' and sometimes byte h'10' -usually in 3 subsequent bytes.

12

13

14

15

16

17

18

19

1A

1B

1C
1D

1E
1F

PITCH

Coarse/TimbreShift: signed byte:


range -128 to 127 = -128St to 127St
**actual value stored = PITCH Coarse *plus*
KEYMAP TimbreShift (see 10 above)
**KB3 PITCH Coarse also affects Hobbes 1 segment
field 02
PITCH Fine: signed byte: range -100 = -100ct to 100 = 100ct
**KB3 PITCH Fine also changes Hobbes 1 segment
field 03
PITCH KeyTrk: signed byte: range -120 = -2400ct/key to
120 = 2400ct/key {85-KeyTrk 2400}
**Disabled on KB3 PITCH
PITCH VelTrk: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
**Disabled on KB3 PITCH
PITCH Src1: h'00' = Off, h'7F' = On, ... {74-Controllers}
**KB3 PITCH Src1 also changes Hobbes 1 segment
field 06
PITCH Depth: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
**KB3 PITCH Depth also changes Hobbes 1 segment
field 07
PITCH DptCtl: h'00' = Off, h'7F' = On, ... {74-Controllers}
**KB3 PITCH DptCtl also changes Hobbes 1 segment
field 08
PITCH MinDpt: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
**KB3 PITCH MinDpt also changes Hobbes 1 segment
field 09
PITCH MaxDpt: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
**KB3 PITCH MaxDpt also changes Hobbes 1 segment
field 0A
PITCH Src2: h'00' = Off, h'7F' = On, ... {74-Controllers}
**KB3 PITCH Src2 also changes Hobbes 1 segment
field 0B
(Sysex document says CCR): 0
(Reserved)
: b'00000xxx'
KEYMAP PlayBackMode: b'xxxxx00x' = Normal,
b'xxxxx01x' = Reverse,
b'xxxxx10x' = BiDirect,
b'xxxxx11x' = Noise
(Reserved)
: b'xxxxxxx0'
ALG
Algorithm: Algorithm number: range = 1-31
PITCH FineHz: signed byte: range -60 = 6.00hz to 60 = 6.00hz
by .10Hz

**Disabled on KB3 PITCH

Hobbes 1 [F1] Segment (16 bytes)


00
Hobbes 1 Segment Tag = h'50'
01
ALG F1 Block DSP Function {03-Algorithms and DSP}
KB3 UpperToneWheels: SINE2 = h'17', SAW = h'1B',
SQUARE = h'1D', SINE = h'17'
02
F1 Coarse: *Depends on DSP Function
KB3 TONEWL LowerXpose: signed byte:range -120 = -120St
to 127 = 127St
**KB3 PITCH Coarse changes this as well as Calvin segment
field 12
03
F1 Fine :*Depends on DSP Function
**KB3 PITCH Fine changes this as well as Calvin segment
field 13
04
F1 KeyTrk:*Depends on DSP Function
**Disabled on KB3 PITCH
05
F1 VelTrk:*Depends on DSP Function
**Disabled on KB3 PITCH
06
F1 Src1 : h'00' = Off, h'7F' = On, ... {74-Controllers}
**KB3 PITCH Src1 changes this as well as Calvin segment
field 16
07
F1 Depth :*Depends on DSP Function
**KB3 PITCH Depth changes this as well as Calvin segment
field 17
**KB3 PITCH Depth: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk -7200}
08
F1 DptCtl: h'00' = Off, h'7F' = On, ... {74-Controllers}
**KB3 PITCH DptCtl changes this as well as Calvin segment
field 18
09
F1 MinDpt:*Depends on DSP Function
**KB3 PITCH MinDpt changes this as well as Calvin segment
field 19
**KB3 PITCH MinDpt: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
0A
F1 MaxDpt:*Depends on DSP Function
**KB3 PITCH MaxDpt changes this as well as Calvin segment
field 1A
**KB3 PITCH MaxDpt: signed byte: range -123 = -7200ct to
123 = 7200ct {98-VelTrk 7200}
0B
F1 Src2 : h'00' = Off, h'7F' = On, ... {74-Controllers}
**KB3 PITCH Src2 changes this as well as Calvin segment
field 1B
0C
b'ffffffpp':
ffffff: (Sysex document says Filt Alg): 0

0D
0E
0F

pp
:F1 Pad
: 0 = 0dB, 1 = 6dB, 2 = 12dB, 3 = 18dB
(Sysex document says More TSCR): 0
(Reserved): 0
F1 FineHZ/KStart:*Depends on DSP Function
**Disabled on KB3 PITCH

Hobbes 2 [F2] Segment (16 bytes)


00
Hobbes 2 Segment Tag =h'51'
01
ALG F2 Block DSP Function {03-Algorithms and DSP}
02
F2 Coarse/Adjust:*Depends on DSP Function
03
F2 Fine :*Depends on DSP Function
04
F2 KeyTrK:*Depends on DSP Function
05
F2 VelTrk:*Depends on DSP Function
06
F2 Src1 : h'00' = Off, h'7F' = On, ... {74-Controllers}
07
F2 Depth :*Depends on DSP Function
08
F2 DptCtl: h'00' = Off, h'7F' = On, ... {74-Controllers}
09
F2 MinDpt:*Depends on DSP Function
0A
F2 MaxDpt:*Depends on DSP Function
0B
F2 Src2 : h'00' = Off, h'7F' = On, ... {74-Controllers}
0C
b'ffffffpp':
ffffff: (Sysex document says Filt Alg): 0
pp
:F2 Pad
: 0 = 0dB, 1 = 6dB, 2 = 12dB, 3 = 18dB
0D
(Sysex document says More TSCR): 0
0E
(Reserved): 0
This field is set to h'F3 or h'FF' in one or more layers
in K2500 farm farm25, file anacomps.k25, program 240;
and K2500 farm farm25, file hybperc.k25, program 209.
In each case the same value is set in byte h'0F'.
0F
F2 FineHz/KStart:*Depends on DSP Function
Hobbes 3 [F3] Segment (16 bytes)
00
Hobbes 3 Segment Tag = h'52'
01
ALG F3 Block DSP Function {03-Algorithms and DSP}
02
F3 Coarse:*Depends on DSP Function
03
F3 Fine :*Depends on DSP Function
OUTPUT Stereo Keymap 2 (Upper) Pan: b'ppppxxxx':
pppp = Pan, xxxx = reserved
pppp: h'0' = Center, h'F' = 1 Left, h'E'
h'D' = 3 Left, h'C' = 4 Left, h'B'
h'A' = 6 Left, h'9' = 7 Left, h'7'
h'6' = 6 Right, h'5' = 5 Right, h'4'
h'3' = 3 Right, h'2' = 2 Right, h'1'
xxxx: 0
04
F3 KeyTrk:*Depends on DSP Function

=
=
=
=
=

2
5
7
4
1

Left,
Left,
Right,
Right,
Right

05
06
07
08
09
0A
0B
0C

0D
0E

0F

F3 VelTrk:*Depends on DSP Function


F3 Src1 : h'00' = Off, h'7F' = On, ... {74-Controllers}
F3 Depth :*Depends on DSP Function
F3 DptCtl: h'00' = Off, h'7F' = On, ... {74-Controllers}
F3 MinDpt:*Depends on DSP Function
F3 MaxDpt:*Depends on DSP Function
F3 Src2 : h'00' = Off, h'7F' = On, ... {74-Controllers}
b'ffffffpp':
ffffff: (Sysex document says Filt Alg): 0
pp
:F3 Pad
: 0 = 0dB, 1 = 6dB, 2 = 12dB, 3 = 18dB
(Sysex document says More TSCR): 0
(Reserved): 0
OUTPUT Pair/Gain (Upper) b'xxxppggg':
xxx = reserved, pp = Pair, ggg = Gain
xxx: 0
pp : 0 = KDFX-A/A(FX), 1 = KDFX-B/B(DRY),
2 = KDFX-C/C(DRY), 3 = KDFX-D/D(DRY)
ggg: 0 = 30dB, 1 = 24dB, 2 = 18dB, 3 = 12dB, 4 = 6dB,
5 = 0dB, 6 = -6dB, 7 = -12dB
F3 FineHz/KStart:*Depends on DSP Function
OUTPUT Pan/Mode (Mono/Stereo Keymap 1; Upper)
b'ppppmmxx': pppp = Pan, mm = Mode, xx = reserved
pppp: h'0' = Center, h'F' = 1 Left, h'E' = 2 Left,
h'D' = 3 Left, h'C' = 4 Left, h'B' = 5 Left,
h'A' = 6 Left, h'9' = 7 Left, h'7' = 7 Right,
h'6' = 6 Right, h'5' = 5 Right, h'4' = 4 Right,
h'3' = 3 Right, h'2' = 2 Right, h'1' = 1 Right
(L7654321C1234567R)
mm : 0 = Fixed, 1 = MIDI+, 2 = Auto, 3 = Revrs,
xx : 0

Hobbes 4 Segment: F4 AMP or KB3 AMP (16 bytes)


00
Hobbes 4 Segment Tag = h'53'
01
F4 ALG BLOCK DSP Function {03-Algorithms and DSP}
02
F4 AMP Adjust: signed byte: range -96 = -96 dB to 48 = 48 dB
03
OUTPUT Stereo Keymap 2 (Only/Lower) Pan: b'ppppxxxx':
pppp = Pan, xxxx = reserved
pppp: h'0' = Center, h'F' = 1 Left, h'E' = 2 Left,
h'D' = 3 Left, h'C' = 4 Left, h'B' = 5 Left,
h'A' = 6 Left, h'9' = 7 Left, h'7' = 7 Right,
h'6' = 6 Right, h'5' = 5 Right, h'4' = 4 Right,
h'3' = 3 Right, h'2' = 2 Right, h'1' = 1 Right
xxxx: 0
04
F4 AMP KeyTrk: signed byte: range -100 = -2.00 dB/key to
100 = 2.00 dB/key by .02 dB/key

05

06
07
08
09
0A
0B
0C

0D

0E

0F

**Disabled on KB3 AMP


F4 AMP VelTrk: signed byte: range -96 = -96dB to
96 = 96 dB by 1 dB
**Disabled on KB3 AMP
F4 AMP Src1 : h'00' = Off, h'7F' = On, ... {74-Controllers}
F4 AMP Depth : signed byte: range -96 = -96dB to
96 = 96 dB by 1 dB
F4 AMP DptCtl: h'00' = Off, h'7F' = On, ... {74-Controllers}
F4 AMP MinDpt: signed byte: range -96 = -96dB to
96 = 96 dB by 1 dB
F4 AMP MaxDpt: signed byte: range -96 = -96dB to
96 = 96 dB by 1 dB
F4 AMP Src2 : h'00' = Off, h'7F' = On, ... {74-Controllers}
b'ffffffpp':
ffffff: (Sysex document says Filt Alg): 0
pp
:F4 Pad
: 0 = 0dB, 1 = 6dB, 2 = 12dB, 3 = 18dB
**Disabled on KB3 AMP
This field is set to h'BC' in one layer in K2000 Factory
Disc file Xprogs2.krz, program 224. That makes Filt Alg
h'2F' or 47.
(Sysex document says More TSCR): 0
This field is set to h'FE' in one layer in K2000 Factory
Disc file Xprogs2.krz, program 224.
OUTPUT Pair/Gain (Only/Lower) b'xxxppggg':
xxx = reserved, pp = Pair, ggg = Gain
xxx: 0
pp : 0 = KDFX-A/A(FX), 1 = KDFX-B/B(DRY),
2 = KDFX-C/C(DRY), 3 = KDFX-D/D(DRY)
ggg: 0 = 30dB, 1 = 24dB, 2 = 18dB, 3 = 12dB, 4 = 6dB,
5 = 0dB, 6 = -6dB, 7 = -12dB
OUTPUT Pan/Mode (Mono/Stereo Keymap 1; Only/Lower)
b'ppppmmxx': pppp = Pan, mm = Mode, xx = reserved
pppp: h'0' = Center, h'F' = 1 Left, h'E' = 2 Left,
h'D' = 3 Left, h'C' = 4 Left, h'B' = 5 Left,
h'A' = 6 Left, h'9' = 7 Left, h'7' = 7 Right,
h'6' = 6 Right, h'5' = 5 Right, h'4' = 4 Right,
h'3' = 3 Right, h'2' = 2 Right, h'1' = 1 Right
(L7654321C1234567R)
mm : 0 = Fixed, 1 = MIDI+, 2 = Auto, 3 = Revrs,
xx : 0

03-Algorithms and DSP.txt


******************************************************************
*
Kurzweil K2000/K2500 Algorithms and DSP Functions
*

******************************************************************
(K2600 will eventually have algorithms 32 through 99.)
DSP functions available for each Algorithm with function numbers
(PITCH function has no number):
Algorithm 1
PITCH

HIFREQ STIMULATOR(12)
PARAMETRIC EQ(13)
STEEP RESONANT BASS(14)
4POLE LOPASS W/SEP(50)
4POLE HIPASS W/SEP(54)
TWIN PEAKS BANDPASS(55)
DOUBLE NOTCH W/SEP(56)
NONE(52)

AMP(01)

Algorithm 2
PITCH

2POLE LOWPASS(02)
BANDPASS FILT(03)
NOTCH FILTER(04)
2POLE ALLPASS(05)
PARA BASS(08)
PARA TREBLE(09)
PARA MID(51)
NONE(61)
2PARAM SHAPER(64)

PANNER(40)

AMP(01)

Algorithm 3
PITCH

2POLE LOWPASS(02)
BANDPASS FILT(03)
NOTCH FILTER(04)
2POLE ALLPASS(05)
NONE(61)
2PARAM SHAPER(64)

AMP U
BAL

AMP L(38)
AMP(39)

Algorithm 4
PITCH

2POLE LOWPASS(02)
BANDPASS FILT(03)
NOTCH FILTER(04)

LOPASS(15)
HIPASS(16)
ALPASS(17)

AMP(01)

2POLE ALLPASS(05)
PARA BASS(08)
PARA TREBLE(09)
PARA MID(51)
NONE(61)
2PARAM SHAPER(64)

GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

Algorithm 5
PITCH

2POLE LOWPASS(02)
BANDPASS FILT(03)
NOTCH FILTER(04)
2POLE ALLPASS(05)
PARA BASS(08)
PARA TREBLE(09)
PARA MID(51)
NONE(61)
2PARAM SHAPER(64)

BAND2(35)
NOTCH2(36)
LOPAS2(37)
HIPAS2(52)
LPGATE(57)
NONE(60)
LP2RES(73)
SHAPE2(74)
MASTER(77)
SLAVE(78)

AMP(01)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

x AMP(48)
+ AMP(49)
! AMP(75)

LOPASS(15)

x AMP(48)

Algorithm 6
PITCH

2POLE LOWPASS(02)
BANDPASS FILT(03)
NOTCH FILTER(04)
2POLE ALLPASS(05)
NONE(61)
2PARAM SHAPER(64)

Algorithm 7
PITCH

2POLE LOWPASS(02)

BANDPASS FILT(03)
NOTCH FILTER(04)
2POLE ALLPASS(05)
NONE(61)
2PARAM SHAPER(64)

HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

+ AMP(49)
! AMP(75)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
WRAP(31)
NONE(60)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

AMP(01)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)

BAND2(35)
NOTCH2(36)
LOPAS2(37)
HIPAS2(52)
LPGATE(57)
NONE(60)
LP2RES(73)

AMP(01)

Algorithm 8
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 9
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)

SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

SAW+(26)
WRAP(31)
NONE(60)

SHAPE2(74)
MASTER(77)
SLAVE(78)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

x AMP(48)
+ AMP(49)
! AMP(75)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SW+DST(53)

x AMP(48)
+ AMP(49)
! AMP(75)

Algorithm 10
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 11
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)

SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

x AMP(48)
+ AMP(49)
! AMP(75)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
WRAP(31)
NONE(60)

PANNER(40)

AMP(01)

Algorithm 12
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 13
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)

WRAP(31)
NONE(60)

Algorithm 14
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

AMP U
BAL

AMP L(38)
AMP(39)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

AMP U
BAL

AMP L(38)
AMP(39)

Algorithm 15
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 16

PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

PARA BASS(10)
PARA TREBLE(11)
NONE(61)

AMP(01)

NONE(61)
SHAPE MOD OSC(68)
AMP MOD OSC(72)

AMP(01)

NONE(61)
x SHAPEMOD OSC(66)
+ SHAPEMOD OSC(67)

AMP(01)

Algorithm 17
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
PWM(22)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 18
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)

SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 19
PITCH

LOPAS2(69)

SHAPE MOD OSC(68)

AMP(01)

x GAIN(41)
+ GAIN(42)
XFADE(43)
AMPMOD(44)
NONE(63)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

AMP(01)

x GAIN(41)
+ GAIN(42)
XFADE(43)
AMPMOD(44)
NONE(63)

BAND2(35)
NOTCH2(36)
LOPAS2(37)
HIPAS2(52)
LPGATE(57)

AMP(01)

Algorithm 20
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

Algorithm 21
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)

DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

NONE(60)
LP2RES(73)
SHAPE2(74)
MASTER(77)
SLAVE(78)

Algorithm 22
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

x GAIN(41)
+ GAIN(42)
XFADE(43)
AMPMOD(44)
NONE(63)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

x AMP(48)
+ AMP(49)
! AMP(75)

x GAIN(41)
+ GAIN(42)
XFADE(43)
AMPMOD(44)
NONE(63)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SW+DST(53)

x AMP(48)
+ AMP(49)
! AMP(75)

Algorithm 23
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)

LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

Algorithm 24
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

x GAIN(41)
+ GAIN(42)
XFADE(43)
AMPMOD(44)
NONE(63)

PANNER(40)

x GAIN(41)
+ GAIN(42)
XFADE(43)
AMPMOD(44)
NONE(63)

AMP U
BAL

AMP(01)

Algorithm 25
PITCH

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SAW(27)
LF SAW(28)
SQUARE(29)
LF SQR(30)
WRAP(31)
NONE(60)

AMP L(38)
AMP(39)

Algorithm 26
SYNC M(33)

SYNC S(34)

PANNER(40)

AMP(01)

SYNC S(34)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

AMP(01)

SYNC S(34)

BAND2(35)
NOTCH2(36)
LOPAS2(37)
HIPAS2(52)
LPGATE(57)
NONE(60)
LP2RES(73)
SHAPE2(74)
MASTER(77)
SLAVE(78)

AMP(01)

SYNC S(34)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)

x AMP(48)
+ AMP(49)
! AMP(75)

Algorithm 27
SYNC M(33)

Algorithm 28
SYNC M(33)

Algorithm 29
SYNC M(33)

DIST(20)
SINE(23)
LF SIN(24)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

Algorithm 30
SYNC M(33)

SYNC S(34)

LOPASS(15)
HIPASS(16)
ALPASS(17)
GAIN(18)
SHAPER(19)
DIST(20)
SW+SHP(25)
SAW+(26)
SW+DST(53)
NONE(60)
LPCLIP(70)
SINE+(71)
NOISE+(76)

SYNC S(34)

AMP U
BAL

x AMP(48)
+ AMP(49)
! AMP(75)

Algorithm 31
SYNC M(33)

AMP L(38)
AMP(39)

******************************************************************
DSP Functions: number, name, number of blocks, abbreviation (shown
at top of F1/F2/F3/F4 pages), parameter page types (see below):
#
-01
15
16
17
18

Name & number of blocks


---------------------------------AMP
(1 block)
LOPASS (1 block)
HIPASS (1 block)
ALPASS (1 block)
GAIN
(1 block)

Abbreviation
-----------FINAL AMP
LOPASS
HIPASS
ALPASS
GAIN

Parm Pg Types
------------AMP
FRQ
FRQ
FRQ
AMP

19
20
22
23
24
25
26
27
28
29
30
31
33
34
35
36
37
40
41
42
43
44
48
49
52
53
57
60
63
69
70
71
73
74
75
76
77
78
02
03
04
05
08
09
10
11

SHAPER (1 block)
DIST
(1 block)
PWM
(1 block)
SINE
(1 block)
LF SIN (1 block)
SW+SHP (1 block)
SAW+
(1 block)
SAW
(1 block)
LF SAW (1 block)
SQUARE (1 block)
LF SQR (1 block)
WRAP
(1 block)
SYNC M (1 block)
SYNC S (1 block)
BAND2 (1 block)
NOTCH2 (1 block)
LOPAS2 (1 block)
PANNER (1 block)
x GAIN (1 block)
+ GAIN (1 block)
XFADE (1 block)
AMPMOD (1 block)
x AMP (1 block)
+ AMP (1 block)
HIPAS2 (1 block)
SW+DST (1 block)
LPGATE (1 block)
NONE
(1 block)
NONE
(1 block, F2 of algs 20-25)
LOPAS2 (1 block, F1 of alg 19)
LPCLIP (1 block)
SINE+ (1 block)
LP2RES (1 block)
SHAPE2 (1 block)
! AMP (1 block)
NOISE+ (1 block)
MASTER (1 block)
SLAVE (1 block)
2POLE LOWPASS (2 blocks)
BANDPASS FILT (2 blocks)
NOTCH FILTER
(2 blocks)
2POLE ALLPASS (2 blocks)
PARA BASS
(2 blocks)
PARA TREBLE
(2 blocks)
PARA BASS
(2 blocks, alg 16)
PARA TREBLE
(2 blocks, alg 16)

SHAPER
DIST
PWM
SINE
LF SIN
SW+SHP
SAW+
SAW
LF SAW
SQUARE
LF SQR
WRAP
SYNC M
SYNC S
BAND2
NOTCH2
LOPAS2
PANNER
x GAIN
+ GAIN
XFADE
AMPMOD
x AMP
+ AMP
HIPAS2
SW+DST
LPGATE
NONE
NONE
LOPAS2
LPCLIP
SINE+
LP2RES
SHAPE2
! AMP
NOISE+
MASTER
SLAVE
2P LOPASS
BANDPASS
NOTCH
2P ALPASS
PARA BASS
PARA TREBLE
PARA BASS
PARA TREBLE

AMT
DRV
WID(PWM)
PCH
PCH(LF)
PCH
PCH
PCH
PCH(LF)
PCH
PCH(LF)
WRP
PCH
PCH
FRQ
FRQ
FRQ
POS
AMP
AMP
XFD
AMP
AMP
AMP
FRQ
PCH
FRQ
OFF
OFF
FRQ
FRQ
PCH
FRQ
AMT
AMP
AMP
FRQ
FRQ
FRQ RES
FRQ WID
FRQ WID
FRQ WID
FRQ AMP
FRQ AMP
FRQ AMP
FRQ AMP

38
39
51
61
64
66
67
68
72
12
13
14
50
54
55
56
62

AMP U
AMP L (2 blocks)
BAL
AMP
(2 blocks)
PARA MID
(2 blocks)
NONE
(2 blocks)
2PARAM SHAPER (2 blocks)
x SHAPEMOD OSC (2 blocks)
+ SHAPEMOD OSC (2 blocks)
SHAPE MOD OSC (2 blocks)
AMP MOD OSC
(2 blocks)
HIFREQ STIMULATOR
(3 blocks)
PARAMETRIC EQ
(3 blocks)
STEEP RESONANT BASS (3 blocks)
4POLE LOPASS W/SEP (3 blocks)
4POLE HIPASS W/SEP (3 blocks)
TWIN PEAKS BANDPASS (3 blocks)
DOUBLE NOTCH W/SEP (3 blocks)
NONE
(3 blocks)

AMP U/L
BAL/AMP
PARA MID
NONE
2P SHAPER
x SHAPEOSC
+ SHAPEOSC
SHAPE OSC
AM OSC
HIFRQ STIM
PARA EQ
STEEP BASS
4P LOPASS
4P HIPASS
TWN PEAKS
DBL NOTCH
NONE

AMP
POS
FRQ
OFF
EVN
PCH
PCH
PCH
PCH
FRQ
FRQ
FRQ
FRQ
FRQ
FRQ
FRQ
OFF

AMP
AMP
AMP
OFF
ODD
DEP
DEP
DEP
DEP
DRV
WID
RES
RES
RES
WID
WID
OFF

AMP
AMP
AMP
SEP
SEP
SEP
SEP
OFF

******************************************************************
Parameters by Parameter Page type:
FRQ

Coarse: C0 16Hz - G10 25088 Hz {83-Key-Freq}


Fine : -100ct to 100ct by 1ct (stored -100 to 100)
x
KeyTrk: -250ct/key to 250ct/key by 2ct/key (stored -125 to
125)
VelTrk: -10800ct to 10800ct {96-VelTrk 10800ct}
& Depth, MinDpt, MaxDpt

DRV

Adjust: -96dB to 48dB by 1dB (stored -96 to 48)


x
KStart: {81-KStart}
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB/key (stored
-100 to 100)
VelTrk: -96dB by 96dB by 1dB (stored -96 to 96)
& Depth, MinDpt, MaxDpt

AMP

Adjust: -96dB to 48dB by 1dB (stored -96 to 48)


x
x
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB/key (stored
-100 to 100)
VelTrk: -96dB by 96dB by 1dB (stored -96 to 96)

& Depth, MinDpt, MaxDpt

WID

Adjust: 0.010oct to 5.000oct {72-Adjust}


x
x
KeyTrk: -0.200oct/key to 0.200oct/key by .002oct/key
(stored -100 to 100)
VelTrk: {97-VelTrk 5.00 Oct}
& Depth, MinDpt, MaxDpt

RES

Adjust: -12.0dB to 24.0dB by 0.5dB (stored as -24 to 48)


x
x
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB/key (stored
-100 to 100)
VelTrk: -30.0dB to 30.0dB by .5dB (stored -60 to 60)
& Depth, MinDpt, MaxDpt

SEP

Coarse: -10800ct to 10800ct by 100 ct (stored -108 to 108)


Fine : -100ct to 100ct by 1ct (stored -100 to 100)
x
KeyTrk: -250ct/key to 250ct/key by 2ct/key (stored -125 to
125)
VelTrk: -10800ct to 10800ct {96-VelTrk 10800ct}
& Depth, MinDpt, MaxDpt

OFF

Coarse: -128 to 127 by 1


Fine : -128 to 127 by 1
FineHz: -128 to 127 by 1
KeyTrk: -128 to 127 by 1
VelTrk: -128 to 127 by 1
& Depth, MinDpt, MaxDpt

EVN

Adjust: -96dB to 48dB by 1dB (stored -96 to 48)


x
KStart: {81-KStart}
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB/key (stored
-100 to 100)
VelTrk: -96dB by 96dB by 1dB (stored -96 to 96)
& Depth, MinDpt, MaxDpt

ODD

Adjust: -96dB to 48dB by 1dB (stored -96 to 48)


x
KStart: {81-KStart}
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB/key (stored
-100 to 100)
VelTrk: -96dB by 96dB by 1dB (stored -96 to 96)
& Depth, MinDpt, MaxDpt

POS

Adjust: -100% to 100% by 1% (stored -100 to 100)


x
x
KeyTrk: -16.0%/key to 16.0%/key by 0.2%/key (stored -80 to
80)
VelTrk: -200% to 200% by 2% (stored -100 to 100)
& Depth, MinDpt, MaxDpt

AMT

Adjust: 0.100x to 4.000x by .025x (unsigned byte: stored 4


to 160)
x
KStart: {81-KStart}
KeyTrk: -0.200x/key to 0.200x/key by .002x/key (stored
-100 to 100)
VelTrk: -4.00x to 4.00x by .05x (stored -80 to 80)
& Depth, MinDpt, MaxDpt

PCH

Coarse: -120St to 60St by 1St (stored -120 to 60)


Fine :
-100ct to 100ct by 1ct (stored -100 to 100)
FineHz: -6.00Hz to 6.00Hz by .10Hz (stored -60 to 60)
KeyTrk: -2400ct/key to 2400ct/key {85-KeyTrk 2400}
VelTrk: -7200ct to 7200ct {98-VelTrk 7200}
& Depth, MinDpt, MaxDpt

PCH(LF)

Coarse: 0 = 0.1Hz, 1 = 1.0Hz, 2 = 10.0Hz, 3 = 100.0Hz, 4 =


1000.0Hz
Fine : 1.00x to 20.00x {77-Fine}
x
KeyTrk: 0.10x/oct to 10.00x/oct {84-KeyTrk 10.00x}
VelTrk: 0.010x to 32.000x {95-VelTrk 32.000x}
& Depth, MinDpt, MaxDpt

WID(PWM)Adjust: 0% to 100% by 1% (stored 0 to 100)


x
x
KeyTrk: -8.0%/key to 8.0%/key by 0.1%/key (stored -80 to
80)
VelTrk: -100% to 100% by 1% (stored -100 to 100)
& Depth, MinDpt, MaxDpt

WRP

Adjust: -32.00dB to 12.00dB by .25dB (stored -128 to 48)


x
KStart: {81-KStart}
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB (stored -100 to
100)
VelTrk: -48.0dB to 48.0dB by .5 dB (stored -96 to 96)
& Depth, MinDpt, MaxDpt

DEP

Adjust: -96dB to 48dB by 1dB (stored -96 to 48)


x
KStart: {81-KStart}
KeyTrk: -2.00dB/key to 2.00dB/key by .02dB (stored -100 to
100)
VelTrk: -96dB by 96dB by 1dB (stored -96 to 96)
& Depth, MinDpt, MaxDpt

XFD

Adjust: -100% to 100% by 1% (stored -100 to 100)


x
x
KeyTrk: -16.0%/key to 16.0%/key by .2%/key (stored -80 to
80)
VelTrk: -200% to 200% by 2% (stored -100 to 100)
& Depth, MinDpt, MaxDpt

******************************************************************
Notes on Parameter Page types:
The first parameter may be Coarse or Adjust.
types.
The second parameter is Fine.

It is present in all

It is not always present.

The third parameter may be KStart or FineHz.


present.

It is not always

The fourth parameter is KeyTrk.


The fifth parameter is VelTrk.

It is always present.
It is always present.

The sixth parameter is Pad. It is not always present. It is


stored in byte 0C of the Hobbes segments (1 through 4) and has a
displayed value of 0, 6, 12, or 18dB.
Depth, MinDpt, and MaxDpt are always present and take the same
values as VelTrk.
Src1, Src2, and DptCtl are always present and take a value from
{74-Controllers}.
If a parameter is not used for a certain DSP block, it's fields
are generally left alone in the Hobbes segments. This includes
the function type if a change in algorithm causes a change from
one or more 1-block functions to a 2- or 3-block function.
However, setting F3/F4 to AMP U/AMP L or BAL/AMP may change the
F4 function to 1 (AMP).
It is possible to change a DSP block type and have an out-of-range
value left behind in a parameter.
If an algorithm uses a 2-block or 3-block function, the Pad
parameter is only present on the first page of parameters for that
block. If the Pad value is changed on the first page of a 2- or
3-block function, the Pad value is stored in the Hobbes segment
for the second page also, even though there is no Pad parameter on
the second page. Curiously, it is not stored in the Hobbes
segment for the third page of a 3-block function.
However, algorithms 16, 17, and 18 have a 1-block followed by a
2-block. Setting the Pad on the first page of the 2-block does
not change the value for the Pad on the 2-block's second page
Hobbes segment. Algorithm 19 has no Pad for the SHAPEMOD 2-block.
There are no Pads on Sync M and Sync S blocks.
There are no Pads on the F4 (AMP) block for algorithms 2, 3, 4, 5,
9, 13, 14, 15, 21, 24, 25, 26, 28, and 31.
If PANNER is the block before the AMP block, changing the Pad on
the PANNER block changes the Pad value stored in the AMP Hobbes
segment (F4). I didn't try it for other algorithms with no Pad on

the AMP page.


There is no Pad on the PITCH page.

04-K2500-K2600 Setup.txt
******************************************************************
*
Kurzweil K2500/K2600 Program Setup Format
*
******************************************************************
The setup format consists of an object header, common data, ribbon
data, arpeggiator data, data for each zone (1 to 8 zones), and
KDFX data if a Studio is specified.
Common Data (32 bytes):
00
COMMON Effect: unsigned byte:
packed (Digitech) effect number format:
range 1 to 127, representing 1 to 37, 100 to 109,
200 to 209, ..., 900 to 909
01
COMMON FXMix: unsigned byte: range 0%Wet to 100%Wet
(stored 0 to 100)
02-03 COMMON Song: unsigned word: range 0 to 255, 0 = none,
otherwise packed song number format, but stored in
two bytes!: range 1 to 255, representing 1 to 75,
100 to 119, 200 to 219, ..., 900 to 919
04
Flags: bit values:
(Sysex says "Play on or off"): b'1xxxxxxx'
RIBCFG LargeRibbonConfig:
b'x1xxxxxx' = One Section
b'x0xxxxxx' = Three Sections
(Reserved):
b'xx000000' value 0
05
Number of zones: unsigned byte: range 1 to 8
06-07 (Sysex says "FX Studio"): word: value 0
08
COMMON Mutes: unsigned byte: 0 = Zone Mutes, 1 = KB3 Control
09
COMMON Sync : unsigned byte: h'00' = Off, h'80' = On
0A-0F (3 reserved words) values 0
10-1F (16 reserved bytes) values 0

Ribbon Data (8 bytes, 2 for each ribbon/ribbon segment):


20
Flags: bit values: (Ribbon 1 = Small Ribbon):
RIBCFG SmallRib: PosMode: b'0xxxxxxx' = Relative,
b'1xxxxxxx' = Absolute
RIBCFG SmallRib: Spring : b'x0xxxxxx' = Off,
b'x1xxxxxx' = On
(Reserved):
b'xx000000' value 0
21
RIBCFG SmallRib: Center : unsigned byte, range 0 to 127,

22

23
24

25
26

27

default = 64
Flags: bit values: (Ribbon 2 = Large Ribbon or Section 1):
RIBCFG LargeRib: PosMode: b'0xxxxxxx' = Relative,
b'1xxxxxxx' = Absolute
RIBCFG LargeRib: Spring : b'x0xxxxxx' = Off,
b'x1xxxxxx' = On
(Reserved):
b'xx000000' value 0
RIBCFG LargeRib: Center : unsigned byte, range 0 to 127,
default = 64
Flags: bit values: (Ribbon 3 = Section 2):
RIBCFG Section2: PosMode: b'0xxxxxxx' = Relative,
b'1xxxxxxx' = Absolute
RIBCFG Section2: Spring : b'x0xxxxxx' = Off,
b'x1xxxxxx' = On
(Reserved):
b'xx000000' value 0
RIBCFG Section2: Center : unsigned byte, range 0 to 127,
default = 64
Flags: bit values: (Ribbon 4 = Section 3):
RIBCFG Section3: PosMode: b'0xxxxxxx' = Relative,
b'1xxxxxxx' = Absolute
RIBCFG Section3: Spring : b'x0xxxxxx' = Off,
b'x1xxxxxx' = On
(Reserved):
b'xx000000' value 0
RIBCFG Section3: Center : unsigned byte, range 0 to 127,
default = 64

Arpeggiator (26 bytes):


28
ARPEG LoKey: unsigned byte: range 0 = C-1 to 127 = G9
{82-Key Numbers}
29
ARPEG HiKey: unsigned byte: range 0 = C-1 to 127 = G9
{82-Key Numbers}
2A
ARPEG Active: unsigned byte: 0 = Off, 1 = On
2B
ARPEG Latch: unsigned byte: 0 = Keys, 1 = Over Play,
2 = Arpeggiation, 3 = Add, 4 = Auto, 5 = Pedals,
6 = AutoHold
2C
ARPEG Order: unsigned byte: 0 = Played, 1 = Up, 2 = Down,
3 = Up/Down, 4 = Up/Down Repeat, 5 = Random,
6 = Shuffle, 7 = Walk, 8 = Simultaneous
2D
ARPEG Glissando: unsigned byte: 0 = Off, 1 = On
2E
(Sysex says "Tempo Source -- internal/external") value 0
2F
(Sysex says "On/Off Control -- Control List") value 64
(Sustain)
30-31 ARPEG Beats: unsigned word: 1 = 1/1, 2 = 1/2, 3 = 1/3, ...,
12 = 1/8triplet (1/12), ..., 24 = 1/16triplet (1/24),
..., 48 = 1/32triplet (1/48), ..., 384 = 1/384

32-33 ARPEG Duration: unsigned word: range 1% to 100% (stored 1 to


100)
34-35 ARPEG Tempo: unsigned word: range 1 BPM to 255 BPM (stored
(1 to 255)
36
ARPEG Velocity: signed byte: 0 = Played, -1 = Last,
-2 = Pressure, -3 = Ctrl 117; otherwise 1 to 127
37
(Sysex says "Velocity Fixed -- 1-127") value 110
38
(Sysex syas "Velocity Controller") value 117 (ArpVel2)
39
ARPEG Noteshift:signed byte: range -88St to 88St (stored -88
to 88)
3A
ARPEG ShiftLimit: unsigned byte: range 0 to 88
3B
ARPEG LimitOption: unsigned byte: 0 = Stop, 1 = Reset,
2 = Unipolar, 3 = Bipolar, 4 = Flt Reset, 5 = Flt Uni,
6 = Flt Bipl ("Flt" = Float)
3C
ARPEG Sync: unsigned byte: 0 = Off, h'80' = On
3D
(Reserved) value 0
3E-41 (2 reserved words) values 0 in all K2500 4.03 objects except
setup 28 (Royal DynBrass) which has h'0004' in 40-41;
value 0 in all K2600 1.01 objects

Zone Data -- per zone -- first zone shown:


42
CH/PRG Destination: unsigned byte: 0 = Local+MIDI, 1 = MIDI,
2 = Local, 3 = Off
43
CH/PRG Channel: unsigned byte: range 1 - 16
44-45 CH/PRG LocalPrg: unsigned word: 0 = none, 1-999
46-47 CH/PRG MIDI Bank: signed word: -1 (h'FFFF') = None
Otherwise, range depends on MIDIBankMode:
Ctl0 and Ctl32: range = 0 to 127
Ctl 0/32: range = 0 to 16383 (h'3FFF')
K2000 and K1000: range = 0 to 9
None: only None (h'FFFF')
48
CH/PRG MIDIProg: signed byte: -1 = None
Otherwise, range depends on MIDIBankMode:
Ctl 0, Ctl 32, Ctl 0/32, and None: range = 0 to
127
K2000, K1000: range = 0 to 99
49
b'mmmsssap': mmm = CH/PRG MIDIBankMode: 0 = Ctl 0,
1 = Ctl 32, 2 = Ctl 0/32, 3 = K2000,
4 = K1000, 5 = None
sss = CH/PRG Status: 0 = Active, 1 = Muted,
2 = Soloed, 3 = Solo/M
a
= CH/PRG ZoneArpeg: 1 = On, 0 = Off
p
= CH/PRG EntryProgChg: 1 = On, 0 = Off
4A
BEND BendRange(St):signed byte: -1 = Prog, otherwise range:
0St to 60St (stored 0 to 60)

4B
4C

4D
4E
4F

50
51
52
53
54
55
56

BEND BendRange(ct): signed byte: range -100ct to 100ct


(stored -100 to 100)
(Sysex says "Aux Bend 1") value h'15' in all K2500 4.03
objects except setup 75 (Rusty Teeth) which has h'16'
in zone 3; value h'15' in all K2600 1.01 objects
BEND AuxBend1Up: unsigned byte: range 0St to 60St (stored
0 to 60)
BEND AuxBend1Dwn: unsigned byte: range 0St to 60St (stored
0 to 60)
(Sysex says "Aux 2 Bend 2) value h'0F' in all K2500 4.03
objects except setup 17 (C7 F7 G7 Groove) which has
h'10' in zones 1 through 4; value h'0F' in all K2600
1.01 objects
BEND AuxBend2Rng: unsigned byte: range 0St to 60St (stored
0 to 60)
KEYVEL LoKey: unsigned byte: range 0 = C-1 to 127 = G9
{82-Key Numbers}
KEYVEL HiKey: unsigned byte: range 0 = C-1 to 127 = G9
{82-Key Numbers}
KEYVEL Transpose: signed byte: range -128St to 127St (stored
-128 to 127)
KEYVEL LoVel: unsigned byte: range 1 to 127
KEYVEL HiVel: unsigned byte: range 1 to 127
KEYVEL VelScale: signed byte: range -300 to 300%
{94-VelScale}

57

b'nnnncccc': nnnn = KEYVEL NoteMap: 0 = Off,


1 = Linear,
2 = Inverse, 3 = Constant, 4 = 1 of 2, 5 = 2 of 2,
6 = 1 of 3, 7 = 2 of 3,
8 = 3 of 3, 9 = 1 of 4,
10 = 2 of 4, 11 = 3 of 4,
12 = 4 of 4, 13 = White,
14 = Black
cccc = KEYVEL VelCurve: 0 = Linear,
1 = Expand,
2 = Compress, 3 = Xfade,
4 = Bump,
8 = revrsLin, 9 = revrsExp, 10 = revrsCmp,
11 = revrsXfd, 12 = revrsBmp
58
KEYVEL VelOffset: signed byte: range -128 to 127
59
PANVOL EntryVolume: signed byte: range -1 = None, 0 to 127
5A
PANVOL ExitVolume: signed byte: range -1 = None, 0 to 127
5B
PANVOL EntryPan: signed byte: range -1 = None, 0 to 127
5C
PANVOL ExitPan: signed byte: range -1 = None, 0 to 127
5D
CH/PRG Out: unsigned byte: 0 = Prog, 1 = KDFX-A, 2 = KDFX-B,
3 = KDFX-C, 4 = KDFX-D
5E-63 (3 reserved words) values 0

Next in each zone is information for 10 switches.

Each switch

uses 1 byte or 4. The first byte contains the controller number


and a flag. The flag is b'1xxxxxxx'. If set, the switch uses 1
byte and all parameters are DEFAULT values. If any parameter
value is changed from the DEFAULT, the flag is cleared and the
switch uses 4 bytes:
00
01

02
03

Dest: unsigned byte: Controller {91-Setup Controllers}


or key number {82-Key Numbers} (plus flag)
b'ttnnxxrr':
tt = SwType: 0 = Moment, 1 = Toggle, 2 = Note M,
3 = Note T; DEFAULT = Moment
nn = Entry State (Ent): 0 = None, 1 = Off, 2 = On;
DEFAULT = None
xx = Exit State (Ex): 0 = None, 1 = Off, 2 = On;
DEFAULT = None
rr = reserved: 0
On Value or Note-On Velocity (On): unsigned byte: range 1 to
127; DEFAULT = 127
Off Value or Note-Off velocity (Off): unsigned byte: range 1
to 127; DEFAULT = 0

Order of switches: 1 = FtSw1, 2 = FtSw2, 3 = FtSw3, 4 = FtSw4,


5 = PSw1, 6 = PSw2; 7/8/9/10 reserved

Next in each zone is information for 20 continuous controllers.


Each controller uses 1 byte or 6. The first byte contains the
controller number and a flag. The flag is b'1xxxxxxx'. If set,
the controller uses 1 byte and all parameters are DEFAULT values.
If any parameter value is changed from the DEFAULT, the flag is
cleared and the controller uses 6 bytes:
00
01
02
03

04
05

Dest: unsigned byte: Controller {91-Setup Controllers}


(plus flag)
Scale: signed byte: range -300 to 300% {94-VelScale};
DEFAULT = 100%
Add: signed byte: range -128 to 127; DEFAULT = 0
b'ccccxxxx': cccc = Curv, xxxx = reserved = 0
cccc: 0 = Lin,
1 = Exp, 2 = Cmp,
3 = Xfd,
4 = Bmp,
8 = rlin, 9 = rExp, 10 = rCmp,
11 = rXfd, 12 = rBmp; DEFAULT = Lin
Entry Value (Ent): signed byte: range -1 = None, 0 to 127;
DEFAULT = None
Exit Value Exit (Exit): signed byte: range -1 = None, 0 to
127; DEFAULT = None

Order of controllers:
1 = SlidA, 2 = SlidB, 3 = SlidC,
4 = SlidD, 5 = SlidE, 6 = SlidF, 7 = SlidG, 8 = SlidH,
9 = Cped1, 10 = CPed2, 11 = SmRib, 12 = SmPrs, 13 = LrgRib/Sect1,
14 = Sect2, 15 = Sect3, 16 = PWhl, 17 = MWhl, 18 = MPress;
19/20 Reserved

There may be a pad of h'00' in order to start the next zone or any
KDFX segments on even byte boundary.
Next zone(s) ......

After the last zone KDFX information is present if a Studio has


been specified. The data present is:
KDFX Studio Segment (8 bytes)
18 KDFX FXMod Segments (8 bytes each)
FXASR1 Segment (8 bytes)
FXASR2 Segment (8 bytes)
FXFUN1 Segment (4 bytes)
FXFUN2 Segment (4 bytes)
FXLFO1 Segment (8 bytes)
FXLFO2 Segment (8 bytes)
FXFUN3 Segment (4 bytes)
FXFUN4 Segment (4 bytes)
The format for these segments is given in the Program Object
description. At present (K2500 OS 4.32) all segments are present,
even if default data is present in any segment.
I have found that if I take a setup that does not contain a KDFX
Studio, then add a studio to it (which adds all the KDFX
segments), save the setup, then edit it again and set the Studio
to zero (which removes all the KDFX segments), the K2500 (4.04 and
4.32 OSs) may add two zero bytes after the last zone that were not
in the original setup and are included in the object length. They
are not pad bytes. This seems to happen if the object has a
length divisible by 4.

06-Keymap.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Keymap Format
*

******************************************************************
A keymap consists of a header block and a series of keymap entries
for each key in the keymap. If there is more than one velocity
range in the keymap, there is a set of entries for each velocity
range. The length and content of each entry depends on settings
in the keymap header.
Keymap Header:
00-01 Sample Header Number (if only ONE is used for all key
entries in the keymap; otherwise zero) [there are examples
where different sample header numbers are used for key
entries and this field is not zero, but it's uncommon]:
unsigned word: range 0 = none, 1 to 999
02-03 Method: unsigned word: indicates content of key entries:
so far I've seen h'0001', h'0003', h'0005', h'0007',
h'0009', h'000B', h'000D', h'000B', h'000F', h'0011',
h'0013', h'0015', h'0017', and h'0019'
04-05 Base Pitch: word: seems to always be zero
06-07 Cents Per Entry: word: usually 100; sometimes 32767
(h'7FFF') (possibly indicating all tuning is in the key
entries?)
08-09 Number of Entries: unsigned word: number of key entries (per
velocity range) minus 1: usually 127 (128 entries), but
sometimes less; sometimes 0 (1 entry). The first key
entry applies to C0. The 128th entry applies to G10. If
the number of entries is less than 127 (128 entries), the
last entry applies to all the rest of the notes up to G10.

0A-0B Entry Size: unsigned byte: number of bytes in each key


entry: depends on Method: so far I've seen 1, 2, 3, 4, 5,
and 6
0C-0D
0E-0F
10-11
12-13
14-15
16-17
18-19
1A-1B

Offset
Offset
Offset
Offset
Offset
Offset
Offset
Offset
Each

(from here) to ppp entries: unsigned word


(from here) to pp entries: unsigned word
(from here) to p entries: unsigned word
(from here) to mp entries: unsigned word
(from here) to mf entries: unsigned word
(from here) to f entries: unsigned word
(from here) to ff entries: unsigned word
(from here) to fff entries: unsigned word
offset points to the start of the key entires for the

specific velocity. If a velocity range contains more than


one velocity, the offsets for all the velocities in the
range will point to the same place (but will not be the
same value since each is an offset from a different
location). For example, for a velocity range of ppp-fff,
the offsets are 16, 14, 12, 10, 8, 6, 4, and 2
Key Entries:
1C... Key Entries: one or more bytes each
The types of fields in each key entry may be:
Sub-Sample Number in Sample Header: unsigned byte: number
of the sub-sample within a multi-sample, or 1 if not a
multi-sample; seems to always be present
Sample Number: two bytes (used as an unsigned word, but
not necessarily on an even byte boundary): number of the
Sample Header for this key entry (not one sample number
used for the whole keymap)
Volume Adjust: signed byte: range -127 to 127,
representing values of -63.5dB to 63.5dB -- multiply
stored number by 0.5dB
One-Byte Tuning: one byte: coarse and fine tuning
combined: Coarse Tuning (range -1St to 1St) * 100 + Fine
Tuning (range -49ct to 50ct) -- total range -149 to 150
(I'm guessing on the range here)
Two-Byte Tuning: two bytes (used as a signed word, but not
necessarily on an even byte boundary): coarse and fine
tuning combined: Coarse Tuning (range -120St to 60St) *
100 + Fine Tuning (range -49ct to 50ct) -- total range
-12049 to 6050
Content of each key entry:
Method h'0001': 1 byte: Sub-Sample Number
Method h'0003': 3 bytes: Sample Number, Sub-Sample
Number
Method h'0005': 2 bytes: Volume Adjust, Sub-Sample Number
Method h'0007': 4 bytes: Volume Adjust, Sample Number,
Sub-Sample Number
Method h'0009': 2 bytes: One-Byte Tuning, Sub-Sample Number
Method h'000B': 4 bytes: One-Byte Tuning, Sample Number,
Sub-Sample Number

Method h'000D': 3 bytes: One-Byte Tuning, Volume Adjust,


Sub-Sample Number
Method h'000F': 5 bytes: One-Byte Tuning, Volume Adjust,
Sample Number, Sub-Sample Number
Method h'0011': 3 bytes: Two-Byte Tuning, Sub-Sample Number
Method h'0013': 5 bytes: Two-Byte Tuning, Sample Number,
Sub-Sample Number
Method h'0015': 4 bytes: Two-Byte Tuning, Volume Adjust,
Sub-Sample Number
Method h'0017': 6 bytes: Two-Byte Tuning, Volume Adjust,
Sample Number, Sub-Sample Number
Method h'0019': 3 bytes: Two-Byte Tuning, Sub-Sample Number
Methods h'0011' and h'0019' seem to have the same content -- I
don't know what's different.

07-Master Table.txt
******************************************************************
*
Kurzweil K2500 Master Table Format
*
******************************************************************
(The K2000 Master Table is probably similar to this.)
The Master Table is a table object (object type h'64', or 100),
has an object number of 16 (h'10'), and a name of "Master".
The master table format consists of a master segment, zone
segment, 16 channel segments, and 10 search string buffers.
Note: A Master Save includes the Master Table and the Faders
Table; if the Control Setup is not in ROM, it is also saved
in a Master Save.
Note: Some of the fields seem to be left over from the K2000
Master Table format and are not functionalon a K2500 because
of the Control Setup implementation.

Master Segment (72 bytes)

00
01

Master Segment Tag = h'01'


b't..n..mm':
t = SONG/MISC Tempo: 0 = Auto, 1 = Fixed
n = MIDI/RECV AllNotesOff: 0 = Normal, 1 = Ignore
mm = MIDI/RECV MIDI Mode: 1 = Omni, 2 = Poly, 3 = Multi
.. = unknown/reserved = 0
02
MIDI/RECV SCSI ID: unsigned byte: range 0 to 7, default = 6
03
MIDI/RECV Basic Channel: unsigned byte: range 1 to 16
04-05 MIDI/RECV VelocityMap: unsigned word, but coded to fit in
one byte!: 0 = NONE, 1 to 255 = 1 to 919
06-07 MIDI/RECV PressureMap: unsigned word, but coded to fit in
one byte!: 0 = NONE, 1 to 255 = 1 to 919
08-09 MASTER Intonation: unsigned word, but coded to fit in one
byte!: 0 = NONE, 1 to 255 = 1 to 919
0A
MASTER IntonaKey: unsigned byte: range 0 = C to 11 = B,
default = 3 = D#
0B
MIDI/RECV SysExId:unsigned byte: range 0 to 127,
default = 0
0C
MASTER Transpose: signed byte: -128 to 127 = -128St to
127St
0D
MASTER Master Tune: signed byte: -100 to 100 = -100ct to
100ct
0E
b'frrcligg':
f = SAMPLE Format: 0 = SPDIF, 1 = AES/EBU
rr = SAMPLE Rate: 0 = 29.4kHz, 1 = 32.0kHz,
2 = 44.1kHz, 3 = 48.0kHz
c = SAMPLE Cable: 0 = Coaxial, 1 = Optical
l = SAMPLE LiveIn: 0 = active, 1 = not active
i = SAMPLE Input: 0 = Digital, 1 = Analog
gg = SAMPLE Gain: 0 = 0dB, 1 = 7dB, 2 = 14dB, 3 = 21dB
0F
b'MMmb....':
MM
= SAMPLE Mode: 0 = Stereo (also LiveIn),
1 = Mono(L), 2 = Mono(R), 3 = Trigger
m
= SAMPLE Mon: 0 = Off, 1 = On
b
= MIDI/RECV BendSmooth: 0 = On, 1 = Off
.... = unknown/reserved = 0
10
b'dddbvoss':
ddd = EFFECTS Dither: 0 = None, 1 = Flat, 2 = Minimum,
3 = Medium, 4 = Maximum
b
= EFFECTS DigOut: 0 = 20 Bit, 1 = 16 Bit
v
= DISK Verify: 0 = On, 1 = Off
o
= SAMPLE Out: 0 = Dir, 1 = A/D
ss = SAMPLE Src (Input=Digital): 0 = Ext, 1 = Int,
2 = Rtn
11
SAMPLE Time: unsigned byte: 0 to 100 = 0s to 100s,
101 to 255 = 105 to 875

12-13
14-15
16-17
18
19

1A
1B
1C
1D
1E

1F
20-21
22-23
24
25
26
27
28

[over 100, Time = 100 + 5 * (stored value - 100)]


Maximum value depends on memory and settings
Current Setup: unsigned word: 0 = None, else 1 to 999
MIDI/XMIT Control Setup: unsigned word: 0 = None, else 1-999
Current QA-Bank: unsigned Word, but coded to fit in one
byte!: 0 = NONE, 1 to 255 = 1 to 919
Current QA-Bank Entry: unsigned byte: range 0 to 9
b'.sufbamm':
. = unknown/reserved = 0
s = SAMPLE Src (Input=Analog): 0 = Ext, 1 = Int
u = EditSample Units: 0 = Seconds, 1 = Samples
f = MASTER OutA-Fx: 0 = L+R, 1 = LOnly
b = MASTER OutB-Mix: 0 = Stereo, 1 = Mono
a = MASTER OutA-Mix: 0 = Stereo, 1 = Mono
mm = EFFECTS FxMode: 0 = Master, 1 = Program,
2 = Setup, 3 = Auto
Current Effect from current program or setup: unsigned byte:
coded: 1 to 127 = 1 to 909
MIDI/RECV LocalKbdCh: unsigned byte: 0 = None, else 1 to 16
Effects Wet/Dry Mix from current program or setup:
unsigned byte: range 0 = 0% Wet to 100 = 100% Wet
EFFECTS FxChan: unsigned byte: 0 = Current, else 1 to 16
b'..x...sc':
.. = unknown/reserved = 0
x = unknown = 1
s = Setup Mode: 0 = Program Mode, 1 = Setup Mode
c = MIDI/XMIT ChgSetups: 0 = Immed, 1 = KeyUp
Current Song: unsigned byte: coded: 1 to 255 = 1 to 919,
1 = New Song
MASTER VelTouch: Velocity Map: unsigned word, but coded to
fit in one byte!: 0 = NONE, 1 to 255 = 1 to 919
MASTER PressTouch: Pressure Map: unsigned word, but coded to
fit in one byte!: 0 = NONE, 1 to 255 = 1 to 919
Current Disk: unsigned byte: 0 = Floppy,
1 to 8 = SCSI 0 to 7
MASTER Contrast: signed byte: range = -50 to 50
(guessing -- couldn't see below -25); default = 0
MASTER (View): unsigned byte: 0 = Normal, 1 = Large View
MASTER Confirm: unsigned byte: 0 = Off, 1 = On
b'tttbsspv':
ttt = MIDI/RECV ProgChgType: 0 = Extended,
1 = Kurzweil, 2 = 0-127, 3 = QA Ext, 4 = QA Kurz,
5 = QA 0-127
b
= MIDI/XMIT Buttons: 0 = Off, 1 = On
ss = MIDI/RECV BankSelect: 0 = Ctl 32, 1 = Ctl 0,
2 = 32 Only, 3 = 0 Only

29

2A-2B
2C-2D
2E
2F

30-39

3A

3B

3C

3D

3E-3F
40-41

p
= MIDI/RECV Power Mode: 0 = User, 1 = Demo
v
= MASTER2 Vocoder: 0 = Off, 1 = On
MIDI/XMIT Transpos: signed byte: range -128 to 127 =
-128St to 127St stored; from Program Mode, Setup Mode,
and QA-Bank page can be set to -36St, -24St, -12St,
0St, 12St, 24St, and 36St
MIDI/XMIT VelocMap: unsigned word, but coded to fit in one
byte!: 0 = NONE, 1 to 255 = 1 to 919
MIDI/XMIT PressMap: unsigned word, but coded to fit in one
byte!: 0 = NONE, 1 to 255 = 1 to 919
MASTER DrumChan: unsigned byte: range 1 to 16
b'mrrrppss':
m
= SONG Merge/Erase: 0 = Merge, 1 = Erase
rrr = SONG/Misc RecMode: 0 = Linear, 1 = FixLen,
2 = Loop, 3 = UnLoop, 4 = Auto
pp = SONG/Misc PlayMode: 0 = Linear, 1 = Loop,
2 = List, 3 = Chain
ss = SONG/Misc Sync: 0 = Both, 1 = Xmit, 2 = Recv,
3 = Off
Mark List: 10 unsigned bytes: number of each marked page;
0 to 10 entries (see List Top below); when a page is
"unMarked", entries to the "right" (higher numbered)
are shifted left, but none are cleared -- there is no
value for an empty slot; see Mark Page Numbers below
b'oocchhhh':
oo
= SONG/Misc CountOff: 0 = Off, 1 = 1, 2 = 2, 3 = 3
cc
= SONG/Misc Click: 0 = Off, 1 = Rec, 2 = On,
3 = Cnt
hhhh = SONG Misc Click Channel: 0 to 15 = channel 1 to
16
b'kkkkkkkc':
kkkkkkk = SONG/Misc ClickKey: 0 to 127 = C-1 to G9;
C4 = 60: key number shifted left 1 bit in byte
c
= SONG/Misc Clock 0 = Int, 1 = Ext
b'vvvvvvvw':
vvvvvvv = SONG/Misc ClickVel: range 1 to 127; velocity
shifted left 1 bit in byte
w
= SONG/Misc KeyWait: 0 = Off, 1 = On
b'aaaabbbb':
aaaa = DISC Startup disc: 0 = Off, 1 to 8 = SCSI 0 to 7,
9 = floppy
bbbb = DISC Library disc: 0 = Off, 1 to 8 = SCSI 0 to 7,
9 = floppy
SONG/Misc ClickPrg: unsigned word: 0 = None, else 1-999,
Normal = 198
SONG/Misc (Quantize) Grid: unsigned word: 1 to 384 = 1/1 to

1/384 (1/12 = 1/8tr, 1/24 = 1/16tr, 1/48 = 1/32tr)


42
SONG/Misc Quant: 0 = Off, 1 to 100 = 1 - 100%
43
SONG/Misc Swing: signed byte: -99 to 125 = -99% to 125%
44
(Sysex document says "List Index")
45
List Top: unsigned byte: number of Marked pages: range 0 to
10
46-47 (Sysex document says "Sequencer Tempo"): signed byte: don't
know what sets it yet -- seems to always be negative;
changes as various things change -- may be related to
the program selected. I've seen values as small as
h'FFFD' (-3) and as large as h'FD9F' (-609).

Zone Segment (16 bytes) [Haven't checked this out much]


48
Zone Segment Tag [(3) + 0...nZones-1]: seems to stay 3
49
MIDI/XMIT Channel (also active channel in program mode):
unsigned byte: range 1 to 16
4A-4B Current program number (on current channel) in program mode:
unsigned word: 0 = NONE, else 1 to 999
4C
(Low Key)
4D
(High Key)
4E
b'....xpcc':
.... = unknown/reserved = 0
x
= unknown = 1
cc
= MIDI/XMIT Control: 0 = Both, 1 = MIDI, 2 = Local
p
= MIDI/XMIT ProgChng: 0 = Off, 1 = On
4F
(Transpose)
50-57 (Control Mapping)
Channel Segment (16 bytes each) * 16
058-067 Channel Segment 1
068-077 Channel Segment 2
078-087 Channel Segment 3
088-097 Channel Segment 4
098-0A7 Channel Segment 5
0A8-0B7 Channel Segment 6
0B8-0C7 Channel Segment 7
0C8-0D7 Channel Segment 8
0D8-0E7 Channel Segment 9
0E8-0F7 Channel Segment 10
0F8-107 Channel Segment 11
108-117 Channel Segment 12
118-127 Channel Segment 13
128-137 Channel Segment 14
138-147 Channel Segment 15

148-157 Channel Segment 16


Values can be set on MIDI Channels page, in program mode by
channel, from a setup, or by MIDI
Each Segment:
00
Channel Segment Tag: unsigned byte: value = h'02'
01
Channel Number: unsigned byte: first segment = 1, ..., 16th
segment = 16
02
Number of Layers: unsigned byte: range 1 to 32
03
b'......ep':
...... = unknown/reserved = 0
e
= CHANNELS ProgLock: 0 = Off, 1 = On
p
= CHANNELS Enable: 0 = On, 1 = Off
04-05 CHANNELS/Program: unsigned word: 0 = None, else 1 to 999}
06
b'lvvvvvvv':
l
= CHANNELS/VolLock: 0 = Off, 1 = On
vvvvvvv = CHANNELS Volume: range 0 to 127
07
b'lppppppp':
l
= CHANNELS/PanLock: 0 = Off, 1 = On
ppppppp = CHANNELS Pan: range 0 to 127, 64 = center
08
09
0A
0B
0C

(Transpose)
(haven't been able to affect)
(Detune)
(haven't been able to affect)
(Bend Range) (haven't been able to affect)
(Play Flags) (haven't been able to affect)
(Portament Rate) (able to get h'7F' to show up from a
setup)
0D
b'.ggggppp':
.
= unknown/reserved = 0
gggg = CHANNELS OutGain: 8 = Prog, 7 = -12dB, 6 = -6dB,
5 = 0dB, 4 = 6dB, 3 = 12dB, 2 = 18dB, 1 = 24dB,
1 = 30dB
ppp = CHANNELS OutPair: 4 = Prog, 0 = KDFX-A,
1 = KDFX-B, 2 = KDFX-C, 3 = KDFX-D
[non-KDFX: Prog, A(FX), B(DRY), C(DRY), D(DRY)]
0E-0F Reserved: 0

Search String Buffers (18 bytes each) * 10 buffers


Each search string buffer can hold 0 to 16 characters and is
h'00'-filled to the end of the 18-character buffer. These are
used in Program and Setup modes to search for names containing the
string.
158-169

Search Buffer 0

16A-17B
17C-18D
18E-19F
1A0-1B1
1B2-1C3
1C4-1D5
1D6-1E7
1E8-1F9
1FA-20B

Search
Search
Search
Search
Search
Search
Search
Search
Search

Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer
Buffer

1
2
3
4
5
6
7
8
9

End of Table
20C-20D Pad: word: value = 0
******************************************************************
Mark Page Numbers for Mark List (page numbers are hex)
EditProgram:
01 COMMON
02 LAYER
03 KEYMAP
04 OUTPUT
05 EFFECT
06 LFO
07 ASR
08 FUN
09 VTRIG
0A AMPENV
0B ENV2
0C ENV3
0D ENVCTL
0E PITCH
0F ALG
2F F1
30 F2
31 F3
32 F4
EditSetup:
34 BEND
35 COMMON
36 ARPEG
37 RIBCFG
38 CH/PRG
39 Key/Vel
3A Pan/Vol

3C
3D
3E
3F
40
41
42
43

SLIDER
SLID/2
FOOTSW
CPEDAL
RIBBON
WHEEL
SWITCH
PRESS

KDFX -- EditProgram or EditSetup:


5A KDFX
5B FXMOD2
5C FXMOD3
5D FXMOD4
5E FXLFO
5F FXASR
60 FXFUN
EditProgram (KB-3):
61 TONEWL
62 DRAWBR
63 EQ
64 MISC
65 PERC
66 KEYCLK
67 PERC2
Note: can't mark SetDbr, Rename, Save, Delete, ImportFx pages
can't mark any pages in EditStudio, EditPreset, EditEffect,
and EditSong
******************************************************************
Object number coding for intonation tables, velocity maps,
pressure maps, QA-banks, and songs:
stored value
1-75
76-95
96-115
116-135
136-155
156-175
176-195
196-215
216-235

equivalent object number


1-75
100-119
200-219
300-319
400-419
500-519
600-619
700-719
800-819

236-255

900-919

Object number coding for effects:


file value
1-37
38-47
48-57
58-67
68-77
78-87
88-97
98-107
108-117
118-127

equivalent object number


1-37
100-109
200-209
300-309
400-409
500-509
600-609
700-709
800-809
900-909

08-QABank.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Quick Access Bank Format
*
******************************************************************
QA-Bank Object: length after header = 26 bytes
00-01
02-03
04-05
06-07
08-09
0A-0B
0C-0D
0E-0F
10-11
12-13
14-15
16-17
18-19

(Sysex says "Base"): unsigned word: value 0


(Sysex says "# elements - 1") unsigned word: value 10
(Sysex says "Offset to data"): unsigned word: value 2
Entry 0
Entry 1
Entry 2
Entry 3
Entry 4
Entry 5
Entry 6
Entry 7
Entry 8
Entry 9

Each entry is an unsigned word and includes an object identifier


(setup or program) and an object number: range 0 = None, 1 to 999
Program entry = h'9000' + program number
Setup entry ' h'9C00' + setup number

09-Song.txt
******************************************************************
*
K2000/K2500/K2600 Song Object
*
******************************************************************
A song object consists of:
Tempo word
All Song meta events (note events, controller events, etc.)
Song data block
Song arrangement steps
Song data block and arrangement steps length word
Some older song files (some demos from the K2500 farms disks) do
not have the song data block, song arrangement steps, and the song
data block and arrangement steps length word, but have about 8 or
9 bytes of data following the last meta event. I haven't figured
out how to tell the difference other than to follow through all
the song events and see if there are less than, say, 44 bytes left
in the song object (length of the song data block, one song
arrangement step, and the length word). Haven't deciphered those
8 or 9 bytes either.

TEMPO WORD:
00-01 COMMON Tempo: unsigned word: range 1 to 255 beats per minute

SONG META EVENTS:


Each meta event contains an event offset, may contain an event
type/channel byte, and contains one or more data bytes.
Offset from previous event
One or more bytes. If a byte has h'80' set, another offset
byte follows. If h'80' is not set, this is the last byte.
Only the lowest 7 bits of each byte are used. Take the first
byte. Mask off h'80'. If it is not set, this is the end of
the offset. If it is set, multiply the rest of the byte by
128, get the next byte, mask off h'80', and add the rest of
the byte. If h'80' is not set, it's done; if it is set,
multiply the sum by 128 and get the next byte, etc. etc.
Examples: h'00' = 0; h'7F' = 255; h'824C' = 2 * 128 + 76 =
374; h'81BAE878' = ((1 * 128 + 58) * 128 + 104) * 128 + 120 =
3060856.
Add the offset to the offset of the previous event.
offset is converted to beat/tic value as follows:

The total

0 = 1:1.000. Otherwise, divide the total offset by


(3072 / note that gets a beat). [If whole note gets a beat,
divide by 3072; if half note, 1536; if quarter note, 768; if
eighth note, 384; if sixteenth note, 192; if thirty-second
note, 96.] The dividend is the number of beats past 1:1.000
(taking into account the number of beats per measure). The
remainder multiplied by 5/8, truncated, is the number of tics.
Example, if the previous offset is 5000, and the current
offset is h'81BAE87A' (3060858), the current total offset is
3065858. If the time signature is 4/4, divide 3065856 by 768.
The divident is 3992, or 3992 beats, or 998 bars. The
remainder is 2, multiplied by 5/8 and truncated is 1. The
resulting time of the event is 1:1.000 plus 998 bars and no
beats, plus 1 tic, or 999:1.001.
Event type/channel, data byte(s)
h'8x' NOTE OFF (channel x+1), note # {82-Key Numbers}, release
velocity (0 to 127)
h'9x' NOTE ON (channel x+1), note # {82-Key Numbers}, velocity
(0 to 127)
h'Ax' POLY PRESSURE (channel x+1), note # {82-Key Numbers},
value (0 to 127)
h'Bx' CONTROLLER (channel x+1), controller # {74-Controllers},
value (0 to 127) [Note: controller 32 (Chan St) is used
for Bank Select.]
h'Cx' PROGRAM CHANGE (channel x+1), program # (0 to 127)
h'Dx' MONO PRESSURE (channel x+1), value (0 to 127)
h'Ex' PITCH BEND (channel x+1), B1, B2 (each byte 0 to 127)
value = (128 * B2 + B1) - 8192 (note: most-significant
value comes second)
Examples: h'0000' = (128 * 0 + 0) - 8192 = -8192;
h'0040' = (128 * 64 + 0) - 8192 = 8192 - 8192 = 0;
h'4640' = (128 * 64 + 70) - 8192 = 8262 - 8192 = 70
h'F0' SYSEX (no channel), followed by one data byte (0 to 127)
h'F7' EOX (end of exclusive), followed by h'00'
h'FF' Kurzweil System Event, followed by event type code (one
byte), followed by length byte (number of data bytes to
follow -- may be zero), followed by data bytes.
There are a number of system events that I have seen in
various song objects, but only two that I have been able
to set or view in the song event editor.
h'2F' = END, followed by h'0100'; on some early Farm

demos, it is followed by h'00' only (h'FF2F00')


h'51' = TEMPO CHANGE, followed by h'03' (three data
bytes), followed by T1, T2, T3 (each 0 to 255); I don't
know if there is any potential for more or less than
three bytes since the maximum and minimum tempos both
require three bytes. Interpretation:
6,000,000,000 / (65536 * T1 + 256 * T2 + T3), truncated
= new tempo * 100 (interpret as xxx.xx)
Examples:
h'938700' = 9668352, 6000000000 / 9668352 =
620.58146, truncated = 620, tempo = 6.20;
h'03971E' = 235294, 6000000000 / 235294 =
25500.01275, truncated = 25500, tempo = 255.00
Other system events I have seen are given below. Some
of these are in early files; some are in current files,
including the K2600 Base Objects File. In each case, I
have not been able to view the event in the song event
editor, but only in file dumps. If I edit a file and
save it, the hidden events stay in the song.
h'01', followed by data length byte, followed by data
bytes. This may be a series of ASCII characters, or it
may be h'00' (null string). It may be a song name or
other identifier.
h'03' -- same as h'01' -- often contains a song name.
h'06' -- same as h'01' -- seems to contain section
identifiers or descriptions. One demo song contained
the following h'06' ASCII strings at various locations
in the song: "IN", "in", "Orch", "Fast", "Climb", "out"
h'54' -- in every case I've seen it's been followed by
a data byte count of h'05', followed by the five data
bytes h'60', h'00', h'00', h'00', h'00'
h'58' -- in every case I've seen it's been followed by
a data byte count of '04', followed by four data bytes.
The values differ, and the number of h'58' events
varies from 1 to 40. Partial example from one song:
System Event h'03' at 1: 1.000 Seq-1
System Event h'54' at 1: 1.000 60 00 00 00 00
System Event h'58' at 1: 1.000 04 02 18 08
System Event h'58' at 6: 4.000 05 03 0C 08

System
System
System
System

Event
Event
Event
Event

h'58'
h'58'
h'58'
h'58'

at 7:
at 7:
at 8:
at 10:

2.240
4.240
3.000
2.000

02
05
07
04

02
03
03
02

18
0C
0C
18

08
08
08
08

h'59' -- in each case I've seen it's been followed by a


data byte count of '02', followed by the two data bytes
h'00', h'00'
If the event type/channel is omitted (next byte after an
offset doesn't have h'80' set) the type/channel is the same as
for the previous event.
If an event has h'F8' after the type/channel byte, ignore it
(the h'F8') and move to the next byte. (It looks like a MIDI
timing clock message.) I also have an example file I produced
on my K2500 with h'D8' and h'B8' bytes after type/channel
bytes, and I observed an h'98' byte in one file. Normally the
byte following a type/channel byte should not have the h'80'
bit set (should be <= h'7F' in an unsigned byte) to match the
MIDI specification, so it might be safe to ignore any byte
>= h'80' immediately following the type/channel byte when
interpreting a song object. Why they are there, what funtion
they cause, I can't tell. They may occur on all tracks that
have any activity, and they may occur more than once in a
sequence on the same track, though they seem to generally
occur with the first activity on each track.
There may be a pad byte if the number of bytes in all the
meta events is odd. There are occasions where there are more
than one pad byte. (I've seen zero, one, two, and three pad
bytes; maybe four.) The way to determine where the SONG DATA
BLOCK begins is to use the SONG DATA AND ARRANGEMENT STEPS
LENGTH WORD at the end of the song object (see below).
(However, as mentioned above, some old songs do not have the
data block and arrangement steps. I guess the safest way is
to follow the meta events until song end is found, see if
the song object is long enough to contain 44 or more bytes
after the song end, and then go to the end of the object to
get the length word and thereby determine the location of the
data block. In cases where I've edited a song without the
song data block and in which the above mentioned 8 or 9 bytes
were present, when I saved the song, the song editor added a
song data block, an arrangement step, and the length word
AFTER the 8 or 9 bytes!)

(Note: once events are entered, changing the time signature -number of beats per measure or note that gets a beat -- does
not change any of the offsets, but only changes their
interpretation.)
(Note that notes are stored as two events -- a Note On and a
Note Off -- whereas they are displayed in the Song Edit Track
Editor on one line with a measure/beat/tic location, note
number, attack and release velocities, and a DURATION.)

SONG DATA BLOCK:


00-01 COMMON ChainTo: unsigned word: coded: 0 = none, 1 to 255 =
1 to 919 (see below)
02
COMMON TriggerChan: unsigned byte: 0 = none, 1 to 16
03
COMMON TriggerCtl: unsigned byte: h'00' = Off, h'7F' = On,
... {74-Controllers}
04
Number of Arrangement Steps: unsigned byte: minimum 1,
maximum 99
05
COMMON EffectChan: unsigned byte: 0 = none, 1 to 16
06-07 COMMON DrumTrack: 16 1-bit fields representing tracks 16,
15, ..., 1: 0 = - (not drum track), 1 = D (drum track:
ignore transposition)
08-17 Track Channels (set on MAIN Song Mode page): unsigned bytes:
tracks 1 to 16: corresponding channel number = 1 to 16
18
COMMON TimeSig: beats per measure: unsigned byte: range 1 to
99
19
COMMON StartStep: unsigned byte: 0 = none, 1 to 255
1A
COMMON TempoControl: unsigned byte: 0 = Song, 1 =
Arrange(ment)
1B
COMMON TimeSig: note that gets a beat: unsigned byte: 1 =
whole note, 2 = half note, 4 = quarter note, 8 = eighth
note, 16 = sixteenth note, 32 = thirty-second note
1C-1F COMMON TrackDest: 16 2-bit fields representing tracks 16,
15, ..., 1: 0 = - (both), 1 = L (local), 2 = M (MIDI),
3 = x (neither)

ARRANGEMENT STEP (each step -- minimum 1 step, maximum 99):


00
ARRANGE LoKey: unsigned byte: 0 = Off, 1 to 127 = C#-1 to G9
{82-Key Numbers}
01
ARRANGE HiKey: unsigned byte: 0 = Off, 1 to 127 = C#-1 to G9
{82-Key Numbers}
02-03 ARRANGE Song: unsigned word: coded: 0 = none, 1 to 255 = 1
to 919 (see below)
04
ARRANGE Xpose: signed byte: range -128St to 127St

05
06

ARRANGE Times: unsigned byte: 1x to 120x, 0 = Inf(inite)


b'xxxxxvlm': xxxxx = reserved: 0
v
= ARRANGE VelTrk: 0 = Off, 1 = On
l
= ARRANGE Latch: 0 = Off, 1 = On
m
= ARRANGE Mode: 0 = Stop, 1 = Next
07
(Reserved): 0
08-09 ARRANGE Mutes: 16 1-bit fields representing tracks 16, 15,
..., 1: 0 = - (not muted), 1 = M (muted)
Arrangement steps are in ascending order. The step number is not
included in the Arangement Step structure.

SONG DATA AND ARRANGEMENT STEPS LENGTH WORD:


After all arrangement steps (last two bytes of song object):
00-01 unsigned word: Total length of SONG DATA and all ARRANGEMENT
STEPS (not including these two bytes). Subtract this value
from the pointer to this field and get the pointer to the
start of the SONG DATA.
******************************************************************
Coding for song numbers:
stored value
1-75
76-95
96-115
116-135
136-155
156-175
176-195
196-215
216-235
236-255

equivalent object number


1-75
100-119
200-219
300-319
400-419
500-519
600-619
700-719
800-819
900-919

10-Velocity.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Velocity Map Format
*
******************************************************************
Velocity Map Object: length after header = 8 bytes
00
01

ppp velocity
pp velocity

02
03
04
05
06
07

p
mp
mf
f
ff
fff

velocity
velocity
velocity
velocity
velocity
velocity

Each entry is an unsigned byte with a range of 0 to 127

11-Pressure.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Pressure Map Format
*
******************************************************************
Pressure Map Object: length after header = 8 bytes
00
01
02
03
04
05
06
07

ppp
pp
p
mp
mf
f
ff
fff

pressure
pressure
pressure
pressure
pressure
pressure
pressure
pressure

Each entry is an unsigned byte with a range of 0 to 127

12-Intonation.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Intonation Table Format
*
******************************************************************
Intonation Table Object: length after header = 24 bytes
00-01
02-03
04-05
06-07
08-09
0A-0B
0C-0D
0E-0F
10-11
12-13

C
C#
D
D#
E
F
F#
G
G#
A

intonation
intonation
intonation
intonation
intonation
intonation
intonation
intonation
intonation
intonation

14-15 A# intonation
16-17 B intonation
Each entry is a signed word with a range of -9999 to 9999 cents

13-Faders Table.txt
******************************************************************
*
Kurzweil K2500/K2600 Faders Table Object Format
*
******************************************************************
The Faders Table is a table object (object type h'64', or 100),
has an object number of 37 (h'25'), and a name of "Faders".
There are 4 pages of MIDI faders, each with 8 faders. Each fader
has a channel number, a controller number, and a value.
Fader Channel Numbers: unsigned byte: 0 to 15 = channel 1 to 16;
16 to 31 = channel 1 Local to 16 Local; 32 to 47 = channel
1 MIDI to 16 MIDI
00 Page 1 Fader 1 Channel
01 Page 1 Fader 2 Channel
02 Page 1 Fader 3 Channel
03 Page 1 Fader 4 Channel
04 Page 1 Fader 5 Channel
05 Page 1 Fader 6 Channel
06 Page 1 Fader 7 Channel
07 Page 1 Fader 8 Channel
08 Page 2 Fader 1 Channel
09 Page 2 Fader 2 Channel
0A Page 2 Fader 3 Channel
0B Page 2 Fader 4 Channel
0C Page 2 Fader 5 Channel
0D Page 2 Fader 6 Channel
0E Page 2 Fader 7 Channel
0F Page 2 Fader 8 Channel
10 Page 3 Fader 1 Channel
11 Page 3 Fader 2 Channel
12 Page 3 Fader 3 Channel
13 Page 3 Fader 4 Channel
14 Page 3 Fader 5 Channel
15 Page 3 Fader 6 Channel
16 Page 3 Fader 7 Channel
17 Page 3 Fader 8 Channel
18 Page 4 Fader 1 Channel
19 Page 4 Fader 2 Channel

1A
1B
1C
1D
1E
1F

Page
Page
Page
Page
Page
Page

4
4
4
4
4
4

Fader
Fader
Fader
Fader
Fader
Fader

Fader Controller
20 Page 1 Fader
21 Page 1 Fader
22 Page 1 Fader
23 Page 1 Fader
24 Page 1 Fader
25 Page 1 Fader
26 Page 1 Fader
27 Page 1 Fader
28 Page 2 Fader
29 Page 2 Fader
2A Page 2 Fader
2B Page 2 Fader
2C Page 2 Fader
2D Page 2 Fader
2E Page 2 Fader
2F Page 2 Fader
30 Page 3 Fader
31 Page 3 Fader
32 Page 3 Fader
33 Page 3 Fader
34 Page 3 Fader
35 Page 3 Fader
36 Page 3 Fader
37 Page 3 Fader
38 Page 4 Fader
39 Page 4 Fader
3A Page 4 Fader
3B Page 4 Fader
3C Page 4 Fader
3D Page 4 Fader
3E Page 4 Fader
3F Page 4 Fader

3
4
5
6
7
8

Channel
Channel
Channel
Channel
Channel
Channel

Numbers: unsigned byte: range 0 to 127


1 Controller
2 Controller
3 Controller
4 Controller
5 Controller
6 Controller
7 Controller
8 Controller
1 Controller
2 Controller
3 Controller
4 Controller
5 Controller
6 Controller
7 Controller
8 Controller
1 Controller
2 Controller
3 Controller
4 Controller
5 Controller
6 Controller
7 Controller
8 Controller
1 Controller
2 Controller
3 Controller
4 Controller
5 Controller
6 Controller
7 Controller
8 Controller

Fader Control Values: unsigned byte: range 0 to 127


40 Page 1 Fader 1 Value
41 Page 1 Fader 2 Value

42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F

Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page
Page

1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4

Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader
Fader

3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8

Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value
Value

60-7F (Reserved?): value zero; don't know of anything that sets


these bytes
There will be a two-byte pad (not part of the object) if this is
the only object in a block.

14-Names Table.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Names Table Object Format
*
******************************************************************
The Names Table is a table object (object type h'64', or 100), has
an object number of 36 (h'24'), and a name of "Names".

Each entry (20 bytes) contains:


00-01 Object Type/ID
02-11 Object Name (zero-filled past last non-blank character)
12-13 Pad: zero
The Object Type/ID is the same as that of the named object.
After the last entry is one more word containing zero. It is not
a pad, but a zero object type/ID indicating the end of the list.

15-Sample Header.txt
******************************************************************
*
Kurzweil K2000/K2500/K2600 Sample Header Format
*
******************************************************************
A Sample Header (P-RAM portion of a sample) consists of a Sound
Block, one or more Sound File Headers (one for a single sample,
two for a single stereo sample, or one each for the samples in a
multi-sample), and a number of envelopes.
Sound Block (12 bytes):
00-01 Base ID: unsigned word: first (sub-)sample number in this
sample -- usually 1
02-03 Number of headers minus 1: unsigned word: add 1 to get
number of Sound File Headers to follow this Sound
Block: zero = 1 Sound File Header
04-05 Offset to Sound File Headers: unsigned word: offset from
this word to first Sound File Header -- usually 8
06
Flags:
b'xxxxxxx1': Stereo: 0 = no, 1 = yes
b'xxxxxx1x': Temp Protect (according to Sysex document):
this flag is set when a sample is copyprotected (by pushing Channel/Bank Up and
Down simultaneously while in the sample
editor)
b'000000xx': (Reserved)
07
(Reserved): byte: zero
08-09 Copy ID (according to Sysex document): word: don't know its
use -- usually zero
0A-0B (Reserved): word: zero
Sound File Header (32 bytes each):
00
Root Key Number: unsigned byte: {82-Key Numbers} -- 0 = C-1,
60 = C4
01
Flags:

02
03
04-05

06-07
08-0B

0C-0F

10-13
14-17
18-19
1A-1B
1C-1F

b'xxxxxx11': PlayBack: 0 = Normal, 1 = Reverse,


2 = Bi-Direct
b'xxxxx1xx': IgnRelease: 0 = Off, 1 = On
b'xxxx1xxx': AltSense: 0 = Normal, 1 = Reverse
b'xxx1xxxx': RAM Based: 0 = ROM based, 1 = RAM based
b'xx1xxxxx': Shareware: 0 = set if copy-protected (by
pushing Channel/Bank Up and Down
simultaneously while in the sample
editor); otherwise 1
(Both "RAM Based" and "Shareware" have to be set to 1
in order for a sample to be copied)
b'x1xxxxxx': Needs Load: set to 1 for RAM based samples, 0
for ROM based
b'1xxxxxxx': Loop Switch 0 = On, 1 = Off
RAM Based, Shareware, and Needs Load are defined in the
Sysex document, but not accessible from the sample
editor. RAM Based is set for all non-ROM-based
samples, and needs load is set similarly for RAM based
samples. Shareware is usually 0.
Volume Adjust: signed byte: multiply value by .5dB:
range -128 to 127 = -64.0dB to 63.5dB
AltVol Adjust: signed byte: multiply value by .5dB:
range -128 to 127 = -64.0dB to 63.5dB
Pitch at Highest Playback Rate: unsigned word (affected by
change in Root Key Number and Pitch Adjust) -- value is
some kind of computed highest pitch plus Pitch Adjust
entered on Sample Editor MISC page: value in cents
Offset to Name: unsigned word: usually zero = none
Start of Span: unsigned long word: pointer within sample
data (or in ROM sample data) of the start of this
(sub-)sample
Alternate Start of Span: unsigned long word: pointer within
sample data (or in ROM sample data) of the the
alternate start of this (sub-)sample
Loop of Span: unsigned long word: pointer within sample data
(or in ROM sample data) of the loop point of this
(sub-)sample
End of Span: unsigned long word: pointer within sample data
(or in ROM sample data) of the end of this (sub-)sample
Offset to Envelope 1: unsigned word: offset from this word
to this (sub-)sample's natural envelope
Offset to Envelope 2: unsigned word: offset from this word
to this (sub-)sample's alternate natural envelope
Sample Rate: unsigned long word: in Hz times 1000:
h'000F4240' = 1000000 = 1000.000Hz

Envelopes:
Following the Sound File Headers are a series of envelopes. There
are two per sample header, but they may be the same or the second
may be part of the first. Each consists of pairs of words. The
first word of each pair is a signed word and contains a negative
number or zero. The value is a decay rate. From the way user
samples are handled, it seems to be -4 times the decay rate in
dB/second. For example, h'F9C0' = -1600 = -4 * 400, or 400dB/s.
The second value appears to be some time factor, but I can't
decipher it. It appears to be positive or zero. The envelope
entries continue in pairs until an entry has h'0000' for the time
factor. There will be one more pair following, and that is the
release decay rate. I suppose that if its time factor is not zero
there could be a series of release dcay rate pairs (I'm guessing
-- haven't seen it).
For some ROM based samples, the second envelope simply begins
after the first decay rate/time factor pair -- probably skipping
the attack portion.
For user samples, the two envelopes are separate. Each consists
of three pairs. The first has a decay rate specified on the
sample editor MISC page Decay Rate (multiplied by -4). The time
factor is h'0001'. The second pair is zeros (h'0000', h'0000').
The third pair has a decay rate specified on the sample editor
MISC page Release Rate (multiplied by -4). The time factor is
h'0000'. The second (alternate) envelope seems to be identical to
the first.
(Note that these envelopes are not of the same type as in the
Program Editor AMPENV page and that explains why the K2x00 can't
show the "natural" envelope when the mode is changed to "user".)

Sample Data:
All sample data for all sample headers is included in the file
after the last object block. The format seems to be one 16-bit
signed word for each sample.

72-Adjust.txt
*Adjust 0.010 to 5.000 Oct
0 0.010 Oct
1 0.010

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

0.011
0.013
0.014
0.015
0.015
0.016
0.018
0.019
0.020
0.021
0.024
0.025
0.028
0.030
0.031
0.034
0.035
0.038
0.040
0.041
0.044
0.045
0.048
0.050
0.055
0.060
0.065
0.070
0.075
0.080
0.085
0.090
0.095
0.100
0.110
0.120
0.130
0.140
0.150
0.160
0.170
0.180
0.190
0.200
0.220
0.240

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

0.260
0.280
0.300
0.320
0.340
0.360
0.380
0.400
0.420
0.440
0.460
0.480
0.500
0.550
0.600
0.650
0.700
0.750
0.800
0.850
0.900
0.950
1.000
1.050
1.100
1.150
1.200
1.250
1.300
1.350
1.400
1.450
1.500
1.550
1.600
1.650
1.700
1.750
1.800
1.850
1.900
1.950
2.000
2.050
2.100
2.150

94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139

2.200
2.250
2.300
2.350
2.400
2.450
2.500
2.550
2.600
2.650
2.700
2.750
2.800
2.850
2.900
2.950
3.000
3.050
3.100
3.150
3.200
3.250
3.300
3.350
3.400
3.450
3.500
3.550
3.600
3.650
3.700
3.750
3.800
3.850
3.900
3.950
4.000
4.050
4.100
4.150
4.200
4.250
4.300
4.350
4.400
4.450

140
141
142
143
144
145
146
147
148
149
150

4.500
4.550
4.600
4.650
4.700
4.750
4.800
4.850
4.900
4.950
5.000

73-ASR Times.txt
*ASR, AMPENV, and ENV Times
0
0.000 s
1
0.002
AMPENV Att1
2
0.005
AMPENV Att1
3
0.010
AMPENV Att1
4
0.02
5
0.04
6
0.06
7
0.08
8
0.10
9
0.12
10
0.14
11
0.16
12
0.18
13
0.20
14
0.22
15
0.24
16
0.26
17
0.28
18
0.30
19
0.32
20
0.34
21
0.36
22
0.38
23
0.40
24
0.42
25
0.44
26
0.46
27
0.48
28
0.50
29
0.52

0.000 to 60.00 sec


Time only
Time only
Time only

30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

0.54
0.56
0.58
0.60
0.62
0.64
0.66
0.68
0.70
0.72
0.74
0.76
0.78
0.80
0.82
0.84
0.86
0.88
0.90
0.92
0.94
0.96
0.98
1.00
1.02
1.04
1.06
1.08
1.10
1.12
1.14
1.16
1.18
1.20
1.22
1.24
1.26
1.28
1.30
1.32
1.34
1.36
1.38
1.40
1.42
1.44

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

1.46
1.48
1.50
1.52
1.54
1.56
1.58
1.60
1.62
1.64
1.66
1.68
1.70
1.72
1.74
1.76
1.78
1.80
1.82
1.84
1.86
1.88
1.90
1.92
1.94
1.96
1.98
2.00
2.04
2.08
2.12
2.16
2.20
2.24
2.28
2.32
2.36
2.40
2.44
2.48
2.52
2.56
2.60
2.64
2.68
2.72

122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167

2.76
2.80
2.84
2.88
2.92
2.96
3.00
3.04
3.08
3.12
3.16
3.20
3.24
3.28
3.32
3.36
3.40
3.44
3.48
3.52
3.56
3.60
3.64
3.68
3.72
3.76
3.80
3.84
3.88
3.92
3.96
4.00
4.04
4.08
4.12
4.16
4.20
4.24
4.28
4.32
4.36
4.40
4.44
4.48
4.52
4.56

168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213

4.60
4.64
4.68
4.72
4.76
4.80
4.84
4.88
4.92
4.96
5.00
5.10
5.20
5.30
5.40
5.50
5.60
5.70
5.80
5.90
6.00
6.10
6.20
6.30
6.40
6.50
6.60
6.70
6.80
6.90
7.00
7.10
7.20
7.30
7.40
7.50
7.60
7.70
7.80
7.90
8.00
8.10
8.20
8.30
8.40
8.50

214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

8.60
8.70
8.80
8.90
9.00
9.10
9.20
9.30
9.40
9.50
9.60
9.70
9.80
9.90
10.00
10.50
11.00
11.50
12.00
12.50
13.00
13.50
14.00
14.50
15.00
16.00
17.00
18.00
19.00
20.00
21.00
22.00
23.00
24.00
25.00
30.00
35.00
40.00
45.00
50.00
55.00
60.00

AMPENV
AMPENV
AMPENV
AMPENV
AMPENV
AMPENV

74-Controllers.txt

and
and
and
and
and
and

ENV2/3
ENV2/3
ENV2/3
ENV2/3
ENV2/3
ENV2/3

times
times
times
times
times
times

*Controllers
*(Not for Controller Destinations in Setups)
0 OFF
1 MWheel
2 Breath
3 MIDI03
4 Foot
5 PortTim
6 Data
7 Volume
8 Balance
9 MIDI09
10 Pan
11 Express
12 MIDI12
13 MIDI13
14 MIDI14
15 MIDI15 (AuxBend2)
16 Ctl A
17 Ctl B
18 Ctl C
19 Ctl D
20 MIDI20 (AuxBend1)
21 MIDI21
22 MIDI22
23 MIDI23
24 MIDI24
25 MIDI25
26 MIDI26
27 MIDI27
28 MIDI28
29 MIDI29
30 MIDI30
31 MIDI31
32 Chan St
33 MPress
34 BMPress
35 PWheel
36 Bi-Mwl
37 AbsPwl
*#38 can be incremented to (but not set) only for KDFX Parms
*Shows ASR2 if entered, but sets 38
*Sets ASR2 (111) if entered
38 GASR2
*#39 can be incremented to (but not set) only for KDFX Parms
*Shows FUN2 if entered, but sets 39

*Sets FUN2 (113) if entered


39 GFUN2
*#40 can be incremented to (but not set) only for KDFX Parms
*Shows LFO2 if entered, but sets 40
*Sets LFO2 (116) if entered
40 GLFO2
*#41 can be incremented to (but not set) only for KDFX Parms
*Shows LFO2ph if entered, but sets 41
*Sets LFO2ph (117) if entered
41 GLFO2ph
*#42 can be incremented to (but not set) only for KDFX Parms
*Shows FUN4 if entered, but sets 42
*Sets FUN4 (119) if entered
42 GFUN4
43 Vol Ctl
44 Bal Ctl \ Reversed in Book
45 Pan Ctl / Works this way on K2500
46 ChanCnt
47 A Clk4
48 ~AClk4
49 B Clk4
50 -BClk4
51 A Clk2
52 ~AClk2
53 B Clk2
54 -BClk2
55 Tempo
(Used to be Sync St)
56 AClock
57 ~A Clk
58 BClock
59 -B Clk
60 GPhas1
61 GPhas2
62 GRand1
63 GRand2
64 Sustain
65 PortSw
66 SostPd
67 SoftPd
68 LegatoSw
(See MIDI75)
69 FrezPd
70 MIDI70
71 MIDI71
72 MIDI72
73 MIDI73
74 MIDI74

75 MIDI75
(Book says LegatoSw; K2500 sets LegatoSw for 68)
76 MIDI76
77 MIDI77
78 MIDI78
79 MIDI79
80 Ctl E
81 Ctl F
82 Ctl G
83 Ctl H
84 MIDI84
85 MIDI85
86 MIDI86
87 MIDI87
88 MIDI88
89 MIDI89
90 MIDI90
91 FX Depth
92 MIDI92
93 MIDI93
94 MIDI94
95 MIDI95
*#96-109 not available for GLFO2, GASR2, GFUN2, GFUN4, KDFX
*Parms, EFFECTS Parms
96 Note St
97 Key St
98 KeyNum
99 BKeyNum
100 AttVel
101 InvAVel
102 PPress
103 BPPress
104 RelVel
105 Bi-AVel
106 VTRIG1
107 VTRIG2
108 RandV1
109 RandV2
*#110 not available for GLFO2, GASR2, GFUN2, GFUN4, EFFECTS Parms
110 ASR1
(FXASR1 for KDFX Parms)
111 ASR2
(FXASR2 for KDFX Parms)
*#112 not available for GLFO2, GASR2, GFUN2, GFUN4, EFFECTS Parms
112 FUN1
(FXFUN1 for KDFX Parms)
113 FUN2
(FXFUN2 for KDFX Parms)
*#114 not available for GLFO2, GASR2, GFUN2, GFUN4, EFFECTS Parms
114 LFO1
(FXLFO1 for KDFX Parms)
*#115 not available for GLFO2, GASR2, GFUN2, GFUN4, EFFECTS Parms

115 LFO1ph
(FXLFO1ph for KDFX Parms)
116 LFO2
(FXLFO2 for KDFX Parms)
117 LFO2ph
(FXLFO2ph for KDFX Parms)
*#118 not available for GLFO2, GASR2, GFUN2, GFUN4, EFFECTS Parms
118 FUN3
(FXFUN3 for KDFX Parms)
119 FUN4
(FXFUN4 for KDFX Parms)
*#120-126 not available for GLFO2, GASR2, GFUN2, GFUN4, KDFX
*Parms, EFFECTS Parms
120 AMPENV
121 ENV2
122 ENV3
123 Loop St
124 PB Rate
125 Att Stat
126 Rel Stat
127 ON
128 -ON
(Only available on FUNs, GFUNs, and FXFUNs)
129 GKeyNum
130 GAttVel
131 GLowKey
132 GHiKey

75-ENVCTL.txt
*ENVCTL 0.018 to 50.000 x
-43
0.018 x
-42
0.020
-41
0.022
-40
0.025
-39
0.027
-38
0.030
-37
0.033
-36
0.036
-35
0.040
-34
0.043
-33
0.047
-32
0.050
-31
0.055
-30
0.061
-29
0.067
-28
0.073
-27
0.080
-26
0.090
-25
0.100
-24
0.110

-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

0.120
0.130
0.140
0.150
0.160
0.180
0.200
0.220
0.250
0.270
0.300
0.330
0.360
0.400
0.430
0.470
0.500
0.550
0.610
0.670
0.730
0.800
0.900
1.000
1.100
1.200
1.300
1.400
1.500
1.600
1.800
2.000
2.200
2.500
2.700
3.000
3.300
3.600
4.000
4.300
4.700
5.000
5.500
6.100
6.700
7.300

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

8.000
9.000
10.000
11.000
12.000
13.000
14.000
15.000
16.000
18.000
20.000
22.000
25.000
27.000
30.000
33.000
36.000
40.000
43.000
47.000
50.000

76-KB3 EQ.txt
*KB3 EQ Frequencies 16 to 25088 Hz
0
16 Hz
1
17
2
18
3
19
4
21
5
22
6
23
7
24
8
26
9
28
10
29
11
31
12
33
13
35
14
37
15
39
16
41
17
44
18
46
19
49

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

52
55
58
62
65
69
73
78
82
87
92
98
104
110
117
123
131
139
147
156
165
175
185
196
208
220
233
247
262
277
294
311
330
349
370
392
415
440
466
494
523
554
587
622
659
698

66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

740
784
831
880
932
988
1047
1109
1175
1245
1319
1397
1480
1568
1661
1760
1865
1976
2093
2217
2349
2489
2637
2794
2960
3136
3322
3520
3729
3951
4186
4435
4699
4978
5274
5588
5920
6272
6645
7040
7459
7902
8372
8870
9397
9956

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

10548
11175
11840
12544
13290
14080
14917
15804
16744
17740
18795
19912
21096
22351
23680
25088

77-Fine.txt
*Fine 1.00 to 20.00 x
0
1.00 x
1
1.01
2
1.02
3
1.03
4
1.04
5
1.05
6
1.06
7
1.07
8
1.08
9
1.09
10
1.10
11
1.11
12
1.12
13
1.13
14
1.14
15
1.15
16
1.16
17
1.17
18
1.18
19
1.19
20
1.20
21
1.21
22
1.22
23
1.23
24
1.24

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

1.25
1.26
1.27
1.28
1.29
1.30
1.31
1.32
1.33
1.34
1.35
1.36
1.37
1.38
1.39
1.40
1.41
1.42
1.43
1.44
1.45
1.46
1.47
1.48
1.49
1.50
1.52
1.54
1.56
1.58
1.60
1.62
1.64
1.66
1.68
1.70
1.72
1.74
1.76
1.78
1.80
1.82
1.84
1.86
1.88
1.90

71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

1.92
1.94
1.96
1.98
2.00
2.02
2.04
2.06
2.08
2.10
2.12
2.14
2.16
2.18
2.20
2.22
2.24
2.26
2.28
2.30
2.32
2.34
2.36
2.38
2.40
2.42
2.44
2.46
2.48
2.50
2.52
2.54
2.56
2.58
2.60
2.62
2.64
2.66
2.68
2.70
2.72
2.74
2.76
2.78
2.80
2.82

117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

2.84
2.86
2.88
2.90
2.92
2.94
2.96
2.98
3.00
3.05
3.10
3.15
3.20
3.25
3.30
3.35
3.40
3.45
3.50
3.55
3.60
3.65
3.70
3.75
3.80
3.85
3.90
3.95
4.00
4.05
4.10
4.15
4.20
4.25
4.30
4.35
4.40
4.45
4.50
4.55
4.60
4.65
4.70
4.75
4.80
4.85

163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208

4.90
4.95
5.00
5.05
5.10
5.15
5.20
5.25
5.30
5.35
5.40
5.45
5.50
5.55
5.60
5.65
5.70
5.75
5.80
5.85
5.90
5.95
6.00
6.10
6.20
6.30
6.40
6.50
6.60
6.70
6.80
6.90
7.00
7.10
7.20
7.30
7.40
7.50
7.60
7.70
7.80
7.90
8.00
8.10
8.20
8.30

209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

8.40
8.50
8.60
8.70
8.80
8.90
9.00
9.10
9.20
9.30
9.40
9.50
9.60
9.70
9.80
9.90
10.00
10.25
10.50
10.75
11.00
11.25
11.50
11.75
12.00
12.25
12.50
12.75
13.00
13.25
13.50
13.75
14.00
14.25
14.50
14.75
15.00
15.50
16.00
16.50
17.00
17.50
18.00
18.50
19.00
19.50

255

20.00

79-FUN Args.txt
*Function Arguments
0 OFF
1 MWheel
2 Breath
3 MIDI03
4 Foot
5 PortTim
6 Data
7 Volume
8 Balance
9 MIDI09
10 Pan
11 Express
12 MIDI12
13 MIDI13
14 MIDI14
15 MIDI15 (AuxBend2)
16 Ctl A
17 Ctl B
18 Ctl C
19 Ctl D
20 MIDI20 (AuxBend1)
21 MIDI21
22 MIDI22
23 MIDI23
24 MIDI24
25 MIDI25
26 MIDI26
27 MIDI27
28 MIDI28
29 MIDI29
30 MIDI30
31 MIDI31
32 Chan St
33 MPress
34 BMPress
35 PWheel
36 Bi-Mwl
37 AbsPwl
(038 GASR2)
Sets ASR2
(039 GFUN2)
Sets FUN2

(040
(041
(042
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

GLFO2)
Sets LFO2
GLFO2ph)
Sets LFO2ph
GFUN4)
Sets FUN4
Vol Ctl
Bal Ctl \ Reversed in Book
Pan Ctl / Works this way on K2500
ChanCnt
A Clk4
~AClk4
B Clk4
-BClk4
A Clk2
~AClk2
B Clk2
-BClk2
Sync St / Tempo
AClock
~A Clk
BClock
-B Clk
GPhas1
GPhas2
GRand1
GRand2
Sustain
PortSw
SostPd
SoftPd
LegatoSw * See MIDI75
FrezPd
MIDI70
MIDI71
MIDI72
MIDI73
MIDI74
MIDI75
Book says LegatoSw; K2500 sets LegatoSw for 68
MIDI76
MIDI77
MIDI78
MIDI79
Ctl E
Ctl F
Ctl G
Ctl H
MIDI84
MIDI85

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131

MIDI86
MIDI87
MIDI88
MIDI89
MIDI90
FX Depth
MIDI92
MIDI93
MIDI94
MIDI95
Note St
Key St
KeyNum
BKeyNum
AttVel
InvAVel
PPress
BPPress
RelVel
Bi-AVel
VTRIG1
VTRIG2
RandV1
RandV2
ASR1
ASR2
FUN1
FUN2
LFO1
LFO1ph
LFO2
LFO2ph
FUN3
FUN4
AMPENV
ENV2
ENV3
Loop St
PB Rate
Att Stat
Rel Stat
ON
-ON
GKeyNum
GAttVel
GLowKey

132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

GHiKey
=-0.99
=-0.98
=-0.97
=-0.96
=-0.95
=-0.94
=-0.93
=-0.92
=-0.91
=-0.90
=-0.88
=-0.86
=-0.84
=-0.82
=-0.80
=-0.78
=-0.76
=-0.74
=-0.72
=-0.70
=-0.68
=-0.66
=-0.64
=-0.62
=-0.60
=-0.58
=-0.56
=-0.54
=-0.52
=-0.50
=-0.48
=-0.46
=-0.44
=-0.42
=-0.40
=-0.38
=-0.36
=-0.34
=-0.32
=-0.30
=-0.28
=-0.26
=-0.24
=-0.22
=-0.20

178
179
180
181
182
183
184
185
186
187
188
189
190
191
(192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223

=-0.18
=-0.16
=-0.14
=-0.12
=-0.10
=-0.09
=-0.08
=-0.07
=-0.06
=-0.05
=-0.04
=-0.03
=-0.02
=-0.01
=0.00)
=0.01
=0.02
=0.03
=0.04
=0.05
=0.06
=0.07
=0.08
=0.09
=0.10
=0.12
=0.14
=0.16
=0.18
=0.20
=0.22
=0.24
=0.26
=0.28
=0.30
=0.32
=0.34
=0.36
=0.38
=0.40
=0.42
=0.44
=0.46
=0.48
=0.50
=0.52

K2500 sets Off for 192

224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
(252
(253
(254
(255

=0.54
=0.56
=0.58
=0.60
=0.62
=0.64
=0.66
=0.68
=0.70
=0.72
=0.74
=0.76
=0.78
=0.80
=0.82
=0.84
=0.86
=0.88
=0.90
=0.91
=0.92
=0.93
=0.94
=0.95
=0.96
=0.97
=0.98
=0.99
XXX)
XXX)
XXX)
???)

K2500
K2500
K2500
K2500

sets
sets
sets
sets

80-FUN Ops.Txt
*Function Operations
0 None
1 a+b
2 a-b
3 (a+b)/2
4 a/2+b
5 a/4+b/2
6 (a+2b)/3
9 a*b
10 -a*b

0.99
0.99
0.99
0.99

13
16
17
18
19
20
22
23
25
27
29
31
32
33
35
36
37
38
39
41
42
43
47
48
49
50
51
52
53
54
55
56
57
58
61
62
63
64
65
66
67
68
69

a*10^b
|a+b|
|a-b|
min(a,b)
max(a,b)
Quantize B To A
lowpass(f=a,b)
hipass(f=a,b)
b/(1-a)
a(b-y)
(a+b)^2
sin(a+b)
cos(a+b)
tri(a+b)
warp1(a,b)
warp2(a,b)
warp3(a,b)
warp4(a,b)
warp8(a,b)
a AND b
a OR b
b > a
ramp(f=a+b)
ramp(f=a-b)
ramp(f=(a+b)/2)
ramp(f=a*b)
ramp(f=-a*b)
ramp(f=a*10^b)
ramp(f=(a+b)/4)
a(y+b)
ay+b
(a+1)y+b
y+a(y+b)
a|y|+b
Sample B on A
Sample B on ~A
Track B while A
diode(a-b)
diode(a-b+.5)
diode(a-b-.5)
diode(a-b+.25)
diode(a-b-.25)
Track B while ~A

81-KStart.txt
*Kstart C -1 to C 9 Unipolar, C -1 to B 8 Bipolar
-120 C -1 Bipolar
-119 C#-1 Bipolar
-118 D -1 Bipolar
-117 D#-1 Bipolar
-116 E -1 Bipolar
-115 F -1 Bipolar
-114 F#-1 Bipolar
-113 G -1 Bipolar
-112 G#-1 Bipolar
-111 A -1 Bipolar
-110 A#-1 Bipolar
-109 B -1 Bipolar
-108 C 0 Bipolar
-107 C# 0 Bipolar
-106 D 0 Bipolar
-105 D# 0 Bipolar
-104 E 0 Bipolar
-103 F 0 Bipolar
-102 F# 0 Bipolar
-101 G 0 Bipolar
-100 G# 0 Bipolar
-99 A 0 Bipolar
-98 A# 0 Bipolar
-97 B 0 Bipolar
-96 C 1 Bipolar
-95 C# 1 Bipolar
-94 D 1 Bipolar
-93 D# 1 Bipolar
-92 E 1 Bipolar
-91 F 1 Bipolar
-90 F# 1 Bipolar
-89 G 1 Bipolar
-88 G# 1 Bipolar
-87 A 1 Bipolar
-86 A# 1 Bipolar
-85 B 1 Bipolar
-84 C 2 Bipolar
-83 C# 2 Bipolar
-82 D 2 Bipolar
-81 D# 2 Bipolar
-80 E 2 Bipolar
-79 F 2 Bipolar
-78 F# 2 Bipolar
-77 G 2 Bipolar

-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31

G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F

2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6

Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar

-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

F# 6
G 6
G# 6
A 6
A# 6
B 6
C 7
C# 7
D 7
D# 7
E 7
F 7
F# 7
G 7
G# 7
A 7
A# 7
B 7
C 8
C# 8
D 8
D# 8
E 8
F 8
F# 8
G 8
G# 8
A 8
A# 8
B 8
C -1
C#-1
D -1
D#-1
E -1
F -1
F#-1
G -1
G#-1
A -1
A#-1
B -1
C 0
C# 0
D 0
D# 0

Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Bipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
4
4

Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B

4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7

Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar

108
109
110
111
112
113
114
115
116
117
118
119
120

C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C

8
8
8
8
8
8
8
8
8
8
8
8
9

Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar
Unipolar

82-Key Numbers.txt
*Key Numbers C -1 to G 9
0 C -1
1 C#-1
2 D -1
3 D#-1
4 E -1
5 F -1
6 F#-1
7 G -1
8 G#-1
9 A -1
10 A#-1
11 B -1
12 C 0
13 C# 0
14 D 0
15 D# 0
16 E 0
17 F 0
18 F# 0
19 G 0
20 G# 0
21 A 0
22 A# 0
23 B 0
24 C 1
25 C# 1
26 D 1
27 D# 1

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#

1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5

74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119

D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B

5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8

120
121
122
123
124
125
126
127

C
C#
D
D#
E
F
F#
G

9
9
9
9
9
9
9
9

83-Key-Freq.txt
*Frequencies 16 to 25088 Hz
-48 C 0
16 Hz
-47 C# 0
17
-46 D 0
18
-45 D# 0
19
-44 E 0
21
-43 F 0
22
-42 F# 0
23
-41 G 0
24
-40 G# 0
26
-39 A 0
28
-38 A# 0
29
-37 B 0
31
-36 C 1
33
-35 C# 1
35
-34 D 1
37
-33 D# 1
39
-32 E 1
41
-31 F 1
44
-30 F# 1
46
-29 G 1
49
-28 G# 1
52
-27 A 1
55
-26 A# 1
58
-25 B 1
62
-24 C 2
65
-23 C# 2
69
-22 D 2
73
-21 D# 2
78
-20 E 2
82
-19 F 2
87
-18 F# 2
92
-17 G 2
98
-16 G# 2
104

-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
A
A#
B
C
C#
D
D#
E
F
F#

2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6

110
117
123
131
139
147
156
165
175
185
196
208
220
233
247
262
277
294
311
330
349
370
392
415
440
466
494
523
554
587
622
659
698
740
784
831
880
932
988
1047
1109
1175
1245
1319
1397
1480

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

G 6
G# 6
A 6
A# 6
B 6
C 7
C# 7
D 7
D# 7
E 7
F 7
F# 7
G 7
G# 7
A 7
A# 7
B 7
C 8
C# 8
D 8
D# 8
E 8
F 8
F# 8
G 8
G# 8
A 8
A# 8
B 8
C 9
C# 9
D 9
D# 9
E 9
F 9
F# 9
G 9
G# 9
A 9
A# 9
B 9
C 10
C#10
D 10
D#10
E 10

1568
1661
1760
1865
1976
2093
2217
2349
2489
2637
2794
2960
3136
3322
3520
3729
3951
4186
4435
4699
4978
5274
5588
5920
6272
6645
7040
7459
7902
8372
8870
9397
9956
10548
11175
11840
12544
13290
14080
14917
15804
16744
17740
18795
19912
21096

77
78
79

F 10
F#10
G 10

22351
23680
25088

84-KeyTrk 0.10 to 10.00x.txt


*KeyTrk 0.10 to 10.00 x/oct
-90
0.10 x/oct
-89
0.11
-88
0.12
-87
0.13
-86
0.14
-85
0.15
-84
0.16
-83
0.17
-82
0.18
-81
0.19
-80
0.20
-79
0.21
-78
0.22
-77
0.23
-76
0.24
-75
0.25
-74
0.26
-73
0.27
-72
0.28
-71
0.29
-70
0.30
-69
0.31
-68
0.32
-67
0.33
-66
0.34
-65
0.35
-64
0.36
-63
0.37
-62
0.38
-61
0.39
-60
0.40
-59
0.41
-58
0.42
-57
0.43
-56
0.44
-55
0.45
-54
0.46
-53
0.47

-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7

0.48
0.49
0.50
0.51
0.52
0.53
0.54
0.55
0.56
0.57
0.58
0.59
0.60
0.61
0.62
0.63
0.64
0.65
0.66
0.67
0.68
0.69
0.70
0.71
0.72
0.73
0.74
0.75
0.76
0.77
0.78
0.79
0.80
0.81
0.82
0.83
0.84
0.85
0.86
0.87
0.88
0.89
0.90
0.91
0.92
0.93

-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

0.94
0.95
0.96
0.97
0.98
0.99
1.00
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
1.09
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20
1.30
1.40
1.50
1.60
1.70
1.80
1.90
2.00
2.10
2.20
2.30
2.40
2.50
2.60
2.70
2.80
2.90
3.00
3.10

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

3.20
3.30
3.40
3.50
3.60
3.70
3.80
3.90
4.00
4.10
4.20
4.30
4.40
4.50
4.60
4.70
4.80
4.90
5.00
5.10
5.20
5.30
5.40
5.50
5.60
5.70
5.80
5.90
6.00
6.10
6.20
6.30
6.40
6.60
6.80
7.00
7.20
7.40
7.60
7.80
8.00
8.20
8.40
8.60
8.80
9.00

86
87
88
89
90

9.20
9.40
9.60
9.80
10.00

85-KeyTrk -2400 to 2400.txt


*Keytrk -2400 to 2400 ct/key
-120 -2400 ct/key
-119 -2200
-118 -2000
-117 -1800
-116 -1600
-115 -1500
-114 -1400
-113 -1300
-112 -1200
-111 -1150
-110 -1100
-109 -1050
-108 -1000
-107
-950
-106
-900
-105
-850
-104
-800
-103
-750
-102
-700
-101
-650
-100
-600
-99
-550
-98
-500
-97
-450
-96
-400
-95
-380
-94
-360
-93
-340
-92
-320
-91
-300
-90
-280
-89
-260
-88
-240
-87
-220
-86
-200
-85
-195

-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39

-190
-185
-180
-175
-170
-165
-160
-158
-156
-154
-152
-150
-148
-146
-144
-142
-140
-138
-136
-134
-132
-130
-128
-126
-124
-122
-120
-118
-116
-114
-112
-110
-109
-108
-107
-106
-105
-104
-103
-102
-101
-100
-99
-98
-97
-96

-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7

-95
-94
-93
-92
-91
-90
-88
-86
-84
-82
-80
-78
-76
-74
-72
-70
-68
-66
-64
-62
-60
-58
-56
-54
-52
-50
-48
-46
-44
-42
-40
-35
-30
-25
-20
-15
-10
-5
0
5
10
15
20
25
30
35

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
20
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

112
114
116
118
120
122
124
126
128
130
132
134
136
138
140
142
144
146
148
150
152
154
156
158
160
165
170
175
180
185
190
195
200
220
240
260
280
300
320
340
360
380
400
450
500
550

100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

600
650
700
750
800
850
900
950
1000
1050
1100
1150
1200
1300
1400
1500
1600
1800
2000
2200
2400

86-LFO Rates.txt
*LFO Rates 0.00 to 24.00 Hz
0
0.00 Hz
1
0.01
2
0.02
3
0.03
4
0.04
5
0.05
6
0.06
7
0.07
8
0.08
9
0.09
10
0.10
11
0.11
12
0.12
13
0.13
14
0.14
15
0.15
16
0.16
17
0.17
18
0.18
19
0.19

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

0.20
0.25
0.30
0.35
0.40
0.45
0.50
0.55
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1.00
1.10
1.20
1.30
1.40
1.50
1.60
1.70
1.80
1.90
2.00
2.10
2.20
2.30
2.40
2.50
2.60
2.70
2.80
2.90
3.00
3.10
3.20
3.30
3.40
3.50
3.60
3.70
3.80
3.90

66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

4.00
4.10
4.20
4.30
4.40
4.50
4.60
4.70
4.80
4.90
5.00
5.10
5.20
5.30
5.40
5.50
5.60
5.70
5.80
5.90
6.00
6.10
6.20
6.30
6.40
6.50
6.60
6.70
6.80
6.90
7.00
7.10
7.20
7.30
7.40
7.50
7.60
7.70
7.80
7.90
8.00
8.10
8.20
8.30
8.40
8.50

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157

8.60
8.70
8.80
8.90
9.00
9.10
9.20
9.30
9.40
9.50
9.60
9.70
9.80
9.90
10.00
10.20
10.40
10.60
10.80
11.00
11.20
11.40
11.60
11.80
12.00
12.20
12.40
12.60
12.80
13.00
13.20
13.40
13.60
13.80
14.00
14.20
14.40
14.60
14.80
15.00
15.20
15.40
15.60
15.80
16.00
16.20

158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184

16.40
16.60
16.80
17.00
17.20
17.40
17.60
17.80
18.00
18.20
18.40
18.60
18.80
19.00
19.20
19.40
19.60
19.80
20.00
20.50
21.00
21.50
22.00
22.50
23.00
23.50
24.00

87-LFO Shape.txt
*LFO Shape
0 None
1 Sine
2 +Sine
3 Square
4 +Squar
5 Triang
6 +Trian
7 Rise S
8 +Rise
9 Fall S
10 +Fall
20 3 Step
21 +3 Ste
22 4 Step

Rise Saw
+Rise Saw
Fall Saw
+Fall Saw

23
24
25
26
27
28
29
30
31
34
35
38
39

+4 Ste
5 Step
+5 Ste
6 Step
+6 Ste
7 Step
+7 Ste
8 Step
+8 Ste
10 Ste
+10 St
12 Ste
+12 St

88-MinDly-MaxDly.txt
*MinDly, MaxDly 0.000 to 25.000 s
0
0.000 s
1
0.002
2
0.004
3
0.006
4
0.008
5
0.010
6
0.012
7
0.014
8
0.016
9
0.018
10
0.020
11
0.022
12
0.024
13
0.026
14
0.028
15
0.030
16
0.032
17
0.034
18
0.036
19
0.038
20
0.040
21
0.042
22
0.044
23
0.046
24
0.048
25
0.050
26
0.055
27
0.060

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

0.065
0.070
0.075
0.080
0.085
0.090
0.095
0.100
0.110
0.120
0.130
0.140
0.150
0.160
0.170
0.180
0.190
0.200
0.210
0.220
0.230
0.240
0.250
0.260
0.270
0.280
0.290
0.300
0.320
0.340
0.360
0.380
0.400
0.420
0.440
0.460
0.480
0.500
0.520
0.540
0.560
0.580
0.600
0.620
0.640
0.660

74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119

0.680
0.700
0.720
0.740
0.760
0.780
0.800
0.820
0.840
0.860
0.880
0.900
0.920
0.940
0.960
0.980
1.000
1.050
1.100
1.150
1.200
1.250
1.300
1.350
1.400
1.450
1.500
1.550
1.600
1.650
1.700
1.750
1.800
1.850
1.900
1.950
2.000
2.050
2.100
2.150
2.200
2.250
2.300
2.350
2.400
2.450

120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165

2.500
2.550
2.600
2.650
2.700
2.750
2.800
2.850
2.900
2.950
3.000
3.050
3.100
3.150
3.200
3.250
3.300
3.350
3.400
3.450
3.500
3.550
3.600
3.650
3.700
3.750
3.800
3.850
3.900
3.950
4.000
4.050
4.100
4.150
4.200
4.250
4.300
4.350
4.400
4.450
4.500
4.550
4.600
4.650
4.700
4.750

166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211

4.800
4.850
4.900
4.950
5.000
5.100
5.200
5.300
5.400
5.500
5.600
5.700
5.800
5.900
6.000
6.100
6.200
6.300
6.400
6.500
6.600
6.700
6.800
6.900
7.000
7.100
7.200
7.300
7.400
7.500
7.600
7.700
7.800
7.900
8.000
8.100
8.200
8.300
8.400
8.500
8.600
8.700
8.800
8.900
9.000
9.100

212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

9.200
9.300
9.400
9.500
9.600
9.700
9.800
9.900
10.000
10.200
10.400
10.600
10.800
11.000
11.200
11.400
11.600
11.800
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21.000
21.500
22.000
22.500
23.000
23.500
24.000
25.000

89-Pitch Bend.txt
*Pitch Bend -7200 to 7200 ct
-123 -7200 ct
-122 -6700
-121 -6500
-120 -6000
-119 -5500
-118 -5300
-117 -5000
-116 -4900
-115 -4800
-114 -4700
-113 -4600
-112 -4500
-111 -4400
-110 -4300
-109 -4200
-108 -4100
-107 -4000
-106 -3900
-105 -3800
-104 -3700
-103 -3600
-102 -3500
-101 -3400
-100 -3300
-99 -3200
-98 -3100
-97 -3000
-96 -2900
-95 -2800
-94 -2700
-93 -2600
-92 -2500
-91 -2400
-90 -2300
-89 -2200
-88 -2100
-87 -2000
-86 -1900
-85 -1800
-84 -1700
-83 -1600
-82 -1500
-81 -1400

-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35

-1300
-1200
-1100
-1000
-950
-900
-850
-800
-750
-700
-650
-600
-550
-500
-450
-400
-380
-360
-340
-320
-300
-280
-260
-240
-220
-200
-190
-180
-170
-160
-150
-140
-130
-120
-110
-100
-95
-90
-85
-80
-75
-70
-65
-60
-55
-50

-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11

-48
-46
-44
-42
-40
-38
-36
-34
-32
-30
-28
-26
-24
-22
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

12
13
14
15
16
17
18
19
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
55
60
65
70
75
80
85
90
95
100
110
120
130
140
150
160
170
180
190
200
220
240

58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

260
280
300
320
340
360
380
400
450
500
550
600
650
700
750
800
850
900
950
1000
1100
1200
1300
1400
1500
1600
1700
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
3000
3100
3200
3300
3400
3500
3600

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123

3700
3800
3900
4000
4100
4200
4300
4400
4500
4600
4700
4800
4900
5000
5300
5500
6000
6500
6700
7200

90-Portamento Rate.txt
*Portamento Rate 1.0 to 3000.0 key/s
1
1.0 key/s
2
1.2
3
1.4
4
1.6
5
1.8
6
2.0
7
2.2
8
2.4
9
2.6
10
2.8
11
3.0
12
3.2
13
3.4
14
3.6
15
3.8
16
4.0
17
4.2
18
4.6
19
4.8
20
5.0
21
5.3

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

5.6
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
11.0
12.0
13.0
14.0
15.0
16.0
17.0
18.0
19.0
20.0
21.0
22.0
23.0
24.0
25.0
26.0
28.0
30.0
32.0
34.0
36.0
38.0
40.0
42.0
44.0
46.0
48.0
50.0
53.0
56.0
60.0
65.0
70.0
75.0
80.0
85.0

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

90.0
95.0
100.0
110.0
120.0
130.0
140.0
150.0
160.0
170.0
180.0
190.0
200.0
210.0
220.0
230.0
240.0
250.0
260.0
280.0
300.0
320.0
340.0
360.0
380.0
400.0
420.0
440.0
460.0
480.0
500.0
530.0
560.0
600.0
650.0
700.0
750.0
800.0
850.0
900.0
950.0
1000.0
1100.0
1200.0
1300.0
1400.0

114
115
116
117
118
119
120
121
122
123
124
125
126
127

1500.0
1600.0
1700.0
1800.0
1900.0
2000.0
2100.0
2200.0
2300.0
2400.0
2500.0
2600.0
2800.0
3000.0

91-Setup Controllers.txt
* Setup Destinations for Controllers
* (Not used for KDFX parameters in Setups)
0 Off
1 MWheel
2 Breath
3 MIDI03
4 Foot
5 PortTim
6 Data
7 Volume
8 Balance
9 MIDI09
10 Pan
11 Express
12 MIDI12
13 MIDI13
14 MIDI14
15 AuxBend2
16 Ctl A
17 Ctl B
18 Ctl C
19 Ctl D
20 MIDI20
21 AuxBend1
22 MIDI22
23 MIDI23
24 MIDI24
25 MIDI25

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

MIDI26
MIDI27
MIDI28
MIDI29
MIDI30
MIDI31
MPress
BendUp
PendDwn
Tempo
MuteZn
KeyNum
KeyVel
TapTempo
ArpOrder
ArpBeats
ArpShift
ArpLimit
ArpLmtOp
ArpVel
ArpDur
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
(Not Available)
Sustain
PortSw
SostPd
SoftPd
LegatoSw
FrezPd
MIDI70
MIDI71

72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117

MIDI72
MIDI73
MIDI74
MIDI75
MIDI76
MIDI77
MIDI78
MIDI79
Ctl E
Ctl F
Ctl G
Ctl H
MIDI84
MIDI85
MIDI86
MIDI87
MIDI88
MIDI89
MIDI90
FX Depth
MIDI92
MIDI93
MIDI94
MIDI95
DataInc
DataDec
MIDI98
MIDI99
MIDI100
MIDI101
Play/Stp
Rec/Stp
MIDI104
MIDI105
MIDI106
MIDI107
MIDI108
MIDI109
MIDI110
MIDI111
MIDI112
MIDI113
MIDI114
MIDI115
ArpSw
ArpVel

118
119
120
121
122
123
124
125
126
127

Latch2
ArpLatch
Panic2
MIDI121
(Not Available)
Panic
MIDI124
MIDI125
MIDI126
MIDI127

94-VelScale.txt
*Velocity Scale -300 to 300 %
-120 -300 %
-119 -290
-118 -280
-117 -270
-116 -260
-115 -250
-114 -240
-113 -230
-112 -220
-111 -210
-110 -200
-109 -190
-108 -180
-107 -170
-106 -160
-105 -150
-104 -140
-103 -130
-102 -120
-101 -110
-100 -100
-99
-99
-98
-98
-97
-97
-96
-96
-95
-95
-94
-94
-93
-93
-92
-92
-91
-91
-90
-90

-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44

-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44

-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2

-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

95
96
97
98
99
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300

95-VelTrk 0.010 to 32.000x.txt


*Velocity Track 0.010 to 32.000 x
-110
0.010 x
-109
0.011
-108
0.012
-107
0.013
-106
0.014
-105
0.015
-104
0.016
-103
0.017
-102
0.018
-101
0.019
-100
0.020
-99
0.021
-98
0.022
-97
0.023
-96
0.024

-95
-94
-93
-92
-91
-90
-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50

0.025
0.026
0.027
0.028
0.029
0.030
0.032
0.034
0.036
0.038
0.040
0.042
0.044
0.046
0.048
0.050
0.052
0.054
0.056
0.058
0.060
0.062
0.064
0.066
0.068
0.070
0.072
0.074
0.076
0.078
0.080
0.082
0.084
0.086
0.088
0.090
0.092
0.094
0.096
0.098
0.100
0.110
0.120
0.130
0.140
0.150

-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4

0.160
0.170
0.180
0.190
0.200
0.210
0.220
0.230
0.240
0.250
0.260
0.270
0.280
0.290
0.300
0.320
0.340
0.360
0.380
0.400
0.420
0.440
0.460
0.480
0.500
0.520
0.540
0.560
0.580
0.600
0.620
0.640
0.660
0.680
0.700
0.720
0.740
0.760
0.780
0.800
0.820
0.840
0.860
0.880
0.900
0.920

-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

0.940
0.960
0.980
1.000
1.020
1.040
1.060
1.080
1.100
1.120
1.140
1.160
1.180
1.200
1.300
1.400
1.500
1.600
1.700
1.800
1.900
2.000
2.100
2.200
2.300
2.400
2.500
2.600
2.700
2.800
2.900
3.000
3.100
3.200
3.300
3.400
3.500
3.600
3.800
4.000
4.200
4.400
4.600
4.800
5.000
5.200

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

5.400
5.600
5.800
6.000
6.200
6.400
6.600
6.800
7.000
7.200
7.400
7.600
7.800
8.000
8.200
8.400
8.600
8.800
9.000
9.200
9.400
9.600
9.800
10.000
10.500
11.000
11.500
12.000
12.500
13.000
13.500
14.000
14.500
15.000
15.500
16.000
16.500
17.000
17.500
18.000
18.500
19.000
19.500
20.000
20.500
21.000

89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

21.500
22.000
22.500
23.000
23.500
24.000
24.500
25.000
25.500
26.000
26.500
27.000
27.500
28.000
28.500
29.000
29.500
30.000
30.500
31.000
31.500
32.000

96-VelTrk -10800ct to 10800ct.txt


*Velocity Track -10800 to 10800 ct
-127 -10800 ct
-126 -10400
-125 -10000
-124
-9600
-123
-9500
-122
-9400
-121
-9300
-120
-9200
-119
-9100
-118
-9000
-117
-8900
-116
-8800
-115
-8700
-114
-8600
-113
-8500
-112
-8400
-111
-8300
-110
-8200
-109
-8100

-108
-107
-106
-105
-104
-103
-102
-101
-100
-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63

-8000
-7900
-7800
-7700
-7600
-7500
-7400
-7300
-7200
-7100
-7000
-6900
-6800
-6700
-6600
-6500
-6400
-6300
-6200
-6100
-6000
-5900
-5800
-5700
-5600
-5500
-5400
-5300
-5200
-5100
-5000
-4900
-4800
-4700
-4600
-4500
-4400
-4300
-4200
-4100
-4000
-3900
-3800
-3700
-3600
-3500

-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17

-3400
-3300
-3200
-3100
-3000
-2900
-2800
-2700
-2600
-2500
-2400
-2300
-2200
-2100
-2000
-1900
-1800
-1700
-1600
-1500
-1400
-1300
-1200
-1100
-1000
-900
-800
-700
-600
-500
-450
-400
-350
-300
-250
-200
-150
-120
-100
-90
-80
-70
-60
-55
-50
-45

-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

-40
-35
-30
-27
-24
-22
-20
-18
-16
-14
-12
-10
-8
-6
-4
-2
0
2
4
6
8
10
12
14
16
18
20
22
24
27
30
35
40
45
50
55
60
70
80
90
100
120
150
200
250
300

30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

350
400
450
500
600
700
800
900
1000
1100
1200
1300
1400
1500
1600
1700
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
3000
3100
3200
3300
3400
3500
3600
3700
3800
3900
4000
4100
4200
4300
4400
4500
4600
4700

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

4800
4900
5000
5100
5200
5300
5400
5500
5600
5700
5800
5900
6000
6100
6200
6300
6400
6500
6600
6700
6800
6900
7000
7100
7200
7300
7400
7500
7600
7700
7800
7900
8000
8100
8200
8300
8400
8500
8600
8700
8800
8900
9000
9100
9200
9300

122
123
124
125
126
127

9400
9500
9600
10000
10400
10800

97-VelTrk -5.00 to 5.00 Oct.txt


*Velocity Track -5.00 to 5.00 Oct
-105 -5.00 Oct
-104 -4.90
-103 -4.80
-102 -4.70
-101 -4.60
-100 -4.50
-99 -4.40
-98 -4.30
-97 -4.20
-96 -4.10
-95 -4.00
-94 -3.90
-93 -3.80
-92 -3.70
-91 -3.60
-90 -3.50
-89 -3.40
-88 -3.30
-87 -3.20
-86 -3.10
-85 -3.00
-84 -2.90
-83 -2.80
-82 -2.70
-81 -2.60
-80 -2.50
-79 -2.40
-78 -2.30
-77 -2.20
-76 -2.10
-75 -2.00
-74 -1.95
-73 -1.90
-72 -1.85
-71 -1.80

-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25

-1.75
-1.70
-1.65
-1.60
-1.55
-1.50
-1.45
-1.40
-1.35
-1.30
-1.25
-1.20
-1.15
-1.10
-1.05
-1.00
-0.98
-0.96
-0.94
-0.92
-0.90
-0.88
-0.86
-0.84
-0.82
-0.80
-0.78
-0.76
-0.74
-0.72
-0.70
-0.68
-0.66
-0.64
-0.62
-0.60
-0.58
-0.56
-0.54
-0.52
-0.50
-0.48
-0.46
-0.44
-0.42
-0.40

-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

-0.38
-0.36
-0.34
-0.32
-0.30
-0.28
-0.26
-0.24
-0.22
-0.20
-0.18
-0.16
-0.14
-0.12
-0.10
-0.09
-0.08
-0.07
-0.06
-0.05
-0.04
-0.03
-0.02
-0.01
0.00
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.10
0.12
0.14
0.16
0.18
0.20
0.22
0.24
0.26
0.28
0.30
0.32

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

0.34
0.36
0.38
0.40
0.42
0.44
0.46
0.48
0.50
0.52
0.54
0.56
0.58
0.60
0.62
0.64
0.66
0.68
0.70
0.72
0.74
0.76
0.78
0.80
0.82
0.84
0.86
0.88
0.90
0.92
0.94
0.96
0.98
1.00
1.05
1.10
1.15
1.20
1.25
1.30
1.35
1.40
1.45
1.50
1.55
1.60

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105

1.65
1.70
1.75
1.80
1.85
1.90
1.95
2.00
2.10
2.20
2.30
2.40
2.50
2.60
2.70
2.80
2.90
3.00
3.10
3.20
3.30
3.40
3.50
3.60
3.70
3.80
3.90
4.00
4.10
4.20
4.30
4.40
4.50
4.60
4.70
4.80
4.90
5.00

98-VelTrk -7200 to 7200.txt


*Velocity Track -7200 to 7200 ct
-123 -7200 ct
-122 -6700
-121 -6500

-120
-119
-118
-117
-116
-115
-114
-113
-112
-111
-110
-109
-108
-107
-106
-105
-104
-103
-102
-101
-100
-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75

-6000
-5500
-5300
-5000
-4900
-4800
-4700
-4600
-4500
-4400
-4300
-4200
-4100
-4000
-3900
-3800
-3700
-3600
-3500
-3400
-3300
-3200
-3100
-3000
-2900
-2800
-2700
-2600
-2500
-2400
-2300
-2200
-2100
-2000
-1900
-1800
-1700
-1600
-1500
-1400
-1300
-1200
-1100
-1000
-950
-900

-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29

-850
-800
-750
-700
-650
-600
-550
-500
-450
-400
-380
-360
-340
-320
-300
-280
-260
-240
-220
-200
-190
-180
-170
-160
-150
-140
-130
-120
-110
-100
-95
-90
-85
-80
-75
-70
-65
-60
-55
-50
-48
-46
-44
-42
-40
-38

-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

-36
-34
-32
-30
-28
-26
-24
-22
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

18
19
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
55
60
65
70
75
80
85
90
95
100
110
120
130
140
150
160
170
180
190
200
220
240
260
280
300
320
340
360

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

380
400
450
500
550
600
650
700
750
800
850
900
950
1000
1100
1200
1300
1400
1500
1600
1700
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
3000
3100
3200
3300
3400
3500
3600
3700
3800
3900
4000
4100
4200

110
111
112
113
114
115
116
117
118
119
120
121
122
123

4300
4400
4500
4600
4700
4800
4900
5000
5300
5500
6000
6500
6700
7200

You might also like